The second minor (feature adding) release of Eclipse Ditto 1 is here: 1.2.0.
It is API and binary compatible to Eclipse Ditto 1.0.0 and 1.1.0.
Changelog
Compared to the latest minor release 1.1.0, the following changes, new features and bugfixes were added.
The main change of Ditto 1.2.0 is the now full support for QoS 1 (“at least once”) message processing.
Changes
Update Docker base image to OpenJ9 0.21.0
Updated to running the Ditto Docker containers with the latest OpenJ9 0.21.0 (with OpenJDK 11).
Added config key for setting the max pool size for connections
The pool is used for mapping inbound and outbound messages in the connectivity service. It is configured
per connection in the attribute processorPoolSize
.
To provide a meaningful max per-connection pool size, you can now configure a service-wide maximum
in the connectivity service using the key ditto.connectivity.mapping.max-pool-size
(or its corresponding
environment variable CONNECTIVITY_MESSAGE_MAPPING_MAX_POOL_SIZE
).
New features
fn:filter
function for connectivity header mapping
In connection header mappings as part of the placeholders, the new
fn:filter
function may be used in order to remove the result of the
previous expression in the function pipeline unless the condition specified by the parameters is satisfied.
Whoami HTTP resource
The new HTTP GET
resource /whoami
may be called in order to find out which authorization subjects were resolved in
the HTTP call’s authentication. This can be e.g. useful to find out the used JWT subject which should be added to
policies.
Support using client certificate based authentication in HTTP push connections
Connections of type HTTP push can now, additionally to username/password based authentication, make use of client certificate based authentication.
Automatic end-2-end acknowledgements handling for managed connections
Acknowledgements can now be configured to be requested for messages consumed by connection sources (acknowledgement requests) and can automatically be issued by targets to automatically issue acknowledgements for all published twin events, live commands and live messages that request them.
End-2-end acknowledgements support for “live” messages/commands
Acknowledgements for live messages/commands are now supported as well. Both requesting and issuing them, e.g. in order to acknowledge that a message was successfully received without directly responding to it.
Addition of _created
date to things
Whenever a thing is now created, a JSON field "_created"
is now added containing the creation
date. This field can be selected via fields selection, as the already
existing "_modified"
field can also be. The created date can also be used as part of
search RQL queries.
Support for adding _metadata
to things
On modifying API calls to a thing, additional metadata can now be passed with the header field
"put-header"
. Documentation for this feature is still missing, but will be added soon after the 1.2.0 release.
Bugfixes
Several bugs in Ditto 1.1.x were fixed for 1.2.0.
This is a complete list of the
merged pull requests, including the fixed bugs.
Connectivity service does not consume message after reconnect to AMQP (0.9.1)
Connections via AMQP 0.9.1 did not correctly resume message consumption after the broker was e.g. restarted.
Migration notes
Renamed config keys containing blacklist
to blocklist
- in
gateway.conf
:ditto.gateway.http.redirect-to-https-blocklist-pattern
- in
ditto-cluster.conf
:ditto.cluster.cluster-status-roles-blocklist
- in
ditto-protocol.conf
:ditto.protocol.blocklist
If you configured any of the blocklist
entries with Ditto < 1.2.0, you’ll have to adjust your configuration
accordingly.