spad.site-deletion ​
Deletes all cloud resources for a SPAD site (parallel DAG)
DAG-based site deletion workflow with parallel execution.
Runs independent deletions in parallel for faster completion.
Overview ​
| Property | Value |
|---|---|
| Workflow type | Dag |
| Library | App-spad |
| Version | 1.0 |
Input Schema ​
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
site_uuid | string | Yes | — | UUID of the SPAD site to delete |
organization_uuid | string | No | — | Organization UUID |
delete_resources | boolean | No | True | Whether to delete cloud resources |
Output Schema ​
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
site_uuid | string | Yes | — | Site UUID that was soft-deleted |
organization_uuid | string | No | — | Organization UUID propagated from input |
delete_resources | boolean | No | — | Whether cloud resources are deleted (propagated from input) |
completed_at | string | No | — | ISO8601 timestamp when finalize completed |
soft_deleted | boolean | No | — | True once site.cached_status was set to 'deleted' |
had_infrastructure | boolean | No | — | Whether any infrastructure (distribution/bucket) ever existed to delete |
failure_reason | string | No | — | Reason recorded on compensation (mark-failed) path |
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 |
init | json | No | — | DAG step terminal state data |
delete_domains | json | No | — | DAG step terminal state data |
delete_infrastructure | json | No | — | DAG step terminal state data |
delete_infrastructure_gcp | json | No | — | DAG step terminal state data |
delete_clusters | json | No | — | DAG step terminal state data |
finalize | json | No | — | DAG step terminal state data |
DAG Layers ​
| # | Layer | Steps | Compensation |
|---|---|---|---|
| 1 | init | spad.site-deletion-init | spad.site-deletion-mark-failed |
| 2 | delete_domains | spad.site-deletion-delete-domains | spad.compensation.noop |
| 3 | delete_parallel_1 | spad.site-deletion-delete-parallel-1, spad.site-deletion-delete-parallel-1-gcp | spad.compensation.noop |
| 4 | delete_parallel_2 | spad.site-deletion-delete-parallel-2 | spad.compensation.noop |
| 5 | finalize | spad.site-deletion-finalize | — |
Execution Flow ​
Compensation ​
When any layer fails, its compensation steps run in reverse order to roll back the work completed so far.
Sub-workflows ​
| Sub-workflow | Step name |
|---|---|
spad.site-deletion-init | init |
spad.site-deletion-delete-domains | delete_domains |
spad.site-deletion-delete-parallel-1 | delete_infrastructure |
spad.site-deletion-delete-parallel-1-gcp | delete_infrastructure_gcp |
spad.site-deletion-delete-parallel-2 | delete_clusters |
spad.site-deletion-finalize | finalize |
spad.site-deletion-mark-failed | mark_failed |
spad.compensation.noop | ack_no_compensation_delete_domains |
API Usage ​
bash
POST /api/workflows/start
Content-Type: application/json
{
"workflow_type": "spad.site-deletion",
"initial_data": {
"site_uuid": "value"
}
}