Skip to main content

Minimal utilities for managing SyftBox file permissions

Project description

syft-perm

Minimal utilities for managing SyftBox file permissions.

Overview

syft-perm provides simple, focused utilities for reading, setting, and removing file permissions in SyftBox environments. It handles the creation and management of syft.pub.yaml permission files.

Installation

pip install syft-perm

For SyftBox integration:

pip install syft-perm[syftbox]

Usage

Basic Permission Management

from syft_perm import set_file_permissions, get_file_permissions, remove_file_permissions

# Set permissions for a file
set_file_permissions(
    "path/to/file.txt",
    read_users=["alice@example.com", "bob@example.com"],
    write_users=["alice@example.com"]
)

# Get current permissions
permissions = get_file_permissions("path/to/file.txt")
print(permissions)  # {'read': ['alice@example.com', 'bob@example.com'], 'write': ['alice@example.com']}

# Remove permissions
remove_file_permissions("path/to/file.txt")

SyftBox URL Support

Works with both local paths and syft:// URLs:

# Local path
set_file_permissions("/local/path/file.txt", read_users=["public"])

# SyftBox URL (requires syft-core)
set_file_permissions("syft://alice@example.com/public/data.csv", read_users=["bob@example.com"])

Public Access

Use "public" or "*" for public access:

set_file_permissions(
    "public_file.txt",
    read_users=["public"],  # Anyone can read
    write_users=["alice@example.com"]  # Only alice can write
)

API Reference

set_file_permissions(file_path_or_syfturl, read_users, write_users=None, admin_users=None)

Set permissions for a file by updating the corresponding syft.pub.yaml file.

Parameters:

  • file_path_or_syfturl: Local file path or syft:// URL
  • read_users: List of users who can read the file
  • write_users: List of users who can write the file (optional)
  • admin_users: List of users who have admin access (optional, defaults to write_users)

get_file_permissions(file_path_or_syfturl)

Read current permissions for a file from syft.pub.yaml.

Returns: Dictionary with access permissions, or None if not found.

remove_file_permissions(file_path_or_syfturl)

Remove permissions for a file from syft.pub.yaml.

Requirements

  • Python 3.8+
  • PyYAML 6.0+
  • syft-core (optional, for syft:// URL support)

License

MIT 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

syft_perm-0.1.0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

syft_perm-0.1.0-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

Details for the file syft_perm-0.1.0.tar.gz.

File metadata

  • Download URL: syft_perm-0.1.0.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for syft_perm-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8685200617c8ca956689e17ad56e33df5811531e1f40343ee39d0fcae5579ab7
MD5 088f9d23d3289718f863081e547c97b9
BLAKE2b-256 86075daa6aac78a0e0a536c886deb3a70ea66371f877855782737e35f4bfaa5d

See more details on using hashes here.

File details

Details for the file syft_perm-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: syft_perm-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for syft_perm-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 48e18ef2744b212c7e46f27e55667772441f915e4a54cdf5743bfab2a5a662c0
MD5 6455d19ca6541dc7a6773960f14142b1
BLAKE2b-256 0f88a3d6094761ecdd9d5f222a1dfd3e187203ce735c54fc4b970f44c9475131

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page