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>
84 lines
5.4 KiB
Markdown
84 lines
5.4 KiB
Markdown
# 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).
|