Skip to main content

SGraph Send

Zero-knowledge encrypted file sharing. The server never sees your files.

send.sgraph.ai | Currently in private beta


How It Works

A complete walkthrough of the upload-to-download flow. The server never sees your plaintext, your file name, or your decryption key at any point.

Step 1: Select a file

Drop a file into the upload zone or click to browse. No account required.

Upload page with drop zone and test files section

Step 2: Encrypt and upload

Your file is shown with its size. Click "Encrypt & Upload" -- encryption happens entirely in your browser using AES-256-GCM before anything leaves your device.

File selected, showing test-data.json ready for encryption

After upload, you get two things: a download link and a decryption key, each with its own copy button. The security tip reminds you to share these through different channels. The transparency panel proves what was stored (encrypted file, size) and what was NOT stored (file name, decryption key, raw IP).

File sent with download link, decryption key, and transparency panel

The recipient sees the encrypted file metadata and a field to paste the decryption key. The server never sees the key -- it is shared out-of-band between sender and recipient.

Download page showing encrypted file and decryption key input

Step 5: File decrypted locally

The file is decrypted in the recipient's browser. The transparency panel confirms: file content was encrypted (the server could not read it), the decryption key was NOT stored (only you have it), and the file name was never sent to the server.

Download confirmation with transparency panel showing zero-knowledge proof

Step 6: Original file, intact

The downloaded file is identical to the original. The server only ever had encrypted bytes -- it could not read, modify, or inspect the contents at any point.

Original test-data.json opened in text editor, content intact

Why This Exists

Most file sharing services require you to trust the provider with your unencrypted data. SGraph Send takes a different approach: the server is architecturally unable to read what you share.

  • No accounts required
  • No tracking, no cookies, no local storage
  • The server stores only encrypted bytes it cannot decrypt
  • IP addresses are hashed with a daily rotating salt — stored as one-way hashes, never in the clear

Architecture

Component Detail
Two Lambda functions User-facing (transfers, health, static UI) and Admin (tokens, stats)
Endpoints Lambda Function URLs — direct HTTPS, no API Gateway
Storage S3 via Memory-FS abstraction (pluggable: memory, disk, S3)
Encryption Web Crypto API, AES-256-GCM, client-side only
Frontend IFD Web Components — vanilla JS, zero framework dependencies
Backend FastAPI + Mangum via osbot-fast-api
Type system Type_Safe from osbot-utils (no Pydantic)

Three UIs serve different audiences: the user workflow, power user tools, and an admin console.


The Agentic Team

This project is built and maintained by a 15-role AI agentic team coordinated through Claude Code, with a human stakeholder (Dinis Cruz) providing direction through written briefs.

Roles: Architect, Dev, QA, DevOps, AppSec, GRC, DPO, Advocate, Sherpa, Ambassador, Journalist, Historian, Cartographer, Librarian, and Conductor.

Each role produces structured review documents, tracks decisions, and operates within defined boundaries. The team's work is fully visible in the repo:


Key Documents

Document Path
Project brief library/docs/_to_process/project - Secure Send Service brief.md
Phase roadmap library/roadmap/phases/v0.1.1__phase-overview.md
Agent guidance .claude/CLAUDE.md
Development guides library/guides/
Issue tracking .issues/

Project Structure

sgraph_ai_app_send/              # Application code
  lambda__admin/                 # Admin Lambda (FastAPI + Mangum)
  lambda__user/                  # User Lambda (FastAPI + Mangum)

sgraph_ai_app_send__ui__admin/   # Admin UI (static assets)
sgraph_ai_app_send__ui__user/    # User UI (static assets)

tests/unit/                      # Tests (no mocks, real in-memory stack)

.issues/                         # File-based issue tracking
library/                         # Specs, guides, roadmap, dependencies
team/                            # Agentic team roles, reviews, briefs

Development

Requires Python 3.12.

# Install dependencies
poetry install

# Run tests
poetry run pytest tests/unit/ -v

All tests use real implementations with an in-memory storage backend. No mocks, no patches. The full stack starts in under 3 seconds.


Stack

Layer Technology
Runtime Python 3.12 / arm64
Web framework FastAPI via osbot-fast-api / osbot-fast-api-serverless
Lambda adapter Mangum
Storage Memory-FS (pluggable: memory, disk, S3)
AWS operations osbot-aws
Type system Type_Safe (osbot-utils)
Frontend Vanilla JS + Web Components (IFD)
Encryption Web Crypto API (AES-256-GCM)
Testing pytest, in-memory stack, no mocks
CI/CD GitHub Actions (test, tag, deploy)

Status

v0.2.21 — S3 persistent storage live. End-to-end encryption working. CI/CD pipeline deploying automatically. 56 tests passing. Private beta phase.


License

Apache 2.0

Metadata

Release files for sgraph-ai-app-send 0.34.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sgraph-ai-app-send 0.34.0
File Size Uploaded
sgraph_ai_app_send-0.34.0.tar.gz 5.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for sgraph-ai-app-send 0.34.0
File Interpreter ABI Platform
sgraph_ai_app_send-0.34.0-py3-none-any.whl Python 3 none any Details

Total release size: 11.0 MB

Release files / sgraph_ai_app_send-0.34.0.tar.gz

Download URL sgraph_ai_app_send-0.34.0.tar.gz
Size 5.2 MB
Tags Source
SHA-256 checksum
How to use checksums
82449fd5d9284e443ba15cbde8e1963726724440efa4d1a797f613f1aa340b48
BLAKE2b-256 checksum
How to use checksums
f137394816c4c738b26ccd20f823ccbfd5a0328c1f384a6d0d873c9a1f0072a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / sgraph_ai_app_send-0.34.0-py3-none-any.whl

Download URL sgraph_ai_app_send-0.34.0-py3-none-any.whl
Size 5.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
6191135fa7a36716d3c1ebe0121f3e7661e58827ff508818ffe887aa115d3acc
BLAKE2b-256 checksum
How to use checksums
d47e15da30d4d8ef23cad4cc8eb241c0c20f0997913354f52e068472e071ad07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.15
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page