CodamAIDocs
Themafertig

Ein Prüfbericht über die Jahre

Ben erzeugt einen endgültigen Prüfbericht, Anna prüft ihn später, ein Streit friert ihn ein. Was mit dem Dokument passiert, wenn Ben geht und wenn der Kunde kündigt.

Ausprägungen
endgültigen Bericht erzeugen, zweite FassungDokument prüfenLegal Hold setzen und aufhebendie Person gehtder Mandant wird gesperrt oder geschlossenAufbewahrung endetLöschung auf Wunsch der Person

Worum es geht

Ben arbeitet für den Kunden nordbau und hat das Audit audit-4711 abgeschlossen. Aus den Daten in CDMS erzeugt er den endgültigen Prüfbericht. Ab da gehört das Dokument nicht mehr Ben, sondern dem Mandanten nordbau, und es muss zehn Jahre lang unverändert bleiben.

Diese Seite begleitet das Dokument über diese zehn Jahre: Anna prüft es, ein Streit friert es ein, Ben verlässt die Firma, und am Ende kündigt nordbau.

Die Beteiligten

WerWas er oder sie hatWas das in CRMS erlaubt
Benein Konto in nordbau, keine CRMS-Rollerendern, mit jeder Vorlage, die er sieht. Dafür braucht es keine Rolle
AnnaAdministratorin von nordbau, dazu crms-document-reader und crms-document-custodianDokumente auflisten, lesen, prüfen, Legal Hold setzen und aufheben
die InstallationDokumentrevisionen an, CODAMAI_CRMS_DOCUMENT_RETENTION=P10Yjedes endgültige Dokument wird zehn Jahre aufbewahrt

Die Rollennamen sind die Standardwerte, eingestellt werden sie am CRMS-Modul im Hub, siehe Die Rollen. Eine Rolle zum Löschen hat in diesem Fall niemand.

Der Zeitstrahl

gantt
    dateFormat YYYY-MM-DD
    axisFormat %Y
    section Dokument
    aufbewahrt (retainUntil)          :active, 2026-10-17, 2036-10-17
    section Legal Hold
    Streit mit dem Auftraggeber       :crit, 2027-03-01, 2029-06-30
    section Ben
    arbeitet bei nordbau              :done, 2026-01-01, 2027-09-30
    section nordbau
    Kunde                             :done, 2026-01-01, 2029-12-31
    nicht mehr bedient                :crit, 2029-12-31, 2036-12-31

1. Ben erzeugt den Bericht

Vom abgeschlossenen Audit zum Nachweis
  1. 1
    Benutzer→Anwendung
    Ben klickt auf „Vorschau“. Die Anwendung liest das Audit aus CDMS und ruft CRMS mit PREVIEW auf
    Das PDF trägt sichtbar PREVIEW und wird nirgends gespeichert.
  2. 2
    Benutzer→Anwendung
    Ben klickt auf „Abschließen“. Derselbe Aufruf, jetzt mit FINAL und der Referenz audit-4711
  3. 3
    CRMS→CIAS
    fragt, wer anfragt: Bens Benutzer-ID, Mandant nordbau
  4. 4
    CRMS
    findet die Ausgabe von audit-report des Mandanten (Scope TENANT), prüft die Payload, rendert, siegelt
  5. 5
    CRMS→Dateispeicher
    legt die verschlüsselten Bytes gesperrt bis zum 17.10.2036 ab
  6. 6
    CRMS→Datenbank
    schreibt Revision 1 der Kette in die Datenbank von nordbau, mit Bens Benutzer-ID, Zeit und Hashes
    Ergebnis: Ben bekommt das PDF, die Antwort nennt die Revision im Header Crms-Document-Revision.

Den Weg Station für Station beschreibt Vom Klick bis zum Bericht.

Eine Woche später fällt Ben ein Tippfehler in einer Antwort auf. Er korrigiert sie in CDMS und schließt noch einmal ab. Dieselbe Vorlage und dieselbe Referenz ergeben Revision 2 derselben Kette. Revision 1 bleibt daneben stehen, unverändert und mit eigener Aufbewahrung. Ein endgültiges Dokument wird nie überschrieben, siehe Was ein endgültiges Dokument ist.

2. Anna prüft den Bericht

Im Frühjahr fragt der Auftraggeber nach, ob der Bericht nachträglich geändert wurde. Anna lässt CRMS nachsehen:

Annas Aufrufe
GET /crms/documents?template=audit-report&scope=TENANT&reference=audit-4711
→ beide Revisionen, älteste zuerst, je mit contentHash und storedAt

POST /crms/documents/<Revision 2>/verify
Ergebnis der Prüfung
{ "ok": true }

ok: true heißt: Jeder Eintrag der Kette stimmt mit seinem Hash, und die Bytes passen zum Inhalts-Hash. Das belegt, dass das Dokument seit dem Speichern unverändert ist. Es belegt nicht, dass Bens Antworten im Audit richtig waren. Hat der Auftraggeber nur eine Kopie des PDF, vergleicht er deren SHA-256 mit dem Crms-Document-Content-Hash oder prüft das Siegel. Siehe Prüfen und lesen.

Anna sieht dabei nur Dokumente von nordbau. Der Mandant kommt aus ihrem Token, und eine Revision eines anderen Mandanten gibt es für sie nicht: 404 document-not-found.

3. Ein Streit friert das Dokument ein

Der Auftraggeber zieht vor Gericht. Bis der Streit entschieden ist, darf nichts vom Audit verschwinden, auch nicht nach Ende der Aufbewahrung.

Legal Hold setzen
  1. 1
    Admin→CRMS
    Anna schickt POST /crms/documents/<Revision 1>/legal-hold mit {"reason": "litigation-hold"}
  2. 2
    CRMS
    Hat Anna eine der Hold-Rollen? Sonst 403 document-access-denied, noch bevor CRMS das Dokument sucht
  3. 3
    CRMS→Dateispeicher
    setzt auf jedes Objekt der Kette einen S3-Legal-Hold
  4. 4
    CRMS→Datenbank
    hängt LEGAL_HOLD_SET mit Annas Benutzer-ID und dem Grund an die Kette
    Ergebnis: 204. Der Hold gilt für die ganze Kette: Revision 1, Revision 2 und jede, die noch dazukommt.

Der Grund ist ein Schlüssel, kein Satz, denn er steht für immer in der Kette. Als der Streit im Juni 2029 endet, hebt Anna den Hold mit POST …/legal-hold/release und {"reason": "litigation-ended"} wieder auf. Danach gelten wieder die eigenen Aufbewahrungsdaten jeder Revision. Mehr unter Aufbewahrung, Legal Hold und Löschung.

4. Ben verlässt die Firma

Am 30. September 2027 geht Ben. Anna entzieht seine Rollen, ein Plattform-Administrator sperrt und schließt später sein Konto, wie unter Eine Person verlässt die Firma. In CRMS ändert das nichts an den Dokumenten:

Nach Bens Weggang
Bleibt
unverändert
  • beide Revisionen des Prüfberichts, mit Bens Benutzer-ID als der Person, die sie erzeugt hat
  • der Legal Hold, den Anna gesetzt hat
  • die Einträge im Journal von nordbau
  • Bens persönliche Vorlagen (Scope USER) in der Datenbank von nordbau
Geht
nur Bens Zugang
  • Ben rendert nichts mehr, sobald sein letztes Token abgelaufen ist
  • Bens persönliche Vorlagen rendern für niemanden: Die Auflösung sucht nur die Ausgaben der Person, die anfragt

Anna und alle anderen mit der Leserolle in nordbau lesen und prüfen den Bericht weiter. Für CRMS ist Ben nur eine Kennung in der Kette. Ob sein Konto noch existiert, fragt es nicht.

5. nordbau kündigt

nordbau wird ab dem 1. Januar 2030 nicht mehr bedient, später wird der Mandant geschlossen, wie unter Ein Kunde kündigt. Zwei Dinge laufen danach getrennt:

Was nach der Kündigung mit den Dokumenten passiert

Wann: Jemand will ein Dokument von nordbau lesen, prüfen, festhalten oder löschen.

Jede dieser Anfragen nennt den Mandanten nordbau, und das Mandanten-Tor lehnt sie ab, bevor CRMS sie sieht. Das gilt für Anna, für jede andere Person des Kunden und auch für den Plattform-Support: In einen gesperrten oder geschlossenen Mandanten kann niemand wechseln. Läuft CRMS als eigener Dienst, steht dort dasselbe Tor.

Ergebnis: 403 cias.authentication.tenant-not-served. Niemand liest, prüft, setzt oder hebt einen Legal Hold auf.

Wann: Die Verankerung der Journale und der Aufbewahrungslauf, ohne Anfrage.

Diese Läufe holen sich bei CIAS die Liste aller Mandanten, bedient oder nicht. Gesperrte und geschlossene Mandanten lässt das Tor für diese Pflichtarbeit durch, denn ihre Journale müssen weiter verankert werden und ihre Aufbewahrung endet trotzdem. Der Aufbewahrungslauf löscht jede fällige Revision als Benutzer crms-retention mit dem Grund retention-expired. Eine Revision unter Legal Hold bleibt auf der Liste und kommt beim nächsten Lauf wieder dran.

Ergebnis: Am 17.10.2036 werden Bytes und Dokumentschlüssel gelöscht, die Revision bleibt als Grabstein in der Kette.

Das ist der Grund, warum Anna den Legal Hold im Sommer 2029 noch selbst aufgehoben hat. Nach der Kündigung kann ihn niemand mehr über die API aufheben. Ein Hold, der dann noch gilt, hält das Dokument über das Ende seiner Aufbewahrung hinaus fest.

Was sonst bleibt: die Datenbank, in der CRMS die Dokumente von nordbau hält, mit allen Einträgen und Grabsteinen. Eingebettet ist das die Datenbank des Mandanten in der Anwendung, beim eigenen Dienst die des Mandanten im CRMS-Dienst. CDMS löscht nie eine Datenbank, und CRMS hängt nur an. So bleibt die Kette auch nach dem Löschen prüfbar, sobald jemand wieder hineinsehen darf.

Wer wann noch lesen kann

Kann Anna den Prüfbericht lesen?
Mandant nordbau wird bedientAnna hat die LeserolleRevision hat noch BytesAntwort
nein––403 cias.authentication.tenant-not-served, aus der Filterkette
janein–403 document-access-denied, ohne zu verraten, ob es das Dokument gibt
jajanein410 document-erased. Die Prüfung meldet trotzdem ok: true, solange die Kette stimmt
jajaja200 mit den Bytes, geprüft gegen den Inhalts-Hash

Was in der Kette und im Journal steht

EreignisEintragPerson
Ben schließt abRevision 1, document-storedBens Benutzer-ID
Ben schließt noch einmal abRevision 2, document-storedBens Benutzer-ID
Anna liest das Dokumentdocument-read, nur mit CODAMAI_CRMS_AUDIT_READS=trueAnnas Benutzer-ID
Anna setzt den HoldLEGAL_HOLD_SET, document-legal-hold-set, Grund litigation-holdAnnas Benutzer-ID
Anna hebt ihn aufLEGAL_HOLD_RELEASED, document-legal-hold-released, Grund litigation-endedAnnas Benutzer-ID
Aufbewahrung endetERASED, document-erased, document-key-destroyed, Grund retention-expiredcrms-retention

Die Prüfung über verify zählt nicht als Lesen.

Fallen

Weiter

Suchen