Zu restriktives `$schema`-Enum im SET-Payload
Zusammenfassung
Die $schema
-Property im SET-Payload ist in der Version 1.0.0
des zugehörigen JSON-Schema als enum
mit dem einzig erlaubten Wert https://schema.fitko.de/fit-connect/set-payload/1.0.0/set-payload.schema.json
abgebildet. Bei zukünftigen Versionen des JSON-Schema (z.B. Version 1.0.1
) wird die Schema-Validierung in den FIT-Connect-SDKs daher fehlschlagen.
Schritte zum Reproduzieren
- SET-Payload-Schema in der Version 1.0.1 veröffentlichen.
- Der Zustelldienst erstellt SET mit
$schema: "https://schema.fitko.de/fit-connect/set-payload/1.0.1/set-payload.schema.json"
. - Der Payload des vom ZSD erstellen SET ist kein gültiger Payload gemäß des SET-Payload-Schema in Version
1.0.0
, obwohl es sich um abwärtskompatible Änderungen handeln sollte.
Wie verhält sich der aktuelle Fehler?
SET-Payload mit $schema: "https://schema.fitko.de/fit-connect/set-payload/1.0.1/set-payload.schema.json"
werden vom 1.0.0
-SET-Payload-Schema abgelehnt.
Was ist das erwartete richtige Verhalten?
SET-Payload mit $schema: "https://schema.fitko.de/fit-connect/set-payload/1.0.1/set-payload.schema.json"
werden vom 1.0.0
-SET-Payload-Schema akzeptiert.
Lösungsoptionen
- Das im Schema enthaltene
enum
wird durch einen RegEx ersetzt, der alle Versionen der Form1.x.x
akzeptiert.
Akzeptanzkriterien
-
Es wurde geprüft, dass SET-Payloads, die gemäß Schema-Version 1.0.1 erstellt wurden, vom SET-Payload-Schema in der Version 1.1.0 akzeptiert werden. -
Die Prüfung von Schemata gegen Beispiel-Payloads erfolgt automatisiert via GitLab-CI im SET-Payload-Schema-Repo -
Im Changelog wird zum Release des neuen Schema (Verison 1.1.0
) folgendes beschrieben: In dem durch das Schema beschriebenen SET-Payload gibt das$schema
-Attribut an, welcher Version des SET-Payload-Schema der SET-Payload entspricht. Die Versionen1.0.0
und1.0.1
SET-Payload-Schema haben eigentlich zum Schema kompatible Varianten des SET-Payload (dieselbe Major-Version) aufgrund zu restriktiver Prüfung des$schema
-Attributs nicht als gültig anerkannt. Version1.1.0
akzeptiert nun alle SET-Payloads mit Major-Version1
. Aus diesem Grund sollten die Versionen 1.0.0 und 1.0.1 des SET-Payload-Schema nicht mehr genutzt werden. -
Die Dokumentation unter Prüfung eines Security-Event-Token (SET) ist korrigiert. Insb. ist die Falschaussage, dass $schema
in Verison 0.1.0 nicht verpflichtend war, gelöscht. -
Die neue Version des SET-Payload-Schema wird nach dem PO-Review als Version 1.1.0
veröffentlicht. -
Das im Java-SDK hinterlegte SET-Payload-Schema wird auf die Version 1.1.0
aktualisiert. -
Das im .NET-SDK hinterlegte SET-Payload-Schema wird auf die Version 1.1.0
aktualisiert. -
Es wurde überprüft, ob der Zustelldienst Accept-Events in der Version 1.1.0
akzeptiert. Falls nicht, muss die Implementierung des Zustelldienstes angepasst werden (ggf. in Folge-Issue, vgl. #317 (closed)). -> Bug-Issue: #994 (closed)
Relevante Protokolle/Screenshots/Anfragen
Umsetzung
Edited by Klaus Fischer