Appearance
Coming from v4
v5 is a redesign, not an increment. If you have an existing v4 client, these are the changes that will touch your code:
| Topic | v4 | v5 |
|---|---|---|
| Authentication | Bearer token via Basic auth (GET /iam/token) | DPoP-bound token pair via POST /auth/login; every request carries a proof (Authentication & Sessions) |
| Sign-up | POST /iam/signup with username + code | POST /user/register with invite code + password; login uses the email address |
| Resource identifiers | Plain strings | CRNs: crn#tenant:….device:….service:… (overview) |
| Device list | GET /services or GET /devices (service module) | GET /devices (flake module) — the device tree is the only root |
| Property ids | Decimal in the service API, hex in schemas | Canonical hex (0x0800) everywhere in REST — no conversion needed |
| Schemas | GET /schemas?depth=1 | GET /schema?depth=1; enum is now a list of {value, name} instead of a record |
| Names in URLs | openProperty/:property accepted schema names | Property routes take hex ids only; schema method names address device method calls |
| Live updates | GET /events/ticket, wss://…/api/v1/events?ticket=… | GET /socket/ticket, wss://…/api/v1/socket?ticket=… — ticket is single-use and expires after 30 s (WebSocket & Events) |
| Remote wire | Dedicated TCP connection for remote control | Removed — reads/writes go over REST, live data over the websocket |
The rest of the guide assumes no v4 knowledge — a port is best approached like a new integration, starting with the Quickstart.