Skip to content

Commit

Permalink
prepare Ditto 3.1.0
Browse files Browse the repository at this point in the history
* write release notes + blog entry
* update dependencies to latest patches
* re-generate legal documents

Signed-off-by: Thomas Jaeckle <thomas.jaeckle@bosch.io>
  • Loading branch information
thjaeckle committed Dec 13, 2022
1 parent b5a1eee commit 7d4364a
Show file tree
Hide file tree
Showing 7 changed files with 291 additions and 97 deletions.
6 changes: 3 additions & 3 deletions bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@

<!-- ### Compile dependencies versions -->
<minimal-json.version>0.9.5</minimal-json.version>
<jackson-bom.version>2.13.4</jackson-bom.version>
<jackson-bom.version>2.13.4.20221013</jackson-bom.version>
<typesafe-config.version>1.4.2</typesafe-config.version>
<ssl-config-core.version>0.6.1</ssl-config-core.version>
<akka-bom.version>2.6.20</akka-bom.version>
Expand All @@ -53,11 +53,11 @@

<jjwt.version>0.11.5</jjwt.version>
<asm.version>9.2</asm.version>
<qpid-jms-client.version>1.6.0</qpid-jms-client.version>
<qpid-jms-client.version>1.7.0</qpid-jms-client.version>
<newmotion-akka-rabbitmq.version>6.0.0</newmotion-akka-rabbitmq.version>
<amqp-client.version>5.14.2</amqp-client.version>
<reactive-streams.version>1.0.4</reactive-streams.version>
<netty-bom.version>4.1.82.Final</netty-bom.version>
<netty-bom.version>4.1.86.Final</netty-bom.version>
<cloudevents.version>2.3.0</cloudevents.version>

<slf4j.version>1.7.36</slf4j.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ entries:
- title: Release Notes
output: web
folderitems:
- title: 3.1.0
url: /release_notes_310.html
output: web
- title: 3.0.0
url: /release_notes_300.html
output: web
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
title: "Announcing Eclipse Ditto Release 3.1.0"
published: true
permalink: 2022-12-15-release-announcement-310.html
layout: post
author: thomas_jaeckle
tags: [blog]
hide_sidebar: true
sidebar: false
toc: false
---

The Eclipse Ditto teams is proud to announce the availability of Eclipse Ditto
[3.1.0](https://projects.eclipse.org/projects/iot.ditto/releases/3.1.0).

Version 3.1.0 brings **policy imports**, **AMQP 1.0 message annotation** support, **conditional message sending** and
other smaller improvements, e.g. regarding shutdown/restart improvements.


## 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)

When you use Eclipse Ditto it would be great to support the project by putting your logo there.


## Changelog

The main improvements and additions of Ditto 3.1.0 are:

* **Conditional message processing** based on a specified condition targeting the twin state
* Support for **reading/writing AMQP 1.0 "Message annotations"** in Ditto managed connections
* **Policy imports**: Reference other policies from policies, enabling reuse of policy entries
* Several Ditto explorer UI enhancements
* Support for configuring an **audience** for Ditto managed HTTP connections performing OAuth2.0 based authentication

The following non-functional enhancements are also included:

* End-2-End **graceful shutdown support**, enabling a smoother restart of Ditto services with less user impact
* Support for **encryption/decryption of secrets** (e.g. passwords) part of the Ditto managed connections before
persisting to the database
* IPv6 support for blocked subnet validation

The following notable fixes are included:

* Fixing that known connections were not immediately started after connectivity service restart

Please have a look at the [3.1.0 release notes](release_notes_310.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/)

<br/>
<br/>
{% include image.html file="ditto.svg" alt="Ditto" max-width=500 %}
--<br/>
The Eclipse Ditto team
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ See [Basic Authentication](basic-auth.html#authorization-context-in-devops-comma
## Encryption sensitive configuration data
There is an option to enable encryption of credentials or other sensitive fields of the connection entities before they are
persisted in the database on global service configuration level.
For more details refer to [Connections sensitive data encryption](installation-operating.html#connections-sensitive-data-encryption)
For more details refer to [Connections sensitive data encryption](installation-operating.html#encrypt-sensitive-data-in-connections)

## CRUD endpoints

Expand Down
129 changes: 129 additions & 0 deletions documentation/src/main/resources/pages/ditto/release_notes_310.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
---
title: Release notes 3.1.0
tags: [release_notes]
published: true
keywords: release notes, announcements, changelog
summary: "Version 3.1.0 of Eclipse Ditto, released on 15.12.2022"
permalink: release_notes_310.html
---

With Eclipse Ditto version 3.1.0 the first minor release of Ditto 3.x is provided.

This release is completely [IP (intellectual property) checked by the Eclipse Foundation](https://www.eclipse.org/projects/handbook/#ip)
meaning that project code as well as all used dependencies were "[...] reviewed to ensure that the copyrights
expressed are correct, licensing is valid and compatible, and that other issues have been uncovered and properly
investigated."

## Changelog

Eclipse Ditto 3.1.0 focuses on the following areas:

* **Conditional message processing** based on a specified condition targeting the twin state
* Support for **reading/writing AMQP 1.0 "Message annotations"** in Ditto managed connections
* **Policy imports**: Reference other policies from policies, enabling reuse of policy entries
* Several Ditto explorer UI enhancements
* Support for configuring an **audience** for Ditto managed HTTP connections performing OAuth2.0 based authentication

The following non-functional enhancements are also included:

* End-2-End **graceful shutdown support**, enabling a smoother restart of Ditto services with less user impact
* Support for **encryption/decryption of secrets** (e.g. passwords) part of the Ditto managed connections before
persisting to the database
* IPv6 support for blocked subnet validation

We want to especially highlight the following bugfixes also included:

* Fixing that known connections were not immediately started after connectivity service restart


### New features

#### [Process/forward messages conditionally based on twin state](https://github.com/eclipse-ditto/ditto/issues/1363)

Similar to the [conditional requests](basic-conditional-requests.html) for CRUD of things, a (RQL based) `condition`
can now be passed when sending a messages from/to a thing.
There is a separate [blog post](2022-11-04-live-message-conditions.html) on this topic showing some example use cases.

#### [Support AMQP Message Annotations when extracting values for Headers](https://github.com/eclipse-ditto/ditto/issues/1390)

Ditto managed connections with the [AMQP 1.0](connectivity-protocol-bindings-amqp10.html) can now process
[AMQP 1.0 Message Annotations](http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-message-annotations)
by reading/writing them as if they would be message headers.

#### [Let policies import other policies to enable re-use when securing things](https://github.com/eclipse-ditto/ditto/issues/298)

Coming back at a very old issue and feature request, it is now possible to reuse existing policies in other policies.
That enables many scenarios where it is important to provide certain access in a single policy and a change to that
policy is immediately applied to all policies importing that one.

For example, an administrator or support group could be defined in a global policy which gets referenced from all other
policies. When changes are required, e.g. a new user account is added as subject to the "administrator" policy, this
change must only be done for a single policy, being effective for potentially thousands of other policies.

#### Enhancements in Ditto explorer UI

We again received several contributions by [Thomas Fries](https://github.com/thfries),
who contributed the Ditto explorer UI.
The latest live version of the UI can be found here:
[https://eclipse-ditto.github.io/ditto/](https://eclipse-ditto.github.io/ditto/)

You can use it in order to e.g. connect to your Ditto installation to manage things, policies and even connections.

Contributions in this release:
* [Select Ditto Explorer UI "environment" via query parameter](https://github.com/eclipse-ditto/ditto/issues/1449)
* [Allow to use namespaces in search in Explorer UI](https://github.com/eclipse-ditto/ditto/pull/1519)
* [Explorer UI json payload for messages](https://github.com/eclipse-ditto/ditto/pull/1529)
* [Improved search filter in explorer ui](https://github.com/eclipse-ditto/ditto/pull/1531)
* [Explorer UI: fixed bug caused by filter dropdown](https://github.com/eclipse-ditto/ditto/pull/1534)


### Changes

#### [End-2-end graceful shutdown support](https://github.com/eclipse-ditto/ditto/pull/1520)

The Ditto team again invested in improving graceful shutdown behavior of the single Ditto services,
e.g. to reduce the amount of failed (HTTP) requests in case of a rolling update.
Inflight requests are e.g. waited to complete before finally shutting down an instance which received a termination
request (e.g. from Kubernetes).

#### [Encrypt connection sensitive data stored in MongoDB](https://github.com/eclipse-ditto/ditto/pull/1550)

Add functionality to apply a symmetrical encryption/decryption of all known sensitive fields in a Ditto
managed connection stored in the DB.
See the updated [documentation](installation-operating.html#encrypt-sensitive-data-in-connections) for details.

#### [Adjust blocked subnet validation for IPv6](https://github.com/eclipse-ditto/ditto/pull/1522)

The Ditto team checked for compatibility of Ditto with IPv6 and found that the validation for blocked subnets did not
yet work with IPv6.
This is now supported.


### Bugfixes

Several bugs in Ditto 3.0.x were fixed for 3.1.0.
This is a complete list of the
* [merged pull requests for milestone 3.1.0](https://github.com/eclipse-ditto/ditto/pulls?q=is:pr+milestone:3.1.0)

Here as well for the Ditto Java Client: [merged pull requests for milestone 3.1.0](https://github.com/eclipse-ditto/ditto-clients/pulls?q=is:pr+milestone:3.1.0)


## Migration notes

There are no migration steps required when updating from Ditto 3.0.x to Ditto 3.1.0.
When updating from Ditto 2.x version to 3.1.0, the migration notes of
[Ditto 3.0.0](release_notes_300.html#migration-notes) apply.


## Roadmap

Looking forward, the current plans for Ditto 3.2.0 are:

* [Addition of an Eclipse Hono connection type](https://github.com/eclipse-ditto/ditto/pull/1548)
* [Provide API to stream/replay persisted events from the event journal](https://github.com/eclipse-ditto/ditto/issues/1498)
* Perform a benchmark of Ditto and provide a "tuning" chapter in the documentation as a reference to the commonly
asked questions
* how many Things Ditto can manage
* how many updates/second can be done
* whether Ditto can scale horizontally
* how many resources (e.g. machines) are required at which scale
41 changes: 20 additions & 21 deletions legal/3rd-party-dependencies/compile.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ ch.qos.logback:logback-core:jar:1.2.11:compile
com.eclipsesource.minimal-json:minimal-json:jar:0.9.5:compile
com.fasterxml.jackson.core:jackson-annotations:jar:2.13.4:compile
com.fasterxml.jackson.core:jackson-core:jar:2.13.4:compile
com.fasterxml.jackson.core:jackson-databind:jar:2.13.4:compile
com.fasterxml.jackson.core:jackson-databind:jar:2.13.4.2:compile
com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:jar:2.13.4:compile
com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.13.4:compile
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.13.4:compile
Expand Down Expand Up @@ -52,7 +52,6 @@ com.typesafe.akka:akka-stream-kafka_2.13:jar:3.0.1:compile
com.typesafe.akka:akka-stream_2.13:jar:2.6.20:compile
com.typesafe:config:jar:1.4.2:compile
com.typesafe:ssl-config-core_2.13:jar:0.6.1:compile
commons-net:commons-net:jar:3.8.0:compile
io.cloudevents:cloudevents-api:jar:2.3.0:compile
io.cloudevents:cloudevents-core:jar:2.3.0:compile
io.cloudevents:cloudevents-http-basic:jar:2.3.0:compile
Expand All @@ -63,18 +62,18 @@ io.kamon:kamon-instrumentation-common_2.13:jar:2.5.8:compile
io.kamon:kamon-opentelemetry_2.13:jar:2.5.8:compile
io.kamon:kamon-prometheus_2.13:jar:2.5.8:compile
io.kamon:kamon-system-metrics_2.13:jar:2.5.8:compile
io.netty:netty-buffer:jar:4.1.80.Final:compile
io.netty:netty-codec-http:jar:4.1.80.Final:compile
io.netty:netty-codec:jar:4.1.80.Final:compile
io.netty:netty-common:jar:4.1.80.Final:compile
io.netty:netty-handler:jar:4.1.80.Final:compile
io.netty:netty-resolver:jar:4.1.80.Final:compile
io.netty:netty-transport-classes-epoll:jar:4.1.80.Final:compile
io.netty:netty-transport-classes-kqueue:jar:4.1.80.Final:compile
io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.80.Final:compile
io.netty:netty-transport-native-kqueue:jar:osx-x86_64:4.1.80.Final:compile
io.netty:netty-transport-native-unix-common:jar:4.1.80.Final:compile
io.netty:netty-transport:jar:4.1.80.Final:compile
io.netty:netty-buffer:jar:4.1.86.Final:compile
io.netty:netty-codec-http:jar:4.1.86.Final:compile
io.netty:netty-codec:jar:4.1.86.Final:compile
io.netty:netty-common:jar:4.1.86.Final:compile
io.netty:netty-handler:jar:4.1.86.Final:compile
io.netty:netty-resolver:jar:4.1.86.Final:compile
io.netty:netty-transport-classes-epoll:jar:4.1.86.Final:compile
io.netty:netty-transport-classes-kqueue:jar:4.1.86.Final:compile
io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.86.Final:compile
io.netty:netty-transport-native-kqueue:jar:osx-x86_64:4.1.86.Final:compile
io.netty:netty-transport-native-unix-common:jar:4.1.86.Final:compile
io.netty:netty-transport:jar:4.1.86.Final:compile
io.opentelemetry:opentelemetry-api:jar:1.13.0:compile
io.opentelemetry:opentelemetry-context:jar:1.13.0:compile
io.opentelemetry:opentelemetry-exporter-otlp-http-trace:jar:1.13.0:compile
Expand All @@ -88,11 +87,11 @@ net.i2p.crypto:eddsa:jar:0.3.0:compile
nl.grons:metrics4-akka_a25_2.13:jar:4.1.19:compile
nl.grons:metrics4-scala_2.13:jar:4.1.19:compile
org.agrona:agrona:jar:1.15.1:compile
org.apache.kafka:kafka-clients:jar:3.0.1:compile
org.apache.qpid:proton-j:jar:0.33.10:compile
org.apache.qpid:qpid-jms-client:jar:1.6.0:compile
org.apache.sshd:sshd-common:jar:2.9.0:compile
org.apache.sshd:sshd-core:jar:2.9.0:compile
org.apache.kafka:kafka-clients:jar:3.0.2:compile
org.apache.qpid:proton-j:jar:0.34.0:compile
org.apache.qpid:qpid-jms-client:jar:1.7.0:compile
org.apache.sshd:sshd-common:jar:2.9.2:compile
org.apache.sshd:sshd-core:jar:2.9.2:compile
org.atteo.classindex:classindex:jar:3.11:compile
org.codehaus.janino:commons-compiler:jar:3.1.7:compile
org.codehaus.janino:janino:jar:3.1.7:compile
Expand All @@ -113,8 +112,8 @@ org.ow2.asm:asm-util:jar:9.2:compile
org.ow2.asm:asm:jar:9.2:compile
org.reactivestreams:reactive-streams:jar:1.0.4:compile
org.scala-lang.modules:scala-java8-compat_2.13:jar:1.0.0:compile
org.scala-lang:scala-library:jar:2.13.8:compile
org.scala-lang:scala-reflect:jar:2.13.8:compile
org.scala-lang:scala-library:jar:2.13.10:compile
org.scala-lang:scala-reflect:jar:2.13.10:compile
org.slf4j:jcl-over-slf4j:jar:1.7.36:compile
org.slf4j:jul-to-slf4j:jar:1.7.36:compile
org.slf4j:slf4j-api:jar:1.7.36:compile
Expand Down
Loading

0 comments on commit 7d4364a

Please sign in to comment.