Sync & policies
proPro sync state and centralised policy CRUD.
Pro
| Method | Path | Summary | Flags |
|---|---|---|---|
| GET | /sync/status | Cloud sync state and last successful pull. | Pro |
| GET | /sync/configs | List synced team configs. | Pro |
| POST | /sync/configs | Apply a synced config bundle to this device. | Pro |
| GET | /policies | List custom policies. | Pro |
| GET | /policies/{name} | Fetch one policy. | Pro |
| POST | /policies | Create a policy. | Pro |
| PUT | /policies/{name} | Update a policy. | Pro |
| DELETE | /policies/{name} | Delete a policy. | Pro |
Sync state
GET /sync/status reports the device's view of the team-managed config bundle:
{
"last_pull": "2026-05-14T09:00:00Z",
"last_push": "2026-05-13T18:30:00Z",
"pending_changes": 0,
"bundle_id": "..."
}
GET /sync/configs lists synced configs (profiles, filter configs, channel
configs, scoring overrides).
POST /sync/configs applies a sync bundle. Body is signed by the dashboard;
signature is verified before any state is mutated.
Policies
Policies are reusable named bundles of (threshold overrides, filter configs, profile, allowed channels). Listed and managed via the dashboard, exposed here for automation.
GET /policies # list
GET /policies/{name} # fetch one
POST /policies # create
PUT /policies/{name} # update
DELETE /policies/{name} # delete
A policy shape:
{
"name": "tight-prod",
"description": "Hardened for production sessions",
"thresholds": { "auto_allow": 2.0, "auto_deny": 6.0 },
"profile_override": "minimal",
"filter_configs": { "egress": "policies/tight-prod/egress.toml" },
"channels_allowed": ["pagerduty", "slack-prod"]
}
See also
Last updated: 2026-05-14Edit this page on GitHub →