Skip to main content

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.)