Auto Secure LoginPlatform
Live AES-256-GCM at rest Shared infrastructure

Shared file storage where the URL is never the key.

ASL Files is the platform's shared, multi-tenant, encrypted-at-rest file store. Every blob is AES-256-GCM encrypted with a service-only key. Files are visible only within their own organization — there's no cross-tenant read path in v1 — and a stolen disk reveals nothing. It also adds Secure Send: a password-protected, expiring, two-channel way to hand a sensitive file to someone outside the platform entirely.

AES-256-GCMevery blob, plus the backup archive
404cross-tenant — not 403
provenbackups verified by real restore
0runtime dependencies

The problem

A link should not be a skeleton key.

Too many "secure" file services treat a long URL as the only thing standing between a document and the world — share the link by accident and the file is public. And "encrypted at rest" often stops at the file bytes, leaving file names and backups in the clear.

ASL Files requires a token even when you hold the URL, isolates every tenant so a second org gets a 404 (not a revealing 403), and encrypts the blobs and the backup archive — so even file names are protected.

Backups that prove themselves

  • Online snapshot → tar → AES-256-GCM archive
  • Key escrowed in ASL Vault
  • Restore tested — decrypt + integrity_check + count blobs
  • Not "tar exited 0" — an actual round-trip

Capabilities

Encryption, isolation, and a safe way out.

🔒

Encrypted at rest

Every blob stored as iv‖tag‖ciphertext under a service-only key — a stolen disk yields nothing.

Integrity on every download

Files are re-verified on the way out and fail closed on any tampering.

Strict tenant isolation

No cross-tenant read path — a request for another org's file returns 404, revealing nothing about what exists.

🔑

URL is not a capability

Holding the URL isn't enough; a hardened query-token gate still requires a valid token scoped to that one file, GET-only.

📤

Secure Send

A 10-character no-confusable password, an expiring link (1h–720h), and an open-count cap — for handing a file to an outside recipient.

🙈

Reveal nothing early

The recipient sees nothing until the password is correct, then receives the file delivered as a .zip.

Non-blocking unlock

Async scrypt means a public unlock attempt can't stall the shared event loop for everyone else.

🗑

Role-gated lifecycle

Role-gated deletion, per-file limits, and a full audit trail across every operation.

📦

Zero-dep ZIP writer

A dependency-free inline ZIP writer — no third-party archive library in the trust boundary.

loopback 19730zero-dep Node on node:sqlite WAL
17 testscovering the trust boundary
4 consumerstherapy · municipal · repo-runner · command-center
names tooencryption protects file names, not just bytes
Three legs of one system. Files is the attachment store behind ASL Tickets (the ticketing engine) and ASL Support (the public form) — together they give every product encrypted storage, a support queue, and a safe outbound channel without building any of it per app.

Store it encrypted. Share it safely.

Service-key encryption, strict tenant isolation, restore-proven backups, and a password-protected expiring hand-off for the outside world.