Skip to content
Snippets Groups Projects
Commit 32be3bf0 authored by David Schwarzmann's avatar David Schwarzmann
Browse files

Simpler explanation & minor fix

parent bc1ce1a7
No related branches found
No related tags found
1 merge request!27Erste Dokumentation des Antragsmetadatenschemas
#!/usr/bin/env bash #!/usr/bin/env bash
if [ ! -d "dist" ]; then mkdir -p dist
mkdir dist
fi
# Concatenate all files (enforce newline between files) # Concatenate all files (enforce newline between files)
cut -b 1- docs/_* docs/{1..5}_* docs/Detailinformationen/*.md > dist/docs.bundled.md cut -b 1- docs/_* docs/{1..5}_* docs/Detailinformationen/*.md > dist/docs.bundled.md
......
...@@ -22,12 +22,50 @@ curl --data '{ "destinationId": "7a2668ad-3081-407c-9358-7ce4b6144b02", "announc ...@@ -22,12 +22,50 @@ curl --data '{ "destinationId": "7a2668ad-3081-407c-9358-7ce4b6144b02", "announc
} }
``` ```
### **Befüllen** ### Definition der Antragsmetadaten
> TBD (Wichtigste Teil) Das Minimum, was an Antragsmetadaten hinterlegt werden muss, ist eine Beschreibung der Struktur des Antrags, sowie die ID des Antrags selbst.
In der Beschreibung der Struktur muss angegeben werden, ob Fachdaten mit versendet werden und in welchem Format diese sind. Des Weiteren können Anhänge mit ihren Metainformationen beschrieben werden, die dem Antrag beigefügt sind.
### Verschlüsseln (verschlüsseln nach XYZ) --> woanders beschrieben Ein Beispiel hierfür ist unten dargestellt:
```json
{
"contentStructure": {
"data": {
"schema": {
"mimeType": "application/json",
"schemaSource": "none"
}
},
"docs": [
{
"docId": "1",
"purpose": "form",
"size": 13046,
"mimeType": "application/pdf",
"filename": "test.pdf",
"description": "Das Antragsformular",
"lang": {
"lang": "de",
"region": "DE"
},
"hash": {
"algorithm": "SHA-256",
"digest": "bf37d894fdf9aeade63975ed648d49c3e8a7a773923597d2418915f54cd7c3b9"
}
}
]
},
"applicationId": "ce75a6b8-d72f-4b94-b09e-af6be35bc2ae"
}
```
Abhängig von den Rahmenbedingungen können die weiteren Felder, die im Antragsmetadatenschema definiert sind, befüllt werden und mitversendet werden. Ob diese jedoch ausgewertet werden oder nicht hängt von dem entsprechenden Empfänger ab.
### Verschlüsseln
Nun wird das JSON-Objekt aus dem vorherigen Schritt verschlüsselt und kann dann im nächsten Schritt mit dem Antrag abgesendet werden.
Die Verschlüsselung eines Objektes mit Hilfe von JWE ist im Bereich "[Verschlüsselte Übertragung](#verschlüsselte-übertragung)" genauer beschrieben und kann dort nachgelesen werden. Die Verschlüsselung eines Objektes mit Hilfe von JWE ist im Bereich "[Verschlüsselte Übertragung](#verschlüsselte-übertragung)" genauer beschrieben und kann dort nachgelesen werden.
### Versenden des Antrags ### Versenden des Antrags
...@@ -111,13 +149,44 @@ curl -H 'X-AnwenderId: subscriber' -X GET localhost:8080/applications/9d618546-0 ...@@ -111,13 +149,44 @@ curl -H 'X-AnwenderId: subscriber' -X GET localhost:8080/applications/9d618546-0
} }
``` ```
### Entschlüsseln (Entschlüsseln nach XYZ) --> woanders beschrieben ### Entschlüsseln
Die Entschlüsselung eines Objektes mit Hilfe von JWE ist im Bereich "[Verschlüsselte Übertragung](#verschlüsselte-übertragung)" genauer beschrieben und kann dort nachgelesen werden. Um den Antrag korrekt verarbeiten und überprüfen zu können müssen zuerst alle verschlüsselten Informationen entschlüsselt werden. Darunter fallen beispielsweise die Antragsmetadaten, die Fachdaten (falls vorhanden) oder Dokumente (falls vorhanden).
### **Validieren** Die Entschlüsselung eines solchen Objektes mit Hilfe von JWE ist im Bereich "[Verschlüsselte Übertragung](#verschlüsselte-übertragung)" genauer beschrieben und kann dort nachgelesen werden.
> TBD (Wichtigste Teil) ### Validierung der Antragsmetadaten
Das Minimum, was an Information vorhanden sein muss sind die Felder `contentStructure` und `applicationId`. Zustäzlich können je nach Anwendungsfall oder Notwendigkeit weitere Felder auf Existenz überprüft werden. Die gültigen Formate sind im Schema definiert und können mit Hilfe von Bibliotheken für die Validierung einer Instanz von Antragsmetadaten verwendet werden. Beispiele für die Definition von Formaten für Felder sind unten aufgeführt.
```json
{
...
"country": {
"type": "string",
"description": "Staat gemäß Codeliste [https://www.xrepository.de/details/urn:de:bund:destatis:bevoelkerungsstatistik:schluessel:staat](Codeliste Staat aus der Staats- und Gebietssystematik des Statistischen Bundesamtes)",
"minLength": 3,
"maxLength": 3,
"pattern": "^[0-9]{3}$"
},
...
"postalCode": {
"type": "string",
"description": "Postleitzahl",
"minLength": 5,
"maxLength": 5,
"pattern": "^([0]{1}[1-9]{1}|[1-9]{1}[0-9]{1})[0-9]{3}$"
},
...
"applicationId": {
"type": "string",
"format": "uuid",
"pattern": "^[-_.A-Za-z0-9]+$",
"description": "ID des Antrags"
},
...
}
```
### Verarbeiten des Antrags ### Verarbeiten des Antrags
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment