3.0.0
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
There are no architectural issues known at the time of this writing.
There are no security issues known at the time of this writing.
Ditto comes with:
- A project site containing the documentation (including basic concepts, architecture, definition of the Ditto Protocol, etc.)
- A "Hello World" example
- An OpenAPI based HTTP/REST documentation and applied HTTP concepts
- A GitHub repository with ditto-clients (SDKs for Java + JavaScript)
- A GitHub repository with ditto-examples
- A Blog with the latest examples tutorials, release announcements, etc.
- Presentations of Ditto
- A sandbox installation where Ditto can be tried out without setting it up locally
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.
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.
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.