> **Verbindliche Regel:** Paket-IDs werden nach ihrer ersten Vergabe in `docs/compliance-audit.md` nie wieder umnummeriert oder wiederverwendet. Dieses Dokument ist der kanonische Verweis für alle Freigaben, Umsetzungsberichte und Audits. Abweichende Nummerierungen in nachgelagerten Dokumenten sind Fehler und müssen auf die kanonische ID korrigiert werden. Nacharbeiten zu einem Paket erhalten Suffixe (z. B. P-03b, P-05b), keine neue Hauptnummer.
---
## Status-Legende
| Symbol | Bedeutung |
|--------|-----------|
| ✅ implemented | Vollständig umgesetzt und getestet |
| ⚠️ partially implemented | Teilweise umgesetzt; Nacharbeit dokumentiert |
### P-04 – Copyright-Pflicht für Archiv-Promotion vereinheitlichen
| Feld | Inhalt |
|------|--------|
| **Kanonischer Titel** | Copyright-Pflicht bei Archiv-Promotion vereinheitlichen |
| **Findings** | KRIT-06 |
| **Etappe** | 1 |
| **Status** | ✅ implemented |
| **Letzter Stand** | Umgesetzt in Version 0.8.66. `patch_media_asset()` und `bulk_media_patch()` erzwingen `copyright_notice` bei Promotion auf `club`/`official`. 7 Tests, alle grün. |
| **Letzter Stand** | Version 0.8.66: `PUT /api/auth/pin`, `LoginPage.jsx`, `AccountSettingsPage.jsx`. Version 0.8.67: `POST /api/auth/reset-password` via P-05b. Alle 6 Punkte geschlossen. |
| **Hinweise** | **Drift-Hinweis:** In `docs/compliance-implementation.md` (vor Korrektur 2026-05-10) wurde P-06 fälschlich als „HSTS-Header" beschrieben. Der korrekte Titel ist „Upload-Einwilligungsdialog". HSTS gehört zu P-08. Korrigiert in `docs/compliance-implementation.md`. |
---
## Etappe 2 – Sicherheit und Datenschutz
### P-07 – ALLOW_PUBLIC_MEDIA_STATIC dokumentieren + Test
| Feld | Inhalt |
|------|--------|
| **Kanonischer Titel** | ALLOW_PUBLIC_MEDIA_STATIC dokumentieren und Release-Test einrichten |
| **Findings** | HOCH-01, SEC-05 |
| **Etappe** | 2 |
| **Status** | ✅ implemented |
| **Letzter Stand** | Umgesetzt in Version 0.8.66. 2 Tests in `test_security_release.py`: Flag deaktiviert per Default; Flag aktiviert mounted `/media`. |
| **Hinweise** | **Drift-Hinweis:** In `docs/compliance-implementation.md` (vor Korrektur 2026-05-10) fehlte P-08 vollständig in der „Nicht umgesetzte Pakete"-Tabelle. Der Inhalt „HSTS-Header" war fälschlich P-06 zugeordnet. Korrigiert in `docs/compliance-implementation.md`. |
---
### P-09 – Admin-Audit-Log
| Feld | Inhalt |
|------|--------|
| **Kanonischer Titel** | Admin-Audit-Log (Protokollierung von Admin-Aktionen) |
| **Findings** | HOCH-05, SEC-07 |
| **Etappe** | 2 |
| **Status** | ❌ open |
| **Letzter Stand** | Nicht umgesetzt. Keine `admin_audit_log`-Tabelle vorhanden. Profil-Löschungen und Lifecycle-Aktionen nicht protokolliert. |
| **Hinweise** | **Drift-Hinweis:** In `docs/compliance-implementation.md` (vor Korrektur 2026-05-10) wurde P-09 fälschlich als „Kein Einwilligungsdialog Recht am eigenes Bild" beschrieben. Der korrekte Titel ist „Admin-Audit-Log". Der Einwilligungsdialog gehört zu P-06. Korrigiert in `docs/compliance-implementation.md`. |
---
### P-10 – Mindestalter-Abfrage
| Feld | Inhalt |
|------|--------|
| **Kanonischer Titel** | Mindestalter-Abfrage bei Registrierung |
| **Findings** | HOCH-06 |
| **Etappe** | 2 |
| **Status** | ❌ open |
| **Letzter Stand** | Nicht umgesetzt. Keine Altersverifikation bei Registrierung. Juristisch zu prüfen (§8 DSGVO). |
| **Hinweise** | **Drift-Hinweis:** In `docs/compliance-implementation.md` (vor Korrektur 2026-05-10) wurde P-10 fälschlich als „DSA-Meldeverfahren" beschrieben. Der korrekte Titel ist „Mindestalter-Abfrage". Das DSA-Meldeverfahren gehört zu P-13–P-16. Korrigiert in `docs/compliance-implementation.md`. |
---
### P-11 – Legal-Hold Lifecycle-Status
| Feld | Inhalt |
|------|--------|
| **Kanonischer Titel** | Legal-Hold Lifecycle-Status (Sofortsperrung bei Rechtsverletzung) |
| **Findings** | MITT-02 |
| **Etappe** | 2 |
| **Status** | ❌ open |
| **Letzter Stand** | Nicht umgesetzt. Stufe-1-Papierkorb dauert 30 Tage bis zur vollständigen Unsichtbarkeit. Kein direkter Sperr-Status. |
| **Hinweise** | **Drift-Hinweis:** In `docs/compliance-implementation.md` (vor Korrektur 2026-05-10) wurde P-11 fälschlich als „HttpOnly-Cookie-Migration" beschrieben. Der korrekte Titel ist „Legal-Hold Lifecycle-Status". HttpOnly-Cookie gehört zu P-18. Korrigiert in `docs/compliance-implementation.md`. |
---
### P-12 – sessionStorage bei Logout bereinigen
| Feld | Inhalt |
|------|--------|
| **Kanonischer Titel** | sessionStorage bei Logout bereinigen |
| **Findings** | MITT-05 |
| **Etappe** | 2 |
| **Status** | ✅ implemented |
| **Letzter Stand** | Umgesetzt 2026-05-10, Version 0.8.68. `logout()` in `AuthContext.jsx` löscht jetzt alle `sj_coach_*`-Schlüssel via Präfix-Iteration. Gezielte Löschung (kein `sessionStorage.clear()`), fremde Schlüssel bleiben erhalten. Playwright-Test ergänzt in `tests/dev-smoke-test.spec.js`. |
| **Hinweise** | Keine Nummerierungsabweichung festgestellt. |
---
### P-22 – HTML-Sanitizer für Rich-Text-Felder
| Feld | Inhalt |
|------|--------|
| **Kanonischer Titel** | HTML-Sanitizer für Rich-Text-Felder (bleach/nh3 Allowlist) |
| **Findings** | NIED-09, SEC-11 |
| **Etappe** | 2 |
| **Status** | ❌ open |
| **Letzter Stand** | Nicht umgesetzt. `exercise_rich_text.py` normalisiert nur Inline-Media-Markup. Beliebiges HTML in `summary`, `goal`, `execution`, `preparation`, `trainer_notes` möglich. CSP schützt gegen Script-Execution. |
| **Hinweise** | **Drift-Hinweis:** In `docs/compliance-implementation.md` (vor Korrektur 2026-05-10) wurde der Inhalt „HttpOnly-Cookie-Migration" fälschlich P-11 zugeordnet. Der korrekte Titel gehört zu P-18. Korrigiert in `docs/compliance-implementation.md`. |
---
### P-19 – Anti-Virus-Scan (ClamAV)
| Feld | Inhalt |
|------|--------|
| **Kanonischer Titel** | Anti-Virus-Scan für Uploads (ClamAV oder vergleichbar) |
| **Findings** | NIED-02, SEC-10 |
| **Etappe** | 4 |
| **Status** | ❌ open |
| **Letzter Stand** | Nicht umgesetzt. Hoher Aufwand, Risiko bei lokalem Storage gering. |
**App-Version bei letzter Aktualisierung:** 0.8.68
**Letztes Umsetzungsdatum:** 2026-05-10
---
*Erstellt: 2026-05-10 | Quelle: `docs/compliance-audit.md` (Initial-Audit 2026-05-09) | Kein Rechtsanwalt; alle rechtlichen Einschätzungen sind juristisch zu prüfen.*