Worum es geht
Auditing hebt jede Änderung auf, mit dem Inhalt des Objekts und mit Angaben über die Person, die geändert hat. Beides können personenbezogene Daten sein, also Angaben, die sich einem Menschen zuordnen lassen. Für sie gelten die Regeln des Datenschutzes, etwa die DSGVO.
CDMS stellt die Aufzeichnung bereit. Wie lange die Daten bleiben dürfen und wer sie sehen darf, muss dein Projekt entscheiden.
Wo personenbezogene Daten liegen
flowchart LR
subgraph DB["Mandanten-Datenbank"]
R[("revinfo<br/>user_id · username<br/>ip_address · user_agent<br/>acting_user_id · acting_username")]
A[("person_AUD<br/>jeder alte Stand:<br/>name, email, address …")]
T[("person<br/>nur der aktuelle Stand")]
end
subgraph FS["Dateispeicher"]
V["<fileId>.<Kennung><br/>alte Dateiinhalte"]
end
R --- A
| Was | Wo | Über die API sichtbar? |
|---|---|---|
| Benutzername | revinfo.username | ja, revisionMeta.username |
| IP-Adresse | revinfo.ip_address | ja, revisionMeta.ip |
| Browser oder Programm | revinfo.user_agent | ja, revisionMeta.useragent |
| Benutzer-ID | revinfo.user_id | nein, nur in der Datenbank |
| Handelnde Person nach einem Benutzerwechsel | revinfo.acting_username, revinfo.acting_user_id | Name ja, revisionMeta.actingUsername; ID nur in der Datenbank |
| jeder alte Stand des Objekts | <tabelle>_AUD | ja, revision in der Historie |
| alte Dateiinhalte | Versionen im Dateispeicher | nur über einen Rollback |
Woher die Werte kommen, steht unter Was eine Revision festhält.
Zwei Arten von Daten
- Name und ID aus dem Token
- IP-Adresse und User-Agent der Anfrage
- entsteht bei jedem auditierten Modell, auch bei rein technischen Daten
- zeigt, wer wann gearbeitet hat
- alles, was im Objekt steht, etwa Name, E-Mail, Adresse, Notizen
- auch Werte, die später geändert oder geleert wurden
- auch Dateiinhalte bei Datei-Modellen
- hängt davon ab, was du modellierst
Wie lange Revisionen bleiben
CDMS löscht keine Revision. Es gibt keinen Endpunkt, der Revisionen löscht, kürzt oder unkenntlich macht, und keine eingebaute Aufbewahrungsfrist.
Wann: PUT, PATCH, Upload, Rollback
Der alte Stand bleibt als Revision. Ein Feld zu leeren entfernt den alten Wert also nicht aus CDMS, er steht weiter in der älteren Revision.
Wann: DELETE, direkt oder per Kaskade
Die Zeile verschwindet, die Historie bleibt vollständig. Die DEL-Revision selbst ist leer bis auf die id, aber jede Revision davor enthält den Inhalt.
Ergebnis: Siehe Was nach dem Löschen bleibt.
Wann: auditiertes Datei-Modell
Alte Inhalte bleiben, solange der Datensatz existiert. Beim Löschen des Datensatzes werden Inhalt und alle Versionen entfernt, die Historie des Datensatzes bleibt.
Ergebnis: Siehe Dateiversionen.
Wann: Das Modell wird auf nicht auditiert gestellt.
Neue Änderungen werden nicht mehr aufgezeichnet. Die bisherigen Revisionen bleiben in der Datenbank.
Löschen oder Unkenntlichmachen von Revisionen ist deshalb eine Aufgabe auf Datenbankebene, außerhalb der CDMS-API. Weil jeder Mandant seine eigene Datenbank mit eigener revinfo hat, betrifft so ein Eingriff immer nur einen Mandanten.
Wer die Historie lesen darf
Die Historie eines Objekts liest, wer die Leserolle und die Historienrolle des Modells hat – und wer das Objekt selbst hätte lesen dürfen. Die Zeilenfilter, die beim Lesen und Suchen mitlaufen, etwa der Owner-Filter, gelten auch hier. Bei einem gelöschten Objekt zählt dafür sein letzter Stand vor der Löschung. Siehe Historie lesen.
Das begrenzt, wer die personenbezogenen Daten in der Historie sieht, aber es hebt die Warnung oben nicht auf: Wer ein Objekt lesen darf, sieht mit der Historienrolle auch alle seine alten Stände.
Worauf dein Projekt achten muss
| Nachweis oder Rollback nötig? | enthält personenbezogene Daten? | Empfehlung |
|---|---|---|
| nein | – | nicht auditieren |
| ja | nein | auditieren. Personenbezug entsteht trotzdem über Name und IP-Adresse der handelnden Person. |
| ja | ja | auditieren, aber vorher Aufbewahrung, Leserechte und den Umgang mit Löschanfragen festlegen |
Fallen
Wie es weitergeht
- Was eine Revision enthält: Was eine Revision festhält
- Rollen für die Historie: Modellrollen
- Was nach dem Löschen bleibt: Was nach dem Löschen bleibt