Statusmodell für eine Destination
Als ein Inhaber einer Fachanwendung möchte ich die von dieser Fachanwendung verwendete Destination sperren.
Dafür ist der im Anhang aufgezeichnete Status-Flow vorgesehen:
- Eine Destination wird am Zustelldienst bekanntgemacht und erhält den Status created. (Sie kann vorbereitet werden und sollte erst bei fertig aufgesetzter Fachanwendung in den Status active wechseln)
- Scope: {{create_destination}}
- Die Destination wird per API-Call in den Status active versetzt und kann ab dann Anträge annehmen.
- Scope: {{manage:destination:}}
- Wenn die Destination in den Status inactive versetzt wird, können keine neuen Anträge mehr angelegt werden. Alle anderen Optionen bleiben möglich. Sie kann wieder in den Status active versetzt werden.
- Scope: {{manage:destination:}}
- Wenn eine Destination in den Status decommissioned versetzt wird, ist weder das Anlegen von Anträgen möglich(, noch ist es möglich, neue Antworten zu versenden). Status-Updates können allerdings noch gesetzt werde.
- Scope: {{manage:destination:}}
- Eine Destination wird durch den Zustelldienst automatisiert gelöscht wenn
- Sie seit N Tagen im Zustand decommissioned ist und
- Die SETs aller ihr zugewiesenen Cases abgelaufen sind
In Dokumentation als Empfehlung:
Beim Löschen einer Destination sollte sobald sie einmal aktiviert wurde (2.) im Löschprozess für jede Stufe (3. & 4.) jeweils mindestens 30 Tage vorgesehen werden, sodass laufende Anträge abgeschlossen werden können.
Über die API sollte der Status einer Destination über das Enum-Feld {{status}} verfügbar sein.
Der Status der Destination kann über einen Endpunkt PATCH /destination/<uuid>
mit z.B. dem Feld status=decommissioned
aktualisiert werden.
Akzeptanzkriterien
-
Dr Zustelldienst speichert Status einer Destionation (DB Migration) -
alle existierenden Destinations erhalten den Status active
-
alle neu angelegten Destinations erhalten den Status created
-
-
Der Zustelldienst gibt den Status einer Destination über die API aus -
Der Status einer Destination kann über die API geändert werden; dies ist nur mit dem Scope manage:destination:{destinationId}
möglich -
Eine Destination kann erst nach dem Ablauf der minimalen Tage von incative
zudecommissioned
versetzt werden -
Der Zustelldienst darf nur neue Submissions anlegen für Destinations, die im Status active
sind.-
Anderfalls wird der Fehler destination-state-invalid
zurückgegeben.
-
-
Die API-Tests (E2E-Tests) müssen angepasst werden
Edited by Andreas Huber