Skip to content

Commit

Permalink
prepared Ditto 2.0.0 release notes + announcement blogpost
Browse files Browse the repository at this point in the history
Signed-off-by: Thomas Jaeckle <thomas.jaeckle@bosch.io>
  • Loading branch information
thjaeckle committed Apr 22, 2021
1 parent 9104c8d commit c0241f8
Show file tree
Hide file tree
Showing 14 changed files with 447 additions and 368 deletions.
1 change: 0 additions & 1 deletion deployment/docker/swagger3-index.html
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@

const ui = SwaggerUIBundle({
urls: [
{url: "/apidoc/openapi/ditto-api-1.yml", name: "Ditto API v1- deprecated"},
{url: "/apidoc/openapi/ditto-api-2.yml", name:"Ditto API v2"}
],
"urls.primaryName": "Ditto API v2",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,23 +23,23 @@ entries:
- title: Release Notes
output: web
folderitems:
# - title: 2.0.0
# url: /release_notes_next.html
# output: web
- title: 2.0.0
url: /release_notes_200.html
output: web
- title: 1.5.1
url: /release_notes_151.html
output: web
- title: 1.5.0
url: /release_notes_150.html
output: web
- title: 1.4.0
url: /release_notes_140.html
output: web

subfolders:
- title: Archive
output: web
subfolderitems:
- title: 1.4.0
url: /release_notes_140.html
output: web
- title: 1.3.0
url: /release_notes_130.html
output: web
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ sidebar: false
toc: false
---

Today the Eclipse Ditto is thrilled to announce the availability of Eclipse Ditto's first major release
Today the Eclipse Ditto team is thrilled to announce the availability of Eclipse Ditto's first major release
[1.0.0](https://projects.eclipse.org/projects/iot.ditto/releases/1.0.0).


Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
---
title: "Announcing Eclipse Ditto Release 2.0.0"
published: true
permalink: 2021-04-29-release-announcement-200.html
layout: post
author: thomas_jaeckle
tags: [blog]
hide_sidebar: true
sidebar: false
toc: false
---

Today, ~1.5 years after release [1.0.0](2019-12-12-release-announcement-100.html), the Eclipse Ditto team is happy to
announce the availability of Eclipse Ditto [2.0.0](https://projects.eclipse.org/projects/iot.ditto/releases/2.0.0).

With the major version 2.0.0 the Ditto team removed technical dept and removed deprecated APIs in order to have a
better maintainable codebase, but some awesome new features are included as well.


## Adoption

Companies are willing to show their adoption of Eclipse Ditto publicly: [https://iot.eclipse.org/adopters/?#iot.ditto](https://iot.eclipse.org/adopters/?#iot.ditto)

From our various [feedback channels](feedback.html) we however know of more adoption.
If you are making use of Eclipse Ditto, it would be great to show your adoption by adding your company to that list of
known adopters.
In the end, that's one main way of measuring the success of the project.


## Changelog

The main changes and additions of Ditto 2.0.0 are:

* Merge/PATCH updates of digital twins
* Configurable OpenID Connect / OAuth2.0 claim extraction to be used for authorization
* Establishing connections to endpoints (via AMQP, MQTT, HTTP) utilizing a Ditto managed SSH tunnel
* Addition of a DevOps API in order to retrieve all known connections
* Expiring policy subjects + publishing of announcement message prior to expiry
* Addition of policy actions in order to inject a policy subject based on a provided JWT
* Built-in acknowledgement for search updates to have the option of twin updates with strong consistency of the search index
* Restoring active connection faster after a hard restart of the Ditto cluster via automatic prioritization of connections
* Support for LastWill/Testament + retain flag for MQTT connections

The step to a major version was done because of the following breaking API changes:

* removal of "API version 1" (deprecated in [Ditto 1.1.0](release_notes_110.html#deprecations))
from Ditto's Java APIs + HTTP API
* removal of code in Java APIs marked as `@Deprecated`
* binary incompatible changes to Java APIs
* Restructuring of Ditto's Maven modules in order to simplify/ease further development

The following non-functional work is also included:

* Improvement of stability during rolling updates
* Addition of sharding concept for Ditto internal pub/sub enabling connection of e.g. tens of thousands websocket sessions
* Background cleanup improvements in order to have less impact on DB roundtrip times
* Update of third party libraries (e.g. Akka)
* Documentation of deployment via K3S

Please have a look at the [2.0.0 release notes](release_notes_200.html) for a more detailed information on the release.


## Artifacts

The new Java artifacts have been published at the [Eclipse Maven repository](https://repo.eclipse.org/content/repositories/ditto/)
as well as [Maven central](https://repo1.maven.org/maven2/org/eclipse/ditto/).

The Ditto JavaScript client release was published on [npmjs.com](https://www.npmjs.com/~eclipse_ditto):
* [@eclipse-ditto/ditto-javascript-client-dom](https://www.npmjs.com/package/@eclipse-ditto/ditto-javascript-client-dom)
* [@eclipse-ditto/ditto-javascript-client-node](https://www.npmjs.com/package/@eclipse-ditto/ditto-javascript-client-node)


The Docker images have been pushed to Docker Hub:
* [eclipse/ditto-policies](https://hub.docker.com/r/eclipse/ditto-policies/)
* [eclipse/ditto-things](https://hub.docker.com/r/eclipse/ditto-things/)
* [eclipse/ditto-things-search](https://hub.docker.com/r/eclipse/ditto-things-search/)
* [eclipse/ditto-gateway](https://hub.docker.com/r/eclipse/ditto-gateway/)
* [eclipse/ditto-connectivity](https://hub.docker.com/r/eclipse/ditto-connectivity/)
* [eclipse/ditto-concierge](https://hub.docker.com/r/eclipse/ditto-concierge/)

<br/>
<br/>
{% include image.html file="ditto.svg" alt="Ditto" max-width=500 %}
--<br/>
The Eclipse Ditto team
3 changes: 1 addition & 2 deletions documentation/src/main/resources/pages/ditto/basic-policy.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ permalink: basic-policy.html

A Policy enables developers to configure fine-grained access control for Things and other entities easily.

{% include note.html content="The policy concept is only supported for Ditto **HTTP API version 2**. <br/>
Find the HTTP API reference at [Policies resources](http-api-doc.html?urls.primaryName=api2#/Policies)." %}
{% include note.html content="Find the HTTP API reference at [Policies resources](http-api-doc.html?urls.primaryName=api2#/Policies)." %}


## Authorization concept
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ AuthenticationProvider authenticationProvider =
MessagingProvider messagingProvider =
MessagingProviders.webSocket(WebSocketMessagingConfiguration.newBuilder()
.endpoint("wss://ditto.eclipseprojects.io")
.jsonSchemaVersion(JsonSchemaVersion.V_2)
// optionally configure a proxy server or a truststore containing the trusted CAs for SSL connection establishment
.proxyConfiguration(proxyConfiguration)
.trustStoreConfiguration(TrustStoreConfiguration.newBuilder()
Expand All @@ -72,7 +71,7 @@ MessagingProvider messagingProvider =
.build())
.build(), authenticationProvider);

DisconnectedDittoClient disconnectedDittoClient = DittoClients.newDisconnectedInstance(messagingProvider);
DisconnectedDittoClient disconnectedDittoClient = DittoClients.newInstance(messagingProvider);

disconnectedDittoClient.connect()
.thenAccept(this::startUsingDittoClient)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,6 @@ All released versions are published on [npmjs.com](https://www.npmjs.com/~eclips

## Compatibility with [Eclipse Ditto](https://github.com/eclipse/ditto)

The `@eclipse-ditto/ditto-javascript-client-<package>_<ditto-major.minor-version>` modules
will be compatible with the `<ditto-major.minor-version>`, so e.g. `@eclipse-ditto/ditto-javascript-client-<package>_1.0`
will be compatible with Eclipse Ditto 1.0.x. The javascript modules themselves use
[semantic versioning](https://docs.npmjs.com/about-semantic-versioning) for their
api changes. All modules are released together, so if there is a version
`@eclipse-ditto/ditto-javascript-client-api_1.0:1.0.1`, there's also a release
of `@eclipse-ditto/ditto-javascript-client-dom_1.0:1.0.1`.

The newest release of the JavaScript client will always try to cover as much API
functionality of the same Eclipse Ditto major version as possible. There might
however be missing features for which we would be very happy to accept contributions.
Expand Down
Loading

0 comments on commit c0241f8

Please sign in to comment.