Skip to main content
A remediation action is a fix defined in advance, such as calling a Jenkins rollback job or restarting a Deployment. Running one on an incident always goes through approval: L2 needs one approver and L3 needs two, and the requester cannot be an approver. Once approved it runs at once, and the outcome and the check after it are recorded on the incident’s timeline. How the pages use it is in Remediation. Creating, changing, and deleting, and requesting a run, are recorded in the audit log.

Remediation actions

Request body target: an HTTP request The request connects only to the IPs the address resolves to, refuses cloud metadata addresses, follows no redirects, and times out after 30 seconds; a 2xx response counts as success. target: Kubernetes parameters[] Template variables: {{incident.id}}, {{incident.summary}}, {{incident.severity}}, {{incident.status}}, {{incident.service}} (the service label, or else the first affected service), {{incident.url}} (the incident page), and {{params.<key>}}. Values are percent-encoded in the address and escaped as JSON strings in a JSON body; unknown variables become empty.
The response is the saved action. Header values and the signing secret are never returned: the values in headers are empty, and secrets_set lists the secrets that are set, for example ["header:Authorization", "signing_secret"]. On a change, a header left empty and a missing signing_secret keep their values; an empty signing_secret removes the signature.

Kubernetes clusters

The token needs get and patch on the target workloads, and a rollback also needs to list ReplicaSets. Connections go only to the IPs the API server address resolves to, refuse cloud metadata addresses, and time out after 30 seconds. Deleting a cluster that an action still uses is refused.

Run an action on an incident

Returns { "actions": [ ... ], "runs": [ ... ] }: the enabled actions that apply to this incident (secrets removed), and the incident’s runs. A run whose approval was rejected, expired, or cancelled reads as declined.
The response is { "run": { ... }, "approval": { ... } }: the run, and the approval submitted for it. The approval’s risk follows the action’s risk, and its impact says which address will be called, or what will be done to which workload on which cluster. Approvers approve or reject it with POST /api/v1/agent/approvals/{approval_id}/review and the body { "approve": true, "comment": "…" }, which requires agent.approve; the run starts as soon as enough approvals are in.
Errors
Last modified on October 31, 2026