Skip to content

Commit

Permalink
Merge pull request #783 from bosch-io/doc/release-notes-120
Browse files Browse the repository at this point in the history
added Ditto 1.2.0 release notes
  • Loading branch information
thjaeckle committed Aug 31, 2020
2 parents 5ca982a + 31f07ec commit 2698510
Show file tree
Hide file tree
Showing 4 changed files with 92 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ entries:
- title: Release Notes
output: web
folderitems:
- title: 1.2.0
url: /release_notes_120.html
output: web
- title: 1.1.5
url: /release_notes_115.html
output: web
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ permalink: basic-acknowledgements.html
---

Acknowledgements are a concept in Ditto used to indicate that a
[supported signal](#supported-signal-types--supportedsignaltypes) was successfully received or processed by either an
[supported signal](#supported-signal-types) was successfully received or processed by either an
internal Ditto functionality or an external subscriber of that signal.

Acknowledgements can be seen as (potentially multiple) responses to a single signal like for example a twin command.
This means that Ditto collects all the [requested acknowledgements](#requesting-acknowledgements) until the signal is
This means that Ditto collects all the [requested acknowledgements](#requesting-acks) until the signal is
successfully processed within a specified timeout interval.

## Usage scenario examples
Expand Down Expand Up @@ -58,7 +58,7 @@ If the subscriber is in charge of handling a requested acknowledgement it

## Acknowledgements (ACKs)
A single acknowledgement contains the following information:
* Acknowledgement label (one of the requested labels of the [ack requests](#acknowledgement-requests))
* Acknowledgement label (one of the requested labels of the [ack requests](#requesting-acks))
* Header fields
* mandatory: **correlation-id** the same correlation ID as the one of the signal which requested the acknowledgement
* optional: additional header fields
Expand Down Expand Up @@ -282,19 +282,19 @@ acknowledgement, and `4xx` for a non-successful one) together with additional de

### Assure QoS until persisted in Ditto - twin-persisted
In order to ensure that a [create/modify command](protocol-specification-things-create-or-modify.html) resulted in a
successful update of twin in Ditto's managed database, [request the acknowledgement](#requesting-acknowledgements) for
successful update of twin in Ditto's managed database, [request the acknowledgement](#requesting-acks) for
the [built-in "twin-persisted"](#built-in-acknowledgement-labels) acknowledgement label.

### Assure QoS until processing of a live command/message by a subscriber - live-response
In order to ensure that a live command or live message is processed by a subscriber,
[request the acknowledgement](#requesting-acknowledgements) for
[request the acknowledgement](#requesting-acks) for
the [built-in "live-response"](#built-in-acknowledgement-labels) acknowledgement label.
This acknowledgement request is fulfilled when the subscriber sends a live response or message response.

### Assure QoS until processing of a twin event or live command/message by subscribers - custom label
In order to ensure that a [create/modify command](protocol-specification-things-create-or-modify.html) resulted in an
event which was consumed by an application integrating with Ditto, or that a live command or live message is consumed
without any live or message response, [request the acknowledgement](#requesting-acknowledgements) for a
without any live or message response, [request the acknowledgement](#requesting-acks) for a
[custom acknowledgement label](#custom-acknowledgement-labels).

## Interaction between headers
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ See [Basic Authentication](basic-auth.html#authorization-context-in-devops-comma
#### Source acknowledgement requests

A source can configure, that for each incoming message additional
[acknowledgement requests](basic-acknowledgements.html#acknowledgement-requests) are added.
[acknowledgement requests](basic-acknowledgements.html#requesting-acks) are added.

That is desirable whenever incoming messages should be processed with a higher "quality of service" than the default,
which is "at most once" (or QoS 0).
Expand Down
90 changes: 82 additions & 8 deletions documentation/src/main/resources/pages/ditto/release_notes_120.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,103 @@
---
title: Release notes 1.2.0
tags: [release_notes]
published: false
published: true
keywords: release notes, announcements, changelog
summary: "Version 1.2.0 of Eclipse Ditto, released on 31.08.2020"
permalink: release_notes_120.html
---

The second minor (feature adding) release of Eclipse Ditto 1 is here: **1.2.0**.

It is API and [binary compatible](https://github.com/eclipse/ditto/blob/master/documentation/src/main/resources/architecture/DADR-0005-semantic-versioning.md)
to Eclipse Ditto 1.0.0 and 1.1.0.

## Changelog

Compared to the latest minor release [1.1.0](release_notes_110.html), the following changes, new features and
bugfixes were added.

The main change of Ditto 1.2.0 is the now full support for QoS 1 ("at least once") message processing.

### Changes

### Bugfixes
#### [Update Docker base image to OpenJ9 0.21.0](https://github.com/eclipse/ditto/pull/743)

## Migration notes
Updated to running the Ditto Docker containers with the latest OpenJ9 0.21.0 (with OpenJDK 11).

### rename config keys containing `blacklist` to `blocklist`:
* in `gateway.conf`: `ditto.gateway.http.redirect-to-https-blocklist-pattern`
* in `ditto-cluster.conf`: `ditto.cluster.cluster-status-roles-blocklist`
* in `ditto-protocol.conf`: `ditto.protocol.blocklist`
#### Added config key for setting the max pool size for connections

### added config key for setting the max pool size for connections
The pool is used for mapping inbound and outbound messages in the connectivity service. It is configured
per connection in the attribute `processorPoolSize`.

To provide a meaningful max per-connection pool size, you can now configure a service-wide maximum
in the connectivity service using the key `ditto.connectivity.mapping.max-pool-size` (or its corresponding
environment variable `CONNECTIVITY_MESSAGE_MAPPING_MAX_POOL_SIZE`).


### New features

#### [`fn:filter` function for connectivity header mapping](https://github.com/eclipse/ditto/pull/674)

In connection [header mappings](connectivity-header-mapping.html) as part of the placeholders, the new
[`fn:filter`](basic-placeholders.html#function-library) function may be used in order to remove the result of the
previous expression in the function pipeline unless the condition specified by the parameters is satisfied.

#### [Whoami HTTP resource](https://github.com/eclipse/ditto/pull/687)

The new HTTP `GET` resource `/whoami` may be called in order to find out which authorization subjects were resolved in
the HTTP call's authentication. This can be e.g. useful to find out the used JWT subject which should be added to
[policies](basic-policy.html#who-can-be-addressed).

#### [Support using client certificate based authentication in HTTP push connections](https://github.com/eclipse/ditto/pull/695)

Connections of type [HTTP push](connectivity-protocol-bindings-http.html) can now, additionally to username/password
based authentication, make use of
[client certificate based authentication](connectivity-protocol-bindings-http.html#client-certificate-authentication).

#### [Automatic end-2-end acknowledgements handling for managed connections](https://github.com/eclipse/ditto/issues/661)

Acknowledgements can now be configured to be requested for messages consumed by connection
[sources (acknowledgement requests)](basic-connections.html#source-acknowledgement-requests) and can automatically be
issued by targets to automatically [issue acknowledgements](basic-connections.html#target-issued-acknowledgement-label)
for all published twin events, live commands and live messages that request them.

#### [End-2-end acknowledgements support for "live" messages/commands](https://github.com/eclipse/ditto/issues/757)

Acknowledgements for [live messages/commands](basic-acknowledgements.html#assure-qos-until-processing-of-a-live-commandmessage-by-a-subscriber---live-response)
are now supported as well. Both requesting and issuing them, e.g. in order to acknowledge that a message was
successfully received without directly responding to it.

#### [Addition of `_created` date to things](https://github.com/eclipse/ditto/issues/749)

Whenever a [thing](basic-thing.html) is now created, a JSON field `"_created"` is now added containing the creation
date. This field can be selected via [fields selection](httpapi-concepts.html#with-field-selector), as the already
existing `"_modified"` field can also be. The created date can also be used as part of
[search RQL queries](basic-rql.html).

#### [Support for adding `_metadata` to things](https://github.com/eclipse/ditto/issues/680)

On modifying API calls to a [thing](basic-thing.html), additional metadata can now be passed with the header field
`"put-header"`. Documentation for this feature is still missing, but will be added soon after the 1.2.0 release.

### Bugfixes

Several bugs in Ditto 1.1.x were fixed for 1.2.0.<br/>
This is a complete list of the
[merged pull requests](https://github.com/eclipse/ditto/pulls?q=is%3Apr+milestone%3A1.2.0), including the fixed bugs.

#### [Connectivity service does not consume message after reconnect to AMQP (0.9.1)](https://github.com/eclipse/ditto/issues/770)

Connections via AMQP 0.9.1 did not correctly resume message consumption after the broker was e.g. restarted.


## Migration notes

### Renamed config keys containing `blacklist` to `blocklist`

* in `gateway.conf`: `ditto.gateway.http.redirect-to-https-blocklist-pattern`
* in `ditto-cluster.conf`: `ditto.cluster.cluster-status-roles-blocklist`
* in `ditto-protocol.conf`: `ditto.protocol.blocklist`

If you configured any of the `blocklist` entries with Ditto < 1.2.0, you'll have to adjust your configuration
accordingly.

0 comments on commit 2698510

Please sign in to comment.