Data retention
Breachtide holds the minimum data needed to detect changes in your breach exposure and deliver one accurate alert when something moves. Every category below has a concrete time-to-live enforced in the database, not a policy promise.
At a glance
How exposed values are protected
Plaintext passwords, hashes, dates of birth, postal addresses, and phone numbers are considered exposed values. They are never stored unencrypted. At rest, every payload is sealed with AES-GCM under a key derived from a master key plus the monitored email's id, so the same plaintext under two different addresses produces different ciphertext and the keys are rotatable per-account. The unwrapped form lives only in the response that renders the dashboard page that requested it.
Each unwrap writes a row to the decryption audit table. You can review who, when, and from where exposed values were viewed on your account.
What deletion actually does
Removing a monitored email deletes the address row, every per-source scan state for it, every encrypted exposed value, and the decryption audit rows that referenced it. Removing the account does the same for every monitored email it owns, then removes the account row, sessions, API key, and webhook secret.
Backups follow standard infrastructure retention. SQLite is replicated to R2 via Litestream; replicated WAL segments roll off on the same TTL as the live database. There is no warm copy of deleted data after the WAL window closes.
What we never store
- A password for your Breachtide account. Sign-in is magic-link only.
- The plaintext value of any API key you issue from your dashboard. Only its hash is on file; the token is shown once at issue time.
- The body of any webhook we deliver. Each delivery attempt is logged with the destination URL, response status, and retry count, and that is it.
- The body of any alert email we send. Each delivery is logged with the recipient and timestamp; the rendered message is not retained.
- Browser fingerprinting beyond the user-agent string recorded on each session.
Questions
For anything not covered here, including specific deletion requests, write to [email protected].