Worum es geht
Ein endgültiges Dokument bleibt so lange, wie das Gesetz es verlangt, und nicht länger. Diese Dauer heißt Aufbewahrung. Während sie läuft, kann niemand das Dokument löschen. Danach löscht CRMS es von selbst.
Ein Legal Hold hält ein Dokument zusätzlich fest, zum Beispiel weil ein Rechtsstreit läuft. Solange er gilt, wird nichts gelöscht, auch nicht nach Ende der Aufbewahrung.
Die Aufbewahrungsdauer
- Sie steht in
CODAMAI_CRMS_DOCUMENT_RETENTIONals ISO-8601-Zeitraum, zum BeispielP10Yfür zehn Jahre oderP6Y6M. - Es gibt keinen Standardwert. Solange Dokumentrevisionen an sind, startet CRMS ohne sie nicht. Wie lange Unterlagen aufbewahrt werden, ist eine rechtliche Pflicht des Betreibers (GoBD, HGB, GMP …). Ein geratener Wert löscht zu früh oder hält personenbezogene Daten zu lange.
- Beim Speichern rechnet CRMS
retainUntil= Speicherzeit (UTC) + Dauer und schreibt das Ergebnis fest in die Revision. Mit demselben Datum sperrt es das Objekt im Speicher.
Der Lebenslauf einer Revision
stateDiagram-v2 [*] --> Aufbewahrt: FINAL gespeichert Aufbewahrt --> Festgehalten: Legal Hold gesetzt Festgehalten --> Aufbewahrt: Legal Hold aufgehoben Aufbewahrt --> Löschbar: retainUntil erreicht Festgehalten --> Festgehalten: retainUntil erreicht Löschbar --> Festgehalten: Legal Hold gesetzt Löschbar --> Grabstein: gelöscht Grabstein --> [*]
Der Legal Hold
- Er gilt für die ganze Kette: alle Revisionen, die noch Bytes haben, und auch jede Revision, die gespeichert wird, solange er gilt.
- Er wird in der Kette als Eintrag
LEGAL_HOLD_SETfestgehalten und im Speicher als S3-Legal-Hold auf jedes Objekt gesetzt. - Setzen und Aufheben verlangen einen Grund als Schlüssel, zum Beispiel
litigation-holdundlitigation-ended.
POST /crms/documents/7c1e…/legal-hold
{ "reason": "litigation-hold" }204 No ContentDie Revision in der Adresse wählt nur die Kette. Der Hold gilt danach für alle ihre Revisionen. Aufheben geht mit POST /crms/documents/{revision}/legal-hold/release und ebenfalls einem Grund.
| Fall | Antwort |
|---|---|
| Hold setzen, obwohl schon einer gilt | 409 document-legal-hold-active |
| Hold aufheben, obwohl keiner gilt | 409 document-legal-hold-inactive |
Wann gelöscht werden kann
| Revision schon gelöscht? | Legal Hold auf der Kette? | retainUntil erreicht? | Was passiert beim Löschen |
|---|---|---|---|
| ja | – | – | 410 document-erased |
| nein | ja | – | 409 document-legal-hold-active |
| nein | nein | nein | 409 document-retention-active |
| nein | nein | ja | Bytes gelöscht, Schlüssel vernichtet, Grabstein bleibt |
Vor Ende der Aufbewahrung gibt es keinen Weg zum Löschen. Würde CRMS es versuchen, lehnte der Speicher es ab (document-locked).
Was beim Löschen passiert
-
1CRMSprüft Legal Hold und Aufbewahrung, wie in der Tabelle oben
-
2CRMS→Dateispeicherlöscht genau die Version des Objekts
-
3CRMS→Datenbankvernichtet den Dokumentschlüssel. Seine Zeile bleibt als Grabstein, das Journal bekommt
document-key-destroyed -
4CRMS→Datenbankhängt einen Eintrag
ERASEDmit Benutzer und Grund an die Kette und schreibtdocument-erasedins JournalErgebnis: Lesen antwortet ab jetzt 410document-erased. Die Kette prüft weiter als intakt
Die verschlüsselte Payload liegt in der Datenbank. Sie wird mit demselben Schlüssel unlesbar. Dieses Löschen durch Vernichten des Schlüssels nennt man Crypto-Shredding.
Zwei Wege zum Löschen
Wann: der Normalfall, die Aufbewahrung ist abgelaufen
-
1CRMSgeht alle
CODAMAI_CRMS_RETENTION_INTERVAL(StandardPT24H) die Arbeitsliste durch, erst im System, dann in jedem Mandanten -
2CRMSlöscht jede fällige Revision, Benutzer
crms-retention, Grundretention-expired -
3CRMSlässt Revisionen unter Legal Hold auf der Liste, der nächste Lauf versucht es wiederErgebnis: Fällige Revisionen sind Grabsteine
Wann: jemand verlangt die Löschung, zum Beispiel nach DSGVO Art. 17, und keine Aufbewahrungspflicht steht mehr entgegen
-
1Client→CRMSschickt
POST /crms/documents/{revision}/erasemit{"reason": "data-subject-request"} -
2CRMSprüft Rolle, Legal Hold und Aufbewahrung wie oben
-
3CRMS→Clientantwortet 204Ergebnis: Die Revision ist ein Grabstein, der Antragsteller steht als Benutzer in der Kette
Der Aufbewahrungslauf läuft wie der Ankerlauf in jeder Instanz mit CODAMAI_CRMS_SCHEDULING_ENABLED=true und erreicht alle Mandanten, die CIAS kennt, auch gesperrte und geschlossene.
Wer was darf
| Aufruf | Rolle (Standard) | Variable |
|---|---|---|
| Legal Hold setzen und aufheben | crms-document-custodian | CODAMAI_CRMS_REST_DOCUMENT_ROLES_HOLD |
| Löschen | crms-document-eraser | CODAMAI_CRMS_REST_DOCUMENT_ROLES_ERASE |
Fehlt die Rolle, antwortet CRMS 403 document-access-denied, bevor es überhaupt nach dem Dokument sucht. Eine Ablehnung verrät also nicht, ob es das Dokument gibt. Die ganze Rollenliste steht unter Rollen.