ninjaone-devices — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ninjaone-devices (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Manage NinjaRMM-enrolled endpoints: query details, control Windows services, schedule maintenance, and reboot devices safely.
GET /api/v2/device/{id}
Authorization: Bearer {token}Response (key fields):
{
"id": 42, "systemName": "WS-ACCT-017",
"offline": false, "lastContact": "2025-04-10T14:32:00Z",
"os": { "name": "Windows 11 Pro" },
"nodeRoleId": 1, "organizationId": 5, "policyId": 12
}PATCH /api/v2/device/{id}
Authorization: Bearer {token}
Content-Type: application/json{ "displayName": "WS-ACCT-017-Renamed", "nodeRoleId": 2, "policyId": 45 }GET /api/v2/device/{id}/alerts
GET /api/v2/device/{id}/activities
Authorization: Bearer {token}GET /api/v2/device/{id}/windows-services # list all
POST /api/v2/device/{id}/windows-service/{serviceId}/control # control
Authorization: Bearer {token}
Content-Type: application/jsonControl body — actions: START, STOP, RESTART:
{ "action": "RESTART" }If the service does not exist, the API returns 404. Verify serviceId by listing services first.
PUT /api/v2/device/{id}/maintenance # schedule
DELETE /api/v2/device/{id}/maintenance # cancel
Authorization: Bearer {token}
Content-Type: application/json{ "start": "2025-04-16T02:00:00Z", "end": "2025-04-16T06:00:00Z" }POST /api/v2/device/{id}/reboot/{mode}
Authorization: Bearer {token}Modes: NORMAL (graceful, notifies user) | FORCED (immediate, no warning).
Destructive operation — always validate before rebooting. See safe-reboot workflow below.
1. GET /api/v2/device/{id} → assert "offline": false
2. GET /api/v2/device/{id}/alerts → review severity; abort if critical
3. POST /api/v2/device/{id}/reboot/NORMAL
4. Poll GET /api/v2/device/{id} every 30s (up to 10 min) → wait for "offline": false
5. If still offline after 10 min → GET /api/v2/device/{id}/alerts for new alerts; escalateError recovery: If step 1 shows "offline": true, do not reboot. Check lastContact and alerts to diagnose.
1. GET /api/v2/device/{id}/windows-services → find target service, note serviceId
2. If state is "STOPPED", use "START"; otherwise use "RESTART"
3. POST /api/v2/device/{id}/windows-service/{serviceId}/control Body: { "action": "RESTART" }
4. GET /api/v2/device/{id}/windows-services → confirm state is "RUNNING"Error recovery: 404 means wrong serviceId — re-list and match by serviceName (case-sensitive). 409 means device offline — check device status first.
1. GET /api/v2/device/{id} → confirm online, note OS and role
2. GET /api/v2/device/{id}/volumes → flag volumes with < 10% free space
3. GET /api/v2/device/{id}/alerts → triage by severity
4. GET /api/v2/device/{id}/windows-services → verify critical services are RUNNINGFORCED skips user notification and risks data loss.See REFERENCE.md for device roles, hardware inventory endpoints, device approval, regional API base URLs, and error codes.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.