Skip to main content

Ephemeral-First Security Framework - Security through transience

Project description

EFSF Python SDK

The official Python SDK for the Ephemeral-First Security Framework.

Installation

# Basic installation
pip install efsf

# With Redis backend support
pip install efsf[redis]

# With all optional dependencies
pip install efsf[all]

Quick Start

from efsf import EphemeralStore, DataClassification

# Create a store (defaults to in-memory for development)
store = EphemeralStore()

# Store sensitive data with automatic TTL and encryption
record = store.put(
    data={"user_id": "123", "ssn": "xxx-xx-xxxx"},
    ttl="30m",  # Destroyed in 30 minutes
    classification=DataClassification.PII,
)

print(f"Stored record: {record.id}")
print(f"Expires at: {record.expires_at}")

# Retrieve while valid
data = store.get(record.id)
print(f"Retrieved: {data}")

# Check remaining time
remaining = store.ttl(record.id)
print(f"Time remaining: {remaining}")

# Manually destroy early
certificate = store.destroy(record.id)
print(f"Destruction certificate: {certificate.certificate_id}")

Using Redis Backend

from efsf import EphemeralStore

store = EphemeralStore(
    backend="redis://localhost:6379/0",
    default_ttl="1h",
    attestation=True,
)

# Redis provides native TTL enforcement
record = store.put({"session": "data"}, ttl="15m")

Sealed Execution

from efsf import sealed

@sealed(attestation=True)
def process_payment(card_number: str, amount: float) -> str:
    """
    All local variables are destroyed when this function returns.
    A destruction certificate is automatically generated.
    """
    # Process payment...
    return f"payment_id_{hash(card_number) % 10000}"

result = process_payment("4111-1111-1111-1111", 99.99)
# card_number is now destroyed from memory

Data Classifications

Classification Default TTL Max TTL Use Case
TRANSIENT 1 hour 24 hours Session tokens, OTPs
SHORT_LIVED 1 day 7 days Shopping carts, temp files
RETENTION_BOUND 90 days 7 years Invoices, audit logs
PERSISTENT None None Legal holds (requires justification)

Destruction Certificates

Every destroyed record can have a cryptographically signed certificate:

from efsf import EphemeralStore

store = EphemeralStore(attestation=True)
record = store.put({"sensitive": "data"}, ttl="1m")

# Wait for expiration or destroy manually
certificate = store.destroy(record.id)

# Certificate contains:
print(certificate.to_json())
# {
#   "certificate_id": "uuid",
#   "resource": {"type": "ephemeral_data", "id": "record-id", ...},
#   "destruction": {"method": "crypto_shred", "timestamp": "...", ...},
#   "chain_of_custody": {...},
#   "signature": "base64-signature"
# }

Development

# Clone the repo
git clone https://github.com/akshat666/ephemeral-first-security-framework.git
cd efsf/sdk/python

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run tests with Redis (requires running Redis)
pytest --redis-url redis://localhost:6379

# Type checking
mypy efsf/

# Formatting
black efsf/ tests/

License

Apache 2.0

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

efsf-0.3.0.tar.gz (21.4 kB view details)

Uploaded Source

Built Distribution

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

efsf-0.3.0-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

File details

Details for the file efsf-0.3.0.tar.gz.

File metadata

  • Download URL: efsf-0.3.0.tar.gz
  • Upload date:
  • Size: 21.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for efsf-0.3.0.tar.gz
Algorithm Hash digest
SHA256 82b154c4b447da5352ed3d4082b57cf68c7ef46e3c52876eccc70383d55ac4fc
MD5 660cb36c9025f0d4ba641c99856f4eb4
BLAKE2b-256 e2af16909e278c2d472c91f4e842b94947fb6acfe276c0fd8e801a4734569544

See more details on using hashes here.

Provenance

The following attestation bundles were made for efsf-0.3.0.tar.gz:

Publisher: release.yml on akshat666/ephemeral-first-security-framework

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file efsf-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: efsf-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 19.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for efsf-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 de4f84230d530f4a7f58645bdb289e5657ea89c0b857228729ef4933a46699a0
MD5 7d62d24b73b4ec81f7abc59f46178592
BLAKE2b-256 9fc3910b785e69c3555b29958b8f96c66123bfa5fcc1d742ad5ccf1a05f9ca2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for efsf-0.3.0-py3-none-any.whl:

Publisher: release.yml on akshat666/ephemeral-first-security-framework

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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