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.15.0.tar.gz (1.4 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.15.0-py3-none-any.whl (1.7 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sgraph_ai_app_send-0.15.0.tar.gz
  • Upload date:
  • Size: 1.4 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.15.0.tar.gz
Algorithm Hash digest
SHA256 6d3487e8486669ca9d5b5fb9e00fc3d8af5d47aeb00ea993b378370e1a74667c
MD5 c42d6bb704c22352027fc801b8453e18
BLAKE2b-256 82c5d3d12111ba07e9bfda17329c5df2467c64762ab833c4648ac614a7325a8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sgraph_ai_app_send-0.15.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d604edf090c2e9049697df1d3974f78507d347454f50652fd9b2d314cc5b04ae
MD5 8e8a29cd7cc57370a7f882639f96e040
BLAKE2b-256 3ab47e6829b252d0397869b6632ed625b13dac97dc9ccfbc4de9d9020e1cc287

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