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>
5.4 KiB
5.4 KiB
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 inprisma/migrate.js). - Neue Felder: keine an bestehenden Tabellen (Consent liegt in eigenen Tabellen; Tenant-Felder
privacyAcceptedetc. 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
LEGAL_*-Angaben setzen (oder direkt insrc/config/legal.ts).datenschutz@lageplan.chals überwachtes Postfach bestätigen.- Migration läuft automatisch; prüfen, dass die 5 Dokumente aktiv sind (
/admin/legal). - Bestehende Org-Admins sehen beim nächsten Login die Organisationsbestätigung.
- Stripe-/SMTP-DPA prüfen; Subprozessoren-Regionen ergänzen.
/admin/legalggf. 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 vorbestehendernodemailer-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.mdals empfohlene Massnahmen dokumentiert. - Cookie-Banner: unverändert (nur technisch notwendige Cookies; in Datenschutz dokumentiert).