Agent Settings

Agent Settings are the fleet-wide defaults that govern how every agent behaves: how often it checks in, when the server considers it offline, how frequently it takes a full inventory, how long its certificate lasts, where deployment packages land, and how much it logs. You manage them in one place — Settings → Agents — and the two most time-sensitive values (check-in and inventory cadence) are pushed to connected agents immediately, with no restart. It is the client-policy tuning a System Center or PDQ admin expects, kept entirely on your own server.

These are server-wide defaults for the whole fleet. For getting the agent onto a machine, see Agent Enrollment; for moving agents onto a new binary, see Agent Binaries & Updates; for pausing a single machine, see Maintenance Mode.

Where to find it#

Open Settings and choose the Agents tab. It is divided into sub-tabs; the two that hold fleet behaviour are:

Reading Agent Settings and saving changes both require the Admin role. The whole Settings area is Admin-only, and every save is written to the audit log (see Auditing).

Heartbeat & connectivity#

The Heartbeat Settings section controls how agents check in and how the server decides an agent is online. Three values work together:

SettingWhat it doesDefaultRange
Heartbeat Interval
heartbeatIntervalSeconds
How often each agent sends a lightweight heartbeat to the server confirming it is alive. 59 s 5–300 s
Heartbeat Timeout
heartbeatTimeoutSeconds
How many seconds without a heartbeat before the server marks the agent offline, and how long a silent connection is kept open. This is the cutoff behind the Dashboard's online/offline counts. 600 s 3× the interval – 900 s
Full Inventory Interval
statusUpdateIntervalSeconds
How often the agent performs a full inventory collection. Between full collections, the heartbeat carries only changed items (delta inventory). 300 s (5 min) 30 s – 86400 s (1 day)

The console recommends keeping the timeout at least three times the interval so that one or two dropped heartbeats don't briefly flag a healthy agent as offline. With the shipped configuration (59 s interval, 600 s timeout) an agent that goes silent is marked offline after 10 minutes. For exactly how the two values are applied, see Agent Status & Health.

Tuning for scale vs. responsiveness

A shorter interval makes the Dashboard react to state changes faster but adds more check-in traffic across a large fleet; a longer interval is quieter but slower to notice a machine dropping off. The Full Inventory Interval is the heavier operation — raising it reduces load on very large fleets, at the cost of inventory data being refreshed less often. See how "online" is decided on the Dashboard.

Changes take effect live#

When you change the Heartbeat Interval or Full Inventory Interval and save, the server pushes the new cadence to every currently connected agent over the connection it already holds. Agents apply it on the spot — no restart and no reinstall. Agents that are offline at the time pick up the new values the next time they connect. The other Agent Settings below are stored on the server and applied through their own mechanisms (for example at the next certificate renewal, or the next time an agent's log stream is opened) rather than being broadcast immediately.

Certificate validity & auto-renewal#

The Certificate Settings section governs the lifetime of the per-agent certificates Athena issues (see Certificates & PKI):

SettingWhat it doesDefaultRange
Certificate Validity
certificateValidityDays
How many days a newly issued or renewed agent certificate remains valid. 30 days 7–365 days
Auto-Renewal Threshold
certificateRenewalThresholdDays
How many days before expiry an agent's certificate is automatically renewed, so it never lapses while the agent is in service. 7 days —

Shorter validity is stricter (certificates rotate more often); the renewal threshold should stay comfortably below the validity so agents always renew before the current certificate expires.

Deployment & display defaults#

The remaining Configuration sections set operational defaults and how agent metrics are presented in the console:

SettingWhat it doesDefaultOptions
Default Deployment Folder
defaultDeploymentFolder
The default directory on the agent where deployment packages are staged. /data/packages Any path
Network I/O Format
networkIOFormat
Display format for agent network-speed metrics. Auto Auto (KB/s or MB/s), Kbps (kilobits/sec), KBs (kilobytes/sec)
Uptime Format
uptimeFormat
Display format for how agent uptime is shown. Short Short (4d 22h 04m), Long (4 Days, 22:04), Compact (4D:22H:04M), Full (4 days 22 hrs 4 min)
Default Log Level
defaultLogLevel
The initial log level shown when you open the Live Logs section on an Agent Details page. A per-agent change on that page overrides this default for that session only. Information Verbose, Debug, Information, Warning, Error, Fatal

Auto Update#

On the Updates sub-tab, the Auto Update toggle (autoUpdateEnabled) decides whether agents automatically pull and apply a new binary when one becomes available, or wait for you to push it explicitly. It is off by default — updates are an explicit, deliberate action unless you turn this on. Full details of the binary library and pushing versions are on Agent Binaries & Updates.

No internet involved

Agent Settings are stored on your own server and delivered to agents over the connections they already hold to it. Tuning cadence, certificate lifetime or auto-update never reaches outside your network. See Air-Gapped Operation.

Roles#

Reading and changing Agent Settings is restricted to Admin users — the entire Settings area, its REST endpoints, and the matching PowerShell cmdlets all require the Admin role. Operators and Viewers can see agent state on the Dashboard and Agent Details but cannot change these fleet defaults. See Roles & Permissions.

REST API#

Agent Settings are exposed under api/settings/agent. Reading them requires the settings.view permission and saving requires settings.manage; with the built-in roles, both are held only by Admin (see Permission Model).

Method & pathPermissionPurpose
GET api/settings/agentsettings.viewReturn the current agent settings. Secret fields are masked.
PUT api/settings/agentsettings.manageReplace the agent settings. Changed heartbeat / inventory cadence is broadcast to connected agents; the change is audited.
GET api/settingssettings.viewReturn all settings groups at once (General, Security, Agent, Scheduler, Database, Logging). The Agent group is masked the same way.

An update replaces the whole Agent group#

PUT api/settings/agent is a full replacement, not a patch. The same object also carries the RustDesk, screen-share relay and session recording options, and every one of them is written from the body you send. A field you leave out is not left alone: it is saved as its built-in default. For example, a body that only sets the heartbeat values would also turn off RustDesk and browser screen-share and clear the stored relay key, fleet default password and TURN secret.

The safe pattern is always read, change, write back: GET the current object, change only the fields you mean to, and PUT the whole object back.

# 1. Read the current settings (the object is in the "data" property)
GET api/settings/agent

# 2. Change only what you need, e.g. slow the fleet down on a large network:
#    "heartbeatIntervalSeconds": 60, "heartbeatTimeoutSeconds": 180,
#    "statusUpdateIntervalSeconds": 600

# 3. Send the complete object back, secret fields still reading "********"
PUT api/settings/agent

Invalid values return 400; an unauthenticated call returns 401, and a caller without the required permission 403. A successful update returns a confirmation message.

Secret fields are masked#

Three agent settings are live credentials. The REST API never returns their stored values:

JSON fieldWhat it is
rustDeskServerKeyPublic key of your self-hosted RustDesk relay.
rustDeskDefaultPasswordThe fleet default RustDesk password used by Apply to all.
webRtcTurnStaticAuthSecretThe shared secret for the screen-share relay (TURN).

How these fields behave over the REST API:

A secret can't be the literal mask

Because "********" means "keep what is stored", you cannot set a secret to exactly eight asterisks over the REST API or PowerShell. Pick any other value.

The Settings → Agents screen is separate from the REST API and is unaffected by this masking. In the audit log, a changed secret is recorded as changed but its value is hidden. A secret sent back as "********" counts as unchanged, so it adds no audit entry.

PowerShell#

The PowerShell module reads and writes settings by category with Get-AthenaSettings and Set-AthenaSettings. The reliable pattern is to fetch the current object, change a field, and put it back:

# Inspect the current agent defaults
Get-AthenaSettings -Category Agent

# Fetch, tweak, and save back
$agent = Get-AthenaSettings -Category Agent
$agent.HeartbeatIntervalSeconds = 60
$agent.HeartbeatTimeoutSeconds  = 180
Set-AthenaSettings -Category Agent -Settings $agent

The object returned by Get-AthenaSettings -Category Agent has the secret fields set to ********. Passing it back unchanged keeps the stored secrets. To rotate one, set that property to the new value before you save.

Don't pass a partial hashtable for the Agent category

Set-AthenaSettings accepts a hashtable, but it sends only the keys you include. Because an Agent update replaces the whole group, every key you leave out is reset to its default. That includes the RustDesk, screen-share and recording options and the stored secrets. For -Category Agent, always pass the full object from Get-AthenaSettings, as shown above.

Get-AthenaSettings accepts -Category General, Security, Agent, Scheduler, Database or Logging (omit it to get everything). Set-AthenaSettings supports the writable categories (General, Security, Agent, Scheduler, Logging) and supports -WhatIf / -Confirm so you can preview a change before applying it. All of these require an Admin session.

Auditing#

Every save to Agent Settings is recorded in the audit log with the Admin who made the change, so you can see who adjusted heartbeat cadence, certificate lifetime or auto-update, and when. If you forward audit events to a SIEM, those changes flow there too — see Audit Forwarding to SIEM.

Recommendations#