spad.site-creation-alibaba ​
Provisions Alibaba Cloud OSS + CDN infrastructure for a SPAD site
DAG-based site creation workflow for Alibaba Cloud SPAD sites. Provisions OSS bucket + Alibaba CDN domain + DNS CNAME.
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 |
organization_uuid | string | No | — | Organization ID |
slug | string | Yes | — | Site slug/identifier |
cloud_connection_uuid | string | Yes | — | Alibaba cloud connection ID |
cdn_custom_domain | string | No | — | Custom domain for CDN (optional) |
dns_zone_ref | string | No | — | Alibaba Cloud DNS zone (domain name, e.g. example.com) |
Output Schema ​
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
site_uuid | string | Yes | — | Site marked active |
slug | string | No | — | Site slug propagated from input |
s3_bucket_name | string | No | — | OSS bucket name (stored in the cross-provider s3_bucket_name field) |
cloudfront_domain | string | No | — | CDN domain or CDN CNAME (used as the cross-provider edge identifier) |
resources_created | list | No | — | Subset of oss_bucket / alibaba_cdn_domain / alibaba_dns_cname that were provisioned |
finalized_at | string | No | — | ISO8601 timestamp when the site was marked active |
organization_uuid | string | No | — | Organization ID |
cloud_connection_uuid | string | No | — | Alibaba cloud connection ID |
cdn_custom_domain | string | No | — | Custom domain for CDN (optional) |
dns_zone_ref | string | No | — | Alibaba Cloud DNS zone (domain name, e.g. example.com) |
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_oss_bucket | json | No | — | DAG step terminal state data |
configure_oss_bucket | json | No | — | DAG step terminal state data |
create_cdn_domain | json | No | — | DAG step terminal state data |
restrict_oss_to_cdn | json | No | — | DAG step terminal state data |
attach_cdn_cert | json | No | — | DAG step terminal state data |
create_dns_cname | json | No | — | DAG step terminal state data |
finalize | json | No | — | DAG step terminal state data |
DAG Layers ​
| # | Layer | Steps | Compensation |
|---|---|---|---|
| 1 | create_oss_bucket | spad.ltip.alibaba.create_oss_bucket | spad.compensation.noop |
| 2 | configure_oss_bucket | spad.ltip.alibaba.configure_oss_bucket | spad.compensation.noop |
| 3 | create_cdn_domain | spad.ltip.alibaba.create_cdn_domain | spad.compensation.noop |
| 4 | cdn_policy_and_dns | spad.ltip.alibaba.restrict_oss_to_cdn, spad.ltip.alibaba.attach_cdn_certificate, spad.ltip.alibaba.create_dns_cname | 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.alibaba.create_oss_bucket | create_oss_bucket |
spad.ltip.alibaba.configure_oss_bucket | configure_oss_bucket |
spad.ltip.alibaba.create_cdn_domain | create_cdn_domain |
spad.ltip.alibaba.restrict_oss_to_cdn | restrict_oss_to_cdn |
spad.ltip.alibaba.attach_cdn_certificate | attach_cdn_cert |
spad.ltip.alibaba.create_dns_cname | create_dns_cname |
spad.ltip.site-creation-finalize | finalize |
spad.compensation.noop | ack_no_compensation_create_oss_bucket |
API Usage ​
bash
POST /api/workflows/start
Content-Type: application/json
{
"workflow_type": "spad.site-creation-alibaba",
"initial_data": {
"site_uuid": "value",
"slug": "value",
"cloud_connection_uuid": "value"
}
}