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:
- Configuration — heartbeat, certificate, deployment, display formats and log level. This is the sub-tab this page focuses on.
- Updates — the agent binary library, push updates, and the Auto Update toggle (see also Agent Binaries & Updates).
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:
| Setting | What it does | Default | Range |
|---|---|---|---|
Heartbeat IntervalheartbeatIntervalSeconds |
How often each agent sends a lightweight heartbeat to the server confirming it is alive. | 59 s |
5–300 s |
Heartbeat TimeoutheartbeatTimeoutSeconds |
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 IntervalstatusUpdateIntervalSeconds |
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.
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):
| Setting | What it does | Default | Range |
|---|---|---|---|
Certificate ValiditycertificateValidityDays |
How many days a newly issued or renewed agent certificate remains valid. | 30 days |
7–365 days |
Auto-Renewal ThresholdcertificateRenewalThresholdDays |
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:
| Setting | What it does | Default | Options |
|---|---|---|---|
Default Deployment FolderdefaultDeploymentFolder |
The default directory on the agent where deployment packages are staged. | /data/packages |
Any path |
Network I/O FormatnetworkIOFormat |
Display format for agent network-speed metrics. | Auto |
Auto (KB/s or MB/s), Kbps (kilobits/sec), KBs (kilobytes/sec) |
Uptime FormatuptimeFormat |
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 LeveldefaultLogLevel |
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.
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 & path | Permission | Purpose |
|---|---|---|
GET api/settings/agent | settings.view | Return the current agent settings. Secret fields are masked. |
PUT api/settings/agent | settings.manage | Replace the agent settings. Changed heartbeat / inventory cadence is broadcast to connected agents; the change is audited. |
GET api/settings | settings.view | Return 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 field | What it is |
|---|---|
rustDeskServerKey | Public key of your self-hosted RustDesk relay. |
rustDeskDefaultPassword | The fleet default RustDesk password used by Apply to all. |
webRtcTurnStaticAuthSecret | The shared secret for the screen-share relay (TURN). |
How these fields behave over the REST API:
- On read — if a value is stored,
GET api/settings/agentandGET api/settingsreturn"********"in its place. If nothing is stored, the field comes backnull, so you can still tell whether a secret is set. - To keep a secret — send
"********"back unchanged. The server keeps the stored value. This is what makes the read, change, write back pattern safe. - To rotate a secret — send the new value in that field. It is written as given.
- To clear a secret — send
nullor an empty string, or leave the field out.
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.
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#
- Keep Heartbeat Timeout ≥ 3× Heartbeat Interval so a couple of missed heartbeats don't cause false "offline" flapping.
- On large fleets, prefer a longer Full Inventory Interval to reduce load; leave the heartbeat short enough that the Dashboard still feels responsive.
- Keep the Auto-Renewal Threshold well below Certificate Validity so certificates always renew before they expire.
- Leave Auto Update off unless you specifically want hands-off upgrades; pushing versions deliberately gives you a controlled rollout.
- Because interval changes push to connected agents instantly, make cadence adjustments during a quiet window and watch the Dashboard to confirm agents stay online.