Skip to content

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

  1. SET-Payload-Schema in der Version 1.0.1 veröffentlichen.
  2. Der Zustelldienst erstellt SET mit $schema: "https://schema.fitko.de/fit-connect/set-payload/1.0.1/set-payload.schema.json".
  3. 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 Form 1.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 Versionen 1.0.0 und 1.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. Version 1.1.0 akzeptiert nun alle SET-Payloads mit Major-Version 1. 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