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.11.0.tar.gz (78.7 kB 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.11.0-py3-none-any.whl (125.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sgraph_ai_app_send-0.11.0.tar.gz
  • Upload date:
  • Size: 78.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for sgraph_ai_app_send-0.11.0.tar.gz
Algorithm Hash digest
SHA256 b44643cb180369e9c30d6a6203d258e5ed824cf206db9f42a7f2e430c968a4f6
MD5 fb3540f646df430d76ddd0192d8aff63
BLAKE2b-256 55a4151877e490fa6af3fa03c33ab779e0697e9fb4aeef8b2e8c431e18e8cc09

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sgraph_ai_app_send-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6b9dbded724dac8d80296fd63d8b6e2c5a4511b1ae4e16e60403e8264f42fef1
MD5 b78c3f9e72682604997fb55c7a7558a9
BLAKE2b-256 fc630fb6aef768d22a8481ae59c6c6e5605ded283f7d555a99a9ff1d3fd8c3b0

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