spad.infrastructure-reconciliation ​
Verifies and repairs site infrastructure components
Verifies and repairs site infrastructure components.
Input fields: site_id, organization_id, components (optional list), dry_run (optional bool)
Supports dry_run mode: checks and reports but doesn't fix.
Overview ​
| Property | Value |
|---|---|
| Workflow type | Linear |
| Library | App-spad |
| Version | 1.0 |
Input Schema ​
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
site_uuid | string | Yes | — | SpadSite.id whose infrastructure should be verified |
organization_uuid | string | No | — | Organization that owns the site |
components | list | No | — | Subset of components to check (default: all for the site's provider) |
dry_run | boolean | No | False | When true, report mismatches without repairing them |
trace_ref | string | No | — | Caller-supplied trace identifier for distributed tracing |
Output Schema ​
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
site_uuid | string | Yes | — | Site that was reconciled |
organization_uuid | string | No | — | Organization that owns the site |
slug | string | Yes | — | Site slug |
cloud_connection_uuid | string | No | — | CloudConnection.id used to inspect the infrastructure |
components_to_check | list | Yes | — | Components that were inspected (provider-specific default or input subset) |
dry_run | boolean | Yes | — | Whether reconciliation only reported mismatches |
check_results | dict | Yes | — | Per-component inspection results (status + provider snapshot) |
actions_needed | list | Yes | — | Reconciliation actions the workflow identified as required |
cloudfront_oac_ref | string | No | — | CloudFront OAC id observed or (re)created during reconciliation |
actions_executed | list | No | — | Actions actually executed (empty on the dry-run path) |
dry_run_actions | list | No | — | Copy of actions_needed returned on the dry-run path |
reconciliation_errors | list | No | — | Errors encountered while executing reconciliation actions |
initiated_at | string | Yes | — | ISO8601 timestamp when the workflow was initiated |
initiated_by | string | No | — | Actor id that initiated the workflow |
checked_at | string | Yes | — | ISO8601 timestamp when the inspection step completed |
reconciled_at | string | No | — | ISO8601 timestamp when the reconciliation step completed |
completed_at | string | No | — | ISO8601 timestamp when the workflow reached COMPLETED |
failed_at | string | No | — | ISO8601 timestamp when the workflow reached FAILED |
failure_reason | string | No | — | Reason recorded on the failure path |
components | list | No | — | Subset of components to check (default: all for the site's provider) |
trace_ref | string | No | — | Caller-supplied trace identifier for distributed tracing |
error | string | No | — | Engine-stamped failure metadata |
error_type | string | No | — | Engine-stamped failure metadata |
failed_at_state | json | No | — | Engine-stamped failure metadata |
failed_layer | json | No | — | Engine-stamped failure metadata |
failed_step | json | No | — | Engine-stamped failure metadata |
deferred_components | list | No | — | State data written by workflow action |
States ​
| State | Initial | Terminal | Success | Auto-advance | Description |
|---|---|---|---|---|---|
initiated | Yes | No | — | check_infrastructure | — |
awaiting_prereqs | No | No | — | recheck | — |
checking | No | No | — | reconcile | — |
reconciling | No | No | — | complete | — |
completed | No | Yes | Yes | — | — |
failed | No | Yes | No | — | — |
State Diagram ​
Transitions ​
| From | Action | To | Description |
|---|---|---|---|
initiated | check_infrastructure | checking | — |
checking | reconcile | reconciling | — |
reconciling | complete | completed | — |
reconciling | defer | awaiting_prereqs | — |
awaiting_prereqs | recheck | checking | — |
awaiting_prereqs | abandon | failed | — |
* (any state) | fail | failed | — |
API Usage ​
bash
POST /api/workflows/start
Content-Type: application/json
{
"workflow_type": "spad.infrastructure-reconciliation",
"initial_data": {
"site_uuid": "value"
}
}