[Epic] Standardvorgehen für große Fachdatensätze
Warum
Anlagen sollten als separate Attachments in FIT-Connect übertragen werden. Derzeit gibt es allerdings noch XÖV-Standards, die fordern, die Anlagen in den Fachdatensatz einzubetten. Auch viele Onlinedienste und Verwaltungssysteme haben dieses Vorgehen implementiert.
FIT-Connect unterstützt nur maximal ca. 10-14 MB große Fachdatensätze, was im Normalfall ausreichend ist. Werden Anlagen in den Fachdatensatz eingebettet, so kann dieser das gesetzte Limit überschreiten.
Damit betroffene Onlinedienste und Verwaltungssystem keine bilateralen Absprachen treffen müssen, soll FIT-Connect ein Standardvorgehen für große Fachdatensätze definieren.
Ziel
Wir definieren eine Maximalgröße des Fachdatensatzes von 10 MB. Größere Fachdatensätze müssen als Attachment gesendet werden.
Als encryptedData
wird als Platzhalter ein leerer String übertragen.
Der Metadatensatz wird wie folgt befüllt:
-
contentStructure
:-
data
:-
submissionSchema
: Wird normal befüllt -
hash
: Hash über den Platzhalter-
type
: immersha512
-
content
: immercf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
(Hash über 0 Bytes)
-
-
-
attachments
: Enthält in diesem Fall normalerweise nur eine Anlage (der Fachdatensatz), da die eigentlichen Anlagen im Fachdatensatz eingebettet sind.-
attachmentId
: Zufällige UUID -
purpose
: immerdata
; neuer Wert für "Fachdatensatz" (siehe Hinweis untern) -
filename
: Kann frei gewählt werden; Empfehung:data.json
bzw.data.xml
, je nach Datentyp -
description
: Kann frei gewählt werden, z.B. "Fachdatensatz als Anlage" -
mimeType
: Je nach Datentypapplication/json
oderapplication/xml
-
hash
: Hash des Fachdatensatzes-
type
: immersha512
-
content
: SHA-512-Hash des Fachdatensatzes
-
-
-
Beispiel für den Eintrag des Fachdatensatz im Metadatensatz:
{
"contentStructure": {
"data": {
"submissionSchema": {
"schemaUri": "urn:xoev-de:d-nrw:standard:xsozialbasis_2.2.0#vorgang.transportieren.1000001",
"mimeType": "application/xml"
},
"hash": {
"type": "sha512",
"content": "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"
}
},
"attachments": [
{
"attachmentId": "32e522fa-2fde-4893-bcf9-a57c1a07398e",
"purpose": "data",
"filename": "data.xml",
"description": "Fachdatensatz als Anlage",
"mimeType": "application/xml",
"hash": {
"type": "sha512",
"content": "246065c584233bf35406872c180f96f05ff9f6d62d3daa830a37e149891ac5dcf533981bf2cdc98a3f06464683d372052f1ffcd2937988f9f59cb325f3518afc"
}
}
]
}
}
Das Verwaltungssystem erkennt an der purpose: data
,
dass es sich bei dieser Anlage um den Fachdatensatz handelt
und verwendet diese statt dem in encryptedData
übertragenen Platzhalter.
Die Kennzeichnung purpose: data
darf nur bei einer Anlage gesetzt werden.
Ist mehr als eine Anlage gekennzeichnet, so muss das Verwaltungssystem die Übertragung mit einem Fehler (reject-submission
) abbrechen.
Für die Einführung von purpose: data
ist eine neue Metadatenschemaversion notwendig.
Bis dahin kann ersatzweise der Wert form
verwendet werden.
Links, Hinweise, Bemerkungen
Stories
- Erweiterung des Metadatenschemas um "purpose: data" für den Fachdatensatz team::SDK #2250 (closed)
- Dokumentation des Standardvorgehen für große Fachdatensätze team::Doku https://git.fitko.de/fit-connect/planning/-/issues/2253
- Umsetzung des Standardvorgehens im Java-SDK team::SDK #2251 (closed)
- Umsetzung des Standardvorgehens im Dotnet-SDK team::SDK #2252
- Unterstützung der neuen Metadatenschema-Version im Zustelldienst team::ZSD #2255 (closed)
- Unterstützung der neuen Metadatenschema-Version im Self-Service-Portal team::SSP #2254
Akzeptanzkriterien
-
Überprüfen der Möglichkeit, ob eine Validierung der Fachdaten weiterhin möglich ist -
Große Fachdaten werden als Attachment gesendet -
... -
Definition of Done wurde überprüft.
Mögliche Folgeaktivitäten
Offene Fragen
- Wird in den SDKs bei der Übertragung des Fachdatensatzes als Anlage die Schema-Validierung automatisch deaktiviert?
- Falls ja: Wo dokumentieren wir das?