Skip to content

Stack Update

StackUpdateService handles CloudFormation ChangeSet creation, review, and execution for root stack updates. All operations are human-gated and audited.

Base path: /stack-update

GetUpdateOptions returns the current stack template version and available upgrade paths within the current distTag, plus any active (pending) changeset.

Request (GetUpdateOptionsRequest)

No fields.

Response (GetUpdateOptionsResponse)

FieldTypeDescription
current_versionstringCurrent template version deployed in the stack.
current_dist_tagstringCurrent distTag (e.g., “stable”, “edge”).
next_minorUpdateOption?Next available minor version bump within the current major version and distTag. Absent if already on the latest minor.
next_majorUpdateOption?Next available major version bump within the current distTag. Absence means no newer major version exists. Presence always implies breaking change.
active_change_setActiveChangeSet?Active (pending, not yet executed) changeset if one exists and is still valid. Absent if no changeset is currently pending.
stack_namestringRoot stack name (from the stack ARN). Always present. Generic identity field — the client derives console links from stack_name + region.
regionstringAWS region the root stack lives in (from the stack ARN). Always present.

CreateChangeSet initiates a new changeset for the selected target version, superseding any prior pending changeset. Non-idempotent.

Request (CreateChangeSetRequest)

FieldTypeDescription
target_template_versionstring?Target template version. If omitted, defaults to next_minor from GetUpdateOptions. To target next_major, explicitly pass next_major.version. Must match semver pattern if provided.

Response (CreateChangeSetResponse)

FieldTypeDescription
change_set_idstringCloudFormation ChangeSet ID.
change_set_arnstringCloudFormation ChangeSet ARN.

DescribeChangeSet retrieves the changeset status and resource-level detail. Serves both as a creation-status poll endpoint and a detail-fetch endpoint.

Request (DescribeChangeSetRequest)

FieldTypeDescription
change_set_idstringCloudFormation ChangeSet ID (from CreateChangeSetResponse or active_change_set).

Response (DescribeChangeSetResponse)

FieldTypeDescription
statusChangeSetStatusChangeset creation status (or execution status if already executed).
status_reasonstringCFN StatusReason on CREATE_FAILED or EXECUTE_FAILED; sanitized for client display.
console_urlstringFully-formed AWS Console URL for this changeset.
previous_templatestringRaw CloudFormation template body (JSON) before this changeset’s changes. Also used by the frontend to parse aws:cdk:path for the CDK-metadata tree view.
proposed_templatestringRaw CloudFormation template body (JSON) after this changeset’s changes.
resource_changesResourceChange[]Resource-level changes from this changeset. Pre-sorted with IAM-related resources first, everything else in template order.

ExecuteChangeSet applies the changeset to the root stack after passing all gates (lock, typed confirmation, IAM re-verification, executability check).

Request (ExecuteChangeSetRequest)

FieldTypeDescription
change_set_idstringCloudFormation ChangeSet ID (from CreateChangeSetResponse).
iam_review_ackboolHard confirmation that the admin has reviewed any IAM changes. Required if any resource_changes[].is_iam_related is true; can be false only if no IAM changes exist.

Response (ExecuteChangeSetResponse)

No fields.

POST /stack-update/GetChangeSetExecutionStatus

Section titled “POST /stack-update/GetChangeSetExecutionStatus”

GetChangeSetExecutionStatus polls the stack update status after ExecuteChangeSet.

Request (GetChangeSetExecutionStatusRequest)

FieldTypeDescription
change_set_idstringCloudFormation ChangeSet ID.

Response (GetChangeSetExecutionStatusResponse)

FieldTypeDescription
statusStackStatusCurrent stack update status.
last_event_atstringRFC3339 timestamp of the most recent event (from CFN StackEvents).
last_event_messagestringEvent summary (e.g., “Stack UPDATE_COMPLETE_CLEANUP_IN_PROGRESS”).

ListUpdateHistory returns paginated audit trail of past update executions.

Request (ListUpdateHistoryRequest)

FieldTypeDescription
page_sizeint32?Maximum results per page (default 50, max 100).
page_tokenstring?Pagination token from previous response.

Response (ListUpdateHistoryResponse)

FieldTypeDescription
entriesUpdateHistoryEntry[]
next_page_tokenstringToken for next page; empty if no more results.