Skip to content
Snippets Groups Projects
CHANGELOG.md 11.6 KiB
Newer Older
Martin Vogel's avatar
Martin Vogel committed
Alle relevanten Änderungen am FIT-Connect Java SDK werden in dieser Datei dokumentiert.
Martin Vogel's avatar
Martin Vogel committed
Das Format basiert auf [Keep a Changelog](https://keepachangelog.com/en/)
und hält sich an [Semantic Versioning](https://semver.org/).

## [2.2.0] - UNRELEASED

### Hinzugefügt

#### Ü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, mimeType)``
    - ``setxmlData(bytes, mimeType)``
  - 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:
    - 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

### 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.5

Martin Vogel's avatar
Martin Vogel committed
## [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

Martin Vogel's avatar
Martin Vogel committed
## [2.0.1] - 2024-03-15

### Behobene Bugs

Martin Vogel's avatar
Martin Vogel committed
- 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))
Martin Vogel's avatar
Martin Vogel committed

### Ä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
Martin Vogel's avatar
Martin Vogel committed
### 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
Martin Vogel's avatar
Martin Vogel committed
## [2.0.0] - 2024-02-20

Martin Vogel's avatar
Martin Vogel committed
### Hinzugefügt
Martin Vogel's avatar
Martin Vogel committed
- Bidirektionale Kommunikation mit FIT-Connect Antwortkanal ([Story](https://git.fitko.de/fit-connect/planning/-/issues/654))
Martin Vogel's avatar
Martin Vogel committed
  - 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
Martin Vogel's avatar
Martin Vogel committed
- 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))
Martin Vogel's avatar
Martin Vogel committed
  - Zurückdatieren des Einreichungsdatums
  - unabhängig vom technischen issued-at Zeitstempel der Submission
Martin Vogel's avatar
Martin Vogel committed
- Konfiguration von HTTP-Client-Timeouts in der neuen HttpConfig ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1664))
Martin Vogel's avatar
Martin Vogel committed
  - readTimeout setzen
  - writeTimeout setzen
  - connectionTimeout setzen
Martin Vogel's avatar
Martin Vogel committed
- 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))
Martin Vogel's avatar
Martin Vogel committed

### Ä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
Martin Vogel's avatar
Martin Vogel committed
- 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))
Martin Vogel's avatar
Martin Vogel committed
  - statische ClientFactory-Methoden zu ``ClientFactory.create...(config)``
  - statische ReplyChannel-Methoden zu ``ReplyChannel.of...()``
  - ``DefaultEnvironments`` für TEST, STAGE und PROD wurden umbenannt in `Environments`
Martin Vogel's avatar
Martin Vogel committed
- Das EventLog Status Objekt wurde umbenannt von ``SubmissionStatus`` in `Status` ([Story](https://git.fitko.de/fit-connect/planning/-/issues/654))
Martin Vogel's avatar
Martin Vogel committed
  - dieses wird sowohl für ``getSubmissionStatus`` als auch für ``getReplyStatus`` verwendet
  - enthält das neue ``issuedAt`` Datum
Martin Vogel's avatar
Martin Vogel committed
- 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)):
Martin Vogel's avatar
Martin Vogel committed
  - enthält HTTP `TimeoutConfig`
  - `ProxyConfig` wurde nach `HttpConfig` verschoben
Martin Vogel's avatar
Martin Vogel committed
- 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))
Martin Vogel's avatar
Martin Vogel committed
- Der JWKValidator 2.0.0 cached Anfragen, was die Geschwindigkeit der Schlüsselüberprüfung verbessert
Martin Vogel's avatar
Martin Vogel committed
- Detailliertere Protokollierung von Requests mit HTTP-Methode, Statuscode und benötigter Zeit ([Story](https://git.fitko.de/fit-connect/planning/-/issues/654))
Martin Vogel's avatar
Martin Vogel committed

### Behobene Bugs

Martin Vogel's avatar
Martin Vogel committed
- 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))
Martin Vogel's avatar
Martin Vogel committed

### Veraltet
Martin Vogel's avatar
Martin Vogel committed
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)).
Martin Vogel's avatar
Martin Vogel committed

### Entfernt
Martin Vogel's avatar
Martin Vogel committed
- Command-Line-Client ([Story](https://git.fitko.de/fit-connect/planning/-/issues/1571))
Martin Vogel's avatar
Martin Vogel committed
  - 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
Martin Vogel's avatar
Martin Vogel committed

- 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
Martin Vogel's avatar
Martin Vogel committed
- JsonSchemaValidator 1.3.3
Martin Vogel's avatar
Martin Vogel committed
- Junit 5.10.2
- Mockito 5.10
- Wiremock 3.0.1

## [1.0.0] - 2023-08-04

Martin Vogel's avatar
Martin Vogel committed
### Hinzugefügt
- JWK Test-Zertifikat Generator
- Integration des Demo-Projekts ins SDK
Martin Vogel's avatar
Martin Vogel committed
### Ä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
Martin Vogel's avatar
Martin Vogel committed
- Dies war die erste Release-Candidate Version des SDKs.