Worum es geht
Zwei Dinge in CDMS sehen ähnlich aus und werden oft verwechselt:
- Systemfelder wie
_createdOn,_updatedOnund_userIdstehen am Objekt selbst. Jedes Modell hat sie. Sie zeigen einen einzigen Wert, den aktuellen. Siehe Systemfelder, die der Server setzt. - Die Historie ist eine Liste von Revisionen. Nur auditierte Modelle haben sie. Sie zeigt jeden Stand, den das Objekt je hatte, mit Person und Zeitpunkt.
Nebeneinander
- gibt es bei jedem Modell
- ein Wert je Feld, immer der aktuelle
_createdOn: Zeitpunkt des Anlegens_updatedOn: letztes PUT oder PATCH_userId: wem das Objekt gehört, nur bei Benutzer-Modellen- kommen mit jedem Lesen und Suchen mit
- weg, sobald das Objekt gelöscht ist
- nur bei auditierten Modellen
- jeder Stand, den das Objekt je hatte
- jede Änderung: Anlegen, PUT, PATCH, Upload, Rollback, Löschen
- mit Person, Zeitpunkt, IP-Adresse und User-Agent
- eigener Endpunkt und eigene Rolle
- bleibt nach dem Löschen lesbar
Welche Frage beantwortet was?
| Frage | Systemfelder | Historie |
|---|---|---|
| Wann wurde das Objekt angelegt? | _createdOn | ts der ADD-Revision |
| Wann wurde es zuletzt geändert? | _updatedOn, aber nur PUT und PATCH | ts der neuesten Revision, jede Art von Änderung |
| Wer hat es angelegt? | bei Benutzer-Modellen die Person in _userId, sonst nicht | username der ADD-Revision |
| Wer hat es zuletzt geändert? | nicht beantwortbar | username der neuesten Revision |
| Was stand vorher drin? | nicht beantwortbar | revision der älteren Revisionen |
| Wurde es gelöscht, von wem? | nicht beantwortbar, das Objekt ist weg | die DEL-Revision |
Wo sie sich berühren
Wann: beim Anlegen gesetzt
Ändert sich danach nie, auch nicht beim Rollback. Fast denselben Zeitpunkt trägt die ADD-Revision in revisionMeta.ts. Sie entsteht erst am Ende der Anfrage, also Bruchteile einer Sekunde später. Bei Modellen, die erst später auditiert wurden, fehlt diese Revision.
Wann: bei jedem PUT und PATCH auf jetzt gesetzt
Beim Anlegen bleibt es leer, beim Rollback unverändert. Ein Rollback ist also eine Änderung, die _updatedOn nicht zeigt, die Historie aber schon: als neue MOD-Revision.
Wann: nur bei Benutzer-Modellen, beim Anlegen gesetzt
Sagt, wem das Objekt gehört, und steuert den Owner-Filter. Es sagt nicht, wer es zuletzt geändert hat. Das steht nur in der Historie.
Ergebnis: Siehe Nur die eigenen Daten (Owner-Filter).
Wann: bei auditierten Modellen, bei jeder Änderung
Jede Revision hält den ganzen Stand fest, die Systemfelder eingeschlossen. Über + und * liefert die Historie aber nur die fachlichen Felder, _createdOn und _updatedOn stehen dort leer. Den Zeitpunkt einer Revision liest du aus revisionMeta.ts.
Wann: Auditing ist aus.
Es gibt nur die Systemfelder. Wer etwas geändert hat und was vorher drinstand, weiß CDMS nicht.
Fallen
Wie es weitergeht
- Die Systemfelder im Detail: Systemfelder, die der Server setzt
- Revisionen abrufen: Historie lesen
- Was auditiert wird: Was auditiert wird