Devices
A device is a managed system registered in a Nexigon project. Each device has
a globally unique ID, beginning with d_, assigned by Nexigon Hub at
registration.
Nexigon Agent connects the device to Nexigon Hub using a deployment token, a device certificate, and a fingerprint. The authentication reference describes enrollment and identity checks.
Device Interfaces
| Interface | Purpose |
|---|---|
| Properties | Store configuration, inventory, and current device state as JSON values. |
| Groups | Organize devices into named sets within a project. |
| Telemetry | Record events emitted by a device. |
| Commands | Run on-demand actions on a connected device. |
| OTA Updates | Select software and report update progress through standard properties. |
| Device Tokens | Prove a device’s identity to another application. |
To connect a new Linux device, follow Getting Started. For production enrollment, follow Device Provisioning.
Listing Devices
projects_QueryDevices lists the devices of a project by the time they were
first seen, newest first. It always returns a single page, by default the 100
newest devices. Clients that need every device must follow
page.nextCursor as described in Pagination.
An optional filter narrows the listing. All supplied conditions must hold:
| Field | A Device Matches When |
|---|---|
search | Its name, hostname, or ID contains the text, ignoring case. |
status | Its combined status is the given healthy, warning, error, or offline. |
groups | It satisfies the all, any, and none group conditions. |
A device without an active connection has the combined status offline. A
connected device takes its status from the status field of its
dev.nexigon.system.health property: error yields error, degraded yields
warning, and any other value or a missing property yields healthy.
Group conditions contain group IDs. all requires every listed group, any
requires at least one, and none excludes every listed group. Empty all and
none lists impose no restriction, while an empty any list matches no
devices. See Groups for details.
For example, the following input lists offline devices whose name, hostname, or
ID contains gateway:
{
"projectId": "<project-id>",
"filter": { "search": "gateway", "status": "offline" }
}
projects_CountDevices takes the same projectId and filter. It returns the
number of devices in the project as total and the number matching the filter
as matching. Without a filter, matching equals total.
The status, groups, name, or hostname of a device can change while a client pages through a filtered listing. The device can then leave or enter the listing between pages.
The filter cannot read device properties. To evaluate JSON predicates over
device properties, use fleet_PreviewOperationTargets with an
operation target selector.