Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • fit-connect/docs
1 result
Show changes
Commits on Source (67)
Showing
with 202 additions and 130 deletions
......@@ -5,4 +5,4 @@ hide_table_of_contents: true
import ApiSpec from '@views/ApiSpec'
<ApiSpec gitlabProjectId={"44"} path={"routing-api"} artifact={"routing-api.yaml"} version={"*"} includePrerelease={true} allowAuthentication={"false"} />
<ApiSpec gitlabProjectId={"44"} path={"routing-api"} artifact={"routing-api.yaml"} version={"*"} includePrerelease={true} allowAuthentication={"false"} allowTry={true} />
......@@ -2,7 +2,21 @@
Das Format dieser Datei basiert auf [Keep a Changelog](https://keepachangelog.com/de).
Das hier veröffentlichte Changelog bezieht sich auf die [Testinstanz von FIT-Connect](https://docs.fitko.de/fit-connect/docs/getting-started/first-steps#testing).
Das hier veröffentlichte Changelog bezieht sich auf die [Testinstanz von FIT-Connect](https://docs.fitko.de/fit-connect/docs/getting-started/get-started#testing).
## 2022-08-18
### Dokumentation
- Der Menüpunkt "Grundlagen" wurde umbenannt in "Infos für Entwickler:innen".
- Die Menüpunkte "Versand von Einreichung" und "Abruf von Einreichungen" befinden sich jetzt unterhalb des Menüpunkts "Grundlagen für Entwickler:innen".
## 2022-07-26
### Zustelldienst 1.8.1
- Fix: Eine erfolgreiche Prüfung der Signatur von Zustellpunkten ohne Antwortkanäle (`replyChannels`) war nicht möglich. Dies wurde behoben. Alle alten Signaturen wurden erneut berechnet und im DVDV aktualisiert. ([Story](https://git.fitko.de/fit-connect/planning/-/issues/487))
- Fix: Unter bestimmten Umständen war es möglich einen Anhang doppelt mit gleicher `attachmentId` zu hinterlegen.
## 2022-06-29
......@@ -16,7 +30,7 @@ Das hier veröffentlichte Changelog bezieht sich auf die [Testinstanz von FIT-Co
### Zustelldienst 1.5.15
- Prüfung der in Zustellpunkten hinterlegten Zertifikate (JWK). ([Story](https://git.fitko.de/fit-connect/planning/-/issues/119))
Fehler in der Zertifikatskette werden vorerst nur geloggt.
Fehler in der Zertifikatskette werden vorerst nur geloggt.
## 2022-06-02
......@@ -47,7 +61,7 @@ Das hier veröffentlichte Changelog bezieht sich auf die [Testinstanz von FIT-Co
## 2022-04-27
### Dokumentation
- [Beschreibung der Betriebsumgebungen](getting-started/first-steps.mdx#environments) ergänzt
- [Beschreibung der Betriebsumgebungen](getting-started/get-started.mdx#environments) ergänzt
## 2022-04-21
### Zustelldienst 1.5.11
......
---
title: Amtlicher Gemeindeschlüssel (AGS)
---
Der achtstellige Amtliche Gemeindeschlüssel (AGS) ist Vorgänger des [Amtlichen Regionalschlüssels (ARS)](./ars.mdx) und beschreibt eine Systematik zur Identifizierung der sogenannten _verwaltungspolitischen Gebiete_ in Deutschland - also Gemeinden, Kreise, Regierungsbezirke und Bundesländer.
Die netten Menschen von [Datenguide](https://datengui.de/) haben eine sehr schöne Darstellung und Beschreibung des Amtlichen Gemeindeschlüssels erstellt. Wir hätten es nicht besser erklären können und verweisen daher an dieser Stelle einfach auf den [Artikel zum AGS von Datenguide](https://datengui.de/statistik-erklaert/ags).
---
title: Amtlicher Regionalschlüssel (ARS)
---
Der zwölfstellige [Amtliche Regionalschlüssels (ARS)](https://de.wikipedia.org/wiki/Amtlicher_Gemeindeschl%C3%BCssel#Regionalschl%C3%BCssel) löst den [Amtlichen Gemeindeschlüssel (AGS)](./ags.mdx) ab und erweitert ihn um einen Verbandsschlüssel. Der ARS ist wie folgt aufgebaut:
```
1.–2. Stelle = Kennzahl des Bundeslandes
3. Stelle = Kennzahl des Regierungsbezirks; wenn nicht vorhanden: 0
4.–5. Stelle = Kennzahl des Landkreises oder der kreisfreien Stadt
6.–9. Stelle = Verbandsschlüssel
10.–12. Stelle = Gemeindekennzahl
```
Eine Liste der amtlichen Regionalschlüssel findet sich im [Gemeindeverzeichnis des Statistischen Bundesamtes](https://www.destatis.de/DE/Themen/Laender-Regionen/Regionales/Gemeindeverzeichnis/_inhalt.html) sowie im [XRepository](https://www.xrepository.de/details/urn:de:bund:destatis:bevoelkerungsstatistik:schluessel:rs).
:::tip Hinweis
Eine interaktive Suche nach Amtlichen Regionalschlüsseln ermöglicht das [ARS-Tool](https://opengovtech.de/ars/) (Link geht zu externem Dienst).
:::
**Beispiel**: Mit der Angabe des zwölfstelligen ARS `081150045045` kann die Stadt Sindelfingen eindeutig adressiert werden:
Werden nicht alle zwölf Stellen des ARS angegeben, sondern nur ein Prefix des ARS, so können statt einer spezifischen Gemeinde auch darüberliegende Kreise, Regierungsbezirke oder Bundesländer abgebildet werden.
Wird ein solcher Prefix eines ARS angegeben, schließt dieser alle sich darin befindlichen Gliederungen mit ein.
**Beispiel**: Der ARS `081` steht für den Regierungsbezirk Stuttgart und schließt den darunterliegenden Stadtkreis Stuttgart (`08111`) sowie weitere Landkreise, Städte und Gemeinden, wie z.B. die Stadt Böblingen (ARS: `081150003003`), im Regierungsbezirk mit ein.
Eine Einschränkung auf konkrete Verwaltungsebenen ist durch das Auffüllen des ARS auf zwölf Stellen mit Nullen möglich.
**Beispiel**: Der Schlüssel `081150000000` referenziert explizit nur den Kreis Böblingen, nicht jedoch beispielsweise die Stadt Leonberg (ARS: `081150028028`), die im Kreis Böblingen liegt.
Hierdurch ist bei FIT-Connect eine Suche nach Zustellpunkten möglich, die von der Kreisverwaltung Böblingen betrieben werden, ohne gleichzeitig auch Zustellpunkte der Stadt Leonberg zu ermitteln.
......@@ -51,19 +51,7 @@ Reine Leistungsscopes werden nicht vergeben sondern sind immer mit einer Region
### Einschränkung: Region
Eine Einschränkung der Berechtigung für bestimmte Regionen erfolgt auf Basis des zwölfstelligen [Amtlichen Regionalschlüssels (ARS)](https://de.wikipedia.org/wiki/Amtlicher_Gemeindeschl%C3%BCssel#Regionalschl%C3%BCssel), vorangestellt mit `DE`:
```
1.-2. Stelle = DE
3.–4. Stelle = Kennzahl des Bundeslandes
5. Stelle = Kennzahl des Regierungsbezirks; wenn nicht vorhanden: 0
6.–8. Stelle = Kennzahl des Landkreises oder der kreisfreien Stadt
8.–11. Stelle = Verbandsschlüssel
12.–14. Stelle = Gemeindekennzahl
```
Es ist je möglich nur einen Teil des ARS anzugeben, z.B. nur `DE` + Bundesland + Regierungsbezirk.
Eine Liste der amtlichen Regionalschlüssel findet sich im [Gemeindeverzeichnis des Statistischen Bundesamtes](https://www.destatis.de/DE/Themen/Laender-Regionen/Regionales/Gemeindeverzeichnis/_inhalt.html) sowie im [XRepository](https://www.xrepository.de/details/urn:de:bund:destatis:bevoelkerungsstatistik:schluessel:rs).
Eine Einschränkung der Berechtigung für bestimmte Regionen erfolgt auf Basis des zwölfstelligen [Amtlichen Regionalschlüssels (ARS)](../ars.mdx), vorangestellt mit `DE`.
**Hinweis**: Ohne zusätzliche Einschränkung auf eine Leistung ist ein Zustellberechtigungs-Scope für alle Leistungen in der angegebenen Region gültig.
......
......@@ -97,13 +97,24 @@ Um [Replay-Angriffe](https://de.wikipedia.org/wiki/Replay-Angriff) zu vermeiden,
Dieser Timestamp wird im HTTP-Header `callback-timestamp` übertragen.
Bei der Prüfung der Echtheit des ausgelösten Callbacks **MÜSSEN** API-Clients prüfen, dass der angegebene Timestamp nicht älter als **5 Minuten** ist.
Das folgende Beispiel zeigt die Verwendung der HTTP-Header `callback-authentication` und `callback-timestamp`:
Das folgende Beispiel zeigt die Verwendung der HTTP-Header `callback-authentication` und `callback-timestamp`.
Zu beachten ist, dass das Feld `submissionIds` als *deprecated* markiert wurde und durch das Feld `submissions` ersetzt werden soll.
```http
POST /callbacks/fit-connect
callback-authentication: 798cd0edb70c08e5b32aa8a18cbbc8ff6b3078c51af6d011ff4e32e470c746234fc4314821fe5185264b029e962bd37de33f3b9fc5f1a93c40ce6672845e90df
callback-authentication: 2056b372b5bcec06d8f11ab79b84b42d6cbe1c8e1178cdfa36e4385dcf717758aaa7599f417d9ec3e079087884f4fd59680bf713621383e2d4414ef74fb10df3
callback-timestamp: 1672527599
{"type":"https://schema.fitko.de/fit-connect/submission-api/callbacks/new-submissions","submissionIds":["f39ab143-d91a-474a-b69f-b00f1a1873c2"]}
{
"type":"https://schema.fitko.de/fit-connect/submission-api/callbacks/new-submissions",
"submissionIds":["f39ab143-d91a-474a-b69f-b00f1a1873c2"],
"submissions":[
{
"destinationId":"d12caea8-f372-4eb1-b102-b0a228253a11",
"submissionId":"f39ab143-d91a-474a-b69f-b00f1a1873c2",
"caseId":"9eec7d3e-dc66-4f82-9f52-1520bf96a32e"
}
]
}
```
Der HMAC wird gebildet aus dem im HTTP-Header `callback-timestamp` übertragenen Zeitstempel und dem im HTTP-Body übertragenen Payload, getrennt durch das Zeichen `.` (Punkt), jeweils UTF-8-kodiert. Der HMAC wird hexadezimal kodiert übertragen.
......
......@@ -36,7 +36,7 @@ Für ein XML-Schema wird die `schemaUri` wird wie folgt gebildet:
JSON Schema:
```json
{
"schemaUri": "https://schema.fitko.de/fim/s00000000009_1.0.0.schema.json",
"schemaUri": "https://schema.fitko.de/fim/s00000096_1.0.schema.json",
"mimeType": "application/json"
}
```
......
......@@ -12,16 +12,17 @@ Als Voraussetzungen hierfür ist es notwendig, Accounts für [API-Clients im Sel
## Abruf von Access Tokens beim OAuth-Dienst
:::note Hinweis
Die URL der Submission API und die OAuth-Token-URL finden sich im Artikel [Erste Schritte](first-steps.mdx#testing).
Die URL der Submission API und die OAuth-Token-URL finden sich im Artikel [Erste Schritte](get-started.mdx#testing).
:::
Fast alle Anfragen an die FIT-Connect Submission API müssen authentifiziert werden.
Hierfür ist ein Access Token notwendig, das beim OAuth-Dienst über die hierfür vorgesehene OAuth-Token-URL abgerufen werden kann.
Für den Abruf von Access Tokens ist die [Konfiguration eines API-Client im Self-Service-Portal](./account.mdx) nötig.
Bei der Konfiguration eines API-Client werden `client_id` und `client_secret` erzeugt.
Das Token kann anschließend bei Anfragen über den `Authorization` Header mitgeschickt werden.
Da ein Token **max. 30 Minuten** gültig ist, muss dieses rechtzeitig erneuert werden.
Wenn keine spezifischer Scope angefragt wird (siehe nächster Abschnitt), enthält der Access Token alle Scopes, die zu diesem Zeitpunkt beim Client im Self-Service-Portal hinterlegt wurden.
Da ein Token **max. 30 Minuten** gültig ist, muss dieses regelmäßig erneuert werden.
### Abfrage von Access Tokens mit allen zugewiesenen Scopes
<Tabs
defaultValue="curl"
......@@ -77,6 +78,8 @@ $ curl \
</TabItem>
</Tabs>
Wenn keine spezifischer Scope angefragt wird (siehe nächster Abschnitt), enthält der Access Token alle Scopes, die zu diesem Zeitpunkt beim Client im Self-Service-Portal hinterlegt wurden.
### Abfrage von Access Tokens mit spezifischen Scopes
Es ist möglich den Scope des Access Tokens zu beschränken.
......@@ -110,6 +113,7 @@ Weiterführende Details zu den Scopes finden sich hier:
## Zugriff auf die API mittels Access Token
Access Tokens werden vom OAuth-Dienst erzeugt und DÜRFEN NIEMALS an dritte Systeme (mit Ausnahme des Zustelldienstes zum Zwecke der Authentifizierung) weitergegeben werden.
Beim Zugriff auf die Submission API wird muss ein Access Token im `Authorization`-Header mit `Bearer`-Authentifizierungsschema gemäß [RFC 6750](https://datatracker.ietf.org/doc/html/rfc6750) an den Zustelldienst übermittelt werden:
**Beispiel**
......@@ -121,5 +125,5 @@ Authorization: Bearer ey...
```
:::note Hinweis
Die URL der Submission API findet sich im Artikel [Erste Schritte](first-steps.mdx#testing).
Die URL der Submission API findet sich im Artikel [Erste Schritte](get-started.mdx#testing).
:::
......@@ -7,22 +7,29 @@ Deshalb erfolgt eine Übertragung von Antragsdaten mit FIT-Connect ausschließli
## Warum ist Ende-zu-Ende-Verschlüsselung wichtig?
Im Kontext von Anträgen an Behörden werden häufig personenbezogene Daten übermittelt.
Solche Daten dürfen nach den [Vorgaben des BSI](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03107/TR-03107-1.pdf?__blob=publicationFile&v=4) nur Ende-zu-Ende-verschlüsselt übertragen werden.
Die FIT-Connect Architektur unterstützt dafür zwei Umsetzungs-Varianten - abhängig vom Schutzbedarf der zu übermittelnden Daten.
FIT-Connect bietet zur Absicherung der Übertragung von Antragsdaten und Antragsmetadaten eine auf asymmetrischer Kryptographie basierenden Inhaltsdatenverschlüsselung.
Abgesehen von denen für die Übermittlung zwingend notwendigen technischen Daten können so nur die Zielbehörde bzw. das Ziel-Fachverfahren die Antragsdaten und Antragsmetadaten entschlüsseln und lesen.
<img src={useBaseUrl('/images/encryption/ende-zu-ende.png')} alt="Grafik zur Veranschaulichung einer Ende-zu-Ende-Verschlüsselung" width="600" />
Die FIT-Connect Architektur unterstützt grundsätzlich zwei Umsetzungsvarianten für die verschlüsselte Übermittlung von Antragsdaten.
Abhängig vom Schutzbedarf der zu übermittelnden Daten sollte entschieden werden, welche Umsetzungs-Variante einzusetzen ist.
Besonders schutzbedürftige personenbezogene Daten dürfen nach den [Vorgaben des BSI](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03107/TR-03107-1.pdf?__blob=publicationFile&v=4) nur Ende-zu-Ende-verschlüsselt übertragen werden.
Für diese Daten ist es notwendig, dass die Antragsdaten bereits auf dem Endgerät der Anwender:in verschlüsselt werden (Ende-zu-Ende-Verschlüsselung).
FIT-Connect verwendet zur Absicherung der Übertragung von Antragsdaten und Antragsmetadaten eine auf asymmetrischer Kryptographie basierenden Ende-zu-Ende-Verschlüsselung.
Abgesehen von denen für die Übermittlung zwingend notwendigen Daten können so nur die Zielbehörde bzw. das Ziel-Fachverfahren die Antragsdaten und Antragsmetadaten entschlüsseln und lesen.
Für besonders schutzbedürftige personenbezogene Daten ist es notwendig, dass die Antragsdaten bereits auf dem Endgerät der Anwender:in verschlüsselt werden.
Für weniger kritische Daten kann alternativ auch eine Verschlüsselung der Daten im Backend des Onlinedienstes erfolgen.
Diese Umsetzungsvariante bietet eine geringere Sicherheit als die Umsetzung der Ende-zu-Ende-Verschlüsselung ab dem Endgerät der Antragsteller:in.
Zudem erhöhen sich in dieser Umsetzungsvariante die IT-Sicherheits- und Datenschutzanforderungen an den Betrieb des Onlinedienstes, da Antragsdaten in dieser Umsetzungsvariante im Klartext durch das Backend des Onlinedienstes verarbeitet werden.
<img src={useBaseUrl('/images/encryption/ende-zu-ende.png')} alt="Grafik zur Veranschaulichung einer Ende-zu-Ende-Verschlüsselung" width="600" />
Dafür stehen Anbietern von Online-Antragsverfahren eine Vielzahl von Bibliotheken zu Verfügung, um die erforderlichen Operationen im Browser der Anwender:in auszuführen.
Zur Verschlüsselung von Antragsdaten im Endgerät der Antragsteller:in kann das FIT-Connect-JavaScript-SDK genutzt werden.
Das SDK garantiert dabei die korrekte Implementierung der erforderlichen kryptographischen Operationen im Browser der Antragsteller:in.
So verlassen sämtliche Inhaltsdaten das Endgerät der Nutzer:in immer verschlüsselt.
Beispiele wie Anträge im Rahmen von FIT-Connect verschlüsselt werden können, finden Sie unter [Verschlüsselung](../sending/encrypt.mdx).
Beispiele, wie Anträge im Rahmen von FIT-Connect verschlüsselt werden können, finden sich unter [Verschlüsselung](../sending/encrypt.mdx).
## Grundlagen zur eingesetzten Verschlüsselung
Die Ende-zu-Ende-Verschlüsselung von FIT-Connect wird mithilfe von hybrider Verschlüsselung auf Basis von [JSON Web Encryption (JWE)](https://datatracker.ietf.org/doc/html/rfc7516) umgesetzt.
Die Inhaltsdatenverschlüsselung von FIT-Connect wird mithilfe von hybrider Verschlüsselung auf Basis von [JSON Web Encryption (JWE)](https://datatracker.ietf.org/doc/html/rfc7516) umgesetzt.
Dieser Ansatz kombiniert die Vorteile von symmetrischer und asymmetrischer Verschlüsselung.
Im Folgenden sollen die Grundlagen kurz erläutert werden.
......
# Erste Schritte
# Getting Started
Im folgenden "Getting Started"-Guide wird beschrieben, wie die ersten Interaktionen mit FIT-Connect ablaufen und FIT-Connect in IT-Systeme zum Versand und Empfang von Antragsdaten integriert werden kann.
In den nächsten Abschnitten wird beschrieben, wie man sich [gegenüber FIT-Connect authentifiziert](./authentication.mdx), Daten für die Übertragung [ver- und entschlüsselt](./encryption.mdx) werden, sowie welche Schritte für das [Einreichen](../sending/overview.mdx) bzw. [Empfangen](../receiving/overview.mdx) von Einreichungen (Anträge oder Berichte) notwendig sind.
......
......@@ -41,7 +41,7 @@ Die [Fachschemareferenz im Metadatensatz](../metadata/contentStructure.mdx) gibt
"contentStructure": {
"data": {
"schema": {
"schemaUri": "https://schema.fitko.de/fim/s00000000009_1.0.0.schema.json",
"schemaUri": "https://schema.fitko.de/fim/s00000096_1.0.schema.json",
"mimeType": "application/json"
}
}
......@@ -52,7 +52,7 @@ Die [Fachschemareferenz im Metadatensatz](../metadata/contentStructure.mdx) gibt
- Laden Sie das Fachschema herunter
```
➜ wget -nv https://schema.fitko.de/fim/s00000000009_1.0.0.schema.json
➜ wget -nv https://schema.fitko.de/fim/s00000096_1.0.schema.json
```
- Nun können Sie den Fachdatensatz gegen das vorliegende Fachschema "s00000000009_1.0.0.schema.json" prüfen.
......
......@@ -38,7 +38,7 @@ Die Fachschemareferenz ist im Zustellpunkt daher immer einer dazugehörigen Leis
"identifier":"urn:de:fim:leika:leistung:99010003001006",
"submissionSchemas":[
{
"schemaUri":"https://schema.fitko.de/fim/s00000121_1.0.0.schema.json",
"schemaUri":"https://schema.fitko.de/fim/s00000121_1.0.schema.json",
"mimeType":"application/json"
}
],
......@@ -51,11 +51,11 @@ Die Fachschemareferenz ist im Zustellpunkt daher immer einer dazugehörigen Leis
...
"submissionSchemas":[
{
"schemaUri":"https://schema.fitko.de/fim/s00000000009_1.1.0.schema.json",
"schemaUri":"https://schema.fitko.de/fim/s00000092_1.0.schema.json",
"mimeType":"application/json"
},
{
"schemaUri":"https://schema.fitko.de/fim/s00000000010_1.0.0.schema.json",
"schemaUri":"https://schema.fitko.de/fim/s00000103_1.0.schema.json",
"mimeType":"application/json"
}
],
......@@ -76,7 +76,7 @@ Zusätzlich muss das sendende System eine identische Fachschemareferenz in den M
"contentStructure": {
"data": {
"submissionSchema": {
"schemaUri": "https://schema.fitko.de/fim/s00000000009_1.0.0.schema.json",
"schemaUri": "https://schema.fitko.de/fim/s00000092_1.0.schema.json",
"mimeType": "application/json"
}
}
......
......@@ -6,6 +6,8 @@ hide_table_of_contents: true
| Begriff | Beschreibung |
|---------|--------------|
| FIT-Connect Adressierungsinformationen | Für die Zuständigkeitsfindung im Portalverbund ist eine Hinterlegung von signierten Adressierungsinformationen in einem Landes-Redaktionssystem notwendig (siehe Artikel [Konfiguration des Antragsroutings](responsibilities/routing.mdx)). Die FIT-Connect-Adressierungsinformationen werden im Format XZuFi von den Landes-Redaktionssystemen an das Onlinegateway des Portalverbundes (PVOG) übermittelt und vom FIT-Connect Routingdienst in Kombination mit den im Deutschen Verwaltungsdiensteverzeichnis (DVDV) zur Zuständigkeitsfindung / technischen Adressierung von *Zustellpunkten* genutzt. |
| Amtlicher Gemeindeschlüssel (AGS) | Schlüssel zur Identifizierung von verwaltungspolitischen Gebieten. Siehe [AGS](./details/ags.mdx) |
| Amtlicher Regionalschlüssel (ARS) | Schlüssel zur Identifizierung von verwaltungspolitischen Gebieten. Nachfolger des AGS. Siehe [ARS](./details/ars.mdx) |
| Angekündige Anlage | Angabe gegenüber dem Zustelldienst, welche Anlagen übermittelt werden. Teilmenge der Angaben in der `contentStructure` im verschlüsselten Metadatensatz. |
| Anlage (attachment) | Einer Einreichung können optional Anlagen beigefügt werden. Diese sind nicht zwingend maschinenlesbar oder an Standards geknüpft. |
| Antragsteller:in (applicant) | Bezeichnung der Person (Verwaltungskund:in), die über ein sendendes System (z.B. Onlinedienst) einen Antrag stellt. |
......
......@@ -9,6 +9,11 @@ Um eine Einreichung korrekt verarbeiten und überprüfen zu können müssen zuer
Darunter fallen beispielsweise die Metadaten, die Fachdaten (falls vorhanden) oder Anlagen (falls vorhanden).
## Entschlüsseln von Daten in empfangenden Systemen
<!-- https://git.fitko.de/fit-connect/examples/ -->
:::note Hinweis
Im folgenden werden Auszüge aus dem Quellcode von Beispielen verwendet.
Die vollständigen Beispiele finden Sie [hier](https://git.fitko.de/fit-connect/examples/).
:::
<Tabs
defaultValue="java"
......@@ -39,9 +44,11 @@ RSAKey jwk = RSAKey.parse(keyStr);
```
Nach dem Einlesen können die verschlüsselten Daten (repräsentiert als Base64URL-kodierter String) mithilfe des Schlüssels entschlüsselt werden.
Auch hier wird wieder abhängig vom Schlüssel eine entsprechende Klasse für die Entschlüsselung verwendet, im Falle der RSA Schlüssel die Klasse `RSADecrypter`.
Auch hier wird wieder abhängig vom Schlüssel eine entsprechende Klasse für die Entschlüsselung verwendet, im Falle der RSA Schlüssel die Klasse `RSADecrypter`. Mehr Informationen zum validieren des Schlüssels können [hier](../sending/encrypt.mdx#certificateValidation) nachgelesen werden.
```java
// Schlüssel validieren
validateRSAKey(jwk, true);
// ⤹ InputStream
String encryptedStr = new String(jweString.readAllBytes());
JWEObject jweObject = JWEObject.parse(encryptedStr);
......
......@@ -8,7 +8,7 @@ import ApiLink from '@site/src/components/ApiLink'
Der Abruf einer Einreichung ist über den Endpunkt <ApiLink api="submission-api" to="/v1/submissions/{submissionId}" /> möglich. Liegen zur Einreichung neben den verschlüsselten Metadaten (`encryptedMetadata`) und Fachdaten (`encryptedData`) zusätzlich weitere Anlagen vor, so sind die IDs der Anlagen im Feld `attachments` zu finden. Anlagen müssen separat heruntergeladen werden (siehe nächster Abschnitt). Einreichungen und deren Anlagen können dabei nur im Status Submitted oder Forwarded abgerufen werden.
:::note Hinweis
Die URL der Submission API findet sich im Artikel [Erste Schritte](../getting-started/first-steps.mdx#testing).
Die URL der Submission API findet sich im Artikel [Erste Schritte](../getting-started/get-started.mdx#testing).
:::
```bash title="Abfrage der Einreichung inkl. Fachdaten und Metadaten"
......
......@@ -12,14 +12,25 @@ Wenn ein Callback im Zustellpunkt hinterlegt ist, kann der Zustelldienst den Zus
Das Format, in welchem der Callback übertragen wird, ist im Endpunkt <ApiLink api="submission-api" to="/v1/destinations/{destinationId}" withMethod="put" /> definiert.
Die Konfiguration und Prüfung von Callbacks ist im Artikel [Verwendung von Callbacks](../details/callbacks.mdx) beschrieben.
Callbacks zur Benachrichtigung über neue Einreichungen haben das folgende Format:
Callbacks zur Benachrichtigung über neue Einreichungen haben aktuell das folgende Format.
Zu beachten ist, dass das Feld `submissionIds` als *deprecated* markiert wurde und durch das Feld `submissions` ersetzt werden soll.
```http
POST /callbacks/fit-connect
callback-authentication: 7f87a283486dea1765b1fcfa0d5a868d78b58f7440a266c843bbe31b53364c5671d5f1aeaf38359ce121d3494f7cb12e9618a8d51c9339abf57b568c8baf5246
callback-authentication: 2056b372b5bcec06d8f11ab79b84b42d6cbe1c8e1178cdfa36e4385dcf717758aaa7599f417d9ec3e079087884f4fd59680bf713621383e2d4414ef74fb10df3
callback-timestamp: 1672527599
{"type":"https://schema.fitko.de/fit-connect/submission-api/callbacks/new-submissions","submissionIds":["f39ab143-d91a-474a-b69f-b00f1a1873c2"]}
{
"type":"https://schema.fitko.de/fit-connect/submission-api/callbacks/new-submissions",
"submissionIds":["f39ab143-d91a-474a-b69f-b00f1a1873c2"],
"submissions":[
{
"destinationId":"d12caea8-f372-4eb1-b102-b0a228253a11",
"submissionId":"f39ab143-d91a-474a-b69f-b00f1a1873c2",
"caseId":"9eec7d3e-dc66-4f82-9f52-1520bf96a32e"
}
]
}
```
:::caution Warnung!
......
......@@ -4,8 +4,14 @@ title: Überblick
import Mermaid from '@site/src/components/Mermaid'
Für den Empfang von Einreichungen und die Verarbeitung dieser werden in diesem und den folgenden Abschnitten alle notwendigen Aktionen beschrieben, um schnell die ersten Schritte machen zu können.
Als Leitlinie dafür ist der unten dargestellte Prozessablauf heranzuziehen, dessen Schritte im Folgenden beschrieben werden.
In den folgenden Abschnitten werden alle notwendigen Schritte für den Empfang von Einreichungen und deren Verarbeitung beschrieben.
Der komplette Prozess vom Anlegen eines Zustellpunktes bis zur Bestätigung des erfolgreichen Antrgsempfangs ist im unten dargestellte Prozessablauf beschrieben.
An FIT-Connect angebundene Subscriber rufen Einreichungen immer selbst aktiv bei FIT-Connect ab (via GET-Requests).
Subscriber müssen also **nicht** über einen offenen Port aus dem Internet erreichbar sein, um Einreichungen empfangen zu können.
Für die Benachrichtigung über neue Einreichungen besteht die Möglichkeit der aktiven Information von angebundenen Fachverfahren [über ein Callback](./notification.mdx).
Wenn diese Option gewählt wird, muss der Subscriber über einen definierten Callback-Endpunkt aus dem Internet erreichbar sein.
Aus Sicht der IT-Sicherheit kann es dabei sinnvoll sein, die Kommunikation über einen in der DMZ betriebenen [Reverse-Proxy](https://de.wikipedia.org/wiki/Reverse_Proxy) oder eine [Web Application Firewall](https://de.wikipedia.org/wiki/Web_Application_Firewall) zu bündeln.
Bei nicht erfolgter Abholung einer Einreichung durch ein empfangendes System (Fachverfahren) erfolgt eine Benachrichtigung des technischen Kontakts auf Empfängerseite 3 Tage nach Eingang der Einreichung.
Sollte sich eine Einreichung mehr als 14 Tage im Status `submitted` befinden, wird [diese automatisch vom Server abgewiesen](../getting-started/notifications-and-deletion-deadlines.mdx) und in den Status `rejected` überführt.
......
......@@ -38,6 +38,12 @@ Sofern Sie den Fehler "'iat' must not be after ..." (`https://schema.fitko.de/fi
- Wurde die Zeitzone richtig angewendet (UTC + Zeitzone = lokale Zeit)?
- Wird die Systemzeit mit einem NTP-Server synchronisiert?
<!-- https://git.fitko.de/fit-connect/examples/-/tree/main/java/crypto/src/main/java -->
:::note Hinweis
Im folgenden werden Auszüge aus dem Quellcode von Beispielen verwendet.
Die vollständigen Beispiele finden Sie [hier](https://git.fitko.de/fit-connect/examples/-/tree/main/java/crypto/src/main/java).
:::
<Tabs
defaultValue="java"
values={[
......@@ -55,10 +61,41 @@ Sofern Sie den Fehler "'iat' must not be after ..." (`https://schema.fitko.de/fi
String transactionId = "case:f73d30c6-8894-4444-8687-00ae756fea90"; // caseId
```
Der [folgende Code](https://git.fitko.de/fit-connect/examples/-/blob/main/java/crypto/src/main/java/ParseSignedToken.java) kann zur Validierung des Schlüssels benutzt werden.
```java
public static void validateRSAKey(RSAKey RSAKey, boolean isPrivate){
validateTrueOrElseThrow(RSAKey.getModulus().decodeToBigInteger().bitLength() >= 4096, "JWK has wrong key length.");
validateTrueOrElseThrow(RSAKey.getAlgorithm().equals(JWSAlgorithm.PS512), "The specified public key does not use PS512 as algorithm.");
if(isPrivate){
validateTrueOrElseThrow(RSAKey.getKeyOperations().size() == 1 &&
RSAKey.getKeyOperations().contains(KeyOperation.SIGN),
"The specified private key is not intended for 'sign' as specified through key operation.")
}
else{
validateTrueOrElseThrow(RSAKey.getKeyOperations().size() == 1 &&
RSAKey.getKeyOperations().contains(KeyOperation.VERIFY),
"The specified public key is not intended for 'verify' as specified through key operation.")
};
validateTrueOrElseThrow(RSAKey.getPublicExponent().toString().equals("AQAB"), "The specified public key does not match the public exponent 'AQAB'.");
}
private static void validateTrueOrElseThrow(boolean expression, String msg) {
if (!expression) {
throw new RuntimeException(msg);
}
}
```
Die Payload- und Header-Attribute des SET müssen wie oben beschrieben definiert werden (siehe markierte Zeilen). Mehr Informationen zu dem SET Aufbau finden Sie unter [SET Erzeugen](../getting-started/event-log/set-creation.mdx)
Im dritten markierten Block wird das SET mit dem Schlüssel signiert. Anschließend kann der serialisierte Wert an den Endpunkt <ApiLink api="submission-api" to="/v1/cases/{caseId}/events" withMethod="post" /> gesendet werden.
```java
// Schlüssel validieren
validateRSAKey(key.toRSAKey(), true);
try {
JWSSigner signer = new RSASSASigner(signaturePrivateKey.toRSAKey());
JWTClaimsSet claimsSet = new JWTClaimsSet.Builder()
......@@ -72,7 +109,7 @@ Sofern Sie den Fehler "'iat' must not be after ..." (`https://schema.fitko.de/fi
JWSHeader header = JWSHeader.parse(Map.of(
"typ", "secevent+jwt",
"kid", signaturePublicKey.getKeyID(),
"kid", signaturePrivateKey.getKeyID(),
"alg", "PS512"
));
......
......@@ -24,9 +24,9 @@ Die Ermittlung der `destinationId` und die Ermittlung der technischen Parameter
Der Endpunkt erwartet genau zwei Parameter:
- Einen Identifikator einer Verwaltungsleistung. Als Identifikator der Verwaltungsleistung muss ein Leistungsschlüssel aus dem FIM-Baustein Leistungen (ehemals *LeiKa-Schlüssel*, siehe [Leistungskatalog im FIM-Portal](https://fimportal.de/kataloge#download-leistungen)) verwendet werden.
- Einen Identifikator eines verwaltungspolitischen Gebietes. Für den Identifikator des verwaltungspolitischen Gebietes kann entweder der [amtliche Gemeindeschlüssel (AGS)](https://www.destatis.de/DE/Themen/Laender-Regionen/Regionales/Gemeindeverzeichnis/Glossar/amtlicher-gemeindeschluessel.html), der [amtliche Regionalschlüssel (ARS)](https://www.destatis.de/DE/Themen/Laender-Regionen/Regionales/_FAQ/regionalschluessel.html) oder die [Id eines Gebietes](#verwaltungspolitische-gebiete-ermitteln) aus der Suche über den Endpunkt <ApiLink api="routing-api" to="/areas" /> verwendet werden.
- Einen Identifikator eines verwaltungspolitischen Gebietes. Für den Identifikator des verwaltungspolitischen Gebietes kann entweder der [amtliche Gemeindeschlüssel (AGS)](../details/ags.mdx), der [amtliche Regionalschlüssel (ARS)](../details/ars.mdx) oder die [Id eines Gebietes](#verwaltungspolitische-gebiete-ermitteln) aus der Suche über den Endpunkt <ApiLink api="routing-api" to="/areas" /> verwendet werden.
Der Endpunkt <ApiLink api="routing-api" to="/routes" /> implementiert Pagination.
Der Endpunkt <ApiLink api="routing-api" to="/routes" /> implementiert eine Pagination.
Das Ergebnis der Anfrage enthält daher neben der eigentlichen (Teil-)Ergebnismenge der Routing-Informationen (`routes`) auch Informationen wie Anzahl (`count`), Gesamtanzahl (`totalCount`) und Startpunkt der Ergebnismenge (`offset`).
Die zurückgegebene Teilergebnismenge ist standardmäßig auf 100 Einträge limitiert und kann über den GET-Parameter `limit` auf maximal 500 Einträge erweitert werden.
Über den GET-Paramter `offset` können weitere Teilmengen der Ergebnismenge ermittelt werden.
......@@ -36,96 +36,48 @@ Der Endpunkt <ApiLink api="routing-api" to="/routes" /> ist auf die Anzahl von A
Beispiele für das Ermitteln der benötigten Daten:
<Tabs
defaultValue="curl"
defaultValue="url"
values={[
{ label: 'Direkt via URL', value: 'url', },
{ label: 'curl', value: 'curl', },
]
}>
]}>
<TabItem value="url">
Die Routing-API kann direkt manuell über den Aufruf der folgenden Links ausprobiert werden:
- via ARS: https://routing-api-testing.fit-connect.fitko.dev/v1/routes?ars=064350014014&leikaKey=99123456760610
- via AGS: https://routing-api-testing.fit-connect.fitko.dev/v1/routes?ags=06435014&leikaKey=99123456760610
- via Area-ID (siehe Abschnitt [Verwaltungspolitische Gebiete ermitteln](#verwaltungspolitische-gebiete-ermitteln)): https://routing-api-testing.fit-connect.fitko.dev/v1/routes?areaId=931&leikaKey=99123456760610
</TabItem>
<TabItem value="curl">
```bash
$ export ROUTING_API=https://routing-api-testing.fit-connect.fitko.dev
$ curl \
-H "Content-Type: application/json" \
-X GET "$ROUTING_API/v1/routes?leikaKey=99108012005000&ags=15085055"
-X GET "$ROUTING_API/v1/routes?leikaKey=99123456760610&ars=064350014014"
```
```bash
$ export ROUTING_API=https://routing-api-testing.fit-connect.fitko.dev
$ curl \
-H "Content-Type: application/json" \
-X GET "$ROUTING_API/v1/routes?leikaKey=99108012005000&ars=150850055055"
-X GET "$ROUTING_API/v1/routes?leikaKey=99123456760610&ags=06435014"
```
```bash
$ export ROUTING_API=https://routing-api-testing.fit-connect.fitko.dev
$ curl \
-H "Content-Type: application/json" \
-X GET "$ROUTING_API/v1/routes?leikaKey=99108012005000&areaId=15529"
-X GET "$ROUTING_API/v1/routes?leikaKey=99123456760610&areaId=931"
```
</TabItem>
</Tabs>
Beispiel für die Response:
Alternativ können Aufrufe auch über das "Try"-Feature in der API-Dokumentation des Endpunktes <ApiLink api="routing-api" to="/routes" /> durchgeführt werden.
```json
{
"count": 1,
"offset": 0,
"totalCount": 1,
"routes": [
{
"destinationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"destinationSignature": "eyJraWQiOiJmT0hzdExPNGJlQnEwcHgtMDFwTEoyUnhQbUJEakNtbEtIQk84ZzVXLVNBIiwidHlwIjoiand0IiwiYWxnIjoiUFM1MTIifQ.eyJzdWJtaXNzaW9uSG9zdCI6InN1Ym1pc3Npb24tYXBpLWRldi5maXQtY29ubmVjdC5maXRrby5kZXYiLCJpc3MiOiJodHRwczpcL1wvcG9ydGFsLmF1dGgtZGV2LmZpdC1jb25uZWN0LmZpdGtvLmRldiIsInNlcnZpY2VzIjpbeyJnZWJpZXRJRHMiOlsidXJuOmRlOmJ1bmQ6ZGVzdGF0aXM6YmV2b2Vsa2VydW5nc3N0YXRpc3RpazpzY2hsdWVzc2VsOnJzOjEyMDY0NTQxMCJdLCJsZWlzdHVuZ0lEcyI6WyJ1cm46ZGU6ZmltOmxlaWthOmxlaXN0dW5nOjk5MTM0MDA1MDE3MDAwIl19XSwiZGVzdGluYXRpb25JZCI6ImFjNzE1ZjM0LTMzM2UtNDFmNC05YmI1LTE4NmIzMDllYTIzMyIsImlhdCI6MTYzNzg2MzQ4MSwianRpIjoiMmQxNDI2ZjItZDY3My00NmRlLTg2OGUtZDk2ODQ0ZDI0ZmUxIn0.gSfjbRck_BmhkVx-P-E9UexlQudEZV8auYTHXrCSM4ja3gDg2VGlpCjH3-WBvgdLp7zv0J0z9en6PecF73QV4ltik0c7j4tbpAPz9tmTu0pedjVrbkbWj4b4H-EyYt1IJeDyrZJglZ1EB4b_4mk5HNZHgZnbMx0QLhRci8-wJf76hJgoWHkebpXNjdHHqndFbpGa7HCiul1XeJVv8Ny6Fgb7Nu-c5-YmVl5kZSCmxURAZlZubk3jBaIfMOEXIth3B4FtOvEiEXkWTtH0r99eZkYdK-ykLuefenS_Ib56ZpZ67Sw3T-LuV5pIzhq--REL6PaCOvRkU88SS1iW8LmiwEIxCIwFNEpnohNYjy4ZG8CnCfD4SztRA9nQYohdh2Cc_3MafUX7wjz1vqlonmZ7m4QYfZCqtl3IkcJLeayBU5OHTlcvHAQRIfgvP9SJApJr_Y2p3p4fHePOVStxLMlCOCYcmf0EBibvUsuwbEbmeppP72OFOkCwA9I82Z0SnxLdaHLXup2f_z0OnJtxrJAZnhREyYSvL2HOJusNKfpNy360C7Kf2g-BzAEvD4K5LzqWhKrWgztn4SDmgWL_Z3Ez1e2ZqTzfmJXxE_WGit2Lr0rBd9vTPGYKidBLZ8B-2JJZCPbrqlTxPdWImPrgcZP0qpNsJdls4OJo7xz5ozwrR4Y",
"destinationParameters": {
"submissionUrl": "https://submission-api.fit-connect.example.org/v1",
"status": "active",
"submissionSchemas": [
{
"schemaUri": "urn:xoev-de:bmk:standard:xbau_2.2#baugenehmigung.antrag.0200",
"mimeType": "application/xml"
}
],
"encryptionKid": "NFNb7k84r61G9ayAAJItJCNGl7wKWif9HyBAgicJq_8",
"publicKeys": {
"keys": [
{
"kty": "RSA",
"key_ops": [
"wrapKey"
],
"alg": "RSA-OAEP-256",
"x5c": [
"...(base64 encoded cert)...",
"...(base64 encoded intermediate cert)...",
"...(base64 encoded root cert)..."
],
"kid": "NFNb7k84r61G9ayAAJItJCNGl7wKWif9HyBAgicJq_8",
"n": "1f1070XZ4NpHN2WqdH5c8dBUBPH99TJEvVXSP_jjZdOEzRJztUwSpIabtAvgDnNGmPTLs-jLlVR3NQCyKwOwpHVi3FmudKmIPplBFpsEpZ9JYBGpg8_ZbDN9fwJhob0KjAlsSY9mBOTfqLCqqVIJrk4fxBjwNaroCLkSbS2RrfMtUEW5T5Vo1uw2lnYTKq1uyhr1PG02mvDCBb0LMAqcMXRR6bdme8GN55S3UNWhsaonpq04aa8_baVdjoJYTk03VLORMojnnrJjxyPPiHRs2Re9JQoaVPy6TUrbFV63zvt30XM8ZJnla09yhMmuBJXpdtyWXKnKyqj8m9D5Vg68xksQVeJozpCAoBlsJeAheE31XPQwCBvamy46K669ZCkfkdhQgoIJMt1AVSef0qcLDg__nQ-rfIuYxHrtn7jgI0NeCGFbscxmzl08_LSj3nlj2-ag2uVq4bbdH3tziNxy_rr84N-6AA5iQe5v1L_zYXYWxGzaAOUWzJt0QRiEC9pF6Zqfrn4mPHn5lm2jtdM9AlmgkZtmK92rByfcMzo5-yEK37K96NtqpDCsoABUkvC1TLiqaCkGkQd1DmGnfNyGJV_eNMwmZyotom8WLS-icbQD913F9YlSTRsQYhFzw78pDJHHo4AtldMiQcpUY4qoVVpfpPZlMWTq7idnq6iO4MM",
"e": "AQAB"
}
]
},
"metadataVersions": [
"string"
],
"replyChannels": {
"eMail": {
"usePgp": true
},
"deMail": {},
"fink": {},
"elster": {}
}
},
"destinationParametersSignature": "eyJ0eXAiOiJKT1NFIiwiYWxnIjoiUFM1MTIiLCJraWQiOiJlOWJjMDk3YS1jZTUxLTQwMzYtOTU2Mi1kMmFkZTg4MmRiMGQiLCJjdHkiOiJhcHBsaWNhdGlvbi9qb3NlIn0..g9xgjWf-_3JjMAFwPgBB4iXFrkrsRS-Ois3pxWWcFzdZuu_I8jH9Bd4FAQpf6nJwPtytJgoWYkm7gTCMwKiQH7JknXXrdYcnHRrlU2aT9thjaK5uYKYvuDfvklvQvKTYtfqowkMtk3pl91TfB1Pyxbprx6u5qut_pI-z2E7SC8gJ6V8u1rT1wDHOp-xrvMHUQiH7Ugmyb7Tg_Dc55AL0FrZ2wmurdPK46iAZBfIpzNJgUbqrlKvKQkwbs11Bc2qRzrFIG8yMyuN-qhGxibokMoq1U3FjlxtNgwWQJJOYlMiCbMibkINsmZ5mGZDS_Dra89TVMz0_rZagj-mxJ5-DlIE7E1LsvUKXYBHhPFoCJTGH1Lla7AEWtZ59HNSalMjvgcGWTgp-xTbqo8Ej6PwUM9j7_lNH1kT0iSvuCTYktVJEmovmpT0gB9c0AaGbQfiZFk8UUiBSAVFoD2B-0EP8CkEDAxsL0xlDdSAeK4Zrvg2nnck8NjdDQa68KfW4Fp32cfdkWYhGJ13xNG889P0aofCv7Joj4zxVEsPGfvqe6b78i8oZOe_Tn2lIVBwxZ6phtvEmZ8w_aS4zGSuYXoXx1DOjwatvCuH3rKicbQpJwEX3Bbcmv-NSgVZDae4dntgc89zbPbAg1zsqZDyHublVSK8m7i5CVLKiDvXdoWidNbY",
"destinationName": "Einwohnermeldeamt",
"destinationLogo": "https://einwohnermeldeamt.beispielstadt.example.org/logo.png"
}
]
}
```
Ein Beispiel für eine Antwort des Routingdienstes findet sich in der in der API-Dokumentation der Routing-API im Endpunkt <ApiLink api="routing-api" to="/routes" />.
:::tip Hinweis
Sofern eine Destination-ID und die Adresse des zuständigen Zustelldienstes bereits bekannt sind, können die in einem Zustellpunkt hinterlegten technischen Parameter auch über den Endpunkt <ApiLink api="submission-api" to="/v1/destinations/{destinationId}" /> der Submission API des zuständigen Zustelldienstes [abgerufen werden (siehe unten)](#submissionapi).
......@@ -563,7 +515,7 @@ Beispiel für die Response
Zum Abruf der Zustellpunkt-Informationen stellt die Submission API einen Endpunkt bereit, der über Angabe des Parameters `destinationId` die technischen Parameter der Einreichung für den jeweiligen Zustellpunkt ausgibt. Diese kann genutzt werden, wenn die `destinationId` bereits bekannt ist. Die angebotenen Informationen über eine Destination unterscheiden sich fachlich nicht von den Information aus der Routing API. Bei der Submission API muss lediglich der Verschlüsselungsschlüssel über einen zusätzlichen Endpunkt abgerufen werden, anstatt diesen zusammen mit den anderen Informationen in einer Response zu erhalten (siehe Artikel [Verschlüsseln](../sending/encrypt.mdx)).
:::note Hinweis
Die URL der Submission API findet sich im Artikel [Erste Schritte](../getting-started/first-steps.mdx#testing).
Die URL der Submission API findet sich im Artikel [Erste Schritte](../getting-started/get-started.mdx#testing).
:::
<Tabs
......
......@@ -2,16 +2,14 @@
title: Roadmap
---
**Stand 22.03.2022**
**Stand 27.07.2022**
Die FIT-Connect Submission API, die Routing API und die dazugehörige Infrastruktur wird in einem Projekt des IT-Planungsrats
zu einer Produktreife entwickelt. Die Umsetzung der Projektliefergegenstände erfolgt iterativ, um eine schnelle
Erprobung und Feedback zu ermöglichen.
Die FIT-Connect Submission API, die Routing API und die dazugehörige Infrastruktur wird in einem Projekt des IT-Planungsrats zur Produktreife entwickelt.
Die Umsetzung der Projektliefergegenstände erfolgt iterativ, um eine schnelle Erprobung und Feedback zu ermöglichen.
Die Roadmap soll daher einen Überblick verschaffen, wann das FIT-Connect Team für die folgenden Projektliefergegenstände
neue Features anstrebt:
Die Roadmap soll daher einen Überblick verschaffen, wann das FIT-Connect Team für die folgenden Projektliefergegenstände neue Features anstrebt:
- **API-Spezifikation:** In der OpenAPI geschriebene Spezifikation der FIT-Connect Submission API.
- **API-Spezifikation:** In der OpenAPI geschriebene Spezifikation der FIT-Connect-Schnittstellen.
- **Entwicklerdokumentation- und tools:** Weiterführende Dokumentationsartikel zur technischen Anbindung an der API für
sendende und empfangende Systeme und Bereitstellung von Tools für technische Querschnittsaufgaben wie Tokenhandling,
Signaturprüfung oder Verschlüsselung.
......@@ -23,11 +21,7 @@ jedoch passen wir die Umsetzungen den aktuellen Bedarfen des Projekts an, wodurc
Liefergegenständen kommen kann. Umgekehrt kann es auch sein, das Features früher fertiggestellt werden, falls die
Prioritäten ändern oder freie Kapazitäten zur Verfügung stehen.
Wir nehmen gerne neue Wünsche & Anregungen für die FIT-Connect APIs als Issue auf unserem
Projekt (https://git.fitko.de/fit-connect/api) entgegen und versuche diese Issues nach einer Umsetzungsprüfung in unsere
Roadmap aufzunehmen.
> Wünsche & Anregungen oder Fehler können über den [hier](/#found-bug) beschriebenen Prozess abgegeben werden können.
Wir nehmen gerne neue Wünsche & Anregungen zur Weiterentwicklung von FIT-Connect über den hierzu eingerichteten [Issue-Tracker im OpenCoDE-Repository](https://gitlab.opencode.de/fitko/feedback) entgegen und versuchen diese Issues nach einer Umsetzungsprüfung in unsere Roadmap aufzunehmen. Ebenso freuen wir uns über Wünsche, Anregungen oder das Melden von Fehlern zu unseren Schnittstellen oder zu unserer Dokumentation über diesen Issue-Tracker.
## Nutzungsplanung
......@@ -41,7 +35,7 @@ Diese freie Nutzung ist jedoch von Beschlüssen des IT-Planungsrats zum Weiterbe
![Nutzungsplanung von FIT-Connect](/images/roadmap/fitconnect_useage_scenario.png "Nutzungsplanung")
## Feature Roadmap bis Q3 2022
## Feature Roadmap bis Q4 2022
![Roadmap von FIT-Connect](/images/roadmap/fitconnect_roadmap.png "Roadmap")