Files
Lageplan/docs/legal/IMPLEMENTATION-REPORT.md
Pepe Ziberi 9eafe984e1 docs(legal): Abschlussbericht der Compliance-Umsetzung (v1.7.4)
docs/legal/IMPLEMENTATION-REPORT.md — Zusammenfassung, geänderte Dateien, DB, Konfiguration,
manuelle Schritte, offene rechtliche Entscheidungen, Test-/Build-Ergebnisse, Folgeschritte.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 12:19:59 +02:00

84 lines
5.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Compliance-Umsetzung — Abschlussbericht
Stand: 2026-07-23 · Versionen 1.7.0 1.7.4 · sorgfältiger Entwurf, ersetzt keine juristische Prüfung.
## A. Zusammenfassung
- **Analyse**: 4 parallele Analysen (Legal/Claims, Dienstleister, Auth/Modelle/Admin, Export/Security/Cookies).
- **Claims**: 20 werbliche/absolute Aussagen korrigiert (24/7, 100 %, DSG/DSGVO-konform, „keine Weitergabe",
„keine Übermittlung ins Ausland", „verschlüsselt"→„gehasht", 100 % der Spende, „Kein Unternehmen").
- **Transparenz**: zentrale Legal-Config, neue Rechtsseiten, faktenbasierte Datenschutzerklärung mit
echter Subprozessorenliste.
- **Consent**: revisionssichere Zustimmungsprotokollierung (LegalDocument/LegalAcceptance), Registrierung
mit getrennten Zustimmungen, blockierender Re-Consent-Dialog, Organisationsbestätigung (7 Pflicht-Checks),
Admin-Übersicht mit CSV-Export, Konto-Datenschutzseite.
- **Risikoreduktion**: Export-Prüfhinweise (PDF/PNG), Dashboard-Hinweis, Berechnungs-/Geodaten-Hinweis,
private Routen `noindex`/`no-store`.
## B. Geänderte/neue Dateien (Auszug)
| Datei | Zweck | Änderung |
|---|---|---|
| src/config/legal.ts | Zentrale Rechtskonfiguration | NEU |
| src/components/legal/legal-page.tsx | Shell für Rechtsseiten + Footer-Links | NEU |
| src/app/nutzungsbedingungen/… | Nutzungsbedingungen | NEU |
| src/app/verantwortungsvolle-nutzung/… | Verantwortungsvolle Nutzung | NEU |
| src/app/sicherheit/… | Sicherheit | NEU |
| src/app/unterstuetzen/… | Freiwilliger Unterstützungsbeitrag | NEU |
| src/app/organisationen/datenschutzvereinbarung/… | AVV-Entwurf | NEU |
| src/app/datenschutz/page.tsx | Datenschutzerklärung | NEUAUFBAU |
| src/app/impressum/page.tsx | Impressum | Claims korrigiert |
| src/app/page.tsx, spenden/…, admin/settings-tab | Landing/Spenden/Admin | Claims korrigiert |
| prisma/schema.prisma, prisma/migrate.js | LegalDocument/LegalAcceptance + Seeding | Erweitert |
| src/lib/legal.ts, legal-rules.ts, legal-content.ts | Consent-Logik | NEU |
| src/app/api/legal/*, api/admin/legal/* | Consent-/Admin-APIs | NEU |
| src/components/legal/legal-consent-gate.tsx | Re-Consent/Org-Bestätigung | NEU |
| src/app/konto/datenschutz/… , src/app/admin/legal/… | Konto- & Admin-Ansicht | NEU |
| src/app/register/page.tsx, api/auth/register | Zustimmung bei Registrierung | Erweitert |
| src/hooks/use-map-export.ts | Export-Prüfhinweis | Erweitert |
| src/components/legal/usage-notice-banner.tsx | Dashboard-Hinweis | NEU |
| src/components/map/measure-panel.tsx | Berechnungs-Hinweis | Erweitert |
| src/middleware.ts | noindex/no-store, /konto, /api/share | Erweitert |
| src/app/sitemap.ts | neue Seiten | Erweitert |
| docs/legal/*.md | Audit, Inventar, Subprozessoren, TOM, Retention, Incident, Lizenzen | NEU |
| vitest.config.ts, src/**/__tests__ | Unit-Tests | NEU |
## C. Datenbank
- **Neue Tabellen**: `legal_documents`, `legal_acceptances` (idempotent in `prisma/migrate.js`).
- **Neue Felder**: keine an bestehenden Tabellen (Consent liegt in eigenen Tabellen; Tenant-Felder
`privacyAccepted` etc. bestanden bereits).
- **Migration**: läuft idempotent beim Container-Start (bestehendes Muster). Dokumente werden geseedet/aktiviert.
- **Auswirkungen auf Bestand**: keine destruktiven Änderungen; bestehende Daten unberührt.
## D. Konfiguration (neue ENV, optional — Defaults sind sichtbare Platzhalter)
`LEGAL_OPERATOR_NAME`, `LEGAL_OPERATOR_FORM`, `LEGAL_POSTAL_ADDRESS`, `LEGAL_SUPPORT_EMAIL`,
`LEGAL_PRIVACY_EMAIL`, `LEGAL_SITE_DOMAIN`, `LEGAL_APP_DOMAIN`, `LEGAL_JURISDICTION`,
`LEGAL_HOSTING_PROVIDER`, `LEGAL_SERVER_LOCATION`, `LEGAL_BACKUP_RETENTION`.
## E. Manuelle Schritte nach Deployment
1. `LEGAL_*`-Angaben setzen (oder direkt in `src/config/legal.ts`).
2. `datenschutz@lageplan.ch` als überwachtes Postfach bestätigen.
3. Migration läuft automatisch; prüfen, dass die 5 Dokumente aktiv sind (`/admin/legal`).
4. Bestehende Org-Admins sehen beim nächsten Login die Organisationsbestätigung.
5. Stripe-/SMTP-DPA prüfen; Subprozessoren-Regionen ergänzen.
6. `/admin/legal` ggf. im Admin-Menü verlinken (aktuell direkte URL).
## F. Offene rechtliche Entscheidungen
Betreiberform/-adresse, Datenschutzkontakt, Serverstandorte (inkl. Backups/Logs), Unterauftragnehmer-
Regionen & DPAs, Aufbewahrungsfristen, Nutzungsrecht FKS/BABS-Symbole, Versicherung, AVV mit Feuerwehren,
juristische Schlussprüfung.
## G. Tests & Prüfung
- `npm test` (Vitest): **13 Tests grün** (Consent-Regeln, Re-Consent, 7 Org-Bestätigungen, Platzhalter,
keine erfundenen Subprozessoren).
- `tsc --noEmit`: nur vorbestehender `nodemailer`-Typhinweis (unabhängig).
- `next build`: erfolgreich (66 Seiten).
- Manuell zu prüfen (kein E2E-Framework, unverhältnismässig): Registrierung ohne Zustimmung blockiert,
Re-Consent-Dialog erscheint, Checkboxen einzeln/nicht vorausgewählt, Admin-Seiten nicht öffentlich.
## H. Nicht umgesetzt / bewusst als Folgeschritt
- **Plan-Freigabe-Workflow** (Entwurf/geprüft/freigegeben/archiviert, geprüft-von/-am, Prüf-Erinnerungen):
grosser neuer DB-+UI-Umbau; stattdessen Export-/Dashboard-/Berechnungs-Hinweise umgesetzt. Empfehlung als
eigenes Projekt.
- **MFA für Admins**, CSP verschärfen, Socket.io-CORS einschränken, geteilter Rate-Limit-Store: in
`technical-organizational-measures.md` als empfohlene Massnahmen dokumentiert.
- Cookie-Banner: unverändert (nur technisch notwendige Cookies; in Datenschutz dokumentiert).