Skip to main content
Documentation
Preview
You're viewing the Next docs — a rolling preview of in-development changes. The current release docs may differ.

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

InterfacePurpose
PropertiesStore configuration, inventory, and current device state as JSON values.
GroupsOrganize devices into named sets within a project.
TelemetryRecord events emitted by a device.
CommandsRun on-demand actions on a connected device.
OTA UpdatesSelect software and report update progress through standard properties.
Device TokensProve 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:

FieldA Device Matches When
searchIts name, hostname, or ID contains the text, ignoring case.
statusIts combined status is the given healthy, warning, error, or offline.
groupsIt 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.