Creating, changing, and deleting, and requesting a run, are recorded in the audit log.
Remediation actions
Request bodytarget: 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.
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
{ "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.
{ "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