# 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/). ## [2.5.1] - 2025-02-14 ### Änderungen #### XML-Validierung erlaubter URN-Schemata ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2891)) - es werden per default nur XML-Schemata validiert die den Mustern in ``AllowedSchemaPatterns`` entsprechen - aktuell sind dies XOEV URNs, andere Muster werden bei der Validierung übersprungen - dies verhindert, dass die Validierung global deaktiviert werden muss, wenn kein XOEV-Schema vorliegt ### Aktualisierte Bibliotheken - Wiremock 3.12.0 ## [2.5.0] - 2025-01-23 ### Hinzugefügt #### XML-Schema Validierung von XÖV-Standards ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1151)) - XML-Fachdaten werden über die Angabe der Schema-URI gegen ein XOEV-Schema validiert - die Validierung ist für alle im [XRepository](https://www.xrepository.de/) verfügbaren Schemata möglich - ist keine Validierung gewünscht, oder ist das Schema nicht im repository verfügbar, kann die Fachdatenvalidierung wie gewohnt über die [Environment-Konfiguration](https://docs.fitko.de/fit-connect/docs/sdks/java-sdk/overview#%C3%BCbersicht-optionaler-properties) des SDK deaktiviert werden (siehe `skipSubmissionDataValidation`) ### Aktualisierte Bibliotheken - Logback 1.5.16 - JsonSchemaValidator 1.5.5 - Junit 5.11.4 - Junit-Platform 1.11.4 - Mockito 5.15.2 - Wiremock 3.10.0 - Maven-JavaDoc-Plugin 3.11.2 ## [2.4.0] - 2024-11-29 ### Hinzugefügt #### Destination-API Client ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2209)) - neuer Client zur Anlage und zum Management von Zustellpunkten über `ClientFactory.createDestinationClient(config)` - Nutzung über die Subscriber-Credentials - siehe auch [Destination-API](https://docs.fitko.de/fit-connect/docs/apis/destination-api) und [Doku](https://docs.fitko.de/fit-connect/docs/sdks/java-sdk/) #### Angabe der Region (ARS) für nachgelagertes Routing ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2392)) - die ``SendableSubmission`` ermöglicht über `.setServiceTypeWithRegion(leikaKey, name, region)`, das Setzen einer Region für eine bestimmte Leistung - enthält eine Submission eine Region, muss diese zum ARS im Zustellpunkt passen #### ZBP-Zertifikatshandling ohne mTLS ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2490)) - für die Nutzung des ZBP-Clients im [ZBP-Adapter](https://git.fitko.de/fit-connect/zbp-adapter) wurde das Zertifikatshandling für den Einsatz in der produktiven ZBP-Infrastruktur angepasst - das ZBP benötigt hierbei das TLS/ZBP-Postfachzertifikat des ZBP-Adapters im PEM-Format als Cookie im HTTP-Header ### Aktualisierte Bibliotheken - Jackson-Annotations 2.18.2 - Jackson-Databind 2.18.2 - JsonSchemaValidator 1.5.4 ## [2.3.5] - 2024-11-15 ### Behobene Bugs #### Fix Routing DestinationParameters-Signature Validierung ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2446) und [Story](https://git.fitko.de/fit-connect/planning/-/issues/2499) ) - Die Validierung der `destinationParametersSignature` wird aufgrund der Abkündigung des Feldes nicht mehr durchgeführt - siehe hierzu auch [Prüfung der DestinationParameters-Signature](https://docs.fitko.de/fit-connect/docs/sending/get-destination#checkDestinationParametersSignature) ### Änderungen - Deprecation der Felder ``destinationParameters`` und ``destinationParametersSignature`` ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2499)) - Update und Erweiterung des ``Route``-Models ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2337)) ### Aktualisierte Bibliotheken - Lombok 1.18.36 ## [2.3.4] - 2024-11-01 ### Behobene Bugs #### Fix des Eventlog Status-Mapping ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2442)) - Es wurde ein Fehler behoben, der beim Mapping des Eventlog-Status auftrat, wenn ein `ACCEPT`-Event eine Liste von `Problems` beinhaltete ### Aktualisierte Bibliotheken - JsonSchemaValidator 1.5.3 ## [2.3.3] - 2024-10-29 ### Behobene Bugs #### Ableitung des Token Signers aus dem Zertifikat ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2403)) - Der Signer des ZBP-Tokens ist nicht mehr hart codiert "FIT-Connect", sondern entspricht dem `Subject` des Zertifikates ### Aktualisierte Bibliotheken - Junit 5.11.3 - Junit Platform 1.11.3 - Wiremock 3.9.2 ## [2.3.2] - 2024-10-21 ### Behobene Bugs #### Validierung von Submission API Alias URLs ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2422)) - Ein Fehler bei der Validierung von Alias-URLs innerhalb der Destination Signatur wurde behoben ## [2.3.1] - 2024-10-18 ### Änderungen #### Setzen der Sender-Reference ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2346)) - Fehlende Möglichkeit des Setzens der ``senderReference`` in den ``AdditionalReferenceInfo`` wurde hinzugefügt - Neue Methode ``setSenderReference`` im ``SubmissionBuilder`` als optionales Property #### Update Submission-API URLs ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2400)) - Änderung auf `*.fit-connect.fitko.net/submission-api` - Die [Umgebungen](https://docs.fitko.de/fit-connect/docs/getting-started/environments) nutzen neue Aliase die in den default Environments des SDKs aktualisiert wurden ### Aktualisierte Bibliotheken - Jackson-Annotations 2.18.0 - Jackson-Databind 2.18.0 - Logback 1.5.11 - Junit 5.11.2 - Mockito 5.14.2 - Maven-Surefire-Plugin 3.5.1 - Maven-Failsafe-Plugin 3.5.1 - Maven-JavaDoc-Plugin 3.10.1 - Maven-GPG-Plugin 3.2.7 ## [2.3.0] - 2024-09-26 ### Hinzugefügt #### 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 Senden von Nachrichten und Statusupdates (siehe Doku [FIT-Connect und das Zentrale Bürgerpostfach (ZBP)](https://docs.fitko.de/fit-connect/docs/zbp/)) - auf direktem Weg innerhalb der Netze des Bundes (NdB) - auf indirektem Weg außerhalb der Netze des Bundes (NdB) über die FIT-Connect Infrastruktur #### JWK Test Key Generator ([Story](https://git.fitko.de/fit-connect/planning/-/issues/664)) - TestKeyBuilder zur Erzeugung von JWKs für die FIT-Connect TEST und DEV Umgebung: - ``TestKeyBuilder.generateEncryptionKeyPair()`` - ``TestKeyBuilder.generateSignatureKeyPair()`` - KeyWriter zum Schreiben der Keys ins Dateisystem `` KeyWriter.writeKeys(keyWriterSettings)`` ### Aktualisierte Bibliotheken - JsonSchemaValidator 1.5.2 - Wiremock 3.9.1 - Junit 5.11.1 ## [2.2.0] - 2024-09-16 ### Hinzugefügt #### Übertragung großer Fachdaten als Anhang ([Story](https://git.fitko.de/fit-connect/planning/-/issues/2227)) - Übertragung von Fachdaten als Attachment, wenn das zulässige Limit im Metadatensatz von aktuell 13 MB überschritten wird - 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 über ``receivedSubmission.getDataAsBytes()`` als Byte-Array zuzugreifen #### 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: - 5 Retries - StatusCodes [408, 429, 500, 502, 503, 504] - initialer Startwert von 500ms #### 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 ## [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 ## [2.0.0] - 2024-02-20 ### Hinzugefügt - 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)) ### Behobene Bugs - 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)) ### Veraltet 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)). ### Entfernt - 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 - JsonSchemaValidator 1.3.3 - Junit 5.10.2 - Mockito 5.10 - Wiremock 3.0.1 ## [1.0.0] - 2023-08-04 ### 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 ## [1.0.0-rc.1] - 2023-03-05 - Dies war die erste Release-Candidate Version des SDKs.