Configure remotely
Change how a device behaves without touching it. Declare the configuration you want, bind it to a target, and let the platform reconcile what the device reports back.
Versioned config, declared once
A ConfigArtefact is an immutable, versioned blob of configuration validated against a profile schema. Each revision is a new version — nothing is edited in place, so you always know exactly what shipped. Small configs are stored inline; larger ones (like a trained classifier) are uploaded to object storage via a presigned URL.
Desired state, reconciled
A DesiredStateBinding assigns a ConfigArtefact to a target. Targets can be a single device or component, or broader — a device group, device profile, or sensor profile — with the most specific binding winning. The platform tracks a desired version and the version, status, and hash the device actually reports, so you can see whether a target is ACCEPTED, IN_PROGRESS, REJECTED, or FAILED.
Configuration reaches the device as a desired-state document over the message bus; the device applies it and reports back. You never push raw config blindly — you declare intent and watch it converge.
Commands for direct actions
A Command is a one-off instruction to a device with a full acknowledgement lifecycle: PENDING → SENT → ACKNOWLEDGED → SUCCESS (or FAILED / TIMEOUT). Built-in command types include REBOOT, UPDATE_CONFIG, UPDATE_FIRMWARE, and binding or unbinding a config artefact.
In the app
Send commands and bind config artefacts from the Commands tab on a device's detail page (/{slug}/devices/{id}).
In the API
GET|POST|DELETE /api/v1/config-artefacts— create immutable config revisionsPOST /api/v1/config-artefacts/upload-url— get a presigned URL for a large artefactGET|PUT|DELETE /api/v1/desired-state-bindings— assign config to targets and read reported statePOST /api/v1/devices/{deviceId}/commands— send a command;GET …to track its status
Binding or unbinding a config artefact is itself a command, so it carries the same acknowledgement lifecycle and a timeout if the device never reports back.