Aufbewahrung¶
Wie lange calServer Nachweise aufhebt, steht unter Administration → Grundeinstellungen → Aufbewahrung. Die Frist gilt für den Audit-Trail und für Gerätedaten gleichermaßen.
Die beiden Werte¶
| Einstellung | Bedeutung | Vorgabe |
|---|---|---|
| Aufbewahrungsfrist (Jahre) | Wann ein archivierter Nachweis gelöscht werden darf. Zulässig sind 10 bis 30 Jahre. | 10 |
| Audit-Trail: heißes Fenster (Monate) | Wie lange ein Audit-Eintrag in der Tabelle hinter der Ansicht bleibt, bevor er ins Archiv umzieht. | 24 |
Die beiden beantworten verschiedene Fragen. Die Frist ist eine rechtliche Vorgabe und sagt, wann etwas verschwinden darf. Das heiße Fenster ist eine Betriebsgröße und sagt, wo etwas liegt. Ein Umzug ins Archiv löscht nichts.
Die Mindestfrist lässt sich nicht unterschreiten
Ein Wert unter 10 Jahren wird beim Lesen auf 10 angehoben, ein Wert über 30 auf 30 gekappt. Das gilt nicht nur für das Formular, sondern für jeden Weg in die Einstellung — auch für einen Import oder einen direkten Schreibzugriff auf die Datenbank. Eine Frist unterhalb der Mindestaufbewahrung wäre kein Sparen, sondern ein Verstoß.
Das heiße Fenster wird zusätzlich durch die Frist begrenzt. Reichte es darüber hinaus, überdauerte ein Eintrag die Frist im heißen Teil, und der Löschlauf bekäme ihn nie zu Gesicht.
Warum es zwei Stufen gibt¶
Der Audit-Trail wächst mit jeder Änderung. Auf einer aktiv genutzten Anlage sind das mehrere zehntausend Einträge pro Tag; über zehn Jahre werden daraus dreistellige Millionenzahlen. Diese Menge in der Tabelle zu halten, hinter der das Audit-Grid hängt, macht jede Abfrage darauf langsam und jeden Datenbank-Dump groß.
| Stufe | Tabelle | Merkmal |
|---|---|---|
| Heißes Fenster | audit |
Vollständig indiziert, hinter Grid und Detailseiten. |
| Archiv | audit_archive |
Gleiche Spalten, weniger Indizes, wird selten gelesen. |
Der Aufräumlauf¶
Die geplante Aufgabe Audit-Trail archivieren (audit:prune) läuft täglich
um 4 Uhr und arbeitet in dieser Reihenfolge:
- Alles, was älter ist als das heiße Fenster, zieht nach
audit_archiveum. - Aus dem Archiv wird gelöscht, was die Aufbewahrungsfrist hinter sich hat.
# Trockenlauf: zeigt an, was umziehen und was gelöscht würde
docker exec calserver-api-v2 php artisan audit:prune --dry-run
# Erster Lauf einer gewachsenen Anlage, kleinere Stapel
docker exec calserver-api-v2 php artisan audit:prune --chunk=200
Abbrechen ist unkritisch
Der Lauf arbeitet in Stapeln. Wird er unterbrochen, macht der nächste dort weiter, wo der vorige aufgehört hat — es entsteht kein halber Umzug.
Was nicht enthalten ist¶
Die Frist ist bewusst nicht auf den Audit-Trail beschränkt gespeichert, damit ein Aufräumlauf für Gerätedaten später dieselbe Zahl liest. Dieser Lauf existiert noch nicht: aktuell setzt nur der Audit-Trail die Frist durch. Gerätedaten werden nicht automatisch gelöscht.