Phase 11: Freigabereife
Kein Modul, sondern die drei Software-Voraussetzungen fuer 1.0.0: Auskunft nach Art. 15 DSGVO, ein geprueftes Sicherungskonzept und eine Pipeline. Das Auskunftsrecht war ein Versprechen ohne Umsetzung: `person.export` stand seit Phase 0 im Katalog und war dem Kommandanten zugewiesen, implementiert war nichts. Ohne Auskunftsseite ist ein Loeschkonzept nicht abnehmbar. Jetzt sammelt FLORIAN dreizehn Abschnitte ueber eine Person, mit dem Zweck ueber jedem - Art. 15 verlangt nicht nur die Daten, sondern auch Zwecke und Rechte, und eine blosse Liste erfuellt die Pflicht nicht. Ein Durchgang liefert Anzeige, PDF und JSON nach Art. 20. Die Trennlinie ist "ueber mich" gegen "von mir": was ueber die Person gespeichert ist, steht vollstaendig drin, auch das Unangenehme. Was sie getan hat, steht als Zahl drin - die Pruefprotokolle gehoeren zum Nachweisbestand der Wehr, und vollstaendig ausgeliefert kaeme jeder ueber eine Selbstauskunft an die Geraeteakten. Die Rueckspielprobe hat sich sofort bezahlt gemacht: der erste Versuch lief sauber durch und hatte dabei saemtliche Unveraenderlichkeitsgarantien der Datenbank entfernt. Die Vorgabeprivilegierung aus dem Init-Skript gibt jeder von pg_restore neu angelegten Tabelle wieder alle Rechte, und GRANT kann nur hinzufuegen. Die Anwendungsrolle durfte danach das Audit-Log aendern, Wiki-Fassungen loeschen, Kiosk-Vorgaenge umschreiben - und nichts haette darauf hingewiesen. Gefunden haben es vier Datenbanktests unmittelbar nach der Probe, also genau die Probe, wegen der 1.0.0 sie verlangt. Die Pipeline ist geschrieben, aber NICHT erprobt: in Gitea ist kein act_runner registriert. Das steht so im README und im Devlog, damit sich niemand auf eine Pruefung verlaesst, die nicht stattfindet. 601 Unit-Tests gruen; Sicherung und Wiederherstellung einmal vollstaendig durchgefuehrt und die Tests danach erneut gruen. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
91742a0dd7
commit
9156dcc144
+119
-2
@@ -1,6 +1,6 @@
|
||||
# Anleitung
|
||||
|
||||
Bedienung von FLORIAN, Stand Phase 10 (Version 0.11.0). Die Bilder zeigen die
|
||||
Bedienung von FLORIAN, Stand Phase 11 (Version 0.12.0). Die Bilder zeigen die
|
||||
Beispielwehr aus dem Seed und werden mit `npm run screenshots` neu erzeugt.
|
||||
|
||||
---
|
||||
@@ -2253,7 +2253,124 @@ jeweiligen Detailseite sichtbar.
|
||||
|
||||
---
|
||||
|
||||
## 61. Wenn etwas nicht geht
|
||||
## 61. Wenn jemand Auskunft über seine Daten verlangt
|
||||
|
||||
Jede Person darf verlangen zu erfahren, welche Daten über sie verarbeitet
|
||||
werden — Art. 15 DSGVO. Die Anfrage muss **innerhalb eines Monats** beantwortet
|
||||
werden, und sie ist kostenlos.
|
||||
|
||||
### So geht es
|
||||
|
||||
1. **Mitglieder** öffnen, die Person anklicken.
|
||||
2. Rechts oben auf **Datenauskunft**.
|
||||
3. **Auskunft erstellen**.
|
||||
|
||||
Danach stehen drei Dinge bereit:
|
||||
|
||||
| | Wofür |
|
||||
|---|---|
|
||||
| **Die Anzeige** | Was ausgehändigt wird — vor dem Aushändigen |
|
||||
| **PDF** | Das Schreiben an die Person. Ausdrucken oder als Datei geben |
|
||||
| **JSON** | Nur, wenn die Person die Daten maschinenlesbar verlangt (Art. 20) |
|
||||
|
||||
Das Recht dazu heißt `person.export` und liegt bei Kommandant und
|
||||
Administrator.
|
||||
|
||||
### Was drinsteht
|
||||
|
||||
Dreizehn Abschnitte: Stammdaten, Zugang, Rollen, Qualifikationen,
|
||||
arbeitsmedizinische Vorsorge, Belastungsübungen, Einsatz- und
|
||||
Übungsbeteiligung, Anwesenheiten, Fahrten, Beiträge, Benachrichtigungswege,
|
||||
Ausweise.
|
||||
|
||||
Über jedem steht, **wozu** diese Daten vorliegen. Das ist kein Beiwerk: Art. 15
|
||||
verlangt neben den Daten auch die Zwecke und den Hinweis auf die weiteren
|
||||
Rechte. Eine bloße Liste erfüllt die Auskunftspflicht nicht.
|
||||
|
||||
**Auch das Unangenehme steht drin** — ein gemahnter Beitrag, eine nicht
|
||||
bestandene G26. Eine Auskunft, die auswählt, was gut aussieht, ist keine.
|
||||
|
||||
**Leere Abschnitte bleiben stehen.** „Dazu liegen keine Daten vor" ist eine
|
||||
Auskunft.
|
||||
|
||||
**Gesundheitsdaten sind gekennzeichnet.** G26 und Belastungsübungen sind eine
|
||||
besondere Kategorie nach Art. 9 — das steht im Bericht ausdrücklich dabei.
|
||||
|
||||
### Was nicht drinsteht
|
||||
|
||||
Was die Person **getan** hat, erscheint nur als Zahl: „12 durchgeführte
|
||||
Prüfungen", „3 gemeldete Mängel".
|
||||
|
||||
Das ist Absicht. Die Prüfprotokolle selbst gehören zum Nachweisbestand der
|
||||
Feuerwehr und nicht zu den personenbezogenen Daten eines Mitglieds. Würden sie
|
||||
mitgeliefert, käme jeder über eine Selbstauskunft an die kompletten
|
||||
Geräteakten — die Auskunftspflicht wäre eine Hintertür.
|
||||
|
||||
### Der Vorgang wird protokolliert
|
||||
|
||||
Dass eine Auskunft erteilt wurde, steht danach unter **Protokoll**. Das ist
|
||||
richtig so: die Auskunft legt alles offen, was über einen Menschen gespeichert
|
||||
ist, einschließlich seiner Gesundheitsdaten. Wer sie erstellt hat und wann,
|
||||
gehört festgehalten.
|
||||
|
||||
### Wenn die Person in zwei Wehren geführt wird
|
||||
|
||||
Dann gibt es **zwei** Auskünfte, eine je Wehr. Das ist kein Versehen: jede Wehr
|
||||
ist eine eigene Verantwortliche im Sinne der Verordnung und kann nur über die
|
||||
Daten Auskunft geben, die sie selbst führt.
|
||||
|
||||
---
|
||||
|
||||
## 62. Sicherung und Wiederherstellung
|
||||
|
||||
> **Der wichtigste Satz dieses Kapitels:** Eine Sicherung, die nie
|
||||
> zurückgespielt wurde, ist eine Vermutung.
|
||||
|
||||
### Sichern
|
||||
|
||||
```bash
|
||||
npm run sicherung
|
||||
npm run sicherung -- --ziel D:\backups
|
||||
```
|
||||
|
||||
Gesichert wird die Datenbank **und** der Dateispeicher — Prüfprotokolle,
|
||||
Einsatzberichte, Fotos, Rechnungen. Beides aus demselben Moment: eine
|
||||
Datenbank von heute mit Dateien von gestern ergibt Einträge, die auf nichts
|
||||
zeigen.
|
||||
|
||||
Das Ergebnis ist ein Verzeichnis mit Zeitstempel. Es gehört auf ein anderes
|
||||
Gerät — eine Sicherung auf derselben Festplatte hilft gegen einen
|
||||
Festplattenfehler nicht.
|
||||
|
||||
### Zurückspielen
|
||||
|
||||
```bash
|
||||
npm run wiederherstellen -- --quelle sicherungen/2026-09-05T14-16-48
|
||||
```
|
||||
|
||||
So passiert **nichts**. Es wird nur angezeigt, aus welchem Moment die
|
||||
Sicherung stammt und wie groß sie ist. Erst mit `--wirklich` am Ende wird
|
||||
zurückgespielt — und dabei **der gesamte vorhandene Bestand überschrieben**.
|
||||
|
||||
### Einmal im Jahr proben
|
||||
|
||||
Nicht im Notfall zum ersten Mal. Der Ordner kann leer sein, der Auszug
|
||||
abgeschnitten, das Passwort falsch — man erfährt es sonst an dem Tag, an dem
|
||||
man es nicht erfahren will.
|
||||
|
||||
Nach dem Zurückspielen prüft das Skript selbst nach, ob die Schutzsperren der
|
||||
Datenbank wieder stehen. Drei Handgriffe bleiben trotzdem:
|
||||
|
||||
1. **Anmelden** — kommt jemand hinein?
|
||||
2. **Ein Prüfprotokoll öffnen** — ist das PDF da?
|
||||
3. **Die Mitgliederzahl** mit der Erwartung vergleichen.
|
||||
|
||||
Erst danach gilt die Sicherung als geprüft. Das Datum der letzten geglückten
|
||||
Probe gehört ins Sicherungskonzept.
|
||||
|
||||
---
|
||||
|
||||
## 63. Wenn etwas nicht geht
|
||||
|
||||
| Beobachtung | Wahrscheinliche Ursache | Was hilft |
|
||||
|---|---|---|
|
||||
|
||||
Reference in New Issue
Block a user