September 29, 2021 - Bosch IoT Things - service update

Our latest service release comes with various changes:

Conditional requests on things

Bosch IoT Things supports modifying, deleting, and retrieving things based on specific conditions of the current thing state.

Conditions are based on RQL expressions and define that a request should be applied to a thing only if the condition is true. All fields of the thing can be used to define the condition.

  • If the condition specified in the request is fulfilled, the thing will be updated and an event will be emitted.
  • If the condition specified in the request is not fulfilled, the thing is not modified, and no event/change notification is emitted.

Conditional requests are supported via HTTP API, Ditto protocol and Ditto Java Client.

Examples: See concepts > conditional requests.

Event enrichment

Bosch IoT Things supports now to enrich even “deleted events” with data, which was available before deletion. The existing enrichment functionality (“extraFields” for connections, WebSockets, SSE) has been extended and now also supports to enrich “deleted events”. The data for enrichment is taken from the state just before the deletion is executed.

Example: Imagine that your application listens to the lifecycle events of a thing than is to be deleted, and needs additional info in order to delete it from other systems as well.
For such a case, you can apply event enrichment. Find details at Protocol > Enrichment of events and messages.

Note: Deleted events are handled without special care for QoS-1 requirements, like all other events in Bosch IoT Things. Thus, if an IoT application needs to make sure to not miss a “deleted event”, it will need to take special care in the application itself (e.g. use requested-acks on the delete command, and special recovery handling in case of partial execution).

Eclipse Ditto version 2.1.0 has been released

Our open source base - Eclipse Ditto - has been released accordingly.
Read the full release notes at

At this occasion, various minor bugs have also been fixed.

September 9, 2021 - Bosch IoT Things - service update

Our latest service release comes with various changes:

Connections status details

To easy categorize the cause why a managed connection might not work as expected, we have introduced a “connection status”.

The connection status helps to distinguish between errors that are most probably “customer related” (i.e. in responsibility of the customer) vs. service related problems, which are in the responsibility of our backend. If an error cannot be distinguished, it is classified as “service related” for now.

Further, whenever connections are stuck in a service related failure state, we are alerted and will do best efforts to re-establish such connections.

Examples of customer related failures:

  • authentication errors due to wrong credentials
  • target host not reachable
  • certificate errors

Examples of service related failures:

  • internal required cluster communication failed
  • unknown (no known live status within status aggregation)
  • all other errors that cannot be identified as being caused by wrong usage

The easiest way to look up the newly introduced status is the Connections UI.


You can of course also retrieve the status via Bosch IoT Things HTTP API.
See GET /solutions/{solutionId}/connections/{connectionId}/status

  "connectionId": "xxx",
  "connectionStatus": "open",
  "liveStatus": "open",
  "clientStatus": [
      "type": "client",
      "client": "connectivity-xxx",
      "address": null,
      "status": "open",
      "statusDetails": "[CONNECTED] Connected at 2021-09-09T11:19:10.459570814Z",
      "inStateSince": "2021-09-09T11:19:07.857Z"
  "sourceStatus": [],
  "targetStatus": [
      "type": "target",
      "client": "connectivity-xxx",
      "address": "Shared.things2di/{{ thing:id }}",
      "status": "open",
      "statusDetails": "Started at 2021-09-09T11:19:07.879082781Z",
      "inStateSince": "2021-09-09T11:19:11.639Z"
  "sshTunnelStatus": [],
  "connectedSince": "2021-09-09T11:19:07.857Z"

Further changes

  • Minor corrections in this documentation as well as in HTTP API docs
  • Improved resilience of authentication chain
  • Security relates changes
    • Strict Transport Security (HSTS) configuration
    • Check usage of x-forwarded-host & x-original-uri
  • Improved Azure deployment
  • Removed all references to the Bosch IoT Permissions service, which is retired
  • Introduced basic tracing

At this occasion, various minor bugs have also been fixed.

Corporate information Data protection notice Legal information Support Free plans