Encryption
In transit: TLS 1.3 enforced at every ingress point. HTTP requests redirect to HTTPS. HSTS preloaded with 63072000s max-age, includeSubDomains, and preload directives.
At rest: Database storage is AES-256 encrypted at the disk layer by Supabase / AWS KMS. On top of that, sensitive PII (profile names, evidence file metadata, integration credentials) uses application-layer envelope encryption: each organization has its own Data Encryption Key (DEK), which is itself wrapped by a Master Encryption Key (MEK) held only in our application runtime. A database-only compromise yields ciphertext, not plaintext.
Key rotation: Tooling exists to rotate DEKs per-organization and the global MEK. Rotation re-wraps existing DEKs without re-encrypting application data, so rotations are fast and zero-downtime.
