Adgang og identitet
- Lærere: rigtig Supabase Auth. Databaseadgang begrænses med Row Level Security og klasseroller (owner, editor, viewer).
- Elever: klassekode og personlig PIN uden mailkonto. PIN lagres som Argon2id-hash; serveropslag bruger en separat HMAC-beskyttet digest.
- Sessions: eleven får et tilfældigt, uigennemsigtigt token i en Secure, HttpOnly, SameSite-cookie. Kun tokenets SHA-256-digest ligger i databasen. Sessionen udløber efter 8 timer.
- Misbrugsværn: højst 10 elevloginforsøg pr. uigennemsigtig bucket inden for 15 minutter; fejlbeskeder afslører ikke, om klasse eller PIN findes.
Isolation og autorisation
- En lærer kan kun forespørge klasser, som lærerens bruger har medlemskab af.
- En elev har ingen direkte databaseidentitet og får kun data gennem sessionvaliderede server-endpoints.
- Elevens Realtime-signal filtreres på serveren til elevens eget id og indeholder ikke private payloads.
- Hjælpekald tages atomisk i databasen, så to lærere ikke kan få samme kald.
- Service-role-nøglen er server-only og må aldrig leveres til browseren.
Transport, lagring og drift
Produktionssitet anvender HTTPS. Vercels serverfunktioner er deployment-verificeret i Dublin tæt på Supabase-projektets databaseregion i Irland; statiske filer leveres via Vercels globale CDN. Supabase dokumenterer TLS for netværkstrafik og AES-256-kryptering af diske og backups. Private filer ligger i en privat bucket og udleveres med tidsbegrænsede signerede URL-adresser. UgePilot bruger ikke browserens localStorage som autoritativ datakilde.
Realtime og delte skolecomputere
Elevsessioner er korte og kan tilbagekaldes ved logout eller PIN-nulstilling. Logout sletter browsercookien og invaliderer serversessionen. Elever og lærere bør altid logge ud på delte enheder; skolen bør desuden bruge browserprofiler med automatisk rydning efter sessionen.
Kontrolleret i kode og database
- RLS på elev-, klasse-, uge-, opgave- og hjælpedata
- Server-side sessionvalidering og autorisationskontrol
- Argon2id PIN-hashing, HMAC-pepper og database-rate-limit
- Automatisk oprydningsjob for hjælpekald, sessioner og loginforsøg
- Atomisk claim af hjælpekald
- Eksport og hård sletning af elev/klasse
- Ingen autoritativ lagring af persondata i localStorage
Skolens ibrugtagningscheckliste
- Godkend databehandleraftale, underdatabehandlere og overførselsgrundlag.
- Dokumentér behandlingsgrundlag, datakategorier, formål og opbevaringsfrister.
- Vurder børn som sårbar gruppe og gennemfør DPIA, hvis skolens risikovurdering kræver det.
- Udpeg klasseejere, gennemgå medlemskaber regelmæssigt og fjern fratrådte lærere.
- Undlad følsomme oplysninger i opgave- og hjælpefelter; brug korte elevnavne, når fuldt navn ikke er nødvendigt.
- Indarbejd logout, sletning, rettighedsanmodninger og brudshåndtering i lokale procedurer.
- Test løsningen på skolens filtrerede netværk og administrerede enheder.
Hændelser og dokumentation
En sikkerhedshændelse skal håndteres efter en aftalt proces med hurtig afgrænsning, dokumentation og meddelelse til den dataansvarlige. Skolen vurderer anmeldelse til Datatilsynet og orientering af registrerede. Anmodninger om sikkerhedsdokumentation og databehandleraftale kan sendes til skolegpsdk@gmail.com.