Skip to content

Developer portal

POST /tenant/scans/{scan_id}/remediation/automate

Trigger automated remediation actions like ACME reissue, GitHub PR, or Venafi checks.

PilotPOST /tenant/scans/{scan_id}/remediation/automateAuth: operator | admin

Summary

Trigger automated remediation actions like ACME reissue, GitHub PR, or Venafi checks.

Example

curl

curl -X POST "https://sparkling-vibrancy-production-1a7a.up.railway.app/tenant/scans/{scan_id}/remediation/automate" \
  -H "Authorization: Bearer 811f31d4-5b8e-4ed0-a7a2-8176e05eba63" \
  -H "Content-Type: application/json" \
  -d '{
  "remediationId": "rem_001",
  "action": "github_pr",
  "repo": "qtangl/infra"
}'

Request body

FieldTypeRequiredDescription
remediationIdstringYes

Remediation backlog item id.

action"acme" | "github_pr" | "venafi"Yes

Automation action type.

domainstringNo

Domain override for ACME.

repostringNo

Repository for GitHub PR action.

branchstringNo

Target branch name.

titlestringNo

PR title override.

policyIdstringNo

Policy id for Venafi checks.

Response

FieldTypeRequiredDescription
resultobjectYes

Automation execution output.

Errors

CodeMeaningTypical causeSuggested fix
401UnauthorizedMissing or invalid API key in Authorization, x-api-key, or query param.Send Bearer <key> or x-api-key with a valid tenant token.
403ForbiddenValid key but insufficient role (viewer attempting write) or wrong admin key.Use operator or admin role key; check RBAC matrix.
404Not foundScan, schedule, share link, or resource id does not exist or expired.Verify id and tenant scope; share links expire per expiresHours.
422Unprocessable entityInvalid payload shape, unsupported scenario, or infeasible constraints.Fix field errors in response detail; relax constraints and retry.
429Too many requestsPer-key rate limit exceeded (default 300 requests per minute) or public endpoint limit.Backoff with jitter; cache results; request higher limit for production.
500Internal server errorUnexpected backend failure; includes requestId in response.Retry with exponential backoff; contact support with requestId if persistent.
503Service unavailablePersistence disabled, auth DB unreachable, or admin API not configured.Retry shortly; schedules require Postgres persistence enabled.

See the full errors reference.