Definitions
Definitions describe how device payloads should be encoded, decoded, displayed, and understood by backend systems. They are the contract between firmware and Infuse IoT integrations.
Infuse IoT exposes three definition registries:
| Registry | Use |
|---|---|
| RPC definitions | Commands, request/response structures, and enums used by RPC workflows. |
| TDF definitions | Structured telemetry definitions for device-emitted data. |
| KV definitions | Device key-value entry definitions for configuration and state. |
Versioned Contracts
Each registry supports a latest version and version-specific reads. Backend services should use the definition version that matches the device firmware or data source they are processing.
When adding new definitions, treat them as versioned contracts:
- keep backward compatibility where devices in the field still use older firmware,
- avoid changing field meaning without a new definition version,
- update backend encoders and decoders together with firmware releases,
- use definitions to drive display labels and decoded values instead of hard-coding payload interpretation in every integration.
RPC Definitions
RPC definitions contain commands, structs, and enums. Use them when building command payloads for POST /rpc and when decoding responses returned through RPC message reads.
| Task | Endpoint |
|---|---|
| Get latest RPC definitions | GET /defs/rpc |
| Add RPC definitions | POST /defs/rpc |
| Get RPC definitions by version | GET /defs/rpc/{version} |
TDF Definitions
TDF definitions describe structured telemetry data. Use them when telemetry emitted by firmware needs consistent decoding before downstream storage or analytics.
| Task | Endpoint |
|---|---|
| Get latest TDF definitions | GET /defs/tdf |
| Add TDF definitions | POST /defs/tdf |
| Get TDF definitions by version | GET /defs/tdf/{version} |
KV Definitions
KV definitions describe device key-value entries. They allow KV entry reads and updates to use decoded object values where definitions are known, instead of only raw base64 data.
| Task | Endpoint |
|---|---|
| Get latest KV definitions | GET /defs/kv |
| Add KV definitions | POST /defs/kv |
| Get KV definitions by version | GET /defs/kv/{version} |
For endpoint schemas, see the Infuse IoT API reference.