Skip to Content
veriom

Approve remediation

POST
/v1/workspaces/{workspace_id}/remediations/{remediation_id}/approve

Authorization

workspaceToken
headerAuthorizationBearer <vat_<opaque-token>>

Expiring, hashed workspace token with explicit scopes.

Path Parameters

workspace_id*Workspace Id
Formatuuid
remediation_id*Remediation Id
Formatuuid

Query Parameters

scoping_decision?|null

Response Body

Successful Response

application/json
  1. response
approved_by*|null
automatic_approval?|

Present when workspace policy, not a reviewer, approved publication.

baseline_audit_id*|null
baseline_snapshot*|null
branch_name*string|null
created_at*Created At
Formatdate-time
decision?|null
decision_id?|null
expected_outcomes*array<>
explanation*string|null
failure_code?string|null
failure_message?string|null
finding_check?|

The finding's own rule re-run on the patched source before a pull request. Null for patches prepared before the check and for remediations with no patch.

finding_id*Finding Id
Formatuuid
finding_title?string|null
human_scope_required?Human Scope Required
Defaultfalse
id*Id
Formatuuid
outcome?|

Structural findings only: automatable (a validated patch), partially_automatable (a patch or steps plus open decisions) or design_decision (a decision record, never a patch).

patch_sha256*string|null
pull_request_url*string|null
recovery_action?|null
remediation_tier?|null
repository_id?|null
requested_by*Requested By
Formatuuid
stages?array<>
static_rescan*|null
status*Status
structural_contract_test_path?string|null
structural_plan?|null
verification_audit_id*|null
verification_result*|null
verified_at*|null
Example Request
curl -X POST 'https://api.veriom.ai/v1/workspaces/497f6eca-6276-4993-bfeb-53cbbbba6f08/remediations/497f6eca-6276-4993-bfeb-53cbbbba6f08/approve'
Example Response
{  "approved_by": "02030314-b162-4b4d-8af1-88eabdcc615d",  "automatic_approval": {    "approved_at": "2019-08-24T14:15:22Z",    "policy_version": 0,    "publish_after": "2019-08-24T14:15:22Z",    "rule": "string",    "withdrawable": true  },  "baseline_audit_id": "91f541b0-c250-4fc0-aa24-0dc7afcd1d4e",  "baseline_snapshot": {    "audit_id": "78c04fa6-cfb4-46a0-9aa5-3681ba4f3897",    "evidence_ids": [      "973ab5a6-b373-447d-ab9d-bdb660b35afc"    ],    "finding_fingerprint": "string",    "high_or_critical_fingerprints": [      "string"    ],    "recorded_at": "2019-08-24T14:15:22Z",    "relevant_scanners": [      "string"    ],    "risk_severity": "string",    "risk_total": "string"  },  "branch_name": "string",  "created_at": "2019-08-24T14:15:22Z",  "decision": {    "approved_at": "2019-08-24T14:15:22Z",    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "implemented_at": "2019-08-24T14:15:22Z",    "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",    "selected_option_id": "string",    "status": "string",    "title": "string",    "verified_at": "2019-08-24T14:15:22Z"  },  "decision_id": "35405636-5581-4a10-b063-a74afe2ca763",  "expected_outcomes": [    {}  ],  "explanation": "string",  "failure_code": "string",  "failure_message": "string",  "finding_check": {    "after_lines": [      0    ],    "after_match_count": 0,    "before_proof": "audit",    "check": "string",    "check_label": "string",    "checked_at": "2019-08-24T14:15:22Z",    "detail": "string",    "fired_after": true,    "fired_before": true,    "review_required": false,    "rule_id": "string",    "unavailable_reason": "runner_unavailable",    "verdict": "pending"  },  "finding_id": "feebf65a-2eaa-4fae-aab2-772450efdffe",  "finding_title": "string",  "human_scope_required": false,  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "outcome": "automatable",  "patch_sha256": "string",  "pull_request_url": "string",  "recovery_action": "retry_generation",  "remediation_tier": "R1",  "repository_id": "b349ae61-b973-4c6c-a5e0-89183ba99ff3",  "requested_by": "cda0f200-65cd-4343-aedd-9c936b908826",  "stages": [    {      "at": "2019-08-24T14:15:22Z",      "detail": "string",      "key": "patch_validated",      "state": "pending"    }  ],  "static_rescan": {},  "status": "string",  "structural_contract_test_path": "string",  "structural_plan": {    "affected_objects": [      {        "category": "string",        "evidence_ids": [          "973ab5a6-b373-447d-ab9d-bdb660b35afc"        ],        "key": "string",        "kind": "entity",        "name": "string",        "role": "affected",        "zone": "string"      }    ],    "change_kind": "identity_policy",    "changes": [      {        "change": "string",        "object_key": "string"      }    ],    "consequence": "string",    "decision_record": {      "alternatives": [        {          "benefits": [            "string"          ],          "description": "string",          "id": "string",          "title": "string",          "tradeoffs": [            "string"          ]        },        {          "benefits": [            "string"          ],          "description": "string",          "id": "string",          "title": "string",          "tradeoffs": [            "string"          ]        }      ],      "consequences": [        "string"      ],      "context": "string",      "question": "string",      "recommendation_reason": "string",      "recommended_alternative_id": "string",      "success_criteria": [        "string"      ],      "title": "string"    },    "effect_checks": [      {        "blocks_automation": false,        "detail": "string",        "id": "string",        "object_keys": [          "string"        ],        "question": "string",        "status": "clear"      }    ],    "evidence_ids": [      "973ab5a6-b373-447d-ab9d-bdb660b35afc"    ],    "expected_condition": "string",    "finding_id": "feebf65a-2eaa-4fae-aab2-772450efdffe",    "invariant_id": "string",    "invariant_version": "string",    "ledgers": [      "code"    ],    "ledgers_missing": [      "code"    ],    "observed_condition": "string",    "open_decisions": [      {        "id": "string",        "question": "string",        "reason": "string"      }    ],    "outcome": "automatable",    "outcome_reasons": [      "string"    ],    "patch_targets": [      {        "evidence_id": "5360afe2-6320-4611-b2b1-06edeee7fc1e",        "ledger": "code",        "path": "string",        "source": "evidence",        "subject_key": "string",        "summary": "string"      }    ],    "policy_checks": [      {        "description": "string",        "enforced_by": "path_guardrail",        "id": "string"      }    ],    "root_cause": {      "recurrence_scope": 0,      "ref": "d0fad5d6-e996-4437-8fb9-5f40bbcfd7cc",      "statement": "string"    },    "schema_version": "structural-remediation-plan-v1",    "title": "string",    "verification_predicate": "string",    "violated_rule": "string"  },  "verification_audit_id": "cef6c8ad-7eed-4189-9f94-26d2342cdd25",  "verification_result": {    "baseline_audit_id": "91f541b0-c250-4fc0-aa24-0dc7afcd1d4e",    "baseline_risk": "string",    "evidence_ids": [      "973ab5a6-b373-447d-ab9d-bdb660b35afc"    ],    "new_high_or_critical_fingerprints": [      "string"    ],    "observed_at": "2019-08-24T14:15:22Z",    "observed_audit_id": "31138278-f48f-4540-9df9-76511583a7a6",    "original_finding_present": true,    "outcome": "verified",    "reasons": [      "string"    ],    "residual_risk": "string",    "risk_delta": "string",    "scanner_status": {      "property1": "string",      "property2": "string"    },    "structural_invariant_id": "string",    "structural_invariant_status": "string",    "structural_invariant_version": "string"  },  "verified_at": "2019-08-24T14:15:22Z"}