With Eclipse Ditto version 3.1.0 the first minor release of Ditto 3.x is provided.
This release is completely IP (intellectual property) checked by the Eclipse Foundation meaning that project code as well as all used dependencies were “[…] reviewed to ensure that the copyrights expressed are correct, licensing is valid and compatible, and that other issues have been uncovered and properly investigated.”
Eclipse Ditto 3.1.0 focuses on the following areas:
- Conditional message processing based on a specified condition targeting the twin state
- Support for reading/writing AMQP 1.0 “Message annotations” in Ditto managed connections
- Policy imports: Reference other policies from policies, enabling reuse of policy entries
- Several Ditto explorer UI enhancements
- Support for configuring an audience for Ditto managed HTTP connections performing OAuth2.0 based authentication
The following non-functional work is also included:
- End-2-End graceful shutdown support, enabling a smoother restart of Ditto services with less user impact
- Support for encryption/decryption of secrets (e.g. passwords) part of the Ditto managed connections before persisting to the database
- IPv6 support for blocked subnet validation
The following notable fixes are included:
- Fixing that known connections were not immediately started after connectivity service restart
Similar to the conditional requests for CRUD of things, a (RQL based)
can now be passed when sending a messages from/to a thing.
There is a separate blog post on this topic showing some example use cases.
Coming back at a very old issue and feature request, it is now possible to reuse existing policies in other policies.
That enables many scenarios where it is important to provide certain access in a single policy and a change to that policy is immediately applied to all policies importing that one.
For example, an administrator or support group could be defined in a global policy which gets referenced from all other policies. When changes are required, e.g. a new user account is added as subject to the “administrator” policy, this change must only be done for a single policy, being effective for potentially thousands of other policies.
Enhancements in Ditto explorer UI
You can use it in order to e.g. connect to your Ditto installation to manage things, policies and even connections.
Contributions in this release:
- Select Ditto Explorer UI “environment” via query parameter
- Allow to use namespaces in search in Explorer UI
- Explorer UI json payload for messages
- Improved search filter in explorer ui
- Explorer UI: fixed bug caused by filter dropdown
The Ditto team again invested in improving graceful shutdown behavior of the single Ditto services,
e.g. to reduce the amount of failed (HTTP) requests in case of a rolling update.
Inflight requests are e.g. waited to complete before finally shutting down an instance which received a termination request (e.g. from Kubernetes).
Add functionality to apply a symmetrical encryption/decryption of all known sensitive fields in a Ditto
managed connection stored in the DB.
See the updated documentation for details.
The Ditto team checked for compatibility of Ditto with IPv6 and found that the validation for blocked subnets did not
yet work with IPv6.
This is now supported.
Several bugs in Ditto 3.0.x were fixed for 3.1.0.
This is a complete list of the
Here as well for the Ditto Java Client: merged pull requests for milestone 3.1.0
There are no migration steps required when updating from Ditto 3.0.x to Ditto 3.1.0.
When updating from Ditto 2.x version to 3.1.0, the migration notes of Ditto 3.0.0 apply.
Looking forward, the current plans for Ditto 3.2.0 are:
- Addition of an Eclipse Hono connection type
- Provide API to stream/replay persisted events from the event journal
- Perform a benchmark of Ditto and provide a “tuning” chapter in the documentation as a reference to the commonly
- how many Things Ditto can manage
- how many updates/second can be done
- whether Ditto can scale horizontally
- how many resources (e.g. machines) are required at which scale