Devices
Register hardware UUIDs, provision per-device licenses, and manage boot config overrides.
What is a device?
A device is one physical board registered in your company workspace.
Each device has a unique device UUID that cryptographically binds its
license.bin — licenses cannot be copied between boards.
Devices always belong to a project group inside a project. Platform, display integration, and default boot config are inherited from that group.
Where devices live in the UI
- Devices in the top navigation — company-wide list of all registered boards.
- Inside a group overview — devices for that group only.
- Register device — create form at
/devices/create.
Registering a device
- Ensure the target group has platform, display, and (when enforced) boot config set, and that the parent project has free license slots.
- Go to Devices → Register device (or Add device on a group page).
- Enter the Device UUID:
- Scan the QR code on the device screen — opens
/?prov=UUIDand prefills the form after login. - Or read the UUID from manufacturing output / label.
- On Linux:
cat /sys/class/dmi/id/product_uuidorcat /etc/machine-idon boards without DMI.
- Scan the QR code on the device screen — opens
- Enter a human-readable Name (e.g.
Panel-12). - Select the Project group. Groups with no free slots show no free licenses and cannot be selected.
- Click Save.
Registration consumes one project license slot immediately, even before you provision the license file. The portal generates a device API token at registration time.
Device overview page
Each device has a detail page with these sections:
Status and metadata
- Licensed / Unlicensed badge — whether a provisioned license exists.
- Project, platform, and display (via group inheritance).
- Last seen — last connectivity report, if any.
- Owner — user who registered the device (if tracked).
Boot config resolution
- Effective boot config — device override, or group default if none set.
- Installed boot config — what the device last reported (revision, up-to-date vs update available).
- See Boot Config Editor for building configs.
Device API token
Reveal and copy the token from the overview page. Send it as header
X-Device-Token on provision, config, bundle, and boot-config API calls.
Generated at registration; treat it as a secret.
Provisioning
Registration reserves a license slot; provisioning creates the signed
license.bin bound to this device's UUID.
- Open the device overview.
- Click Provision device (or Re-provision for a new generation).
- Download the license via Download license file or copy the provision URL.
- Deploy to hardware — USB serial tool in the portal (Chrome/Edge), SD card, or your factory process.
Re-provisioning increments the generation counter. Previous generations remain in Provisioning History for audit.
For automated lab workflows, use CLI Provisioning with a group token instead of the web form.
Boot config API URLs
On the device page you will find:
- Metadata URL — poll revision and SHA-256 with
X-Device-Token. - Binary download URL — fetch
initstub.binwhen an update is available.
Poll metadata with optional X-Installed-Boot-Config-Id and
X-Installed-Boot-Revision; the API returns 304 when the device is up to date.
Editing a device
Edit device lets you change:
- Name
- Project group — moves the device to another group (same company)
- Status — online / offline (manual or operational label)
- Boot Config Override — per-device splash/timings instead of the group default; only configs matching the group's platform + display appear
The device UUID cannot be changed after registration.
Deleting a device
Removing a device frees its project license slot for reuse. Confirm you no longer need the provisioning history before deleting.
Troubleshooting
| Issue | What to check |
|---|---|
| Cannot register — no groups available | Project allocation full, or no group has free slots |
| Group disabled in dropdown | Group missing platform/display/boot config, or no free slots |
| UUID already registered | Each UUID can exist only once in the portal |
| Provision button fails | Project allocation, device license product mismatch (GraphLab Boot vs GraphLab Boot - Development), or missing company license |
| Boot config download 404 | Assigned config not built yet — finish VPS build in the editor |
| QR UUID not prefilled | Scan before login — UUID is kept in session until registration |
See also
- Easy Setup — Steps 5–6 (register + provision)
- Groups — hardware recipe and CLI tokens
- CLI Provisioning
- Licensing