Privacy by Design — 2026

Sikkerhed er en chokepunkt-strategi

Vi stoler ikke på, at hver enkelt funktion husker at scrubbe PII. Vi bygger ét fælles chokepunkt, alle AI-kald skal igennem — og logger alt.

Syv chokepunkter du kan revidere

Alle vores AI- og dataadgange går igennem disse syv lag. Skoleadmin kan se loggen for egne elever; the platform administrator ser kun pseudonymiseret metadata og skal igennem en audit-logget break-glass-procedure (med skriftlig begrundelse og forældresamtykke for elever under skolens fastsatte aldersgrænse for digitalt samtykke (standard 15 år, kan sættes 13–18 år af skolen)) for at læse identificerende data.

AI PII-chokepunkt (aiSafeFetch)

Hver eneste LLM-kald — uden undtagelse — passerer aiSafeFetch. CPR, NHS-numre, e-mails og elevnavne scrubbes eller aliases til 'Elev A' før prompten forlader vores serverless funktion. Detekteres ægte PII, blokeres kaldet med HTTP 422 — det leverer aldrig elevdata til en tredjepart.

AI-prompt-audit (180 dages retention)

Tabellen ai_prompt_audit logger funktion, model, hashet bruger-id, antal blokerede PII-hits og berørte elev-ID'er. Daglig pg_cron sletter alt over 180 dage. Skoleadmin kan trække audit for egne elever; the platform administrator ser kun pseudonymiseret metadata — aldrig prompt-indhold med personoplysninger.

Default-deny PII for vores eget personale

Skoleelev-personale (inkl. the platform administrator) ser som udgangspunkt kun et pseudonymiseret brugerkatalog: UUID, rolle og skole-præfiks — ingen navne, ingen e-mails. For at se identificerende data skal en break-glass-the system kaldes med skriftlig begrundelse (min. 20 tegn), parental-consent-tjek for elever under skolens fastsatte aldersgrænse for digitalt samtykke (standard 15 år, kan sættes 13–18 år af skolen), og forældre/DPO modtager automatisk en notifikation. Tilgang udløber ved session-slut.

Zero-retention hos OpenAI & Gemini

Vi sender altid store:false til OpenAI og bruger den hashede pseudo-bruger som identifier. OpenAI og Google opbevarer hverken prompts eller svar til træning under vores enterprise-DPA.

Sensitive-access-log

Hver læsning af psykologjournal, helbredsdata, bekymringssager og SEN-akkommodationer passerer sikrede server-funktioner, der logger formål, bruger og scope. Skolens DPO kan trække auditen kvartalsvis.

Forældresamtykke under skolens aldersgrænse

Skolen fastsætter selv aldersgrænsen for digitalt samtykke (13–18 år, som standard 15 år). Under den grænse kræver 6 samtykketyper aktivt forældresamtykke: AI-personalisering, billede-/lydoptagelse, leaderboards, peer-deling, marketing og eksternt eksport. AI-personalisering er slået fra, indtil forælderen har bekræftet. Samtykket er en ekstra beskyttelse oven i skolens behandlingsgrundlag (myndighedsudøvelse), ikke grundlaget selv — databeskyttelseslovens 15-årsgrænse gælder tjenester, der udbydes direkte til børn, og er derfor ikke i sig selv afgørende her.

Security-invoker views & adgangskontrol

Alle views er bygget med security_invoker=true, så Row-Level Security håndhæves som om brugeren læste direkte. Roller (8 stk.) og scopes er central konfigureret — ingen view kan smutte uden om adgangskontrol.

Sikkerheds-baseline

AES-256 i hvile, TLS 1.3 i transit

EU-hosting (Falkenstein, DE) + cross-region failover + S3-backup i Helsinki, FI (30 dage)

MFA obligatorisk for admin-roller

Private buckets med signed links

24 mdr. admin_audit_log + daglig pg_cron rotation

Brudvarsel < 24 t til skolen (GDPR Art. 33)

Løbende automatiseret sikkerheds- og afhængighedsscanning (Aikido Security) + eksterne penetrationstests

Hetzners datacentre (fsn1, nbg1, hel1) er ISO 27001-certificerede og BSI C5-attesterede. Elestio er ISO 27001-certificeret.

Uafhængig revisorerklæring efter ISAE 3000 (type 2) med første erklæringsperiode afsluttet senest 31. december 2027, herefter årligt.

Til DPO'en

Brug for dokumentationen?

Vi leverer DPIA, databehandleraftale og Privacy by Design-erklæring (Art. 25) sammen med kontrakten.