Eclipse Ditto™ 3.0.0

3.0.0

Description

The main improvements and additions of Ditto 3.0.0 are:

  • Ability to search in JSON arrays and thus also for feature definitions
  • Several improvements around "metadata" in Ditto managed things
  • Creation of new HTTP API for CRUD management of Ditto managed connections
  • Addition of Ditto explorer UI for managing things, policies and connections
  • Support for EC signed JsonWebKeys (JWKs)
  • W3C WoT (Web of Things) adjustments and improvements for latest 1.1 "Candidate Recommendation" from W3C
  • Make "default namespace" for creating new entities configurable
  • Provide custom namespace when creating things via HTTP POST
  • Make it possible to provide multiple OIDC issuer urls for a single configured openid-connect "prefix"
  • Addition of a "CloudEvents" mapper for mapping CE payloads in Ditto connections

The following non-functional work is also included:

  • New Ditto "thing" search index massively improving write performance; reducing the search consistency lag and improving search query performance
  • Removal of former "ditto-concierge" service, moving its functionality to other Ditto services; reducing overall resource consumption and improving latency+throughput for API calls
  • Creation of common way to extend Ditto via DittoExtensionPoints
  • Rewrite of Ditto managed MQTT connections to use reactive-streams based client, supporting consumption applying backpressure
  • Further improvements on rolling updates and other failover scenarios
  • Consolidate and simplify DevOps command responses

The following notable fixes are included:

  • Passwords stored in the URI of connections to no longer need to be double encoded
  • Using the Normalized connection payload mapper together with enriched extra fields lead to wrongly merged things
  • Adding custom Java based MessageMappers to Ditto via classpath was no longer possible
Architectural Issues

There are no architectural issues known at the time of this writing.

Security Issues

There are no security issues known at the time of this writing.

Non-Code Aspects

Ditto comes with:

Conforms To UI/UX Guidelines
Not verified
Usability Details

Ditto 3.0 adds a very basic Web-UI indended for administrators and developers.

The Eclipse "user interface guidelines and standards" were not applied to this interface.

End of Life

Removal of Ditto "concierge" service

Eclipse Ditto 3.0.0 removes one service formerly required to be run in a Ditto cluster: The "ditto-concierge" service which was responsible for authorization.

The authorization task is moved to other Ditto services and as a consequence, the "concierge" service (as .jar as well as Docker image) is no longer part of the Ditto deliverables.

Standards

Ditto is able to process AMQP 1.0, AMQP 0.9.1, MQTT 3.1.1 and MQTT 5 messages which are all standardized (IoT) protocols.

Ditto can use JSON Web Tokens specified by RFC 7519 in order to extract "subjects" (e.g. a user-id) to use for the access control to twins.

Ditto's API documentation is defined using the OpenAPI specification 3.0.0 allowing both creation of an interactive HTML-based documentation and creation of skelettons for various programming languages based on that specification.

Ditto supports the W3C Web of Things (WoT) Thing Description 1.1 standard.