The second milestone is one last stop preparing for the upcoming “1.0.0” release.
Ditto allowed to have double slashed in JSON pointers (e.g.:
features//foo/properties) and HTTP endpoints.
Allowing those did not always result the API behave like expected, so this is now handled more strictly.
From now on, a
JsonPointerInvalidException will be thrown whenever double slashes are encountered, e.g. resulting
in a status code
400 (Bad request) at the HTTP API.
Connection JSON format was adjusted
As a result of the newly added feature “Map Hono device connection status to Thing feature” (see below), the JSON format of connections was adjusted.
The new format is documented here: connections payload mapping configuration.
The good news however is that previously created connections will automatically be migrated to that format (e.g. when querying) the API, so the old format is still supported.
One of the bigger feature enhancements since the last milestone release is connections to existing HTTP endpoints/servers.
By adding the “connection type” HTTP to Ditto’s connectivity feature Ditto can now perform HTTP calls for the configured “targets”, e.g. for twin events.
That may be used in order to integrate with other public HTTP APIs. See also the published blog post about that.
The integration with Eclipse Hono was improved by adding the possibility tp extract
ttd headers from consumed Hono telemetry and event messages and automatically updating the
targeted thing with a ConnectionStatus feature.
This feature was added by enhancing and generalizing the overall payload mapping feature, as a result now multiple payload mappings may be defined and selectively applied to sources/targets in connections.
In 1.0.0-M1a support for arbitrary OpenID Connect providers was
added to Ditto.
Now the Ditto Java client can authenticate itself by either providing “client-id” and “client-secret” or by supplying JWT tokens via a custom callback.
It is not always desirable that a single websocket connection may “flood” a Ditto backend with a massive amount of
This makes it possible to configure the amount of websocket commands limit per duration interval.
The defaults configuration is: 100 / 1second
When things were deleted, they were still available and findable in the search index (as the search index was cleared
TTL index). This is now fixed.
When an AMQP 1.0 endpoint did not allow to open a link to an address, Ditto tried to reconnect in a high frequency.
As such errors are most likely configuration errors, that almost never is a good solution. The aggressive reconnect
produced a lot of load both to Ditto and the AMQP 1.0 endpoint.
This fix introduces an exponential back-off mechanism.
Various smaller bugfixes
This is a complete list of the merged pull requests.