Minimal utilities for managing SyftBox file permissions
Project description
SyftPerm
File permission management for SyftBox made simple.
SyftPerm provides intuitive Python APIs for managing SyftBox file permissions with powerful pattern matching, inheritance, and debugging capabilities.
📚 Complete Documentation
Installation
pip install syft-perm
Quick Start - Learn the Entire API in 2 Minutes
import syft_perm as sp
# 1. Opening files and folders
file = sp.open("data.csv") # Open a file
folder = sp.open("my_project/") # Open a folder
remote = sp.open("syft://alice@datasite.org/data.csv") # Remote files
# 2. Granting permissions (each level includes all lower permissions)
file.grant_read_access("bob@company.com") # Can view
file.grant_create_access("alice@company.com") # Can view + create new files
file.grant_write_access("team@company.com") # Can view + create + modify
file.grant_admin_access("admin@company.com") # Full control
# 3. Revoking permissions
file.revoke_read_access("bob@company.com") # Remove all access
file.revoke_create_access("alice@company.com") # Remove create (keeps read)
file.revoke_write_access("team@company.com") # Remove write (keeps read/create)
file.revoke_admin_access("admin@company.com") # Remove admin privileges
# 4. Checking permissions
if file.has_read_access("bob@company.com"):
print("Bob can read this file")
if file.has_create_access("alice@company.com"):
print("Alice can create new files")
if file.has_write_access("team@company.com"):
print("Team can modify this file")
if file.has_admin_access("admin@company.com"):
print("Admin has full control")
# 5. Understanding permissions with explain
explanation = file.explain_permissions("bob@company.com")
print(explanation) # Shows why bob has/doesn't have access
# 6. Working with the Files API
all_files = sp.files.all() # Get all permissioned files
paginated = sp.files.get(limit=10, offset=0) # Get first 10 files
filtered = sp.files.search(admin="me@datasite.org") # My admin files
sliced = sp.files[0:5] # First 5 files using slice
# 7. Moving files while preserving permissions
new_file = file.move_file_and_its_permissions("archive/data.csv")
# 8. Interactive features (Jupyter/web)
file.share # Show sharing widget
Permission Hierarchy Explained
- Read: View file contents
- Create: Read + create new files in folders
- Write: Read + Create + modify existing files
- Admin: Read + Create + Write + manage permissions
Permission Hierarchy
- Read - View file contents
- Create - Read + create new files
- Write - Read + Create + modify existing files
- Admin - Read + Create + Write + manage permissions
Learn More
- 5-Minute Quick Start - Get productive immediately
- Comprehensive Tutorials - Master advanced features
- API Reference - Complete Python API docs
Requirements
- Python 3.9+
- Works on Windows, macOS, and Linux
Contributing
- Check out our GitHub Issues
- Read the Contributing Guide
- Join the OpenMined Community
License
Apache 2.0 License - see LICENSE file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file syft_perm-0.4.0.tar.gz.
File metadata
- Download URL: syft_perm-0.4.0.tar.gz
- Upload date:
- Size: 202.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.4.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb57e45e0d630a516d741882be18b090e3079d07239f90f2c07c75cb7eaea9bb
|
|
| MD5 |
77f8d88e1aa56d56bd5a8a6136b17759
|
|
| BLAKE2b-256 |
2bc102592142a670dada8f5abef596ca605862831dde4f756d6f7d4832e51ddb
|
File details
Details for the file syft_perm-0.4.0-py3-none-any.whl.
File metadata
- Download URL: syft_perm-0.4.0-py3-none-any.whl
- Upload date:
- Size: 133.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.4.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39c282ce51fb66b5b91576f474cea1388a385c917def0ffed5d2881e64481c74
|
|
| MD5 |
5fc296f864f70604a13790f746d77fe9
|
|
| BLAKE2b-256 |
69c14cb6783b009a8a584df135ee594f62a832b2efeb7c1a4655cc037bfc355b
|