SDK - Java: XML-Validierung in Version 2.5.0 per Default eingeschaltet und fehlerhaft [OpenCode 82]
Description of the bug:
Einem unserer mitnutzenden Ländern ist eine Änderung des Verhaltens des FIT-Connect-SDK 2.5.0 aufgefallen, die einen Breaking Change darstellt. Der EfA-Onlinedienst aus Sachsen-Anhalt sendet die Antragsdaten in einem FIM-basierten XML-Format an FIT-Connect und nutzt dafür eine URN als SchemaUri, die durch das FIM-Werkzeug ARIS generiert wird. Es handelt sich also nicht um ein XÖV-Schema. Beim abrufenden Fachverfahren des mitnutzenden Landes tritt mit Version 2.5.0 nun dieser Fehler auf:
Requesting XML schemas from https://www.xrepository.de/api/version_standard/urn:xoev-de:xfall:standard:fim-s17000725_2.1/xmlschema Received response 404 for GET on https://www.xrepository.de/api/version_standard/urn:xoev-de:xfall:standard:fim-s17000725_2.1/xmlschema
Das ist leider erwartbar, denn das neue Verhalten des SDK ist nun so, dass die URN des Schemas zwingend auf ein XÖV-Schema im XRepository zeigen muss, welches dann als ZIP-Datei heruntergeladen wird. Unabhängig von der Caching-Problematik, die am entsprechenden Epic ( #1151) diskutiert wird, sollte dies nicht das Standardverhalten sein. Ein XML-Schema muss nicht zwingend im XRepository vorhanden sein. Es kann auch im FIM-Sammelrepository existieren oder auch nur als Datei vorliegen. Die entsprechende JSON-Implementierung berücksichtigt sowohl ein Caching als auch die Möglichkeit, Schemadateien als Datei abzulegen und darauf zu verweisen. Die Umsetzung widerspricht auch dem Akzeptanzkriterium Nr. 1 des Epics:
In der 1. Iteration werden die SDKs die Schematas auf Anfrage laden, um dagegen zu validieren.
Die Schematas werden in der aktuellen Implementierung nicht auf Anfrage geladen, sondern per Default. Das Feature sollte unserer Meinung nach als experimentell gekennzeichnet und explizit aktiviert werden müssen.
Current behavior:
Wir haben dem mitnutzenden Land empfohlen, die Validierung zu skippen, aber dies ist keine Dauerlösung, da über die eingesetzte Komponente verschiedene Anträge empfangen werden. Da die JSON-Implementierung recht stabil ist, sollte diese aktiviert sein, die XML-Implementierung allerdings nicht.
Expected behavior:
-
Keine Breaking Changes
-
die XML-Validierung sollte meiner Meinung nach explizit eingeschaltet werden, da die aktuelle Lösung in sehr vielen Fällen dazu führen wird, dass nach einem Update ohne Konfigurationsanpassung erst einmal alle Anträge rejected werden.
Environments:
DEV, TEST, STAGE, PROD
Additional Information:
https://gitlab.opencode.de/fitko/feedback/-/issues/82
Dependency / relationship to other issues:
Responsible person / team:
Contact persons including contact details:
Screenshots / Logs / Requests:
Checklist:
-
Add Severity label -
Add team label -
Related/affected issues/stories/epics linked and explained in the bug issue -
Creation of an automated test -
Bugfix deployed on DEV -
Bugfix tested on DEV -
Bugfix deployed on TEST -
Bugfix tested on TEST (possibly also by the connection project itself) -
Successful fix reported to Team Operations (Teams channel) -
Bugfix deployed on STAGE -
Bugfix tested on STAGE if necessary -
Bugfix deployed on PROD -
Bugfix tested on PROD (possibly also by the connection project itself) -
Final communication by Team Operations if necessary -
Internal documentation was checked and updated if necessary -
External documentation has been checked and updated if necessary -
Updated changelog if necessary