Worum es geht
Eine Freigabekette legt fest, wer eine eingereichte Revision prüfen muss, bevor sie rendert. Sie besteht aus Stufen, die nacheinander laufen. Jede Stufe nennt eine CIAS-Rolle. Wer diese Rolle hat, darf an dieser Stufe freigeben.
Eine Stufe
| Angabe | Bedeutung | Standard |
|---|---|---|
name | wie die Stufe heißt, für Menschen, höchstens 64 Zeichen | — (Pflicht) |
role | die CIAS-Rolle, die an dieser Stufe freigibt | — (Pflicht) |
minimum-approvers | wie viele verschiedene Personen freigeben, bevor die Stufe fertig ist | 1 |
author-excluded | ob die Person, die eingereicht hat, hier ausgeschlossen ist | true |
meaning | was eine Freigabe hier aussagt: REVIEWED (geprüft) oder APPROVED (freigegeben) | — (Pflicht) |
Die Bedeutung steht mit Person und Zeit in der Kette. So sagt jede Freigabe ausdrücklich, ob jemand den Inhalt nur geprüft oder ihn freigegeben hat. Regelwerke wie 21 CFR Part 11 verlangen genau das von einer Unterschrift.
Der Weg durch die Stufen
-
BenutzerStufe 1: FachprüfungRolle
report-reviewer, nicht die Autorin, mindestens 1 Person↳ nein Revision bleibt in Prüfung, oder jemand lehnt ab -
BenutzerStufe 2: FreigabeRolle
quality-lead, nicht die Autorin, mindestens 2 Personen↳ nein Revision bleibt in Prüfung, oder jemand lehnt ab - Revision ist PUBLISHED, die vorige wird SUPERSEDED
Die Stufen laufen in ihrer Reihenfolge. Solange Stufe 1 nicht fertig ist, kann niemand Stufe 2 freigeben. Wer die Rolle von Stufe 2 hat, aber nicht die von Stufe 1, muss warten.
Was bei einer Freigabe geprüft wird
POST /crms/revisions/{revision}/approve hat keinen Inhalt. Wer freigibt, kommt aus dem Token.
| Revision in Prüfung? | Schon freigegeben? | Rolle der aktuellen Stufe? | Autorin, und Stufe schließt sie aus? | Was passiert |
|---|---|---|---|---|
| nein | – | – | – | 409 template-revision-not-in-review |
| ja | ja | – | – | 409 approval-already-given |
| ja | nein | nein | – | 403 approval-role-missing |
| ja | nein | ja | ja | 403 approval-author-excluded |
| ja | nein | ja | nein | Freigabe zählt. Ist es die letzte nötige Freigabe der letzten Stufe, ist die Revision veröffentlicht |
„Schon freigegeben” heißt: Diese Person hat diese Revision schon einmal freigegeben, an irgendeiner Stufe. Eine Person gibt eine Revision nur einmal frei, auch wenn sie die Rollen mehrerer Stufen hat. Sonst wären zwei Stufen mit derselben Person nur ein Paar Augen.
Wer eine Revision überhaupt sieht
Freigeben kann nur, wer die Revision erreicht:
- System-Vorlagen: jede Person mit der Rolle der Stufe.
- Mandanten-Vorlagen: Personen desselben Mandanten mit der Rolle der Stufe.
- Personen-Vorlagen: die Prüfer des Mandanten dieser Person. Sie sehen die Vorlage sonst nicht, prüfen sie aber.
Für alle anderen gibt es die Revision nicht: 404 template-not-found.
Ablehnen
POST /crms/revisions/{revision}/reject mit {"reason": "…"}. Ablehnen darf, wer die Rolle der aktuellen Stufe hat. Der Grund ist immer Pflicht. Eine Ablehnung beendet die Prüfung sofort, egal an welcher Stufe. Wie es danach weitergeht, steht unter Lebenszyklus.
Wo die Ketten festgelegt werden
Die Ketten gehören zum Projekt. Du legst sie im Hub am CRMS-Modul des Projekts fest, im Bereich „Approval”, Feld approvalStages. Jede Stufe hat dort zusätzlich einen scope (USER, TENANT oder SYSTEM) und eine sortOrder für die Reihenfolge.
Beim Build schreibt der Generator daraus die Datei crms-configuration.yaml:
codamai:
crms:
template:
approval:
tenant:
- name: Fachprüfung
role: report-reviewer
meaning: REVIEWED
- name: Freigabe
role: quality-lead
minimum-approvers: 2
meaning: APPROVED
Ein Scope, der in der Datei fehlt, hat keine Stufen. Im Beispiel sind also Personen- und System-Vorlagen sofort veröffentlicht, Mandanten-Vorlagen gehen durch zwei Stufen.
Die Kette steht in der Revision
Beim Einreichen schreibt CRMS die ganze Kette, die in diesem Moment gilt, in den Eintrag REVISION. Die Revision läuft genau durch diese Stufen. Bringt ein neuer Build eine andere Kette, gilt sie nur für Revisionen, die danach eingereicht werden. Die Kette jeder Revision ist so auch später noch nachweisbar.