Skip to main content

SGraph-AI__App__Send

Project description

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

Step 3: Share the link and key separately

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

Step 4: Recipient opens the download link

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

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

sgraph_ai_app_send-0.31.0.tar.gz (4.8 MB view details)

Uploaded Source

Built Distribution

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

sgraph_ai_app_send-0.31.0-py3-none-any.whl (5.4 MB view details)

Uploaded Python 3

File details

Details for the file sgraph_ai_app_send-0.31.0.tar.gz.

File metadata

  • Download URL: sgraph_ai_app_send-0.31.0.tar.gz
  • Upload date:
  • Size: 4.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for sgraph_ai_app_send-0.31.0.tar.gz
Algorithm Hash digest
SHA256 be075947e98148c6488d4f2cfc97fe44a2a621738ea3e84943375d9ce1e50e8e
MD5 78ac6c18e0f898a70c48b5ed78297645
BLAKE2b-256 63dfb3267ced4cd369c2f1bb574707adadf24d3d6693c12adbe6e253a54ff763

See more details on using hashes here.

File details

Details for the file sgraph_ai_app_send-0.31.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sgraph_ai_app_send-0.31.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e605edd4fea79a2ae74baaba141f0fa437c074af68c7b1eeb4b3321e295d21e2
MD5 9dbabb53cacf86b066418fba55656cb7
BLAKE2b-256 55562733fc4f3237135c1fa80020925a0ed6f3f2f2591aa4f48e76752c890c5e

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