Security & privacy
Seven pledges,
written in plain language.
What follows is not a marketing claim. It is the engineering posture of the product, what it will and will not do with the contents of your account, and where the beta honestly stands.
01 · The credential pledge
Credentials are encrypted, and stay encrypted.
IMAP and SMTP passwords are encrypted with AES-256-GCM under a per-deployment key. They are decrypted in memory only at connection time — never logged, never cached to Redis, never placed in job payloads, never shown in admin views. To rotate, reconnect the mailbox; a dedicated rotation flow is planned.
02 · The access pledge
No one reads across the line.
All user data is protected by PostgreSQL row-level security. Workspace data is scoped to members; one workspace cannot reach another’s mailboxes or messages. Requests are scoped to the person making them. The sync worker is the exception and has to be: it holds a service-role key and lists every connected mailbox on a timer, because that is how it knows what to sync. It reads ids and sync state, not mail, and everything it does with a mailbox afterwards is scoped to that mailbox’s owner.
03 · The admin pledge
Operators see health, not mail.
The admin console shows connection health, sync state, and aggregate counts. Message bodies, subjects, sender and recipient addresses, and credentials are never rendered in admin views — by code, not by policy document.
04 · The auth pledge
Sign-in is boring, on purpose.
Email and password sign-in with bcrypt hashing. TOTP two-factor: once you enrol a factor, a code is required on every sign-in, demanded in middleware rather than in a screen that could be walked around. There are no backup codes — the ones that used to be offered could be generated and never redeemed, so they were withdrawn rather than left standing as a promise. Session cookies are SameSite=Lax and are readable by the page’s own JavaScript, because that is how the browser client reads your session; they are not HttpOnly, and we would rather say so than claim a flag we do not set. SSO (SAML/OIDC) and SCIM are planned, not present.
05 · The transport pledge
TLS everywhere it matters.
All web traffic is TLS 1.2+ with HTTP redirected to HTTPS. IMAP and SMTP connections use SSL/TLS or STARTTLS, and certificates are verified in production — unless you turn that off. The connect wizard offers a “skip TLS certificate verification” switch when a certificate fails, for people running their own server with a self-signed one; it disables both chain and hostname checking for that mailbox, and it is the only way to reach one of these servers. Nothing turns it on for you. DKIM and SPF live at your domain and provider — TELVRIX sends through your own SMTP, so your existing signing applies.
06 · The rendering pledge
A stranger’s email cannot touch the app.
Received HTML is sanitised and then rendered inside a sandboxed iframe with scripts, forms, popups and navigation withheld by the browser, under a content security policy that permits nothing to load. It cannot read your session, restyle the application around it, or overlay a login box on top of it. Remote images are blocked until you press Load images, so simply opening a message tells the sender nothing.
07 · The honesty pledge
Beta means beta.
No compliance certifications are in place during the closed beta. SOC 2 and a formal GDPR review are planned around general availability. Do not use TELVRIX for legally regulated email — PHI, PCI, or similar — until then.
Architecture, in one diagram
How a message moves through TELVRIX.
Mail enters TELVRIX over an authenticated, encrypted channel from your provider. It is synced into your deployment’s Postgres so the whole workspace can search and read it — under row-level security, with the credentials themselves stored only as ciphertext.
- TLS 1.2+Transport — provider to app, app to browser.
- AES-256Credential encryption at rest, per-deployment key.
- RLSPostgres row-level security on every user table.
Synced over IMAP with your credentials — decrypted in memory only.
Messages indexed for search; credentials stored as ciphertext only.
Each member reads only what visibility and send grants allow.
Where compliance stands
The honest version of the badge wall.
SOC 2
Formal audit planned post-GA. Not certified during beta.
Roadmap
GDPR
Handling aligned with the principles; DPA before EU launch.
Planned
HIPAA
Not supported. Do not store protected health information.
Not available
SLA
Beta is best-effort. No uptime guarantee until launch.
Closed beta
The beta page lists exactly what works today; the privacy page lists exactly what is stored.
Questions a security team would ask