We hebben onze GDPR-audit afgerond. Dit hebben we daadwerkelijk gesloten.
Enkele weken geleden schreven we dat "GDPR-compliant" op de homepage van een videogereedschap minder betekent dan je denkt — dat GDPR een set verplichtingen is voor jou, de verwerkingsverantwoordelijke, die een leverancier je helpt te halen of stilletjes op je bureau achterlaat. De eerlijke manier om die bewering te onderbouwen is het werk aan onze eigen kant te doen en het te tonen, regel voor regel.
Dus dat hebben we gedaan. We hebben een volledige audit van de InterMIND-codebase uitgevoerd tegen de verplichtingen die op ons rusten als verwerker, elk gat met code erachter opgelost, en elk punt geverifieerd tegen het draaiende product. Dit bericht is het afrapport — geen badge, maar een checklist met onze antwoorden.
We claimen met opzet niet "100% GDPR-gecertificeerd." GDPR is geen certificaat dat je haalt — en we zwaaien niet met een ISO-badge die we nog niet hebben. Wat we wél kunnen zeggen: de architecturale en procesverplichtingen die een DPO doorwerkt, hebben nu concrete, verifieerbare antwoorden, elk gecontroleerd tegen de draaiende code.
Wat we hebben gesloten
Recht op wissen (Art. 17) — de cascade draait echt
Het verwijderen van je account deactiveert het niet alleen. POST /api/user/delete-account draait een echte cascade: het vernietigt je meetings → deelnemers, berichten, conferenties, transcripties; het haalt je opslag-blobs uit Tigris voordat de database-cascade plaatsvindt, zodat er niets verweesd achterblijft — chatbijlagen en video-opnamebestanden, beide kolommen; en het annuleert je Stripe-abonnementen en verwijdert de Stripe-klant. On-demand verwijdering is er ook — laat een kanaal of bericht vallen vanuit de UI en het is weg. Anonieme (gast) accounts krijgen hun eigen verwijderings-endpoint plus een achtergrond-sweep elke 6 uur, onder een gemonitorde cron. De audit bracht één gat aan het licht — opname-blobs die de database-cascade liet vallen maar die opslag behield — en we hebben het gesloten: wissen laat nu niets achter in objectopslag.
Bewaartermijn (Art. 5(1)(e)) — een gedocumenteerd criterium
Art. 5(1)(e) vereist geen automatische time-to-live. Het vereist een gedefinieerd bewaarcriterium. Het onze is nu opgenomen in het Privacybeleid: gegevens worden bewaard totdat jij of je teameigenaar ze verwijdert, en het verwijderen van je account wist alles. Dat is hetzelfde model waarop samenwerkingstools zoals Slack en Notion draaien — persistentie is het verwachte gedrag, en jij houdt er controle over. Het criterium is expliciet vermeld, niet geïmpliceerd.
Analysetoestemming (Art. 6/7) — standaard opt-out
Een Usercentrics-toestemmingsbanner (getoond aan EU-bezoekers) regelt de toegang tot analytics, en PostHog wordt geleverd met opt_out_capturing_by_default: true — er wordt niets vastgelegd totdat toestemming is gegeven, niet andersom.
Gegevensportabiliteit (Art. 20) — een echte export
GET /api/user/export bouwt een ZIP van je meetings, berichten, opnames en vertalingen, met een downloadsvenster van 7 dagen en automatische opschoning. Toegang, verwijdering en portabiliteit zijn gereedschap dat werkt, geen beloftes in een beleidsdocument.
Meeting-inhoud gaat naar één AI-gateway, in de EU — gekozen door de organisatie
De grootste stroom van meeting-inhoud — live stem- en chatvertaling — draait op onze eigen engine in Frankrijk, nooit een LLM van derden. De AI-stappen die wél een algemeen model gebruiken (de samenvatting, documentsamenvattingen, de generatieve acties van de notitie-editor, Ask AI) draaien op de AI-gateway die de organisatie selecteert — Azure OpenAI in de EU Data Zone standaard, Vertex AI EU of Amazon Bedrock Frankfurt naar keuze, elk in onze eigen tenant met nul gegevensretentie en geen training op klantinhoud, of het eigen endpoint van de organisatie; één resolver in de code kiest de gateway voor elke call-site, dus er is geen tweede pad. We hebben ook deelnemernamen en uitspraaktekst uit de conferentie-browserlogs gehaald die PostHog-sessie-opname anders zou kunnen vastleggen. De volledige kaart per leverancier staat in Waar één InterMIND-meeting daadwerkelijk draait.
Transparantie — sub-verwerkers en verwerkingsregistraties, gepubliceerd
De sub-verwerkerlijst is live, met wat elke leverancier doet en waar deze is gevestigd — niet "op aanvraag beschikbaar." Daarachter staat een Register van Verwerkingsactiviteiten (ROPA) gebouwd vanuit het live schema: 11 verwerkingsbewerkingen, de beveiligingsmaatregelen op elk, en de wis- / portabiliteitspaden. Ons Privacybeleid en onze Voorwaarden draaien nu onder onze eigen rechtspersoon, met de echte verwerkingsketen beschreven.
EU-runtime — vastgepind, niet beloofd
Elke runtime-hop die een meeting neemt is in de EU: app en API's op Vercel Frankfurt, de meeting-server op Fly Paris, toepassingsgegevens in Neon Postgres (AWS Frankfurt), fouten op Sentry EU, analytics op PostHog EU, e-mail via Resend Ireland. Objectopslag op Tigris is nu vastgepind op EU-regio's (Frankfurt + Amsterdam) — elke nieuwe schrijfactie landt in de EU, ongeacht waar de gebruiker zich bevindt. De volledige architectuur staat op onze beveiligingspagina.