Edit this page

The following pages and posts are tagged with

TitleTypeExcerpt
Acknowledgements / Quality of Service Page Acknowledgements let you confirm that a signal was successfully received or processed, either by Ditto internally or by an external subscriber. TL;DR: Request acknowledgements (via the requested-acks header) to get confirmation that a command was persisted, forwarded, or processed by subscribers. Use them to achieve ‘at...
APIs Page For a comprehensive overview of all Ditto APIs and interfaces, see the API Overview.
Checking Permissions for Resources Page The /checkPermissions endpoint lets you verify whether the current user has specific permissions on specific resources – without modifying any data. TL;DR: POST a JSON object to /checkPermissions listing the resources and permissions you want to check. Ditto returns true or <code...
Authentication & Authorization Page Ditto protects every API request with authentication (verifying identity) and authorization (checking permissions). TL;DR: Ditto authenticates requests via pre-authentication (for example, nginx basic auth) or JWT tokens from OpenID Connect providers. Authorization is enforced through Policies that map authenticated subjects to fine-grained permissions. Authentication Every request...
Change Notifications Page Change notifications deliver events to your application whenever a digital twin or device state changes. TL;DR: Subscribe to change notifications via WebSocket, Server Sent Events (SSE), or connections. Filter by namespace or RQL expression to receive only the events you care about. How to receive change...
Errors Page Errors are structured responses that describe failures caused by client mistakes or server problems. TL;DR: Every error includes an HTTP status code, an error code string, a human-readable message, and an optional description with resolution hints. Use the <code class="language-plaintext...
Features Page A Feature groups related state data and capabilities of a Thing under a named identifier – for example, a “temperature” feature on a weather station or a “lamp” feature on a smart light. TL;DR: A Feature has an ID, properties (current state), optional desired properties (target state),...
Messages Page Messages let you send arbitrary payloads to or from a device through its digital twin. Unlike commands, messages do not change the twin’s state – Ditto routes them without inspecting their content. TL;DR: Messages are fire-and-forget payloads routed through Ditto to or from devices. Ditto does not...
Metadata Page Metadata lets you attach contextual information to any part of a Thing – for example, recording when a value was last updated, who changed it, or what unit of measurement it uses. TL;DR: Metadata is extra information attached to Thing attributes and feature properties. You set it via...
Namespaces & Names Page Ditto uses namespaced identifiers for Things, Policies, and other entities. Every ID combines a namespace and a name separated by a colon. TL;DR: Entity IDs follow the format namespace:name, with a maximum length of 256 characters. Namespaces use dot-separated segments (like Java packages), and names can...
Data Model Overview Page Ditto’s data model organizes IoT device data into a hierarchy of Things, Features, and Policies. TL;DR: A Thing has attributes (static metadata) and features (dynamic state). A Policy controls who can read and write each part. That is the entire data model. How the model works Ditto...
Policy Page A Policy enables developers to configure fine-grained access control for Things and other entities easily. Note: Find the HTTP API reference at Policies resources. Authorization concept A specific policy provides someone (called subject), permission to read and/or write a given resource. <div...
Things Page A Thing is Ditto’s core entity. It represents any asset you want to manage as a digital twin – a physical device, a virtual grouping, or any concept you can model as structured data. TL;DR: A Thing is a JSON object with an ID, a Policy reference, optional...