SyftBox Glossary
Brief explanations of SyftBox concepts.
Datasite
A node within the SyftBox network that can both contribute and consume data and applications. Datasites:
- Form the foundation of SyftBox's network-first architecture
- Maintain local data sovereignty while participating in networked applications
- Can contain private data or sync data from other Datasites
App
Applications designed to interact with data across the SyftBox network. Key characteristics:
- Process both private and synced data while respecting privacy constraints
- Language-agnostic, with dedicated SDK for Python developers
- Structured as a directory under
apps
folder with a mandatory "run.sh" file - Automatically scanned and executed by the SyftBox client every 10 seconds
SyftBox Network
A distributed system connecting multiple Datasites to enable data synchronization and collaboration. Features:
- Datasites identified by unique email addresses
- Supports custom Apps across connected Datasites
- Implements permissions system for controlled data sharing
- Balances privacy and collaboration needs
Syncing
The mechanism for transferring files between Datasites. The process:
- Uses a caching server as intermediary
- Enables asynchronous collaboration between users
- Stores files in a designated sync directory on each user's machine
- Enforces permission controls on both clients and server
Permissions
Access control system managing how users interact with files and folders. Structure:
- Defined in syftperm.yaml files throughout directory structure
- Based on four permission bits: read, create, write, and admin
- Prioritizes rules by file path depth and sequence
- Grants datasite owners full permissions by default
Inbox App
Communication channel for App requests between Datasites. Functionality:
- Allows targeting specific Datasites or broadcasting to all
- Notifies owners via email and desktop alerts about incoming requests
- Provides review system through "approved" and "rejected" directories
- Supports various execution patterns (one-time runs, customizable frequency, etc.)