Changelog
Changelog
This list is not intended to be all-encompassing - it will document major and breaking API -changes with their rationale when appropriate:
v5.44.0.0
- http4k-* : Upgrade some dependency versions.
- http4k-testing-approval : [Possible Break]
HtmlApprovalTest
formatter improved handling of HTML attributes which may require re-approving files. - http4k-connect-amazon-iamidentitycenter* : Read AWS profile configuration both from credentials and config files. H/T @aharin
- http4k-core : Deprecate lens’
regex()
in favour ofregexGroup
. In v6regex()
will match fully, changing its current behaviour.
v5.43.0.0
- http4k-* : Upgrade some dependency versions.
- http4k-connect-amazon-iamidentitycenter* : Files containing tokens should only be readable by owner. H/T @aharin
- http4k-connect-slack : [New module!] Minimal support for Slack and Slack Webhooks.
v5.42.0.0
- http4k-* : Upgrade some dependency versions.
- http4k-template : Fix line separators for templates to allow working across platform with templates.
- http4k-connect-amazon-iamidentitycenter* :[Fix 1239] CredentialsProvider.SSO - Credentials caching issue.
- http4k-connect-amazon-iamidentitycenter* : [Unlikely break] PKCE-based Authorization for AWS SSO. Tweaks should be easy to remedy in previous SSO implementation. H/T @aharin
v5.41.0.0
- http4k-format-xml : [Fix CVE-2024-55875: Possible Break] Fixed XML processing by disabling entity expansion in DocumentBuilderFactory configuration.
+changes with their rationale when appropriate:
v5.44.1.0 (uncut)
- http4k-template-thymeleaf : Support template fragments. H/T @mikaelstaldal
v5.44.0.0
- http4k-* : Upgrade some dependency versions.
- http4k-testing-approval : [Possible Break]
HtmlApprovalTest
formatter improved handling of HTML attributes which may require re-approving files. - http4k-connect-amazon-iamidentitycenter* : Read AWS profile configuration both from credentials and config files. H/T @aharin
- http4k-core : Deprecate lens’
regex()
in favour ofregexGroup
. In v6regex()
will match fully, changing its current behaviour.
v5.43.0.0
- http4k-* : Upgrade some dependency versions.
- http4k-connect-amazon-iamidentitycenter* : Files containing tokens should only be readable by owner. H/T @aharin
- http4k-connect-slack : [New module!] Minimal support for Slack and Slack Webhooks.
v5.42.0.0
- http4k-* : Upgrade some dependency versions.
- http4k-template : Fix line separators for templates to allow working across platform with templates.
- http4k-connect-amazon-iamidentitycenter* :[Fix 1239] CredentialsProvider.SSO - Credentials caching issue.
- http4k-connect-amazon-iamidentitycenter* : [Unlikely break] PKCE-based Authorization for AWS SSO. Tweaks should be easy to remedy in previous SSO implementation. H/T @aharin
v5.41.0.0
- http4k-format-xml : [Fix CVE-2024-55875: Possible Break] Fixed XML processing by disabling entity expansion in DocumentBuilderFactory configuration. Note: This change affects how XML entity references are handled. If your code relies on XML entity expansion (like replacing &entity; references with their defined content), it will need to be updated to provide the correct configuration when deserialising the XML body. Entity references will now remain as unexpanded text in the document.
Full details at: https://www.http4k.org/security/cve-2024-12345/
H/T to @@JAckLosingHeart for the report.
v5.40.0.0
- http4k-core : Allow invalidation of cookie with a path. H/T @ollieabbey
- http4k-core : Allow setting cookie value without quotes. H/T @ollieabbey
- http4k-core : Fix cookie format for cookie with no attributes. H/T @ollieabbey
- http4k-testing-webdriver : Remove usages of deprecated getAttribute API. Now use getDomAttribute instead.
- http4k-cloudnative : [Breaking] Deprecation of various functions and re-homing into http4k-platform-k8s module. Some classes and functions have been repackaged.
- http4k-* : [PRE RELEASE PREPARATION] As a part of the upcoming V6, several modules are being rehoused to new Maven coordinates within http4k Community edition (and retaining the Apache2 license). In preparation, we have introduced these modules to give users the time to migrate without taking on-board other breaking changes from v6 - essentially allowing the upgrade cycle to be:
- Upgrade to latest v5 release. Deal with deprecations and module changes.
- Upgrade to v6 when it is released. Deal with other breaking changes. We expect these to be mainly imports and will be detailed in the v6 release note when we have the chance. In the meantime, this is the list of modules that are being rehoused:
SOURCE MODULE - v5.X.X.X DESTINATION MODULE(S) - v6.X.X.X http4k-aws http4k-platform-aws http4k-azure http4k-platform-azure http4k-cloudevents http4k-api-cloudevents http4k-cloudnative Split into http4k-config, http4k-platform-core, http4k-platform-k8s http4k-contract http4k-api-openapi http4k-contract-jsonschema http4k-api-jsonschema http4k-contract-ui-redoc http4k-api-ui-redoc http4k-contract-ui-swagger http4k-api-ui-swagger http4k-failsafe http4k-ops-failsafe http4k-gcp http4k-platform-gcp http4k-graphql http4k-api-graphql http4k-htmx http4k-web-htmx http4k-jsonrpc http4k-api-jsonrpc http4k-metrics-micrometer http4k-ops-micrometer http4k-opentelemetry http4k-ops-opentelemetry http4k-resilience4j http4k-ops-resilience4j v5.39.0.0
- http4k-* : Upgrade some dependency versions.
- http4k-amazon-*-fake : [Unlikely break] Rename
AmazonRestfulFake
toAmazonRestJsonFake
- http4k-amazon-evidently-fake : Fixed Project status value to be a valid value instead of an empty string
v5.38.0.0
- http4k-* : Upgrade some dependency versions.
- http4k-core : [Unlikely break] Split of RequestWithRoute into Request and RoutedMessage
- http4k-realtime-core-* : Further rework on Sse and Ws to add functionalities missing (which are present in HTTP)
v5.37.1.1
- http4k-format-* : [Fix 1225] Issue with Datastar module being required on the classpath. Causes NoClassDefFoundError.
v5.37.1.0
- http4k-format-jackson : Fixed issue with Jackson pulling in a dependency that it didn’t need.
v5.37.0.0
- http4k-* : Upgrade some dependency versions.
- http4k-contract-* : Ability to model binary downloads in OpenAPI format. H/T @hektorKS
- http4k-server-* : [Possible Break] The return type to sse.send() is now
Sse
instead ofUnit
- http4k-server-helidon : Add WebSocket support.
- http4k-server-* : Fixes to SSE support for various servers.
v5.36.0.0
- http4k-* : Upgrade some dependency versions.
- http4k-realtime-core* : [Possible Break] SSE responses now contain a “handled” flag, so we can now fallback from SSE to HTTP if the route is unbound in SSE. SSE now also returns a 404 if the route is unbound.
- http4k-server-helidon* : [Possible Break] Slight refactor of SSE code to support SSE -> HTTP fallback
- http4k-server-helidon* : [Possible Break] Throw exception if configured with
Immediate
stop mode as it’s not supported. - http4k-server-jetty* : [Possible Break] Slight refactor of SSE code to support SSE -> HTTP fallback
- http4k-server-jetty11* : [Possible Break] Slight refactor of SSE code to support SSE -> HTTP fallback
- http4k-server-netty* : [Possible Break] Throw exception if configured with
Immediate
stop mode as it’s not supported. - http4k-server-undertow* : [Possible Break] Slight refactor of SSE code to support SSE -> HTTP fallback
v5.35.5.0
- http4k-* : Upgrade some dependency versions.
- http4k-server-helidon* : Fixes to SSE support
- http4k-server-helidon* : Throw exception if configured with
Graceful
stop mode as it’s not supported. - http4k-server-undertow* : Fixes to SSE support
v5.35.4.0
- http4k-* : Upgrade some dependency versions.
- http4k-server-helidon* : Add support for SSE. There are some limitations - see HelidonSseTest for details.
- http4k-server-helidon* : Add support for SSE. There are some limitations - see HelidonSseTest for details.
v5.35.4.0
- http4k-* : Upgrade some dependency versions.
- http4k-server-helidon* : Add support for SSE. There are some limitations - see HeliconSseTest for details.
- http4k-realtime-core* : Added Debugging for Websocket and SSE connections.
- http4k-realtime-core* : Can now route SSE based on the method as well as the path.
v5.35.3.0
- http4k-* : Upgrade some dependency versions.
- http4k-gcp : [New module!] SDK support for GCP services.
v5.35.2.0
- http4k-server-ktorcio : Upgrade to Ktor 3
- http4k-server-ktornetty : Upgrade to Ktor 3
- http4k-* : Upgrade some dependency versions.
v5.35.1.0
- http4k-* : Upgrade some dependency versions.
- http4k-* - [Fix again!] Missing dependencies in various modules
- http4k-connect* - [Fix again!] Missing dependencies in various modules
v5.35.0.0
- http4k-bom : Now includes all http4k-connect modules.
v5.34.1.0
- http4k-* : Upgrade some dependency versions.
v5.34.0.0
- http4k-core : [Unlikely break] Fix parsing of accept header. It may break direct usages of
Accept
class - http4k-core : Fix tracking of uri templates during in-memory request redirection
- http4k-core : Make LocalCookie serialisable
- http4k-testing-tracerbullet : Render other types of participant in PlantUML diagrams
v5.33.1.0
- http4k-* : Upgrade some dependency versions.
v5.33.0.1
- http4k-multipart* : [Fix #1188] MultiPartFormBody reads body into memory even when stream is available
v5.33.0.0
- http4k-* : Upgrade some dependency versions, including Kotlin to 2.0.21
- http4k-core : [Unlikely break] Adding start time to HTTP Transaction. Should be a simple fix if you are already creating your own for some reason. :) H/T @npryce
- http4k-resilience4j : Add resilience4j timeout filter. H/T @ollieabbey
- http4k-format-* : Adding ability to create BiDiMapping lens. H/T @potfur
- http4k-server-apache - [Fix] Apache httpcomponents server throws when returning 204.
v5.32.4.0
- http4k-* : Upgrade some dependency versions.
- http4k-testing-approval Better diffing of failures in the IDE. @H/T @frednordin
- http4k-core Gzip mixed compression mode H/T @IlyaNerd
v5.32.3.0
- http4k-* : Upgrade some dependency versions.
- http4k-testing-approval Support for binary comparisons using BinaryApprovalTest. @H/T @oharaandrew314
v5.32.2.0
- http4k-* : Upgrade some dependency versions.
- http4k-testing-approval : Fix
withNameSuffix
which wasn’t checking the content type when you overrode the name suffix.ยง
v5.32.1.0
- http4k-core : Fix ordering of params on
Body.webForm()
- http4k-* : Tightened up nullable types and data class constructor visibility on various APIs
v5.32.0.0
- http4k-* : Upgrade some dependency versions.
- http4k-client-apache* : [Unlikely break]: Removed
insecureApacheHttpClient()
due to deprecated API. - http4k-webdriver* : [Unlikely break]: New Nullable types on WebDriver API led to tightening up our implementations.
v5.31.1.0
- http4k-* : Upgrade some dependency versions.
v5.31.0.0
- http4k-server-apache : [Possible Break] Upgrade httpcore to 5.3, which introduces stricter authority validation. This may break projects with custom version of ApacheServer.
v5.30.1.0
- http4k-* : Upgrade some dependency versions.
- http4k-client-jetty : [Fix] encoding of binary content in Jetty client. H/T @kwydler
- http4k-client-* : All websocket implementations implement a unified
WebsocketFactory
. @H/T @oharaandrew314
v5.30.0.0
- http4k-* : Upgrade some dependency versions.
- http4k-multipart : [Fix] Further fixes to deletion of temporary files. Should fix memory leak. @H/T @oharaandrew314
- http4k-server-jetty11 : [Fix] Received binary Websocket frames will no longer have their content coerced to text. @H/T @oharaandrew314
- http4k-* : [Breaking] Make
WsMessage
mode explicit. @H/T @oharaandrew314
Migration Guide
Previously, a
WsMessage
was sent in eitherTEXT
orBINARY
mode based on whether theBody
was aMemoryBody
orStreamBody
, respectively.:warning: Warning: If you were using the primary constructor of
WsMessage
, you will need to explicitly provide aWsMessage.Mode
to resolve the new compiler errors.val textMessage = WsMessage(MemoryBody("hi"), WsMessage.Mode.Text)