# 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).