[Metadatenschema] Erweiterung Metadatenschema um "purpose: data"
User Story
Als Fachdienst möchte ich gerne die Möglichkeit unterstützen große Fachdaten zu empfangen.
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.
Details
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.
Akzeptanzkriterien
-
Das Metadatenschema wird um den "purpose" "data" erweitert -
Eine neue Version des Metadatenschemas ist veröffentlicht (bspw. 1.5.0) -
...
Mögliche Folgeaktivitäten (vom Entwickler zu ergänzen)
-
... -
... -
... -
Definition of Done was checked.