@go-to-k/cdkd 0.284.75 → 0.284.77
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.
- package/dist/{asg-provider-DdsyGm69.js → asg-provider-CDfupCgW.js} +2 -2
- package/dist/{asg-provider-DdsyGm69.js.map → asg-provider-CDfupCgW.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-B6xURS3W.js → deploy-engine-Ce3payPI.js} +194 -12
- package/dist/deploy-engine-Ce3payPI.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/{program-DQwxvn6O.js → program-SpnBYAoA.js} +56 -14
- package/dist/{program-DQwxvn6O.js.map → program-SpnBYAoA.js.map} +1 -1
- package/dist/{version-B8O0NnWg.js → version-rsHq2qI3.js} +2 -2
- package/dist/{version-B8O0NnWg.js.map → version-rsHq2qI3.js.map} +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-B6xURS3W.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fr as
|
|
1
|
+
import { Fr as SynthesisError, G as IAMRoleProvider, Ht as DagBuilder, Ir as formatError, J as ProviderRegistry, Lr as isCdkdError, Pr as StateError, Rr as normalizeAwsError, Rt as DiffCalculator, Tr as LockError, Ut as TemplateParser, _r as ConfigError, dr as AwsClients, fr as getAwsClients, gr as CdkdError, hr as AssetError, kr as ProvisioningError, ln as AssetPublisher, lr as clearBucketRegionCache, mr as setAwsClients, pr as resetAwsClients, r as DeployEngine, rn as S3StateBackend, sr as AssemblyReader, st as CloudControlProvider, tn as LockManager, ur as resolveBucketRegion, yr as DependencyError, zn as Synthesizer } from "./deploy-engine-Ce3payPI.js";
|
|
2
2
|
import { i as setLogger, n as getLogger, t as ConsoleLogger } from "./logger-C9-E73FI.js";
|
|
3
3
|
|
|
4
4
|
export { AssemblyReader, AssetError, AssetPublisher, AwsClients, CdkdError, CloudControlProvider, ConfigError, ConsoleLogger, DagBuilder, DependencyError, DeployEngine, DiffCalculator, IAMRoleProvider, LockError, LockManager, ProviderRegistry, ProvisioningError, S3StateBackend, StateError, SynthesisError, Synthesizer, TemplateParser, clearBucketRegionCache, formatError, getAwsClients, getLogger, isCdkdError, normalizeAwsError, resetAwsClients, resolveBucketRegion, setAwsClients, setLogger };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { $ as maskerOrIdentity, $n as
|
|
1
|
+
import { $ as maskerOrIdentity, $n as CFN_TEMPLATE_URL_LIMIT, $t as redactSecretsForState, A as renderStatefulReason, An as buildDockerImage, Ar as ResourceTimeoutError, At as classifyReplaySecretRegion, B as exportAliasCollisionScrubWarning, Bn as synthesisStatusMessage, Br as isMarkedNonRetryable, Bt as describeTypeWithThrottleRetry, C as isFinalSnapshotError, Cn as isCrossRegionRedirect, Cr as LocalMigrateError, Ct as configBooleanRefusal, D as extractDeploymentEventError, Dn as validateContainerRepoName, Dr as NestedStackChildDirectDestroyError, Dt as requireConfigArray, E as makeCanonicalizePropertiesFn, En as validateAssetBucketName, Er as MissingCdkCliError, Et as replayWarn, F as green, Fn as runDockerForeground, Ft as s3BucketRegionalDomainName, G as IAMRoleProvider, Gn as resolveCaptureObservedState, Gr as retryClassificationText, Gt as STATE_SOURCED_READBACK_RULES, H as secretBearingStateKeyWarning, Hn as getLegacyStateBucketName, Hr as isThrottlingError, Ht as DagBuilder, I as red, In as runDockerStreaming, It as s3BucketWebsiteUrl, J as ProviderRegistry, Jn as resolveStateBucketWithDefaultAndSource, Jt as dynamicReferenceTokens, K as collectInlinePolicyNamesManagedBySiblings, Kn as resolveSkipPrefix, Kt as TEMPLATE_SOURCED_RULES, L as yellow, Ln as AssetManifestLoader, Lt as applyRoleArnIfSet, M as bold, Mn as formatDockerLoginError, Mr as StackHasActiveImportsError, Mt as s3BucketArn, N as cyan, Nn as getDockerCmd, Nr as StackTerminationProtectionError, Nt as s3BucketDomainName, O as MULTI_REGION_RECREATE_BLOCKED_TYPES, On as buildDenyExternalAccessPolicy, Or as PartialFailureError, Ot as requireConfigObject, P as gray, Pn as partitionSensitiveEnv, Pt as s3BucketDualStackDomainName, Q as maskDeep, Qn as CFN_TEMPLATE_BODY_LIMIT, Qt as maskSecretsInText, R as collectDeclaredOutputNames, Rn as getDockerImageBySourceHash, Rr as normalizeAwsError, Rt as DiffCalculator, S as createPreDeleteFinalSnapshot, Sn as getBootstrapMarkerKey, Sr as LocalInvokeBuildError$1, St as coerceCfnBoolean, T as unsupportedFinalSnapshotError, Tn as readBootstrapMarkerBody, Tt as readConfigString, U as stateKeySecretExposure, Un as resolveApp, Ur as markNonRetryable, Ut as TemplateParser, V as isExportAliasCollision, Vn as getDefaultStateBucketName, Vr as isRetryableTransientError, Vt as withRetry, W as getCurrentResourceSecrets, Wn as resolveAutoAssetStorage, Wr as markRedactedCause, Wt as STATE_SOURCED_CROSS_GENERATION_RULES, X as findSilentDropProperties, Xn as stateBucketExistenceConfirmed, Xt as isSingleDynamicReferenceToken, Y as findActionableSilentDrops, Yn as resolveUseCdkBootstrapAssets, Yt as errorCauseChain, Z as createMaskedRetryLogger, Zn as warnDeprecatedNoPrefixCliFlag, Zt as maskSecretsInError, _ as computeImplicitDeleteEdges, _n as stripControlChars, _t as refStateLookupFromResource, a as DeploymentEventsStore, an as exportNamesCarriedFrom, ar as canonicalizeRegion, at as isInterruptedWaitError, b as buildFinalSnapshotIdentifier, bn as assertAssetBucketRegion, br as DeployCancelledError, bt as resolveExplicitPhysicalId, c as replayFailedOperations, cn as shouldRetainResource, cr as processStackMessages, ct as slowCcOperationTimeoutMs, d as updatePartialReason, dn as WorkGraph, dr as AwsClients, dt as IntrinsicFunctionResolver, en as scrubResourceRecord, er as MIGRATE_TMP_PREFIX, et as CUSTOM_RESOURCE_RESPONSE_PREFIX, f as UNSPECIFIED_SKIP_REASON, fn as buildAssetRedirectMap, fr as getAwsClients, ft as carriesDynamicReference, g as IMPLICIT_DELETE_DEPENDENCIES, gn as escapeRegExp, gr as CdkdError, gt as parameterTypeMayLoseSecretIdentity, h as maskingRetryLogger, hn as rewriteTemplateAssetReferences, ht as isUnboundTemplateParameter, i as DeploymentEventsReader, in as rebuildClientForBucketRegion, ir as PARTITION_TABLE, it as interruptWatchListenerCount, j as formatResourceLine, jn as dockerSpawnEnvWithSensitive, jr as ResourceUpdateNotSupportedError, jt as producerRegionsFromState, k as isStatefulRecreateTargetSync, kn as describeAwsFailure, kr as ProvisioningError, kt as requireConfigString, l as replayRollback, ln as AssetPublisher, lt as disableInstanceApiTermination, m as withResourceDeadline, mn as loadPublishableAssetManifest, mr as setAwsClients, mt as getAccountInfo, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as displaySafe, nr as uploadCfnTemplate, nt as beginCommandInterruptScope, o as planFailedOps, on as importableOutputKeys, or as derivePartitionAndUrlSuffix, ot as startInterruptWatch, p as deleteSkipReason, pn as createAssetRedirectResolver, pr as resetAwsClients, pt as cfnRefValueFromPhysicalId, q as clearOnUpdateRemoval, qn as resolveStateBucketWithDefault, qt as createSecretMasker, r as DeployEngine, rn as S3StateBackend, rr as expectedOwnerParam, rt as endCommandInterruptScope, s as planRollback, sn as importableOutputs, sr as AssemblyReader, st as CloudControlProvider, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as LockManager, tr as findLargeInlineResources, tt as DEFAULT_STATE_PREFIX, u as updatePartialMessage, un as stringifyValue, ur as resolveBucketRegion, ut as isTerminationProtectionPropagationError, v as ATOMIC_FINAL_SNAPSHOT_TYPES, vn as AssetModeResolver, vr as CrossAccountSecretRefusalError, vt as WAFv2WebACLProvider, w as refusesFinalSnapshot, wn as parseBootstrapMarker, wr as LocalStartServiceError, wt as configStringRefusal, x as ccRoutedFinalSnapshotError, xn as ensureAssetStorage, xr as DynamicReferenceRegionAmbiguousError, xt as assertRegionMatch, y as PRE_DELETE_SNAPSHOT_TYPES, yn as BOOTSTRAP_MARKER_PREFIX, yt as normalizeAwsTagsToCfn, z as collectPublishedOutputNames, zn as Synthesizer, zr as withErrorHandling, zt as INTRINSIC_KEYS } from "./deploy-engine-Ce3payPI.js";
|
|
2
2
|
import { a as runStackBuffered, c as PATTERN_B_NAME_PROPERTIES, d as generateResourceName, f as generateResourceNameWithFallback, g as withStackName, h as withSkipPrefix, l as PATTERN_B_RESOURCE_TYPES, n as getLogger, o as getLiveRenderer, p as getCurrentStackName, r as reserveStdoutForPayload, s as PATTERN_B_NAME_OPTIONS } from "./logger-C9-E73FI.js";
|
|
3
|
-
import { t as getCdkdVersion } from "./version-
|
|
4
|
-
import { t as ASGProvider } from "./asg-provider-
|
|
3
|
+
import { t as getCdkdVersion } from "./version-rsHq2qI3.js";
|
|
4
|
+
import { t as ASGProvider } from "./asg-provider-CDfupCgW.js";
|
|
5
5
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
6
6
|
import { createHash, randomBytes, randomUUID } from "node:crypto";
|
|
7
7
|
import { CopyObjectCommand, CreateBucketCommand, DeleteBucketAnalyticsConfigurationCommand, DeleteBucketCommand, DeleteBucketCorsCommand, DeleteBucketEncryptionCommand, DeleteBucketIntelligentTieringConfigurationCommand, DeleteBucketInventoryConfigurationCommand, DeleteBucketLifecycleCommand, DeleteBucketMetricsConfigurationCommand, DeleteBucketOwnershipControlsCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, DeleteBucketWebsiteCommand, DeleteObjectsCommand, GetBucketAccelerateConfigurationCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketLoggingCommand, GetBucketNotificationConfigurationCommand, GetBucketOwnershipControlsCommand, GetBucketPolicyCommand, GetBucketReplicationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetBucketWebsiteCommand, GetObjectCommand, GetObjectLockConfigurationCommand, GetPublicAccessBlockCommand, HeadBucketCommand, ListBucketAnalyticsConfigurationsCommand, ListBucketIntelligentTieringConfigurationsCommand, ListBucketInventoryConfigurationsCommand, ListBucketMetricsConfigurationsCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchBucket, PutBucketAccelerateConfigurationCommand, PutBucketAnalyticsConfigurationCommand, PutBucketCorsCommand, PutBucketEncryptionCommand, PutBucketIntelligentTieringConfigurationCommand, PutBucketInventoryConfigurationCommand, PutBucketLifecycleConfigurationCommand, PutBucketLoggingCommand, PutBucketMetricsConfigurationCommand, PutBucketNotificationConfigurationCommand, PutBucketOwnershipControlsCommand, PutBucketPolicyCommand, PutBucketReplicationCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutBucketWebsiteCommand, PutObjectCommand, PutObjectLockConfigurationCommand, PutPublicAccessBlockCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
|
|
@@ -9094,7 +9094,8 @@ var S3BucketProvider = class S3BucketProvider {
|
|
|
9094
9094
|
try {
|
|
9095
9095
|
const createParams = { Bucket: bucketName };
|
|
9096
9096
|
const region = await this.getRegion();
|
|
9097
|
-
|
|
9097
|
+
const canonicalRegion = canonicalizeRegion(region);
|
|
9098
|
+
if (canonicalRegion !== "us-east-1") createParams.CreateBucketConfiguration = { LocationConstraint: canonicalRegion };
|
|
9098
9099
|
if (properties["ObjectLockEnabled"] === true || properties["ObjectLockEnabled"] === "true") createParams.ObjectLockEnabledForBucket = true;
|
|
9099
9100
|
const preflight = canonicalizeRegion(region) === "us-east-1" ? await this.probeBucketRegion(bucketName) : { kind: "absent" };
|
|
9100
9101
|
let createdNewBucket = false;
|
|
@@ -9138,8 +9139,7 @@ var S3BucketProvider = class S3BucketProvider {
|
|
|
9138
9139
|
...effectiveProperties ? { effectiveProperties } : {}
|
|
9139
9140
|
};
|
|
9140
9141
|
} catch (error) {
|
|
9141
|
-
|
|
9142
|
-
throw new ProvisioningError(`Failed to create S3 bucket ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, bucketName, cause);
|
|
9142
|
+
throw this.wrapOperationError("create", logicalId, resourceType, bucketName, error);
|
|
9143
9143
|
}
|
|
9144
9144
|
}
|
|
9145
9145
|
/**
|
|
@@ -9173,8 +9173,7 @@ var S3BucketProvider = class S3BucketProvider {
|
|
|
9173
9173
|
...effectiveProperties ? { effectiveProperties } : {}
|
|
9174
9174
|
};
|
|
9175
9175
|
} catch (error) {
|
|
9176
|
-
|
|
9177
|
-
throw new ProvisioningError(`Failed to update S3 bucket ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
|
|
9176
|
+
throw this.wrapOperationError("update", logicalId, resourceType, physicalId, error);
|
|
9178
9177
|
}
|
|
9179
9178
|
}
|
|
9180
9179
|
/**
|
|
@@ -9195,9 +9194,52 @@ var S3BucketProvider = class S3BucketProvider {
|
|
|
9195
9194
|
this.logger.debug(`Bucket ${physicalId} does not exist, skipping deletion`);
|
|
9196
9195
|
return;
|
|
9197
9196
|
}
|
|
9198
|
-
|
|
9199
|
-
|
|
9200
|
-
|
|
9197
|
+
throw this.wrapOperationError("delete", logicalId, resourceType, physicalId, error);
|
|
9198
|
+
}
|
|
9199
|
+
}
|
|
9200
|
+
/**
|
|
9201
|
+
* Wrap whatever `create` / `update` / `delete` caught into the
|
|
9202
|
+
* `ProvisioningError` they throw, with the identity split done BEFORE the
|
|
9203
|
+
* throw (issue [#2302](https://github.com/go-to-k/cdkd/issues/2302)).
|
|
9204
|
+
*
|
|
9205
|
+
* All three sites used to interpolate `error.message` straight into the
|
|
9206
|
+
* thrown text. A thrown message is NOT the terminal-only surface the
|
|
9207
|
+
* identity warnings elsewhere in this file are: `extractDeploymentEventError`
|
|
9208
|
+
* captures it into `deployments/{runId}.jsonl`, which outlives the run and is
|
|
9209
|
+
* explicitly restricted to error plus metadata. So an `AccessDenied` on
|
|
9210
|
+
* `CreateBucket` / `PutBucket*` / `DeleteBucket` -- S3 words it `User:
|
|
9211
|
+
* arn:aws:sts::<account>:assumed-role/<role>/<session> is not authorized to
|
|
9212
|
+
* perform: ...` -- wrote the caller's account id, role name and session name
|
|
9213
|
+
* into that durable store. Splitting at a log call cannot help here; the
|
|
9214
|
+
* split has to happen before the `throw`.
|
|
9215
|
+
*
|
|
9216
|
+
* Both halves are emitted, for the reason PR
|
|
9217
|
+
* [#2290](https://github.com/go-to-k/cdkd/pull/2290) learned the expensive
|
|
9218
|
+
* way: AWS's text is what separates a missing IAM grant from a bucket-policy
|
|
9219
|
+
* `Deny`, and that distinction is the operator's next action. The class goes
|
|
9220
|
+
* in the thrown message and AWS's own wording goes to `logger.debug`.
|
|
9221
|
+
*
|
|
9222
|
+
* The redaction is NARROW on purpose, and these three sites are why. They are
|
|
9223
|
+
* BROAD catch blocks that capture cdkd's OWN refusals as readily as an SDK
|
|
9224
|
+
* failure: this file raises six cdkd-authored plain `Error`s inside them --
|
|
9225
|
+
* the `BucketEncryption` / `OwnershipControls` array refusals, the
|
|
9226
|
+
* EventBridge and inventory `Enabled` refusals, the destination-shape
|
|
9227
|
+
* refusal, and `deleteBucketWithEmptyRetry`'s non-empty-bucket refusal, whose
|
|
9228
|
+
* message IS the CloudFormation-parity remediation. `describeAwsFailure`
|
|
9229
|
+
* keys on the smithy marker fields rather than on "cdkd did not author it",
|
|
9230
|
+
* so every one of those passes through verbatim; the `redacted` gate then
|
|
9231
|
+
* suppresses a debug line that would only repeat the throw.
|
|
9232
|
+
*
|
|
9233
|
+
* `cause` still carries the raw error, deliberately: the persisted event
|
|
9234
|
+
* reads only the TOP-level `message` off it (plus `awsErrorCode` /
|
|
9235
|
+
* `requestId` from the chain), so keeping it costs nothing in that store
|
|
9236
|
+
* while retaining the retry classifiers' and `formatError`'s access to it.
|
|
9237
|
+
*/
|
|
9238
|
+
wrapOperationError(operation, logicalId, resourceType, physicalId, error) {
|
|
9239
|
+
const failure = describeAwsFailure(error);
|
|
9240
|
+
if (failure.redacted) this.logger.debug(`Failed to ${operation} S3 bucket ${logicalId} (${physicalId}): ${failure.detail}`);
|
|
9241
|
+
const wrapped = new ProvisioningError(`Failed to ${operation} S3 bucket ${logicalId}: ${failure.summary}`, resourceType, logicalId, physicalId, error instanceof Error ? error : void 0);
|
|
9242
|
+
return failure.redacted ? markRedactedCause(wrapped) : wrapped;
|
|
9201
9243
|
}
|
|
9202
9244
|
/**
|
|
9203
9245
|
* The `effectiveProperties` TWIN required by `.claude/rules/providers.md`
|
|
@@ -59848,8 +59890,8 @@ async function runDestroyForStack(stackName, state, ctx) {
|
|
|
59848
59890
|
break;
|
|
59849
59891
|
} catch (retryError) {
|
|
59850
59892
|
lastDeleteError = retryError;
|
|
59851
|
-
const
|
|
59852
|
-
if (!(!isMarkedNonRetryable(retryError) && (isRetryableTransientError(retryError,
|
|
59893
|
+
const classify = retryClassificationText(retryError);
|
|
59894
|
+
if (!(!isMarkedNonRetryable(retryError) && (isRetryableTransientError(retryError, classify) || classify.includes("Too Many Requests"))) || attempt >= maxAttempts) break;
|
|
59853
59895
|
const delay = 5e3 * Math.pow(2, attempt);
|
|
59854
59896
|
logger.debug(` ⏳ Retrying delete ${logicalId} in ${delay / 1e3}s (attempt ${attempt + 1}/${maxAttempts})`);
|
|
59855
59897
|
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
@@ -88546,4 +88588,4 @@ function buildProgram() {
|
|
|
88546
88588
|
|
|
88547
88589
|
//#endregion
|
|
88548
88590
|
export { buildProgram };
|
|
88549
|
-
//# sourceMappingURL=program-
|
|
88591
|
+
//# sourceMappingURL=program-SpnBYAoA.js.map
|