Wheelhouse docs

Automation#

Six jobs, in the order most people meet them.

GuideThe job
Your first API callA token, curl, and the two conventions every other page uses
Stage and commit from a scriptThe write plane, and the confirm window that makes it safe
Config as code with agent.yamlOne file says what the router should look like
Keep the router aligned on a timerThe loop that closes the gap, and the two modes it runs in
Alert on driftKnowing the router has moved away from the file
Point one agent at several routersFleet mode, and what it honestly does

The two conventions#

Every example on this site uses them.

bash
R=https://<router>:8443
T=wh_...                                    # an API token with the role the call needs
curl -sk -H "Authorization: Bearer $T" "$R/api/system"

Use a token, not a cookie. Token requests skip the CSRF header requirement that browser sessions have. Issue a token for automation.

-k is for a self-signed certificate. Drop it once you have a trusted one.

Three planes, three answers#

PlaneRoleWithout a licence
ReadviewerWorks
Write — stage, commit, roll back, reconcile, appsoperator402, with the reason
Admin — accounts, tokens, settings, licence, power, imagesadmin402 for the mutating ones

Reads never need a licence. That is worth building around: a monitoring integration keeps working on a router whose subscription has lapsed, and so does getting the configuration off it.

What there is not#


Checked against agent/main.go · agent/license.go · docs/deploy.md · SUPPORT.md

Updated 2026-09-02 automation api desired-state fleet