Vom Nacht-Agenten gefundene Lücke (P1), gegen den echten Code verifiziert:
das Backup-Archiv enthielt nur db.sql/config/manifest.json, nicht das
Anhänge-Verzeichnis (STORE_ROOT, /var/lib/kundencenter/ticket-attachments).
Bei einem echten Datenverlust wären alle Ticket-Anhänge unwiederbringlich
verloren gewesen, obwohl die Datenbank-Referenzen darauf erhalten blieben.
- runBackup: Anhänge-Verzeichnis wird mit in archive.tar.gz gepackt (eigener
-C-Abschnitt, da es außerhalb des Arbeitsverzeichnisses liegt), Datei-/
Byte-Anzahl landet zur Kontrolle im manifest.json.
- runRestoreTest: prüft nach dem Entpacken, ob Datei- und Byte-Anzahl der
Anhänge mit dem Manifest übereinstimmen (wie die bestehenden Zeilenzahl-/
Migrations-/Audit-Kette-Prüfungen). Ältere Sicherungen ohne dieses Feld
werden übersprungen statt fälschlich als fehlerhaft gemeldet.
Gegen eine echte Sicherung+Wiederherstellungstest verifiziert (zwei
Testdateien im Anhänge-Verzeichnis angelegt, Backup gefahren, Restore-Test
lief grün mit anhaengeDateien: 2).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>