Applications

Outdated applications across the fleet and the full application inventory.

MethodPathSummary
GET/api/appsApplication patching: outdated apps across the fleet, one row per app
GET/api/apps/inventoryApplication inventory: every app found on devices (device_apps, built by the scanner from each device's report), one row per app, with how many devices have …
GET/api/apps/inventory/devicesDevices that have an app

#Application patching: outdated apps across the fleet, one row per app

GET/api/apps

Application patching: outdated apps across the fleet, one row per app. Apps are kind 'app' updates (winget/<id>, snap/<n>, flatpak/<id>) plus apt/dnf packages that RMM's application catalogue deploys. Each row lists its devices so "Update everywhere" can make a selected job, and says which catalogue app (if any) it belongs to.

Address
https://<your-org>.brambleit.cloud/warden/api/apps
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Warden.

Response 200

FieldTypeDescription
appsarray of any
manualarray of any
coverageany
summaryobject
summary.appsinteger
summary.devicesinteger
summary.updatesinteger
Example response
JSON
{
  "apps": [],
  "manual": [],
  "coverage": null,
  "summary": {
    "apps": 1,
    "devices": 1,
    "updates": 1
  }
}

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/apps', {
  method: 'GET',
  credentials: 'include',
});
const data = await res.json();

#Application inventory: every app found on devices (device_apps, built by the scanner from each device's report), one row per app, with how many devices have …

GET/api/apps/inventory

Application inventory: every app found on devices (device_apps, built by the scanner from each device's report), one row per app, with how many devices have it, which versions, and how many are behind.

Address
https://<your-org>.brambleit.cloud/warden/api/apps/inventory
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Warden.

Response 200

FieldTypeDescription
appsarray of object
apps[].app_keystring
apps[].namestring
apps[].publisherstring, or null
apps[].sourcesarray of any
apps[].devicesinteger
apps[].outdatedinteger
apps[].patchableinteger
apps[].unknowninteger
apps[].lateststring, or null
apps[].version_countinteger
apps[].versionsarray of any
apps[].storeboolean
summaryobject
summary.appsinteger
summary.outdated_appsinteger
summary.devicesnumber
summary.devices_outdatednumber
Example response
JSON
{
  "apps": [
    {
      "app_key": "…",
      "name": "Example name",
      "publisher": "string",
      "sources": [],
      "devices": 1,
      "outdated": 1,
      "patchable": 1,
      "unknown": 1,
      "latest": "string",
      "version_count": 3,
      "versions": [],
      "store": false
    }
  ],
  "summary": {
    "apps": 1,
    "outdated_apps": 1,
    "devices": 12.5,
    "devices_outdated": 12.5
  }
}

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/apps/inventory', {
  method: 'GET',
  credentials: 'include',
});
const data = await res.json();

#Devices that have an app

GET/api/apps/inventory/devices
Address
https://<your-org>.brambleit.cloud/warden/api/apps/inventory/devices
Requires
Signed-in browser session (the sso_session / session_id cookies from Bramble sign-in).
Licence: Warden.

Query parameters

NameTypeDescription
keystringThe app (from the inventory list).

Response 200

FieldTypeDescription
devicesarray of object
devices[].device_idstring
devices[].namestring
devices[].versionstring, or null
devices[].latest_versionstring, or null
devices[].statusstring
devices[].patchableboolean
devices[].update_packagestring, or null
devices[].scopestring, or null
devices[].sourcestring
devices[].device_nameinteger
devices[].onlineboolean
devices[].site_nameany
Example response
JSON
{
  "devices": [
    {
      "device_id": "string",
      "name": "Example name",
      "version": "string",
      "latest_version": "string",
      "status": "active",
      "patchable": false,
      "update_package": "string",
      "scope": "string",
      "source": "string",
      "device_name": 1,
      "online": false,
      "site_name": null
    }
  ]
}

Example request

JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/apps/inventory/devices', {
  method: 'GET',
  credentials: 'include',
});
const data = await res.json();