@go-to-k/cdkd 0.276.2 → 0.276.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12090,7 +12090,7 @@ var CloudControlProvider = class {
12090
12090
  if (context?.finalSnapshotIdentifier !== void 0) throw new ProvisioningError(`${logicalId} (${resourceType}) requires a final snapshot (DeletionPolicy: Snapshot), but the Cloud Control API delete route has no final-snapshot parameter. Re-run with --skip-final-snapshot after snapshotting manually, or retain the resource.`, resourceType, logicalId, physicalId);
12091
12091
  if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
12092
12092
  this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
12093
- const { ASGProvider } = await import("./asg-provider-X-k9FXgs.js").then((n) => n.n);
12093
+ const { ASGProvider } = await import("./asg-provider-DFSI7iBe.js").then((n) => n.n);
12094
12094
  await new ASGProvider().delete(logicalId, physicalId, resourceType, _properties, context);
12095
12095
  return;
12096
12096
  }
@@ -17789,7 +17789,10 @@ function rollbackFinalSnapshotId(resourceType, record, fallbackProvisionedBy) {
17789
17789
  /**
17790
17790
  * `DeletionPolicy: Snapshot` on a rolled-back CREATE (issue #1358) — the
17791
17791
  * executor's copy of the deploy engine's `prepareFinalSnapshotForDelete`
17792
- * mechanism matrix, run BEFORE the delete:
17792
+ * mechanism matrix, run BEFORE the delete. Shared with the FAILED in-flight
17793
+ * CREATE's delete (`--revert-failed`, issue #1362) so the two sibling paths
17794
+ * cannot drift; that caller's op is a {@link FailedOperation}, hence the
17795
+ * structural parameter type:
17793
17796
  *
17794
17797
  * - atomic type, SDK-routed → returns the generated identifier for the
17795
17798
  * provider's atomic final-snapshot delete parameter.
@@ -17897,9 +17900,12 @@ function classifyFailedOp(op, stateResources) {
17897
17900
  if (op.changeType === "DELETE") return "skip-failed-noop";
17898
17901
  const current = stateResources[op.logicalId];
17899
17902
  if (op.changeType === "CREATE") {
17900
- if (op.physicalId === void 0) return "skip-failed-unknown";
17903
+ if (!op.physicalId) return "skip-failed-unknown";
17901
17904
  if (!current) return "skip-failed-noop";
17902
17905
  if (current.physicalId !== op.physicalId) return "skip-failed-noop";
17906
+ const policy = current.deletionPolicy;
17907
+ if (policy === "Retain") return "orphan-failed-create-retain";
17908
+ if (policy === "Snapshot") return "delete-failed-create-with-final-snapshot";
17903
17909
  return "delete-failed-create";
17904
17910
  }
17905
17911
  if (!current || !op.previousState) return "skip-failed-absent";
@@ -18276,13 +18282,35 @@ async function replayFailedOperations(failedOps, stateResources, stackName, ctx,
18276
18282
  logger.warn(` Rollback: cannot revert failed UPDATE of ${op.logicalId} — no previous state available, skipping`);
18277
18283
  result.warnings++;
18278
18284
  break;
18279
- case "delete-failed-create": {
18280
- logger.info(` Rollback: deleting partially-created ${op.logicalId} (${op.resourceType}) (--revert-failed)`);
18285
+ case "orphan-failed-create-retain":
18286
+ delete stateResources[op.logicalId];
18287
+ logger.info(` Rollback: leaving partially-created ${op.logicalId} (${op.resourceType}) in AWS (DeletionPolicy: Retain) — removed from state`);
18288
+ await options.afterOp?.(op.logicalId);
18289
+ ctx.recordEvent?.({
18290
+ eventType: "ROLLBACK_RESOURCE_SUCCEEDED",
18291
+ stackName,
18292
+ operation: "CREATE",
18293
+ logicalId: op.logicalId,
18294
+ resourceType: op.resourceType,
18295
+ ...op.provisionedBy && { provisionedBy: op.provisionedBy }
18296
+ });
18297
+ break;
18298
+ case "delete-failed-create":
18299
+ case "delete-failed-create-with-final-snapshot": {
18300
+ const deleteProvisionedBy = effectiveProvisionedBy(stateResources[op.logicalId], op.provisionedBy);
18301
+ const snapshotPolicy = action === "delete-failed-create-with-final-snapshot";
18302
+ const takeFinalSnapshot = snapshotPolicy && ctx.skipFinalSnapshot !== true;
18303
+ let finalSnapshotIdentifier;
18304
+ if (takeFinalSnapshot) finalSnapshotIdentifier = await prepareCreateRollbackFinalSnapshot(op, deleteProvisionedBy, ctx);
18305
+ logger.info(` Rollback: deleting partially-created ${op.logicalId} (${op.resourceType}) (--revert-failed)` + (takeFinalSnapshot ? " — DeletionPolicy: Snapshot" : "") + (snapshotPolicy && !takeFinalSnapshot ? " — DeletionPolicy: Snapshot NOT taken (--skip-final-snapshot)" : ""));
18281
18306
  const { provider } = ctx.providerRegistry.getProviderFor({
18282
18307
  resourceType: op.resourceType,
18283
- provisionedBy: op.provisionedBy
18308
+ provisionedBy: deleteProvisionedBy
18309
+ });
18310
+ await provider.delete(op.logicalId, op.physicalId, op.resourceType, op.attemptedProperties, {
18311
+ expectedRegion: ctx.region,
18312
+ ...finalSnapshotIdentifier !== void 0 && { finalSnapshotIdentifier }
18284
18313
  });
18285
- await provider.delete(op.logicalId, op.physicalId, op.resourceType, op.attemptedProperties, { expectedRegion: ctx.region });
18286
18314
  delete stateResources[op.logicalId];
18287
18315
  await options.afterOp?.(op.logicalId);
18288
18316
  ctx.recordEvent?.({
@@ -18429,7 +18457,7 @@ const FLUSH_INTERVAL_MS = 2e3;
18429
18457
  const FLUSH_EVENT_THRESHOLD = 50;
18430
18458
  /** Build-time cdkd version, with a dev fallback for non-built contexts. */
18431
18459
  function getCdkdVersion() {
18432
- return "0.276.2";
18460
+ return "0.276.3";
18433
18461
  }
18434
18462
  /**
18435
18463
  * Generate a time-sortable unique run id, e.g.
@@ -20541,4 +20569,4 @@ var DeployEngine = class {
20541
20569
 
20542
20570
  //#endregion
20543
20571
  export { TemplateParser as $, CdkdError as $t, yellow as A, resolveAutoAssetStorage as At, IntrinsicFunctionResolver as B, MIGRATE_TMP_PREFIX as Bt, renderStatefulReason as C, AssetManifestLoader as Ct, gray as D, getDefaultStateBucketName as Dt, cyan as E, synthesisStatusMessage as Et, findActionableSilentDrops as F, resolveUseCdkBootstrapAssets as Ft, resolveExplicitPhysicalId as G, processStackMessages as Gt, refStateLookupFromResource as H, uploadCfnTemplate as Ht, CloudControlProvider as I, stateBucketExistenceConfirmed as It, DiffCalculator as J, AwsClients as Jt, assertRegionMatch as K, clearBucketRegionCache as Kt, slowCcOperationTimeoutMs as L, warnDeprecatedNoPrefixCliFlag as Lt, collectInlinePolicyNamesManagedBySiblings as M, resolveSkipPrefix as Mt, clearOnUpdateRemoval as N, resolveStateBucketWithDefault as Nt, green as O, getLegacyStateBucketName as Ot, ProviderRegistry as P, resolveStateBucketWithDefaultAndSource as Pt, DagBuilder as Q, AssetError as Qt, disableInstanceApiTermination as R, CFN_TEMPLATE_BODY_LIMIT as Rt, isStatefulRecreateTargetSync as S, runDockerStreaming as St, bold as T, Synthesizer as Tt, WAFv2WebACLProvider as U, expectedOwnerParam as Ut, cfnRefValueFromPhysicalId as V, findLargeInlineResources as Vt, normalizeAwsTagsToCfn as W, AssemblyReader as Wt, withRetry as X, resetAwsClients as Xt, describeTypeWithThrottleRetry as Y, getAwsClients as Yt, isRetryableTransientError as Z, setAwsClients as Zt, createPreDeleteFinalSnapshot as _, formatError as _n, validateContainerRepoName as _t, DeploymentEventsStore as a, LocalStartServiceError as an, stringifyValue as at, extractDeploymentEventError as b, withErrorHandling as bn, getDockerCmd as bt, replayFailedOperations as c, NestedStackChildDirectDestroyError as cn, createAssetRedirectResolver as ct, IMPLICIT_DELETE_DEPENDENCIES as d, ResourceTimeoutError as dn, AssetModeResolver as dt, ConfigError as en, LockManager as et, computeImplicitDeleteEdges as f, ResourceUpdateNotSupportedError as fn, BOOTSTRAP_MARKER_PREFIX as ft, ccRoutedFinalSnapshotError as g, SynthesisError as gn, validateAssetBucketName as gt, buildFinalSnapshotIdentifier as h, StateError as hn, parseBootstrapMarker as ht, DeploymentEventsReader as i, LocalMigrateError as in, AssetPublisher as it, IAMRoleProvider as j, resolveCaptureObservedState as jt, red as k, resolveApp as kt, replayRollback as l, PartialFailureError as ln, loadPublishableAssetManifest as lt, PRE_DELETE_SNAPSHOT_TYPES as m, StackTerminationProtectionError as mn, getBootstrapMarkerKey as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, DeployCancelledError as nn, rebuildClientForBucketRegion as nt, planFailedOps as o, LockError as on, WorkGraph as ot, ATOMIC_FINAL_SNAPSHOT_TYPES as p, StackHasActiveImportsError as pn, ensureAssetStorage as pt, applyRoleArnIfSet as q, resolveBucketRegion as qt, DeployEngine as r, LocalInvokeBuildError as rn, shouldRetainResource as rt, planRollback as s, MissingCdkCliError as sn, buildAssetRedirectMap as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, DependencyError as tn, S3StateBackend as tt, withResourceDeadline as u, ProvisioningError as un, rewriteTemplateAssetReferences as ut, isFinalSnapshotError as v, isCdkdError as vn, buildDockerImage as vt, formatResourceLine as w, getDockerImageBySourceHash as wt, MULTI_REGION_RECREATE_BLOCKED_TYPES as x, __exportAll as xn, runDockerForeground as xt, unsupportedFinalSnapshotError as y, normalizeAwsError as yn, formatDockerLoginError as yt, isTerminationProtectionPropagationError as z, CFN_TEMPLATE_URL_LIMIT as zt };
20544
- //# sourceMappingURL=deploy-engine-CwVBPKqE.js.map
20572
+ //# sourceMappingURL=deploy-engine-gQzltBso.js.map