spad.site-creation ​
Provisions all infrastructure for a new SPAD site (DAG, LTIP)
DAG-based site creation for AWS SPAD sites using LTIP (spad.ltip.* steps).
Leaf workflow types are spad.ltip.* — see site_creation_ltip/steps/.
Overview ​
| Property | Value |
|---|---|
| Workflow type | Dag |
| Library | App-spad |
| Version | 1.0 |
Input Schema ​
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
site_uuid | string | Yes | — | ID of the SPAD site to create |
organization_uuid | string | No | — | Organization ID |
slug | string | Yes | — | Site slug/identifier |
cloud_connection_uuid | string | Yes | — | Cloud connection ID |
workflow_run_id | string | No | — | Parent workflow run ID stamped by the DAG engine |
workflow_run_uuid | string | No | — | Parent workflow run ID stamped by the DAG engine (legacy alias) |
Output Schema ​
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
site_uuid | string | Yes | — | Site marked active |
organization_uuid | string | No | — | Organization ID propagated from input |
slug | string | No | — | Site slug propagated from input |
cloud_connection_uuid | string | No | — | Cloud connection ID propagated from input |
s3_bucket_name | string | No | — | Provisioned S3 bucket name |
cloudfront_domain | string | No | — | CloudFront distribution default domain |
resources_created | list | No | — | Resources successfully provisioned (subset of s3_bucket / cloudfront_distribution / cloudfront_oac) |
completed_at | string | No | — | ISO8601 timestamp when finalize completed |
workflow_run_id | string | No | — | Parent workflow run ID stamped by the DAG engine |
workflow_run_uuid | string | No | — | Parent workflow run ID stamped by the DAG engine (legacy alias) |
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 |
failure_reason | string | No | — | Engine-stamped failure metadata |
create_bucket | json | No | — | DAG step terminal state data |
configure_bucket | json | No | — | DAG step terminal state data |
create_oac | json | No | — | DAG step terminal state data |
create_distribution | json | No | — | DAG step terminal state data |
configure_bucket_policy | json | No | — | DAG step terminal state data |
finalize | json | No | — | DAG step terminal state data |
DAG Layers ​
| # | Layer | Steps | Compensation |
|---|---|---|---|
| 1 | create_bucket | spad.ltip.create_bucket | spad.ltip.compensate_delete_bucket |
| 2 | parallel_setup_1 | spad.ltip.configure_bucket, spad.ltip.create_oac | spad.ltip.compensate_delete_oac |
| 3 | create_distribution | spad.ltip.create_distribution | spad.ltip.compensate_delete_distribution |
| 4 | configure_bucket_policy | spad.ltip.configure_bucket | spad.compensation.noop |
| 5 | finalize | spad.ltip.site-creation-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.ltip.create_bucket | create_bucket |
spad.ltip.configure_bucket | configure_bucket |
spad.ltip.create_oac | create_oac |
spad.ltip.create_distribution | create_distribution |
spad.ltip.site-creation-finalize | finalize |
spad.ltip.compensate_delete_bucket | undo_create_bucket |
spad.ltip.compensate_delete_oac | undo_create_oac |
spad.ltip.compensate_delete_distribution | undo_create_distribution |
spad.compensation.noop | ack_no_compensation_configure_bucket_policy |
API Usage ​
bash
POST /api/workflows/start
Content-Type: application/json
{
"workflow_type": "spad.site-creation",
"initial_data": {
"site_uuid": "value",
"slug": "value",
"cloud_connection_uuid": "value"
}
}