Skip to main content

Context

What's actually inside the {Device.*} and {Config.*} placeholder sources, and what a task's Rule evaluates against.

Device metadata​

The device context is the agent's own reported metadata — the same object a Rule condition checks and {Device.Path} reads from:

FieldWhat it is
mac_addressMAC address
ip_addressIP address
nameDevice name
locationGeographic location (lat/long-style object)
osOperating system
os_releaseOS release version
storage_availableAvailable storage, in bytes
batteryBattery status
bandwidthLatest measurement — download/upload Kbps and connection type
versionsInstalled agent and agent-UI versions
(anything else)Any custom key sent in the device's metadata that isn't one of the fields above is kept flat, exactly as sent — reachable the same way ({Device.customField})

So {Device.os} resolves the OS string, {Device.bandwidth.downloadKbps} (or however a given custom field is nested) resolves into that object, and {Device.customField} reaches anything you've added yourself — same rules as every other placeholder: it must resolve to a scalar, or the task fails.

Device config groups​

{Config.*}, {ConfigJson.*} and {ConfigPath.*} read the configuration groups the device has synced from the server (GetConfig) — the groups the agent keeps on disk. They are read once when the action starts running. A device with no synced config leaves every {Config.*} unresolved, which fails the task that uses it. See Tasks for how paths and group values resolve.

{DeviceConfig.*} is different: it reads the agent's own runtime settings (config.yaml), dotted by zone — e.g. {DeviceConfig.device.meta_data.name}.

See also​