SG SealGrid Athena Docs

Inventory

The Hermes agent continuously discovers hardware and software on each endpoint and reports it to the server. Inventory is collected in modules, and each module can be streamed individually to the server as it completes — so partial results land without waiting for a full pass.

What's collected#

Hermes organizes collection into discrete inventory modules. Each module targets one area of the endpoint; on Windows the data is read from WMI, the registry, DISM, and performance counters.

ModuleWhat it covers
osOperating system identity, edition, build, and domain membership
hardwareManufacturer, model, serial, processor, RAM, chassis, BIOS
bootsecuritySecure Boot state, TPM presence/version, pending-restart status
processorsInstalled CPUs and their characteristics
memoryPhysical memory and per-slot detail (including DDR type)
storageStorage devices and volumes
networkNetwork configuration and interfaces
sharesShared folders exposed by the endpoint
softwareInstalled software / applications
servicesWindows services and their state
environmentEnvironment variables
updatesInstalled hotfixes / KB updates
featuresWindows optional features (enumerated via DISM)
localgroupsLocal groups and membership
metricsReal-time CPU, memory, and disk metrics
agentinfoReported state of the Hermes agent itself

Collection on Windows uses WMI, the registry, DISM (for optional features), and performance counters (for real-time metrics). Modules complete independently and stream to the server as they finish.

Detail fields#

The key fields reported per area:

AreaKey fields
OSProductName, DisplayVersion, OsBuild, Domain, IsServerOs, IsServerCore
HardwareManufacturer, Model, Serial, UUID, Processor, RAM, ChassisType, IsVirtualMachine, BiosVersion
BootSecuritySecureBoot, TPM present / version, RestartPending
MemorySlotsPer-slot detail including DDR type
StorageDevicesStorage device inventory
NetworkConfig / Interfaces / SharesNetwork configuration, interfaces, and shared folders
SoftwareInstalled applications
WindowsUpdatesInstalled hotfixes / KBs
WindowsFeaturesOptional Windows features
WindowsServicesServices and state
LocalGroupsLocal groups and membership
EnvironmentVariablesEnvironment variables
AgentInfoHermes agent self-report
CertificateInfoCertificate inventory

Derived agent flags#

From the reported inventory, the server derives a set of flags it uses to classify each agent:

How it's stored#

The server persists reported inventory in JSON columns:

ColumnHolds
HardwareJsonHardware inventory
SoftwareJsonInstalled software inventory
NetworkJsonNetwork configuration and interfaces
ModuleDataJsonOutput from custom modules

Querying inventory#

Inventory for an agent is read from GET api/agents/{agentId}/inventory, with sub-routes for each area:

Sub-routeReturns
.../inventory/osOperating system inventory
.../inventory/hardwareHardware inventory
.../inventory/metricsReal-time CPU / memory / disk metrics
.../inventory/processorsProcessor inventory
.../inventory/memoryMemory and slot inventory
.../inventory/storageStorage devices
.../inventory/networkNetwork configuration and interfaces
.../inventory/softwareInstalled software
.../inventory/updatesInstalled hotfixes / KBs
.../inventory/servicesWindows services
.../inventory/featuresWindows optional features

A refresh can be triggered from the server, optionally scoped to specific modules, with a force_refresh flag. Fetch the hardware inventory for an agent over the API:

# Fetch hardware inventory for one agent
$headers = @{ Authorization = "Bearer $token" }

Invoke-RestMethod `
  -Uri "https://athena.example.com:8443/api/agents/$agentId/inventory/hardware" `
  -Headers $headers `
  -SkipCertificateCheck

Refresh intervals#

Two cadences govern how often the server hears from an agent:

SettingDefaultPurpose
HeartbeatIntervalSeconds90Lightweight heartbeat — confirms the agent is alive
StatusUpdateIntervalSeconds180Full status / inventory update