Compliance & GDPR-status

Status i korthet

Ramverksregistret är aktuellt per juni 2026 och täcker EU, UK, USA, LATAM, APAC och MEA.

🟡 Scaffold finns men är inte mountad – consent-banner, DSR-export och privacy-settings måste aktiveras i klienten innan vi kan påstå produktionsmässig efterlevnad.

🔴 3 säkerhets-errors i RLS-policys måste åtgärdas (se nedladdad .md för detaljer).

Stödda ramverk (13)
RamverkRegionDSRConsent
General Data Protection RegulationEU/EEA30 dgr
opt-in
UK GDPR + Data Protection Act 2018United Kingdom30 dgr
opt-in
Swiss Federal Act on Data Protection (revFADP)Switzerland30 dgr
opt-in
California Consumer Privacy Act / CPRAUnited States — California45 dgr
opt-out
US State Comprehensive Privacy Acts (VA, CO, CT, UT, TX, OR, MT, IA, DE, NH, NJ, …)United States — multi-state45 dgr
opt-out
Lei Geral de Proteção de DadosBrazil15 dgr
opt-in
Personal Information Protection and Electronic Documents ActCanada30 dgr
opt-in
Act on the Protection of Personal InformationJapan14 dgr
opt-in
Personal Information Protection LawChina15 dgr
opt-in
Personal Data Protection ActSingapore30 dgr
opt-in
Privacy Act 1988 (Australian Privacy Principles)Australia30 dgr
opt-in
Protection of Personal Information ActSouth Africa30 dgr
opt-in
Kişisel Verilerin Korunması KanunuTürkiye30 dgr
opt-in
Fullständig rapport
# Compliance & Dataskydd – Maltstory

_Senast uppdaterad: 2026-06-17_

## Sammanfattning

- **Ramverksregister** (`src/compliance/frameworks.ts`): EU GDPR, UK GDPR, Swiss revFADP, CCPA/CPRA, ~10 amerikanska delstatslagar (VA, CO, CT, UT, TX, OR m.fl.), LGPD (Brasilien), PIPEDA + Quebec Law 25 (Kanada), APPI (Japan), PIPL (Kina), PDPA (Singapore), Privacy Act (Australien), POPIA (Sydafrika), KVKK (Türkiye). SLA, rättigheter och lawful bases är aktuella per 2026-06.
- **Privacy policy-mall** finns (`src/compliance/docs/PRIVACY_POLICY.md`) — kontaktuppgifter (controller, DPO) ska fyllas i innan publik release.
- **Data-inventarie** dokumenterad i `src/compliance/inventory.ts`.
- **Samtycke**: granulär 5-kategori-modell (necessary / functional / analytics / marketing / personalization) + Global Privacy Control (GPC).
- **DSR-helpers** (export, redaction, portable JSON-envelope) finns i `src/compliance/dsr.ts`.

## Är allt up to date?

**JA för regelverket** – ramverksregistret och regionala addenda täcker EU, UK, USA, LATAM, APAC, MEA per juni 2026.

**NEJ för fullständig integration i appen** – scaffold finns men är inte mountad i klient-UI ännu. Följande måste göras innan vi kan påstå produktionsmässig GDPR/CCPA-efterlevnad:

1. Mounta `<ConsentBanner />` i `src/routes/__root.tsx`
2. Skapa `/privacy/settings` med per-kategori toggles som anropar `setConsent()`
3. Skapa `/account/my-data` (DSR-export endpoint via server function → `buildPortableExport()`)
4. Lägg till kolumn `profiles.deletion_requested_at` + soft-erasure-flow med hard delete inom SLA
5. Lokalisera consent-texter via befintligt i18n-system
6. Fyll i kontaktuppgifter (Controller, DPO, privacy-mail) i `PRIVACY_POLICY.md`
7. Publicera policyn under `/privacy` med länk i footer

## Aktiva säkerhetsfynd (måste åtgärdas)

Lovable Cloud-scannern rapporterar just nu:

**Errors (3)**
- `breweries.contact_email` + `org_number` läsbara av alla inloggade — bryter dataminimering
- `live_event_registrations` SELECT med `USING true` — exponerar betalstatus och eventdeltagande
- `realtime.messages` saknar RLS — alla kan prenumerera på alla kanaler

**Warnings (4)**
- `tasting-photos` storage policy tillåter alla inloggade att läsa alla foton
- `brewery_beer_profiles.qr_token` läsbart av alla medlemmar (ska vara owner-only)
- Friendship-policy låter requester själv-acceptera vänförfrågan
- Public SECURITY DEFINER-funktion utan EXECUTE-revoke

Dessa fynd ska åtgärdas i separata migrationer.

## Regionala SLA (utdrag)

| Region | Ramverk | DSR-svar | Consent-modell |
|---|---|---|---|
| EU/EEA | GDPR | 30 dgr (+60) | Opt-in |
| Storbritannien | UK GDPR + DPA 2018 | 30 dgr | Opt-in |
| Schweiz | revFADP | 30 dgr | Opt-in |
| Kalifornien | CCPA/CPRA | 45 dgr (+45) | Opt-out + GPC |
| Andra USA-stater | VA/CO/CT/UT/TX/OR m.fl. | 45 dgr | Opt-out + GPC |
| Brasilien | LGPD | 15 dgr | Opt-in |
| Kanada | PIPEDA + Quebec Law 25 | 30 dgr | Opt-in |
| Japan | APPI | 14 dgr | Opt-in (sensitive) |
| Kina | PIPL | 15 dgr | Separat samtycke per ändamål |
| Singapore | PDPA | – (breach: 3 dgr) | Opt-in |
| Australien | Privacy Act (APPs) | "rimlig tid" | Opt-in |
| Sydafrika | POPIA | 30 dgr | Opt-in |
| Türkiye | KVKK | 30 dgr | Opt-in (sensitive) |

## Cross-border-överföringar

- EU → tredje land: SCCs + Transfer Impact Assessment
- UK → tredje land: UK IDTA eller EU SCCs + UK Addendum
- Kina → utlandet: CAC security assessment kan krävas
- Brott mot säkerhet: anmäl till tillsyn enligt regional SLA (EU 72h, SG 3 dgr, AU "skyndsamt")

## Hur vi hanterar tvetydiga jurisdiktioner

När flera ramverk matchar (t.ex. EU-resident i Kalifornien) väljer vi det **strängaste**: kortast DSR-SLA och bredaste rättighetsuppsättning. Default är GDPR-nivå (30 dgr).

## Källor i koden

- `src/compliance/frameworks.ts` – ramverksregister
- `src/compliance/inventory.ts` – data-inventarie
- `src/compliance/consent.ts` – opt-in/opt-out + GPC
- `src/compliance/dsr.ts` – DSR-helpers
- `src/compliance/docs/PRIVACY_POLICY.md` – policy-mall
- `src/compliance/docs/REGIONAL_NOTES.md` – regionala addenda
- `src/components/ConsentBanner.tsx` – färdig UI (ej mountad)

## Kontakt

- Personuppgiftsansvarig / dataskydd: support@maltstory.com (Eva Hjalmarsson)
- Säkerhetsincidenter: support@maltstory.com