Files
Lageplan/docs/legal/backup-and-restore.md
Pepe Ziberi 5f360480ae
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 53m24s
feat(legal): FKS-Quellenangabe, Auslandtransfer-Doku, Journal-Warnung, Region-Fix (v1.9.1)
Compliance-Runde 2 (ohne Doppelstrukturen; baut auf v1.7–v1.9 auf):

FKS/FEUKOS (dokumentierte schriftliche Genehmigung 17.02.2026):
- legal.ts: fksAttribution (exakte Quellenangabe, Genehmigungsdatum, Nutzungshinweis) + operatorType
- Neue Seite /quellen-und-lizenzen (+ Footer/Sitemap-Link)
- FKS-Abschnitt in Nutzungsbedingungen (§10a); Quellenangabe im Symbol-Panel und in PDF/PNG-Export
- Terminologie entschärft: "offizielle FKS/BABS-Signaturen" -> "FEUKOS-Symbole der FKS"
  (keine Partnerschaft/Zertifizierung/Empfehlung suggeriert)
- FKS_ATTRIBUTION als Dokumenttyp (Migration-Seed, LegalDocumentType), Kontexte erweitert
- licenses-and-attributions.md aktualisiert; .gitignore: private-legal-evidence/

Datenschutz/Transparenz:
- [REGION]-Platzhalter in der Subprozessorenliste durch öffentlich bekannte Firmensitze ersetzt
  (keine Platzhalter mehr öffentlich sichtbar)
- Journal-Freitext-Warnung (keine schutzwürdigen Daten)

Docs: current-state-audit, international-data-transfers, backup-and-restore,
privacy-risk-assessment, manual-action-checklist

Tests: Krypto-Round-Trip (crypto-secret); legal-config-Test aktualisiert; 17 grün. tsc+build ok.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 13:52:38 +02:00

38 lines
1.9 KiB
Markdown

# Backup & Restore — Übersicht
Stand: 2026-07-24. Die ausführliche Betriebsanleitung steht in [`docs/BACKUP.md`](../BACKUP.md).
Dieses Dokument fasst den datenschutz-/compliance-relevanten Stand zusammen.
## Was wird gesichert
- **Datenbank** (PostgreSQL): Konten, Organisationen, Pläne, Journale, Zustimmungen usw.
- **Hochgeladene Dateien** (MinIO): Pläne, Logos, Symbole.
- **Nicht** im Backup: Zahlungsdaten (bei Stripe), E-Mails (beim SMTP-Anbieter), Secrets.
## Zwei Mechanismen
1. **Lokaler Container-Backup** (`backup`-Service): täglich, im Volume `backups_data`, 30 Tage.
Schützt vor Bedienfehlern/Korruption, **nicht** vor Geräteausfall (gleiches Gerät).
2. **GUI-Backup, verschlüsselt & extern** (`Administration → Backup`): SFTP oder Nextcloud/WebDAV,
AES-256-GCM mit Passphrase, Zeitplan + Aufbewahrung. **Off-site** → deckt Geräteausfall ab.
| Aspekt | Zustand |
|---|---|
| Frequenz | täglich (konfigurierbar) |
| Verschlüsselung (extern) | ✅ AES-256-GCM (Passphrase) |
| Verschlüsselung (lokal) | ⚠️ nein (nur lokales Sicherheitsnetz) |
| Aufbewahrung | 30 Tage (konfigurierbar) |
| Zugriffsschutz | Ziel-Zugangsdaten verschlüsselt in DB; Passphrase separat aufbewahren |
| Off-site | ✅ via GUI-Backup (sofern konfiguriert) |
## Restore-Testplan (verbindlich)
Ein Backup gilt erst als funktionierend, wenn ein Restore **nachweislich** geklappt hat.
1. Aktuelles verschlüsseltes Backup vom Ziel laden.
2. Mit `scripts/decrypt-backup.js` + Passphrase entschlüsseln → `tar.gz`.
3. In einer **Testumgebung** DB + Dateien wiederherstellen (siehe `docs/BACKUP.md`).
4. Stichprobe: Login, ein Projekt, ein Journal, ein hochgeladenes Symbol prüfen.
5. Ergebnis in der Tabelle in `docs/BACKUP.md` protokollieren.
6. **Häufigkeit:** mindestens halbjährlich.
> Es wird **nicht** behauptet, dass eine Wiederherstellung funktioniert, solange kein Restore-Test
> durchgeführt und protokolliert wurde.