Newer
Older
# Changelog
Alle relevanten Änderungen am FIT-Connect Java SDK werden in dieser Datei dokumentiert.
Das Format basiert auf [Keep a Changelog](https://keepachangelog.com/en/)
und hält sich an [Semantic Versioning](https://semver.org/).
#### Übertragung großer Fachdaten als Anhang ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2227))
- Übertragung von Fachdaten, die das zulässige Limit im Metadatensatz von aktuell 13 MB überschreiten, als Attachment
- Beim Empfang werden die Fachdaten wie bisher in der ``ReceivedSubmission`` verfügbar gemacht
- Alle Validierungen werden wie bisher durchgeführt
- Beim Senden können die Daten zusätzlich als Byte-Array gesetzt werden:
- ``setJsonData(bytes,dataSchemaUri)``
- ``setXmlData(bytes,dataSchemaUri)``
- Beim Empfang gibt es zusätzlich die Möglichkeit auf die Fachdaten als Byte-Array zuzugreifen über ``receivedSubmission.getDataAsBytes()``
#### Automatische Retry-Logik ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2228))
- Konfigurierbare Retry-Logik mit definierbaren HTTP-Status-Codes und Anzahl der Wiederholungsversuche
- Programmatisch via ``dev.fitko.fitconnect.api.config.http.RetryConfig`` und über die Config-YAML
- Die Wartezeit zwischen den Retries erhöht sich mittels ExponentialBackoff
- Per Default sind folgende Werte konfiguriert:
- StatusCodes [408, 429, 500, 502, 503, 504]
#### Versand von Nachrichten an das Zentrale Bürgerpostfach (ZBP) der BundID ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2016))
- Neuer Client zum Senden von ZBP Nachrichten und Statusupdates ``ClientFactory.createZBPClient(...)``
- Ermöglicht das direkte Senden von Nachrichten oder das indirekte Senden über die FIT-Connect Infrastruktur (siehe [Doku](https://docs.fitko.de/fit-connect/docs/zbp/))
#### BundID als Rückkanal ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2223))
- Übertragung der ``mailboxId`` im BundId-ReplyChannel der Submission
- Übertragung der AntragsId in der ``AdditionalReferenceInfo`` des Metadatensatzes
### Änderungen
- Update des [Metadatenschemas](https://docs.fitko.de/fit-connect/docs/metadata/overview) auf 1.5.0
- Dieses beinhaltet den Attachment Purpose Data, um Anhänge als Fachdaten zu markieren
- Neuer BundId-ReplyChannel
- AdditionalReferenceInfo wurde um das Feld ``idBundDeApplicationId`` erweitert um die Antrags-ID (applicationId) für den BundId-Statusmonitor zu übertragen
- Zugriff auf den Verwendungszweck des Attachments über ``attachment.getPurpose()``
### Aktualisierte Bibliotheken
- SnakeYaml 2.3
- JsonSchemaValidator 1.5.1
- Logback 1.5.8
- Slf4j 2.0.16
- Junit 5.11
- Mockito 5.13
- Maven-Surefire-Plugin 3.5.0
- Maven-Failsafe-Plugin 3.5.0
- Maven-Checkstyle-Plugin 3.5.0
- Maven-Install-Plugin 3.1.3
- Maven-Deploy-Plugin 3.1.3
- Maven-JavaDoc-Plugin 3.10.0
- Maven-GPG-Plugin 3.2.6
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
## [2.1.0] - 2024-07-23
### Hinzugefügt
- Attachment Chunking ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1522))
- Übertragung großer Attachment-Files (> 500 MB) als Fragmente
- Abruf fragmentierter Attachments und zusammensetzen der Chunks zum ursprünglichen File
- neue Methode `Attachment.fromLargeAttachment()` zum autom. Chunking
- Basic Authentication über Nutzername und Passwort für die HTTP-Proxy Konfiguration ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1916))
- Zugriff auf den Issuer im Eventlog Status ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2061))
- Zugriff auf die AttachmentId ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1903))
- In der `SubscriberConfig` können die privaten Keys zur Entschlüsselung und zum Signieren auch direkt als JWK übergeben werden ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1902))
### Änderungen
- Update des [Metadatenschemas](https://docs.fitko.de/fit-connect/docs/metadata/overview) auf 1.3.0
- Update des [SET-Schemas](https://docs.fitko.de/fit-connect/docs/set-schema/overview) auf 1.2.2
- Modulkonfiguration
- die Module API und Core wurden in das Client-Modul integriert
- damit ist der Client nicht mehr von zwei weiteren Modulen abhängig, sondern erzeugt im Build und beim Laden über Maven nur noch ein einzelnes Client-Modul
### Entfernt
Die Zip-Kompression im JWE-Header wurde entfernt ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1825)). Siehe hierzu:
> RFC 8725, Sec. 3.6: Compression of data SHOULD NOT be done before encryption, because such compressed data often reveals information about the plaintext.
### Aktualisierte Bibliotheken
- JWKValidator 2.1.1
- Nimbus/Jose 9.37.3
- Lombok 1.18.34
- Jackson 2.17.2
- JsonSchemaValidator 1.5.0
- Junit 5.10.3
- Maven-Surefire-Plugin 3.3.1
- Maven-Failsafe-Plugin 3.3.1
- Maven-Jar-Plugin 3.4.2
- Maven-Checkstyle-Plugin 3.4.0
- Maven-Javadoc-Plugin 3.8.0
- Maven-Git-Commit-Plugin 9.0.1
## [2.0.3] - 2024-05-23
### Änderungen
Downgrade der Nimbus/Jose Library auf 9.37.x, um die Größenbeschränkung des Payloads bei aktivierter Zip-Compression im JWE Header
aufzuheben. Siehe hierzu https://bitbucket.org/connect2id/nimbus-jose-jwt/issues/545
### Aktualisierte Bibliotheken
- Nimbus/Jose 9.37
## [2.0.2] - 2024-05-23
### Behobene Bugs
- Fix des `transactionTimestamp` Datentyps der PaymentInformation im Metadaten ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1945))
### Aktualisierte Bibliotheken
- Nimbus/Jose 9.39
- Lombok 1.18.32
- OkHttp 5.0.0-alpha.14
- Jackson 2.17.1
- JsonSchemaValidator 1.4.0
- Logback 1.5.6
- Mockito 5.12
- Slf4j 2.0.13
## [2.0.1] - 2024-03-15
### Behobene Bugs
- Die Validierung von ARS Schlüsseln bei der Abfrage von Routing-Informationen wurde so angepasst, dass auch Regionen die in einer anderen Region enthalten sind, korrekt geprüft werden ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1684))
### Änderungen
Um im Log keine sensiblen Daten zu loggen wurden folgende Anpassungen in der Logback Konfiguration vorgenommen:
- Das Loglevel für den Schema Validator wurde für `com.networknt.*` auf INFO gesetzt
- Das Loglevel für den OkHttp Client wurde für ``okhttp3.*`` auf INFO gesetzt
### Aktualisierte Bibliotheken
- JWK-Validator 2.1.0
- Jackson 2.17.0
- Logback 1.5.3
- Mockito 5.11
- Maven GPG Plugin 3.2.0
- Maven Assembly Plugin 3.7.0
- Maven Git Commit ID Plugin 8.0.1
- Bidirektionale Kommunikation mit FIT-Connect Antwortkanal ([Story](https://git.fitko.de/fit-connect/planning/-/issues/654))
- neue Submissions für einen existierenden Case senden
- Antworten (Replies) auf Submissions senden
- Antworten empfangen
- Liste der verfügbaren Cases und Replies
- aktuellen Status für Replies abfragen
- Neuer ``FitConnect``-ReplyChannel, der den öffentlichen Reply-Verschlüsselungsschlüssel und eine Liste von Verarbeitungsstandards überträgt
- `ReplyChannelKeyGenerator` zur Erzeugung von ephemeral-keys für die Ver- und Entschlüsselung von Replies
- ServiceType-Getter an der ReceivedSubmission ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1072))
- Setzen des ApplicationDate an der SendableSubmission über `setApplicationDate(localDate)` ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1243))
- Zurückdatieren des Einreichungsdatums
- unabhängig vom technischen issued-at Zeitstempel der Submission
- Konfiguration von HTTP-Client-Timeouts in der neuen HttpConfig ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1664))
- readTimeout setzen
- writeTimeout setzen
- connectionTimeout setzen
- Für die Validierung lokaler Fachdatenschemata können beliebige Schema-formate vom lokalen Dateisystem über die `config.yaml` oder `ApplicationConfig` hinzugefügt werden ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1196))
- Neue DTOs für Callback-Benachrichtigung über neue Submissions und Replies ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1400))
- Zugriff auf den technischen submitted-at (iat) Zeitstempel an der `ReceivedSubmission` ([Story](https://git.fitko.de/fit-connect/planning/-/issues/654))
- Neuer ``KeyGenerator`` zur Erzeugung von X.509-Testzertifikaten, RSA-KeyPairs und JWKs ([Story](https://git.fitko.de/fit-connect/planning/-/issues/664))
### Änderungen
> **Details zu den Änderungen im Zusammenhang mit diesem Update entnehmen Sie bitte dem** [Update Guide](https://git.fitko.de/fit-connect/sdk-java/-/blob/main/docs/update-guide.md)
- Aktualisierte Schemata:
- Metadaten-Schema 1.2.0
- SET-Schema 1.2.1
- Model-Klassen vom Client-Modul wurden in das API-Modul verschoben ([Story](https://git.fitko.de/fit-connect/planning/-/issues/654))
- Umbenennung von API-Methoden ([Story](https://git.fitko.de/fit-connect/planning/-/issues/654))
- statische ClientFactory-Methoden zu ``ClientFactory.create...(config)``
- statische ReplyChannel-Methoden zu ``ReplyChannel.of...()``
- ``DefaultEnvironments`` für TEST, STAGE und PROD wurden umbenannt in `Environments`
- Das EventLog Status Objekt wurde umbenannt von ``SubmissionStatus`` in `Status` ([Story](https://git.fitko.de/fit-connect/planning/-/issues/654))
- dieses wird sowohl für ``getSubmissionStatus`` als auch für ``getReplyStatus`` verwendet
- enthält das neue ``issuedAt`` Datum
- Die ``ReceivedSubmission`` implementiert ``Comparable<Date>`` und wird autom. nach `issuedAt` sortiert ([Story](https://git.fitko.de/fit-connect/planning/-/issues/654))
- Neues ``HttpConfig``-Objekt ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1664)):
- enthält HTTP `TimeoutConfig`
- `ProxyConfig` wurde nach `HttpConfig` verschoben
- Die Polling-Methode ``getAvailableSubmissionsForDestination`` (ohne Limit und Offset) lädt nun implizit ALLE verfügbaren Einreichungen (rekursiv in 25er-Chunks). Die macht es einfacher, eine Liste aller verfügbaren Einreichungen zu laden, ohne explizit Paging einzusetzen. ([Story](https://git.fitko.de/fit-connect/planning/-/issues/654))
- Der JWKValidator 2.0.0 cached Anfragen, was die Geschwindigkeit der Schlüsselüberprüfung verbessert
- Detailliertere Protokollierung von Requests mit HTTP-Methode, Statuscode und benötigter Zeit ([Story](https://git.fitko.de/fit-connect/planning/-/issues/654))
- Das Zeitstempelformat in der Callback-Validierung wurde von Millisekunden auf Sekunden korrigiert ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1400))
- Korrigierte Json Validator Locale, welche zu Build-Fehlern in Umgebungen mit deutscher Locale führte ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1370))
- Der korrekte Content-Type Header (cty) wurde zum JWE-Header hinzugefügt ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1244))
- Ein Fehler, der bei der Validierung von Routing-Services mit mehreren Diensten innerhalb der JWT-Claims auftrat, wurde behoben ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1481))
Die Attachment ``fromString``-Methoden werden ab SDK-Version `3.0.0` als deprecated markiert, da sie bei falscher Verwendung zu Problemen mit der Zeichencodierung führen können ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1308)).
- Command-Line-Client ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1571))
- der ausführbare Kommandozeilen-Client wurde aus dem SDK entfernt und ist nun ein eigenständiges Projekt
- siehe [FIT-Connect Tools Repository](https://git.fitko.de/fit-connect/fit-connect-tools/) für weitere Informationen
- Apache Tika-Library (wurde vom cli-Modul verwendet)
- JCommander-Library (wurde vom cli-Modul verwendet)
### Aktualisierte Bibliotheken
- JWK-Validator 2.0.0
- Nimbus/Jose 9.37.3
- OkHttp 5.0.0-alpha.12
- Lombok 1.18.30
- Jackson 2.16.1
- Logback 1.5.0
- SLF4J 2.0.12
- SnakeYaml 2.2
- Junit 5.10.2
- Mockito 5.10
- Wiremock 3.0.1
### Hinzugefügt
- JWK Test-Zertifikat Generator
- Integration des Demo-Projekts ins SDK
### Änderungen
- JWK-Validator 1.5.1
- Mockito Core 5.4.0
- JSON Schema Validator 1.0.86
- Maven 3.9.4
- OpenCSV 5.8
- Dies war die erste Release-Candidate Version des SDKs.