Restrictions

Please consider following restrictions.

Service plan

What Description
Namespaces max. 1 for Free plan
max. 1 for Starter plan
max. 10 for Standard plan
Managed connections / integrations max. 10 for Free plan - this number could be less in future
max. 10 for Starter plan - this number could be less in future
max. 10 for Standard plan
Client count per managed connection / integration max. 1 for Free plan
max. 2 for Starter plan
max. 3 for Standard plan
Data volume max. 0.5 MB for Free plan - no additional volumes supported
max. 1 MB for Starter plan - no additional volumes supported
included 50 MB for Standard plan - additional volumes supported and accounted additionally to the monthly fee
Transactions max. 100,000 for Free plan - no additional transactions supported
max. 500,000 for Starter plan - no additional transactions supported
included 10,000,000 for Standard plan - additional transactions supported and accounted additionally to the monthly fee

Identifier

What Description
Thing ID

Policy ID
✓ must be unique and follow the pattern namespace:name
see additionally the rows below for Namespace, Thing name and Policy name
✓ max. 256 characters
Namespace The namespace must conform to the reverse domain name notation (aka Java package format)
✓ must start with a lower- or uppercase character from a-z
✓ can use dots “.” to separate characters
✓ a dot “.” must be followed by a lower- or uppercase character from a-z
✓ numbers can be used
✓ underscore “_” can be used

(See Namespace for examples)
Thing name (part after : in thing ID)

JSON keys of thing attributes

Feature ID

JSON keys of feature properties

Policy name (part after : in policy ID)

Policy label
✓ max. 256 characters (together with Namespace, for Thing name and Policy name)
✓ may not contain the slash character /
✓ may not contain the control characters hex 00-1F and 7F-FF
✓ may contain special characters, but these have to be encoded/decoded according to the standard/format required for the respective communication channel

See Decoding and encoding of special characters for details.
Message subject

Subject ID within policy (aka authorization subject)

Resource within policy
✓ max. 256 characters
✓ may not contain the control characters hex 00-1F and 7F-FF
✓ may contain special characters, but these have to be encoded/decoded according to the standard/format required for the respective communication channel

See Decoding and encoding of special characters for details.

Decoding and encoding of special characters

All APIs of the Bosch IoT Things service will expect encoding of input data and decoding of output data as required for the respective communication channel/protocol:

  • URL encoding for entities included in HTTP URLs (according to RFC 3986, i.e. %-escaping of most special characters)
  • HTTP conform delivery of HTTP header values (according to RFC 7230, Section 3.2.6)
  • JSON encoding in JSON content and Eclipse Ditto protocol message content (according to ECMA 404, The JSON Data Interchange Syntax, Chapter 9)
  • Respective encodings/decodings defined for AMQP/MQTT/Kafka (if needed according to the respective protocols)

Tip: No encoding/decoding is required when using Java with the Eclipse Ditto Java Client.

Sizes

What Description
Size of a thing max. 100 kB - complete content including all attributes, features, etc. in JSON representation
Size of thing - feature - property path max. 950 Byte
i.e. the complete path of a namespace - thing name - features - feature ID - properties - property key including all sub keys.
Applies also for the namespace - thing name - attributes - path
Size of a message max. 250 kB
Size of a policy max. 100 kB
OAuth scopes in a JWT 20 scopes
i.e. if your custom OpenID Connect provider issues a JWT with more than 20 scopes, we will only accept the first 20.
Authorization subjects max. 100
Size of header max. 5 kB - i.e the sum of all headers must not exceed this limit
Top-level entries in a custom header max. 100
A header x-things-parameter-order is used to provide the correct order of JSON payload.
JSON strings The null character \u0000 is forbidden
JSON integers The range of integer values allowed is from -9223372036854775808 to 9223372036854775807.
This is the limit of a 64 bit signed integer, also known as long integer.
Search index max. 950 Byte for the path
max. 950 Byte for the value
What Description
Managed connections / integrations
(e.g. to Bosch IoT Hub)
Max. 100 messages/second
(i.e. 100 emitted or consumed events or messages)
If a single connection receives more than 100 messages per second, back-pressure is applied and the consumption gets throttled.
Please contact us if more is needed.
Managed connections - HTTP forwarding Max. 100 requests can be queued for HTTP forwarding
If a single connection queues more than 100 HTTP requests, further events/messages/commands will be dropped instead of being forwarded.
For a Free plan this is a fixed limit.
Starter and Standard plans can however increase the client count, and/or additionally increase the HTTP parallelism from 1 up to 10.
WebSocket connections Max. 100 messages/second
(i.e. 100 emitted or consumed events or messages)
If a single connection receives more than 100 messages per second, back-pressure is applied and the consumption gets throttled.
Please contact us if more is needed.
WebSocket based integrations:
• Things protocol over WebSocket
• Ditto client (Java)
• Things client (Java)
• Ditto JavaScript client - when using WebSocket API instead of HTTP API
WebSocket based integrations cannot be used to implement integrations with your own horizontally scaled application, because there is no support for load balancing of receiving events via WebSockets.
Each WebSocket connection of each node of your application cluster will receive all messages, and this would not help to do load balancing on your side.
Payload mapping Only supported for the Connections channel
Payload mapping: max. size of JavaScript code 50 KB
Payload mapping: max. execution time per message 500 msec. (single CPU core)
Payload mapping: max. stack depth 10 levels
Payload mapping: max. applied Ditto Protocol messages from one external message 10
A single JavaScript based payload mapping can at most create an array of 10 Ditto Protocol messages from one single external message.
Payload mapping: JavaScript language support JavaScript/ECMAScript language features according to Rhino Version 1.7.11 with a subset of ES5, 6, and 7. See http://mozilla.github.io/rhino/compat/engines.html for details.
Enrichment of events and messages It can take up to 2 minutes to reflect recent updates of the corresponding thing and its policy. Thus, especially for live communication, the “enriched” content might be slightly behind the current thing.
Server-Sent Events (SSE) The Azure infrastructure does not allow SSE. Thus, in case you have booked our service plan on that infrastructure, you can not establish any SSE connection to our service.
Imprint Legal info Privacy statement