Kryptering
- TLS 1.2+ på alle forbindelser mellem klient, Maili og underleverandører.
- OAuth-tokens (refresh og access) krypteres med libsodium secretbox inden de skrives til Postgres.
- Nøglen til secretbox opbevares i miljøvariablen TOKEN_ENCRYPTION_KEY og roteres ved incidents.
- Stripe-kortnumre gemmes aldrig hos os — vi ser kun customer- og subscription-ID'er.
Isolation via Row-Level Security
Alle tabeller i Maili-databasen har RLS aktiveret og er scoped efter auth.uid(). Det betyder, at en SQL-forespørgsel fra brugerens session aldrig kan se data fra andre brugere — heller ikke ved en fejl i applikationskoden.
Kun webhook- og baggrundsjobs, der ikke har en brugersession, bruger en service-rolle, og de er omhyggeligt begrænset til at operere på specifikke user-id'er.
Hosting
Al data hostes i EU hos Supabase i Frankfurt (Tyskland). AI-behandling sker hos Anthropic (USA) og OpenAI (USA), begge med standardkontraktbestemmelser for overførsler.
Hverken Anthropic eller OpenAI bruger dine data til at træne modeller.
Adgangsstyring internt
- Adgang til produktionsmiljøet er begrænset til få personer, alle med MFA.
- Al adgang logges og review'es månedligt.
- Ingen enkeltperson har samtidig adgang til database-krypteringsnøgler og brugerdata.
Hvad sker der ved et brud?
Vi har en formel incident response plan. Ved et databrud varsles berørte brugere inden for 72 timer, jf. GDPR art. 33-34, og Datatilsynet underrettes i overensstemmelse med reglerne.