Version 2.2.0 of Eclipse Ditto, released on 22.11.2021
Edit this page

Ditto 2.2.0 is API and binary compatible to prior Eclipse Ditto 2.x versions.

Changelog

Eclipse Ditto 2.2.0 includes the following topics/enhancements:

  • Filter for twin life-cycle events like e.g. “thing created” or “feature deleted” via RQL expressions
  • Possibility to forward connection logs via fluentd or Fluent Bit to an arbitrary logging system
  • Add OAuth2 client credentials flow as an authentication mechanism for Ditto managed HTTP connections
  • Enable loading additional extra JavaScript libraries for Rhino based JS mapping engine
  • Allow using the dash - as part of the “namespace” part in Ditto thing and policy IDs

The following notable fixes are included:

  • Policy enforcement for event publishing was fixed
  • Search updater cache inconsistencies were fixed
  • Fixed diff computation in search index on nested arrays

The following non-functional work is also included:

  • Collect Apache Kafka consumer metrics and expose them to Prometheus endpoint


For a complete list of all merged PRs, inspect the following milestones:



Compared to the latest release 2.1.0, the following most notable changes, new features and bugfixes were added.

Changes

Allow using the dash - as part of the “namespace” part in Ditto thing and policy IDs

A feedback from our community was that the dash - should be an allowed character in the namespace part of Ditto managed IDs.
As there were no technical reasons to not allow the dash, we agreed and namespaces do now support dashes, e.g. in order to use the reverse-domain-notation for a package name with domains including dashes.

New features

Filter for twin life-cycle events

When applying filtering for change notifications, the existing RQL based filter was enhanced with the possibility to use topic and resource placeholders which enables defining RQL predicates like:

Only emit events for Thing creation and deletion:

and(in(topic:action,'created','deleted'),eq(resource:path,'/'))

Possibility to forward connection logs

Configure log publishingfor your Ditto managed connections in order to get connection logs wherever you need them to analyze.

Add OAuth2 client credentials flow as an authentication mechanism for Ditto managed HTTP connections

Have a look at our blog post which shares an example of how to configure a Ditto managed HTTP connection to make use of OAuth2.0 authentication.

Enable loading additional extra JavaScript libraries for Rhino based JS mapping engine

The used Rhino JS engine allows making use of “CommonJS” in order to load JS modules via require('') into the engine. This feature has now been exposed by Ditto, configuring the environment variable CONNECTIVITY_MESSAGE_MAPPING_JS_COMMON_JS_MODULE_PATH of the connectivity service to a path in the connectivity Docker container where to load additional CommonJS modules from - e.g. use a volume mount in order to get additional JS modules into the container.

Bugfixes

Several bugs in Ditto 2.1.x were fixed for 2.2.0.
This is a complete list of the merged pull requests, including the fixed bugs.

Migration notes

No migrations required updating from Ditto 2.1.x

Ditto clients

For a complete list of all merged client PRs, inspect the following milestones:

Ditto Java SDK

No mentionable changes/enhancements/bugfixes.

Ditto JavaScript SDK

See separate Changelog of JS client.

Roadmap

Looking forward, the current plans for Ditto 2.3.0 are: