Sikkerhed og databeskyttelse
Flango er bygget til at håndtere børns data i en institutionel kontekst. Sikkerhed og databeskyttelse er ikke et ekstra lag — det er fundamentet i arkitekturen.
Infrastruktur
Flango kører på Supabase — en managed platform bygget på PostgreSQL og hostet på Amazon Web Services (AWS) i EU.
| Komponent | Teknologi | Placering |
|---|---|---|
| Database | PostgreSQL via Supabase | AWS eu-west-1 (Irland) |
| Backend-logik | Edge Functions (Deno) + PostgreSQL RPC | AWS eu-west-1 (Irland) |
| Autentifikation | Supabase Auth (JWT-baseret) | AWS eu-west-1 (Irland) |
| Realtidskommunikation | Supabase Realtime (WebSocket) | AWS eu-west-1 (Irland) |
| Betalingsgateway | Stripe Connect | EU / globalt (PCI DSS Level 1) |
| Frontend-hosting | GitHub Pages (kun statiske filer) | CDN (ingen persondata) |
Adgangskontrol
Flango bruger rollebaseret adgangsstyring med seks brugerroller. Hver rolle har kun adgang til præcis de funktioner og data den behøver.
| Rolle | Autentifikation | Adgang |
|---|---|---|
| Admin (personale) | E-mail + kodeord | Fuld adgang til egen institution |
| Barn | Kontonummer + PIN | Cafésalg, gamification |
| Operator (vikar) | Operatør-kode | Begrænset adgang, rate-limited |
| Forælder | E-mail + kodeord eller Google | Kun egne børn |
| Superadmin | JWT-baseret rolle | Tværgående platformadministration |
| Support | JWT-baseret rolle | Læseadgang på tværs, ingen destruktive handlinger |
Børn logger ikke ind med e-mail — de identificeres ved fornavn eller kontonummer i café-appen. PIN-koder bruges til bekræftelse og er krypteret med bcrypt (envejskryptering).
Institutionsisolation
Flango er et multi-tenant system hvor flere institutioner deler den samme database — men med streng isolation på databaseniveau.
- Row Level Security (RLS) er aktiveret på alle hovedtabeller. Det betyder at hver databaseforespørgsel automatisk filtreres, så brugere kun ser data fra deres egen institution.
- Alle tabeller har en
institution_id-kolonne, og alle queries filtreres automatisk via en hjælpefunktion der læser brugerens institutions-tilknytning fra deres JWT-token. - Det er teknisk umuligt for en admin fra institution A at tilgå data fra institution B — selv ved direkte API-kald.
- Forældre kan kun se data for børn der eksplicit er tilknyttet deres konto.
Kryptering
| Lag | Standard | Detaljer |
|---|---|---|
| I transit | TLS 1.2+ | Al kommunikation mellem browser og Supabase — API, WebSocket og filupload |
| At rest | AES-256 | AWS-managed disk encryption. Nøgler beskyttes via FIPS 140-2 HSM'er. |
| Kodeord | bcrypt | Alle kodeord og PIN-koder hashes med bcrypt. De kan verificeres men aldrig genskabes. |
| Betalingsdata | PCI DSS Level 1 | Stripe håndterer al kortdata. Flango ser aldrig kortnumre, CVV eller bankoplysninger. |
Forretningslogik og audit
Al forretningslogik (salg, saldotræk, tilmeldinger) udføres via PostgreSQL RPC-funktioner med SECURITY DEFINER. Det betyder:
- Funktionerne kører med kontrollerede rettigheder — ikke med brugerens direkte adgang.
- Input valideres internt før data ændres.
- Atomiske transaktioner sikrer at et salg enten gennemføres komplet eller rulles helt tilbage.
Alle transaktioner og administrative handlinger logges i en append-only event-log:
- Hvem udførte handlingen (admin, ekspedient)
- Handlingstype (SALE, DEPOSIT, BALANCE_EDIT, SALE_UNDO, SALE_ADJUSTMENT)
- Detaljer, beløb og præcist tidspunkt
Event-loggen kan ikke redigeres eller slettes. Det sikrer fuld sporbarhed.
Betalingssikkerhed
Flango bruger Stripe Connect til betalingshåndtering. Hver institution har sin egen Stripe-konto, så betalinger rutes direkte til institutionens konto.
Backup og gendannelse
- Daglige automatiske backups af hele databasen via Supabase.
- Point-in-time recovery — databasen kan gendannes til ethvert tidspunkt.
- Alle backups er krypteret både i transit og at rest (AES-256).
- Backups opbevares på et uafhængigt storage-system adskilt fra projektets primære ressourcer.
Underbehandlere
| Underbehandler | Formål | Persondata | Placering |
|---|---|---|---|
| Supabase (AWS) | Database, auth, backend | Alle persondata | EU (Irland) |
| Stripe | Betaling | E-mail, beløb (aldrig kortdata) | EU / global |
| GitHub / Microsoft | Frontend-hosting | Ingen | CDN |
| Google (OAuth) | Valgfrit login | E-mail, navn (kun ved Google-login) | EU / global |
Der er indgået databehandleraftale (DPA) med Supabase (marts 2026). Stripe er PCI DSS Level 1 certificeret.
Cookies
Flango bruger kun teknisk nødvendige cookies til autentifikation (login-session). Der bruges ingen tracking-cookies, markedsføringscookies eller tredjepartscookies til analyseformål.
Leverandør og aftaler
Flango udvikles og drives af:
Theison
CVR: 34360642
E-mail: kontakt@flango.dk
Der indgås databehandleraftale (DPA) mellem institutionen/kommunen og Theison. Kontakt os for at igangsætte processen.
Relaterede sider
- Privatlivspolitik — fuld oversigt over persondata, formål, retsgrundlag og rettigheder
- GDPR og databeskyttelse — roller, ansvar og registreredes rettigheder