SuperOps Assets — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited SuperOps Assets (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.
SuperOps.ai RMM provides comprehensive asset management capabilities. Assets represent managed endpoints (workstations, servers, network devices) with rich telemetry including hardware specs, software inventory, patch status, and activity history. This skill covers querying, managing, and automating actions on assets.
you whether a target is online and what is installed; execution, batching, and exit codes are superops-runbooks.
hudu-assets anditglue-configurations an asset is a documented configuration item with no agent behind it. SuperOps assets are live RMM endpoints.
atera-agents, syncro-assets,ncentral-devices, immybot-endpoint-management, ninjaone-devices, and datto-rmm-devices each see only their own fleet. Patch and software inventory counts are not comparable across them.
planning is scalepad-lifecycle-manager.
| Status | Description | Indicator |
|---|---|---|
| Online | Agent connected and reporting | Green |
| Offline | Agent not responding | Red |
| Maintenance | In maintenance mode | Yellow |
| Platform | Description |
|---|---|
| Windows | Windows workstations and servers |
| macOS | Apple Mac computers |
| Linux | Linux distributions |
Identity and state: assetId, name, status, platform, lastSeen, agentVersion. Network: ipAddress, macAddress, publicIp, hostname. Hardware: manufacturer, model, serialNumber, processorName, processorCores, totalMemory, totalDiskSpace, freeDiskSpace. OS: osName, osVersion, osBuild, architecture. Associations: client, site, tags, customFields.
Memory and disk fields are Long values in bytes — convert before displaying or comparing against percentage thresholds.
See references/fields.md for the complete field reference.
| Operation | Type | Purpose |
|---|---|---|
getAssetList | query | List/filter assets; includes a patchStatus rollup per asset |
getAsset | query | Full detail for one asset (hardware, OS, network, associations) |
getAssetSoftwareList | query | Installed software, filterable by name substring |
getAssetDiskDetails | query | Per-volume space and usedPercentage |
getAssetPatchDetails | query | Patch list plus a summary counts block |
getAssetActivity | query | Audit history of actions performed on the asset |
runScriptOnAsset | mutation | Run a script on one asset with arguments and runAs |
runScriptOnAssets | mutation | Bulk run across an assetIds array; returns a batchId |
List queries return a listInfo block (totalCount, hasNextPage, endCursor) for cursor pagination; first sets the page size.
Filters support nested comparison objects, not just equality — e.g. "diskSpacePercentFree": { "lt": 10 } and "patchStatus": { "hasPending": true }.
See references/api.md for the full operation catalog with request shapes and variable examples.
Query getAssetList filtered to status: "Online" with diskSpacePercentFree: { lt: 10 } to surface endpoints running out of disk, returning freeDiskSpace/totalDiskSpace alongside the client name.
Query getAssetList filtered on patchStatus: { hasPending: true, severity: ["Critical"] } and read the per-asset patchStatus rollup (pendingCount, installedCount, failedCount, lastScanDate).
Query getAssetList filtered on software: { name: "..." } to find every asset with a given application installed — useful for license reconciliation and removing unsanctioned remote-access tools.
See references/api.md for all three workflow queries.
| Error | Cause | Resolution |
|---|---|---|
| Asset not found | Invalid asset ID | Verify asset exists |
| Asset offline | Agent not responding | Check network connectivity |
| Script failed | Execution error | Check script logs |
| Permission denied | Insufficient access | Check user permissions |
| Rate limit exceeded | Over 800 req/min | Implement backoff |
A status of Online alone is not sufficient — the status field can lag a dropped agent. Also check lastSeen freshness before dispatching a remote action:
// Check if asset is available for remote actions
function canRunRemoteAction(asset) {
if (asset.status !== 'Online') {
return {
canRun: false,
reason: `Asset is ${asset.status}. Last seen: ${asset.lastSeen}`
};
}
const lastSeenMinutes = (Date.now() - new Date(asset.lastSeen)) / 60000;
if (lastSeenMinutes > 5) {
return {
canRun: false,
reason: `Asset hasn't checked in for ${Math.round(lastSeenMinutes)} minutes`
};
}
return { canRun: true };
}~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.