further rework to the documentation

This commit is contained in:
Codex Agent
2025-11-20 12:31:21 +01:00
parent 6afa44d947
commit 9afcaa7836
90 changed files with 1721 additions and 29 deletions

View File

@@ -0,0 +1,90 @@
---
title: DSGVO & Compliance-Operationen
sidebar_label: DSGVO-Operationen
---
Dieses Runbook beschreibt praktische Abläufe für DatenschutzAnfragen, Datenlöschung und Aufbewahrungsfristen.
## 1. Grundprinzipien
- Gäste benötigen kein Konto; die meisten Daten sind Event und Fotobezogen.
- Tenant Admins sind in der Regel Verantwortliche im Sinne der DSGVO, Fotospiel fungiert als Auftragsverarbeiter (je nach Vertragsmodell).
- Rechtsgrundlagen, Impressum und Datenschutzerklärungen werden über die LegalPages im Admin verwaltet dieses Dokument fokussiert sich auf **Betriebsprozesse**.
## 2. Typische Anfragen & Aktionen
- **Auskunftsanfragen**
- Gast möchte wissen, ob Fotos von ihm/ihr gespeichert sind.
- Typischer Ablauf:
- Gast an Tenant verweisen (wenn Veranstalter Ansprechpartner ist).
- Falls Fotospiel direkt handeln muss: Event/FotoIDs anhand bereitgestellter Infos identifizieren (z.B. Link, Screenshot, Zeitfenster).
- Relevante Datensätze in DB (Fotos, Likes, Meldungen) lokalisieren und dokumentieren.
- **Löschanfragen**
- Ein Gast/Tenant bittet um Löschung spezifischer Fotos oder eines ganzen Events.
- Vorgehen:
1. Identität und Berechtigung prüfen (z.B. Tenant Admin, verifizierte Anfrage).
2. Fotos/Ereignisse über Admin UI oder interne Tools löschen/archivieren.
- Sicherstellen, dass `event_media_assets` und ArchivSpeicher ebenfalls bereinigt werden.
3. Prüfen, ob Logs/Audits pseudonymisiert bleiben können, ohne personenbezogene Inhalte.
4. Anfrage und Zeitpunkt dokumentieren (Ticket, internes Log).
- **Datenexport**
- Tenant will einen Export seiner Daten (Events, Medien, Statistiken).
- Nutzung der vorhandenen ExportFunktionen (z.B. CSV/ZIP im Admin) bevorzugen.
- Falls diese nicht ausreichen, manuelle Exporte via Skript/DB mit Datenschutz im Blick (keine unnötigen Felder).
- Beispiel: nur die Felder exportieren, die für den Zweck der Anfrage wirklich notwendig sind (kein DebugLog, keine internen IDs, sofern nicht sinnvoll).
### 2.1 Konkrete Tools & Endpoints
- **Profil-Datenexport (User-Ebene)**
- Controller: `App\Http\Controllers\ProfileDataExportController`.
- UI: Profilbereich der Tenant Admin PWA; Nutzer kann dort einen Export anstoßen.
- Ablauf:
1. Nutzer triggert Export → `ProfileDataExportController::store()` legt einen `DataExport`Eintrag an (`status = pending`) und dispatcht `GenerateDataExport`.
2. Der Job `GenerateDataExport` erstellt ein ZIP mit relevanten Daten und setzt `status = ready`, `path`, ggf. `expires_at`.
3. Nutzer kann die Datei über `ProfileDataExportController::download()` abrufen, solange `isReady()` und nicht `hasExpired()`.
- Ops-Sicht:
- Wenn Exporte „hängen bleiben“ (lange `pending`/`processing`), Queue/Horizon und Logs prüfen, ggf. Job neu anstoßen.
- Für DSGVOExports bevorzugt diesen Pfad nutzen, statt adhoc DBAbfragen.
- **Account-Anonymisierung (User/Tenant-Ebene)**
- Service: `App\Services\Compliance\AccountAnonymizer`.
- Job: `App\Jobs\AnonymizeAccount` nutzt diesen Service typischerweise im Hintergrund.
- Verhalten:
- Löscht/entfernt Medien (`EventMediaAsset`, `Photo`) für einen Tenant.
- Anonymisiert Tenant und UserDaten (setzt neutrale Namen, entfernt Kontaktinfos, sperrt Accounts).
- Ops-Sicht:
- Nur nach klarer Freigabe einsetzen, da Anonymisierung irreversibel ist.
- Vor Einsatz prüfen, ob für den betreffenden Tenant alle vertraglichen Zusagen (z.B. Datenexport) erfüllt sind.
## 3. Retention & automatisierte Löschung
- **Event-bezogene Aufbewahrung**
- StandardRetentionsfristen für Events/Fotos (z.B. X Tage nach Eventende/Archivierung) laut ProduktSpezifikation.
- Jobs/Kommandos, die nach Ablauf Medien archivieren oder löschen (siehe `docs/ops/media-storage-spec.md`).
- **Logs**
- Aufbewahrungsdauer von ApplikationsLogs (z.B. 3090 Tage), Rotation/Anonymisierung.
- **Konfiguration pro Tenant**
- Wenn Tenants eigene Retention wünschen, prüfen ob das UI/ConfigModel dies unterstützt (nicht adhoc in SQL ändern).
## 4. Operative Checkliste bei DSGVO-Fällen
1. Anfrage klassifizieren (Auskunft, Löschung, Export, Sonstiges).
2. Verantwortlichkeit klären (Tenant vs. Fotospiel).
3. Technische Schritte definieren (welche Events/Fotos/Accounts betroffen).
4. Durchführung:
- In Admin UI oder via internen Tools.
- Medien/Metadaten konsistent behandeln (keine „hängenden“ Records).
5. Dokumentation:
- Ticket/E-MailThread mit Datum, Betreff, Maßnahmen.
6. FollowUp:
- Prüfen, ob Runbooks/Automatisierungen angepasst werden sollten (z.B. besserer SelfService für Tenants).
## 5. Verbindung zu Security-Hardening
Das SecurityHardeningEpic (`docs/process/todo/security-hardening-epic.md`) enthält mehrere Workstreams, die DSGVOrelevant sind:
- Signierte AssetURLs statt direkter StorageLinks.
- Verbesserte Token/AuthFlows.
- StorageHealth und ChecksummenVerifizierung.
Wenn dort neue Features produktiv gehen, sollten die Auswirkungen auf DSGVOProzesse in diesem Runbook ergänzt werden.