Erweiterung / Konsolidierung Self-Service API
Warum?
Relevante Links und Bemerkungen
Zu klären
- Umgang mit OAuth-Scopes -> SSP tauscht OAuth-Scopes aus, wenn Request geproxiet werden (siehe
POST /v1/destinations
-Endpunkt) - Umgang mit alten Daten (z.B. Zustellpunkt, der im ZSD gelöscht wurde, aber im SSP noch existiert)
Akzeptanzkriterien
-
Die Destination Management API
Self-Service API
-Spezifiakation ist um alle Zustellpunktverwaltungs-Endpunkte der Submission API erweitert -
Die Endpunkte im tag Zustellpunktverwaltung
in der Submission API-Spezifikationals depecated markiert. In der Description ist ein Hinweis zu den neuen Endpunkten in derwerden in die KategorieDestination Management API
Self-Service API
-Spezifiakation enthalten.Internal
verschoben. -
Die SSP-Implementierung ist um neue Endpunkte der Destination Management API
Self-Service API
erweitert ("Proxy") -
Bei Delete-Requests werden auch die Daten im SSP gelöscht. -
Es existiert ein neuer SSP-Endpunkt POST <ssp>/v1/destinations
zum Anlegen einer neuen Destination- Request: { "name": "Test-Zustellpunkt für Fachverfahren XY", ... }
- Response: { "destinationId": "620e9e5f-36d6-480a-acbe-25e92072c413" }
- OAuth-Absicherung:
https://schema.fitko.de/fit-connect/oauth/scopes/self-service-api/create:destination
-
Der Request wird mit neuem OAuth-Token (Scope: "create:destination", aud: "submission-api-...") ohne die Attribute "name" und "submissionHost" an den Zustelldienst weiterleitet, um dort den Zustellpunkt anzulegen. -
API-Clients haben nach wie vor keinen Zugriff auf den POST /v1/destinations
-Endpunkt des Zustelldienstes. -
Äquivalent zum Anlegen einer Destination über das UI, speichert das SSP beim Anlegen einer Destination über die Self-Service API die neu generierte Destination-ID, das Attribut "name" "submissionHost"und die Zuordnung zum User (Owner) als "Destination-Referenz" in der bisher schon existierenden Datenbank-Tabelle. Auf Basis der Client-ID aus dem Access Token (sub
-Claim) ordnet das SSP hierbei die neue Destination dem User (Owner) zu, der den Client mit dieser Client-ID besitzt.-
Es gibt hierzu einen Test, der die korrekte Zuordnung einer Destination zum User, dessen API-Client die Destination via Self-Service-API angelegt hat, prüft.
-
-
Das SSP legt für diese neue Destination im OAuth-Server für den aktuellen API-Client die Scopes manage:destination:...
,subscribe:destination:...
undhttps://schema.fitko.de/fit-connect/oauth/scopes/self-service-api/manage:destination:<id>
mit passenderaud
an. Die Zuordnung ist auch in der UI (in der Client-Verwaltung) sichtbar.-
Hierzu gibt es einen Test, der prüft, ob alle drei Scopes angelegt werden.
-
-
Neu: Das SSP prüft beim Bearbeiten ( PUT
/PATCH
) einer Destination, beim Hochladen neuer JWKs (POST /v1/destinations/{destinationId}/keys
) und beim Löschen einer Destination (DELETE
) über die Self-Service API, ob der anfragende Client den passendenhttps://schema.fitko.de/fit-connect/oauth/scopes/self-service-api/manage:destination:<id>
-Scope besitzt (insb. wichtig fürname
-Attribut). -
NEU: Die Self-Service-API enthält das replyChannels
-Attribut im Services-Objekt. -
Neu: Die Fehlermeldungen des Zustelldienst werden auch über die Self-Service-API ausgegeben. -
Prüfen beim PO-Review: Nebenwirkungen beim Erstellen der OAuth-Scopes mit #385 (closed)
Durchführungsplan (von Entwickler:in bei Umsetzungsplanung auszufüllen)
-
... -
... -
... -
Definition of Done wurde geprüft
Edited by Marco Holz