@go-to-k/cdkd 0.285.11 → 0.285.12
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/README.md +27 -958
- package/dist/{asg-provider--XFrKRbw.js → asg-provider-CXkE2U3z.js} +2 -2
- package/dist/{asg-provider--XFrKRbw.js.map → asg-provider-CXkE2U3z.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-CJdl4I5l.js → deploy-engine-C3epVkTj.js} +11 -7
- package/dist/deploy-engine-C3epVkTj.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/{program-BeYoZQIP.js → program-C5evYwxk.js} +127 -11
- package/dist/{program-BeYoZQIP.js.map → program-C5evYwxk.js.map} +1 -1
- package/dist/{version-CHHsJMqE.js → version-CS-eKBJA.js} +2 -2
- package/dist/{version-CHHsJMqE.js.map → version-CS-eKBJA.js.map} +1 -1
- package/package.json +5 -2
- package/dist/deploy-engine-CJdl4I5l.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Br as StateError, Bt as DiffCalculator, Cr as ConfigError, Fr as ProvisioningError, Gt as TemplateParser, Hr as formatError, K as ProviderRegistry, Sr as CdkdError, Tr as DependencyError, U as IAMRoleProvider, Un as Synthesizer, Ur as isCdkdError, Vr as SynthesisError, Wr as normalizeAwsError, Wt as DagBuilder, _r as AwsClients, at as CloudControlProvider, br as setAwsClients, gr as resolveBucketRegion, hr as clearBucketRegionCache, jr as LockError, on as LockManager, pn as AssetPublisher, pr as AssemblyReader, r as DeployEngine, sn as S3StateBackend, vr as getAwsClients, xr as AssetError, yr as resetAwsClients } from "./deploy-engine-
|
|
1
|
+
import { Br as StateError, Bt as DiffCalculator, Cr as ConfigError, Fr as ProvisioningError, Gt as TemplateParser, Hr as formatError, K as ProviderRegistry, Sr as CdkdError, Tr as DependencyError, U as IAMRoleProvider, Un as Synthesizer, Ur as isCdkdError, Vr as SynthesisError, Wr as normalizeAwsError, Wt as DagBuilder, _r as AwsClients, at as CloudControlProvider, br as setAwsClients, gr as resolveBucketRegion, hr as clearBucketRegionCache, jr as LockError, on as LockManager, pn as AssetPublisher, pr as AssemblyReader, r as DeployEngine, sn as S3StateBackend, vr as getAwsClients, xr as AssetError, yr as resetAwsClients } from "./deploy-engine-C3epVkTj.js";
|
|
2
2
|
import { a as setLogger, n as getLogger, t as ConsoleLogger } from "./logger-Dw-3y48G.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,8 +1,8 @@
|
|
|
1
|
-
import { $ as DEFAULT_STATE_PREFIX, $n as resolveUseCdkBootstrapAssets, $t as isSingleDynamicReferenceToken, A as bold, An as validateAssetBucketName, Ar as LocalStartServiceError, At as requireConfigObject, B as secretBearingStateKeyWarning, Bn as runDockerStreaming, Bt as DiffCalculator, C as unsupportedFinalSnapshotError, Cn as BOOTSTRAP_MARKER_PREFIX, Ct as assertRegionMatch, D as isStatefulRecreateTargetSync, Dn as isCrossRegionRedirect, Dr as DynamicReferenceRegionAmbiguousError, Dt as readConfigString, E as MULTI_REGION_RECREATE_BLOCKED_TYPES, En as getBootstrapMarkerKey, Er as DeployCancelledError, Et as configStringRefusal, F as yellow, Fn as dockerSpawnEnvWithSensitive, Fr as ProvisioningError, Ft as s3BucketDomainName, G as clearOnUpdateRemoval, Gn as getDefaultStateBucketName, Gr as withErrorHandling, Gt as TemplateParser, H as getCurrentResourceSecrets, Hn as getDockerImageBySourceHash, Ht as describeTypeWithThrottleRetry, I as collectDeclaredOutputNames, In as formatDockerLoginError, Ir as ResourceTimeoutError, It as s3BucketDualStackDomainName, J as findSilentDropProperties, Jn as resolveAutoAssetStorage, Jr as isThrottlingError, Jt as TEMPLATE_SOURCED_RULES, K as ProviderRegistry, Kn as getLegacyStateBucketName, Kr as isMarkedNonRetryable, Kt as STATE_SOURCED_CROSS_GENERATION_RULES, L as collectPublishedOutputNames, Ln as getDockerCmd, Lr as ResourceUpdateNotSupportedError, Lt as s3BucketRegionalDomainName, M as gray, Mn as buildDenyExternalAccessPolicy, Mr as MissingCdkCliError, Mt as classifyReplaySecretRegion, N as green, Nn as describeAwsFailure, Nr as NestedStackChildDirectDestroyError, Nt as producerRegionsFromState, O as renderStatefulReason, On as parseBootstrapMarker, Or as LocalInvokeBuildError$1, Ot as replayWarn, P as red, Pn as buildDockerImage, Pr as PartialFailureError, Pt as s3BucketArn, Q as CUSTOM_RESOURCE_RESPONSE_PREFIX, Qn as resolveStateBucketWithDefaultAndSource, Qr as retryClassificationText, Qt as errorCauseChain, R as exportAliasCollisionScrubWarning, Rn as partitionSensitiveEnv, Rr as StackHasActiveImportsError, Rt as s3BucketWebsiteUrl, S as refusesFinalSnapshot, Sn as AssetModeResolver, Sr as CdkdError, St as resolveExplicitPhysicalId, T as extractDeploymentEventError, Tn as ensureAssetStorage, Tt as configBooleanRefusal, U as IAMRoleProvider, Un as Synthesizer, Ut as withRetry, V as stateKeySecretExposure, Vn as AssetManifestLoader, Vt as INTRINSIC_KEYS, W as collectInlinePolicyNamesManagedBySiblings, Wn as synthesisStatusMessage, Wr as normalizeAwsError, Wt as DagBuilder, X as maskDeep, Xn as resolveSkipPrefix, Xr as markNonRetryable, Xt as createSecretMasker, Y as createMaskedRetryLogger, Yn as resolveCaptureObservedState, Yr as isTransientServerError, Yt as carriesSecretMask, Z as maskerOrIdentity, Zn as resolveStateBucketWithDefault, Zr as markRedactedCause, Zt as dynamicReferenceTokens, _ as PRE_DELETE_SNAPSHOT_TYPES, _n as createAssetRedirectResolver, _r as AwsClients, _t as isUnboundTemplateParameter, a as DeploymentEventsStore, an as scrubResourceRecord, ar as findLargeInlineResources, at as CloudControlProvider, b as createPreDeleteFinalSnapshot, bn as escapeRegExp, br as setAwsClients, bt as WAFv2WebACLProvider, c as replayFailedOperations, cn as rebuildClientForBucketRegion, cr as displaySafe, ct as deleteIndeterminateGuards, d as updatePartialReason, dn as importableOutputs, dr as canonicalizeRegion, dt as isTerminationProtectionPropagationError, en as maskSecretsInError, er as stateBucketExistenceConfirmed, et as beginCommandInterruptScope, f as withResourceDeadline, fn as shouldRetainResource, fr as derivePartitionAndUrlSuffix, ft as IntrinsicFunctionResolver, g as ATOMIC_FINAL_SNAPSHOT_TYPES, gn as buildAssetRedirectMap, gr as resolveBucketRegion, gt as getAccountInfo, h as computeImplicitDeleteEdges, hn as WorkGraph, ht as coerceParameterTypedValue, i as DeploymentEventsReader, in as redactSecretsForState, ir as MIGRATE_TMP_PREFIX, it as startInterruptWatch, j as cyan, jn as validateContainerRepoName, jt as requireConfigString, k as formatResourceLine, kn as readBootstrapMarkerBody, kr as LocalMigrateError, kt as requireConfigArray, l as replayRollback, ln as exportNamesCarriedFrom, lr as expectedOwnerParam, lt as deleteSkipReason, m as IMPLICIT_DELETE_DEPENDENCIES, mn as stringifyValue, mr as processStackMessages, mt as cfnRefValueFromPhysicalId, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as recordMaskOnlyValue, nr as CFN_TEMPLATE_BODY_LIMIT, nt as interruptWatchListenerCount, o as planFailedOps, on as LockManager, or as uploadCfnTemplate, ot as slowCcOperationTimeoutMs, p as maskingRetryLogger, pn as AssetPublisher, pr as AssemblyReader, pt as carriesDynamicReference, q as findActionableSilentDrops, qn as resolveApp, qr as isRetryableTransientError, qt as STATE_SOURCED_READBACK_RULES, r as DeployEngine, rn as recoverMaskedOutput, rr as CFN_TEMPLATE_URL_LIMIT, rt as isInterruptedWaitError, s as planRollback, sn as S3StateBackend, sr as CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION, st as UNSPECIFIED_SKIP_REASON, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as maskSecretsInText, tr as warnDeprecatedNoPrefixCliFlag, tt as endCommandInterruptScope, u as updatePartialMessage, un as importableOutputKeys, ur as PARTITION_TABLE, ut as disableInstanceApiTermination, v as buildFinalSnapshotIdentifier, vn as loadPublishableAssetManifest, vr as getAwsClients, vt as parameterTypeMayLoseSecretIdentity, w as makeCanonicalizePropertiesFn, wn as assertAssetBucketRegion, wr as CrossAccountSecretRefusalError, wt as coerceCfnBoolean, x as isFinalSnapshotError, xn as stripControlChars, xt as normalizeAwsTagsToCfn, y as ccRoutedFinalSnapshotError, yn as rewriteTemplateAssetReferences, yr as resetAwsClients, yt as refStateLookupFromResource, z as isExportAliasCollision, zn as runDockerForeground, zr as StackTerminationProtectionError, zt as applyRoleArnIfSet } from "./deploy-engine-
|
|
1
|
+
import { $ as DEFAULT_STATE_PREFIX, $n as resolveUseCdkBootstrapAssets, $t as isSingleDynamicReferenceToken, A as bold, An as validateAssetBucketName, Ar as LocalStartServiceError, At as requireConfigObject, B as secretBearingStateKeyWarning, Bn as runDockerStreaming, Bt as DiffCalculator, C as unsupportedFinalSnapshotError, Cn as BOOTSTRAP_MARKER_PREFIX, Ct as assertRegionMatch, D as isStatefulRecreateTargetSync, Dn as isCrossRegionRedirect, Dr as DynamicReferenceRegionAmbiguousError, Dt as readConfigString, E as MULTI_REGION_RECREATE_BLOCKED_TYPES, En as getBootstrapMarkerKey, Er as DeployCancelledError, Et as configStringRefusal, F as yellow, Fn as dockerSpawnEnvWithSensitive, Fr as ProvisioningError, Ft as s3BucketDomainName, G as clearOnUpdateRemoval, Gn as getDefaultStateBucketName, Gr as withErrorHandling, Gt as TemplateParser, H as getCurrentResourceSecrets, Hn as getDockerImageBySourceHash, Ht as describeTypeWithThrottleRetry, I as collectDeclaredOutputNames, In as formatDockerLoginError, Ir as ResourceTimeoutError, It as s3BucketDualStackDomainName, J as findSilentDropProperties, Jn as resolveAutoAssetStorage, Jr as isThrottlingError, Jt as TEMPLATE_SOURCED_RULES, K as ProviderRegistry, Kn as getLegacyStateBucketName, Kr as isMarkedNonRetryable, Kt as STATE_SOURCED_CROSS_GENERATION_RULES, L as collectPublishedOutputNames, Ln as getDockerCmd, Lr as ResourceUpdateNotSupportedError, Lt as s3BucketRegionalDomainName, M as gray, Mn as buildDenyExternalAccessPolicy, Mr as MissingCdkCliError, Mt as classifyReplaySecretRegion, N as green, Nn as describeAwsFailure, Nr as NestedStackChildDirectDestroyError, Nt as producerRegionsFromState, O as renderStatefulReason, On as parseBootstrapMarker, Or as LocalInvokeBuildError$1, Ot as replayWarn, P as red, Pn as buildDockerImage, Pr as PartialFailureError, Pt as s3BucketArn, Q as CUSTOM_RESOURCE_RESPONSE_PREFIX, Qn as resolveStateBucketWithDefaultAndSource, Qr as retryClassificationText, Qt as errorCauseChain, R as exportAliasCollisionScrubWarning, Rn as partitionSensitiveEnv, Rr as StackHasActiveImportsError, Rt as s3BucketWebsiteUrl, S as refusesFinalSnapshot, Sn as AssetModeResolver, Sr as CdkdError, St as resolveExplicitPhysicalId, T as extractDeploymentEventError, Tn as ensureAssetStorage, Tt as configBooleanRefusal, U as IAMRoleProvider, Un as Synthesizer, Ut as withRetry, V as stateKeySecretExposure, Vn as AssetManifestLoader, Vt as INTRINSIC_KEYS, W as collectInlinePolicyNamesManagedBySiblings, Wn as synthesisStatusMessage, Wr as normalizeAwsError, Wt as DagBuilder, X as maskDeep, Xn as resolveSkipPrefix, Xr as markNonRetryable, Xt as createSecretMasker, Y as createMaskedRetryLogger, Yn as resolveCaptureObservedState, Yr as isTransientServerError, Yt as carriesSecretMask, Z as maskerOrIdentity, Zn as resolveStateBucketWithDefault, Zr as markRedactedCause, Zt as dynamicReferenceTokens, _ as PRE_DELETE_SNAPSHOT_TYPES, _n as createAssetRedirectResolver, _r as AwsClients, _t as isUnboundTemplateParameter, a as DeploymentEventsStore, an as scrubResourceRecord, ar as findLargeInlineResources, at as CloudControlProvider, b as createPreDeleteFinalSnapshot, bn as escapeRegExp, br as setAwsClients, bt as WAFv2WebACLProvider, c as replayFailedOperations, cn as rebuildClientForBucketRegion, cr as displaySafe, ct as deleteIndeterminateGuards, d as updatePartialReason, dn as importableOutputs, dr as canonicalizeRegion, dt as isTerminationProtectionPropagationError, en as maskSecretsInError, er as stateBucketExistenceConfirmed, et as beginCommandInterruptScope, f as withResourceDeadline, fn as shouldRetainResource, fr as derivePartitionAndUrlSuffix, ft as IntrinsicFunctionResolver, g as ATOMIC_FINAL_SNAPSHOT_TYPES, gn as buildAssetRedirectMap, gr as resolveBucketRegion, gt as getAccountInfo, h as computeImplicitDeleteEdges, hn as WorkGraph, ht as coerceParameterTypedValue, i as DeploymentEventsReader, in as redactSecretsForState, ir as MIGRATE_TMP_PREFIX, it as startInterruptWatch, j as cyan, jn as validateContainerRepoName, jt as requireConfigString, k as formatResourceLine, kn as readBootstrapMarkerBody, kr as LocalMigrateError, kt as requireConfigArray, l as replayRollback, ln as exportNamesCarriedFrom, lr as expectedOwnerParam, lt as deleteSkipReason, m as IMPLICIT_DELETE_DEPENDENCIES, mn as stringifyValue, mr as processStackMessages, mt as cfnRefValueFromPhysicalId, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as recordMaskOnlyValue, nr as CFN_TEMPLATE_BODY_LIMIT, nt as interruptWatchListenerCount, o as planFailedOps, on as LockManager, or as uploadCfnTemplate, ot as slowCcOperationTimeoutMs, p as maskingRetryLogger, pn as AssetPublisher, pr as AssemblyReader, pt as carriesDynamicReference, q as findActionableSilentDrops, qn as resolveApp, qr as isRetryableTransientError, qt as STATE_SOURCED_READBACK_RULES, r as DeployEngine, rn as recoverMaskedOutput, rr as CFN_TEMPLATE_URL_LIMIT, rt as isInterruptedWaitError, s as planRollback, sn as S3StateBackend, sr as CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION, st as UNSPECIFIED_SKIP_REASON, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as maskSecretsInText, tr as warnDeprecatedNoPrefixCliFlag, tt as endCommandInterruptScope, u as updatePartialMessage, un as importableOutputKeys, ur as PARTITION_TABLE, ut as disableInstanceApiTermination, v as buildFinalSnapshotIdentifier, vn as loadPublishableAssetManifest, vr as getAwsClients, vt as parameterTypeMayLoseSecretIdentity, w as makeCanonicalizePropertiesFn, wn as assertAssetBucketRegion, wr as CrossAccountSecretRefusalError, wt as coerceCfnBoolean, x as isFinalSnapshotError, xn as stripControlChars, xt as normalizeAwsTagsToCfn, y as ccRoutedFinalSnapshotError, yn as rewriteTemplateAssetReferences, yr as resetAwsClients, yt as refStateLookupFromResource, z as isExportAliasCollision, zn as runDockerForeground, zr as StackTerminationProtectionError, zt as applyRoleArnIfSet } from "./deploy-engine-C3epVkTj.js";
|
|
2
2
|
import { _ as withStackName, c as PATTERN_B_NAME_OPTIONS, f as generateResourceName, g as withSkipPrefix, i as reserveStdoutForPayload, l as PATTERN_B_NAME_PROPERTIES, m as getCurrentStackName, n as getLogger, o as runStackBuffered, p as generateResourceNameWithFallback, s as getLiveRenderer, u as PATTERN_B_RESOURCE_TYPES } from "./logger-Dw-3y48G.js";
|
|
3
3
|
import { t as awsClientDefaults } from "./aws-client-defaults-D-iYiIJ6.js";
|
|
4
|
-
import { t as getCdkdVersion } from "./version-
|
|
5
|
-
import { t as ASGProvider } from "./asg-provider
|
|
4
|
+
import { t as getCdkdVersion } from "./version-CS-eKBJA.js";
|
|
5
|
+
import { t as ASGProvider } from "./asg-provider-CXkE2U3z.js";
|
|
6
6
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
7
7
|
import { createHash, randomBytes, randomUUID } from "node:crypto";
|
|
8
8
|
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";
|
|
@@ -45,6 +45,7 @@ import { writeFileSync as writeFileSync$1 } from "fs";
|
|
|
45
45
|
import { Document, Pair, Scalar, YAMLMap, YAMLSeq, isScalar, parse, stringify, visit } from "yaml";
|
|
46
46
|
import * as zlib from "node:zlib";
|
|
47
47
|
import { ApplicationAutoScalingClient, DeleteScalingPolicyCommand, DeregisterScalableTargetCommand, DescribeScalableTargetsCommand, DescribeScalingPoliciesCommand, PutScalingPolicyCommand, RegisterScalableTargetCommand } from "@aws-sdk/client-application-auto-scaling";
|
|
48
|
+
import { isDeepStrictEqual, promisify } from "node:util";
|
|
48
49
|
import { ApiGatewayV2Client, CreateApiCommand, CreateAuthorizerCommand as CreateAuthorizerCommand$1, CreateIntegrationCommand, CreateRouteCommand as CreateRouteCommand$1, CreateStageCommand as CreateStageCommand$1, DeleteAccessLogSettingsCommand, DeleteApiCommand, DeleteAuthorizerCommand as DeleteAuthorizerCommand$1, DeleteCorsConfigurationCommand, DeleteIntegrationCommand, DeleteRouteCommand as DeleteRouteCommand$1, DeleteRouteRequestParameterCommand, DeleteRouteSettingsCommand, DeleteStageCommand as DeleteStageCommand$1, GetApiCommand, GetAuthorizerCommand as GetAuthorizerCommand$1, GetIntegrationCommand, GetRouteCommand, GetStageCommand as GetStageCommand$1, NotFoundException as NotFoundException$3, UpdateApiCommand, UpdateAuthorizerCommand as UpdateAuthorizerCommand$1, UpdateIntegrationCommand, UpdateRouteCommand, UpdateStageCommand as UpdateStageCommand$1 } from "@aws-sdk/client-apigatewayv2";
|
|
49
50
|
import { CreateStateMachineCommand, DeleteStateMachineCommand, DescribeStateMachineCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$11, SFNClient, StateMachineDoesNotExist, TagResourceCommand as TagResourceCommand$13, UntagResourceCommand as UntagResourceCommand$13, UpdateStateMachineCommand } from "@aws-sdk/client-sfn";
|
|
50
51
|
import { CreateClusterCommand, CreateServiceCommand, DeleteClusterCommand, DeleteServiceCommand, DeregisterTaskDefinitionCommand, DescribeClustersCommand, DescribeServicesCommand, DescribeTaskDefinitionCommand, ECSClient, PutClusterCapacityProvidersCommand, RegisterTaskDefinitionCommand, TagResourceCommand as TagResourceCommand$14, UntagResourceCommand as UntagResourceCommand$14, UpdateClusterCommand, UpdateServiceCommand, waitUntilServicesStable } from "@aws-sdk/client-ecs";
|
|
@@ -73,7 +74,6 @@ import { CreateNamespaceCommand, CreateTableBucketCommand, CreateTableCommand as
|
|
|
73
74
|
import { createLocalStartAgentCoreCommand, createLocalStartCloudFrontCommand, createLocalStateProvider, getEmbedConfig, isCfnFlagPresent, listTargets, rejectExplicitCfnStackWithMultipleStacks, resolveCfnFallbackRegion, setEmbedConfig, substituteAgainstState, substituteAgainstStateAsync, substituteEnvVarsFromState, substituteEnvVarsFromStateAsync } from "cdk-local";
|
|
74
75
|
import { A2A_CONTAINER_PORT, A2A_PATH, AGENTCORE_A2A_PROTOCOL, AGENTCORE_AGUI_PROTOCOL, AGENTCORE_MCP_PROTOCOL, ConnectionRegistry, EcsTaskResolutionError, HOST_GATEWAY_MIN_VERSION, LocalInvokeBuildError, MCP_CONTAINER_PORT, MCP_PATH, a2aInvokeOnce, addAlbSpecificOptions, addCommonEcsServiceOptions, addStartServiceSpecificOptions, albStrategy, architectureToPlatform, attachAuthorizers, attachStageContext, availableApiIdentifiers, bufferToBody, buildAgentCoreCodeImage, buildCognitoJwksUrl, buildConnectEvent, buildContainerImage, buildCorsConfigByApiId, buildCorsConfigFromCloudFrontChain, buildDisconnectEvent, buildJwksUrlFromIssuer, buildMessageEvent, buildMgmtEndpointEnvUrl, buildStageMap, classifySourceChange, createAuthorizerCache, createFileWatcher, createFileWatcher as createFileWatcher$1, createJwksCache, createWatchPredicates, defaultCredentialsLoader, derivePseudoParametersFromRegion, discoverRoutes, discoverWebSocketApis, downloadAndExtractS3Bundle, filterRoutesByApiIdentifier, groupRoutesByServer, handleConnectionsRequest, invokeAgentCore, invokeAgentCoreWs, materializeLayerFromArn, mcpInvokeOnce, parseConnectionsPath, parseSelectionExpressionPath, pickAgentCoreCandidateStack, pickAgentCoreCandidateStack as pickAgentCoreCandidateStack$1, probeHostGatewaySupport, readMtlsMaterialsFromDisk, resolveAgentCoreTarget, resolveEnvVars, resolveHostGatewayExtraHosts, resolveRuntimeCodeMountPath, resolveRuntimeFileExtension, resolveRuntimeImage, resolveSingleTarget, resolveWatchConfig, runEcsServiceEmulator, signAgentCoreInvocation, startApiServer, substituteImagePlaceholders, tryResolveImageFnJoin, verifyJwtViaDiscovery, waitForAgentCorePing } from "cdk-local/internal";
|
|
75
76
|
import { createServer } from "node:net";
|
|
76
|
-
import { promisify } from "node:util";
|
|
77
77
|
import { setTimeout as setTimeout$1 } from "node:timers/promises";
|
|
78
78
|
import { mkdtemp, rm, writeFile } from "node:fs/promises";
|
|
79
79
|
import { WebSocketServer } from "ws";
|
|
@@ -23673,6 +23673,27 @@ function hasDescriptor(params) {
|
|
|
23673
23673
|
//#endregion
|
|
23674
23674
|
//#region src/provisioning/providers/secretsmanager-secret-provider.ts
|
|
23675
23675
|
/**
|
|
23676
|
+
* `value` after a JSON round-trip: `undefined` members dropped, exactly the
|
|
23677
|
+
* shape state.json can hold. Used so the two sides of the issue-#2472
|
|
23678
|
+
* comparison in {@link SecretsManagerSecretProvider.changedSecretValue} are
|
|
23679
|
+
* spelled the same way, and so a null-prototype object (what
|
|
23680
|
+
* `redactSecretsForState` builds) compares equal to a plain one —
|
|
23681
|
+
* `isDeepStrictEqual` checks prototypes. `undefined` round-trips to `undefined`.
|
|
23682
|
+
*/
|
|
23683
|
+
function asJson(value) {
|
|
23684
|
+
return value === void 0 ? void 0 : JSON.parse(JSON.stringify(value));
|
|
23685
|
+
}
|
|
23686
|
+
/**
|
|
23687
|
+
* A `SecretString` about to go on the wire must be a string. Pre-#2472 a
|
|
23688
|
+
* non-string was forwarded through a cast and left to AWS; a silent drop is
|
|
23689
|
+
* the worse failure for a value the user wrote, so the SHAPE is named — never
|
|
23690
|
+
* the value. Shared by `create()` and `update()` so the two cannot disagree.
|
|
23691
|
+
*/
|
|
23692
|
+
function requireSecretStringShape(literal) {
|
|
23693
|
+
if (typeof literal === "string") return literal;
|
|
23694
|
+
throw new Error(`SecretString must be a string, got ${literal === null ? "null" : Array.isArray(literal) ? "array" : typeof literal}`);
|
|
23695
|
+
}
|
|
23696
|
+
/**
|
|
23676
23697
|
* AWS Secrets Manager Secret Provider
|
|
23677
23698
|
*
|
|
23678
23699
|
* Implements resource provisioning for AWS::SecretsManager::Secret using the Secrets Manager SDK.
|
|
@@ -23709,7 +23730,7 @@ var SecretsManagerSecretProvider = class {
|
|
|
23709
23730
|
let secretString;
|
|
23710
23731
|
const generateConfig = properties["GenerateSecretString"];
|
|
23711
23732
|
if (generateConfig) secretString = this.generateSecretString(generateConfig);
|
|
23712
|
-
else if (properties["SecretString"]) secretString = properties["SecretString"];
|
|
23733
|
+
else if (properties["SecretString"] !== void 0 && properties["SecretString"] !== "") secretString = requireSecretStringShape(properties["SecretString"]);
|
|
23713
23734
|
const createParams = { Name: name };
|
|
23714
23735
|
if (secretString) createParams.SecretString = secretString;
|
|
23715
23736
|
if (properties["Description"]) createParams.Description = properties["Description"];
|
|
@@ -23738,12 +23759,9 @@ var SecretsManagerSecretProvider = class {
|
|
|
23738
23759
|
async update(logicalId, physicalId, resourceType, properties, previousProperties) {
|
|
23739
23760
|
this.logger.debug(`Updating secret ${logicalId}: ${physicalId}`);
|
|
23740
23761
|
try {
|
|
23741
|
-
|
|
23742
|
-
const generateConfig = properties["GenerateSecretString"];
|
|
23743
|
-
if (generateConfig) secretString = this.generateSecretString(generateConfig);
|
|
23744
|
-
else if (properties["SecretString"]) secretString = properties["SecretString"];
|
|
23762
|
+
const secretString = this.changedSecretValue(properties, previousProperties);
|
|
23745
23763
|
const updateParams = { SecretId: physicalId };
|
|
23746
|
-
if (secretString) updateParams.SecretString = secretString;
|
|
23764
|
+
if (secretString !== void 0) updateParams.SecretString = secretString;
|
|
23747
23765
|
const description = clearOnUpdateRemoval(properties["Description"], previousProperties["Description"], "");
|
|
23748
23766
|
if (description !== void 0) updateParams.Description = description;
|
|
23749
23767
|
const newKmsKeyId = properties["KmsKeyId"];
|
|
@@ -23825,6 +23843,104 @@ var SecretsManagerSecretProvider = class {
|
|
|
23825
23843
|
}
|
|
23826
23844
|
}
|
|
23827
23845
|
/**
|
|
23846
|
+
* The `SecretString` an in-place update must send, or `undefined` when the
|
|
23847
|
+
* value's SOURCE is unchanged (issue #2472).
|
|
23848
|
+
*
|
|
23849
|
+
* The source is `GenerateSecretString` when present (CloudFormation gives it
|
|
23850
|
+
* precedence over a literal) and `SecretString` otherwise. A generated value
|
|
23851
|
+
* is minted only when the `GenerateSecretString` block differs from the
|
|
23852
|
+
* previous one — every in-place update re-runs this method, so comparing
|
|
23853
|
+
* the block rather than the (never persisted, never read back) value is
|
|
23854
|
+
* the only way to keep an unrelated update from re-rolling the password. A
|
|
23855
|
+
* literal is sent only when it differs from the previous literal. Switching
|
|
23856
|
+
* source in either direction counts as a change (the previous side of the
|
|
23857
|
+
* new source is `undefined`), and a bag that carries NEITHER source keeps
|
|
23858
|
+
* the live value untouched, as CloudFormation does.
|
|
23859
|
+
*
|
|
23860
|
+
* One consequence of the precedence: a PREVIOUS bag carrying both a block
|
|
23861
|
+
* and an ignored `SecretString: 'x'` masks a block-to-literal switch whose
|
|
23862
|
+
* literal is still `'x'` (the literal compares equal, nothing is sent).
|
|
23863
|
+
* CloudFormation rejects a template declaring both, so such a record is
|
|
23864
|
+
* cdkd-created only and the miss is accepted.
|
|
23865
|
+
*
|
|
23866
|
+
* THE PREVIOUS BAG IS WHAT STATE PERSISTED, so the block is compared in
|
|
23867
|
+
* that spelling. On the deploy path a `{{resolve:...}}` inside
|
|
23868
|
+
* `SecretStringTemplate` reaches this method as plaintext while state holds
|
|
23869
|
+
* the redacted expression (GHSA-p5qg-v9gv-hc7w); compared raw, such a block
|
|
23870
|
+
* ALWAYS differs and every Tags-only update re-rolls the password — the
|
|
23871
|
+
* defect this method exists to close, for exactly the shape that embeds a
|
|
23872
|
+
* secret. {@link asPersisted} rewrites the desired block through the same
|
|
23873
|
+
* redaction the state writer uses, so the two sides meet. A pre-GHSA record
|
|
23874
|
+
* still holding plaintext matches the raw comparison instead; either match
|
|
23875
|
+
* means "unchanged".
|
|
23876
|
+
*
|
|
23877
|
+
* The same rewrite means an upstream ROTATION behind an unchanged reference
|
|
23878
|
+
* in `SecretStringTemplate` does NOT regenerate (the expression is the same
|
|
23879
|
+
* on both sides), where CloudFormation, which re-resolves at update time,
|
|
23880
|
+
* would. That is the intended trade for the generated source: the harmful
|
|
23881
|
+
* direction is the unrequested re-roll.
|
|
23882
|
+
*
|
|
23883
|
+
* RESIDUAL, permanent rather than one-shot: two references in the block
|
|
23884
|
+
* that resolve to the SAME plaintext. The resolver records one pair per
|
|
23885
|
+
* plaintext (last expression wins), so this value scan rewrites BOTH leaves
|
|
23886
|
+
* to the survivor expression, while the persisted previous holds each
|
|
23887
|
+
* leaf's own expression (the state writer redacts by POSITION, with the
|
|
23888
|
+
* template as its source) — the two spellings differ on every in-place
|
|
23889
|
+
* update, and that shape re-rolls on every Tags-only deploy. Threading a
|
|
23890
|
+
* position source through here would close it, but the only source this
|
|
23891
|
+
* method holds is the PREVIOUS block, and substituting its leaves would
|
|
23892
|
+
* also erase a genuine reference switch in a secret leaf; left open for a
|
|
23893
|
+
* shape that is rare (two secrets with identical plaintext in one block).
|
|
23894
|
+
*
|
|
23895
|
+
* A LITERAL IS DELIBERATELY NOT REDACTED BEFORE COMPARING. A
|
|
23896
|
+
* `SecretString: '{{resolve:...}}'` (a secret mirroring another one) is
|
|
23897
|
+
* re-sent on every in-place update: cdkd cannot tell whether the REFERENCED
|
|
23898
|
+
* value changed since the last deploy — state holds only the expression —
|
|
23899
|
+
* and CloudFormation re-applies it when the resolved value changed. A
|
|
23900
|
+
* redundant version is the milder failure; a stale copy is a wrong value.
|
|
23901
|
+
*
|
|
23902
|
+
* `isDeepStrictEqual` over a JSON round-trip rather than `JSON.stringify`
|
|
23903
|
+
* equality: the previous bag comes back from state.json while the new one
|
|
23904
|
+
* comes from the resolver, so a key-order difference is not a change, and
|
|
23905
|
+
* an explicit `undefined` member (which state.json cannot hold) must not
|
|
23906
|
+
* read as one either — that failure direction is a silent re-roll.
|
|
23907
|
+
*
|
|
23908
|
+
* KNOWN EDGE, accepted: the redaction is a VALUE scan, so a literal in the
|
|
23909
|
+
* block that happens to EQUAL a plaintext this resource resolved from a
|
|
23910
|
+
* reference elsewhere in its bag is rewritten to that reference's
|
|
23911
|
+
* expression too. Replacing a `{{resolve:...}}` in the template with the
|
|
23912
|
+
* literal it currently resolves to therefore compares equal and does NOT
|
|
23913
|
+
* regenerate, where CloudFormation would. This is the same rewrite the
|
|
23914
|
+
* state writer applies to that literal when it persists the record, so the
|
|
23915
|
+
* two sides stay consistent, and the miss is in the safe direction (no
|
|
23916
|
+
* unrequested re-roll) for an edit that puts a secret's plaintext into a
|
|
23917
|
+
* template.
|
|
23918
|
+
*/
|
|
23919
|
+
changedSecretValue(properties, previousProperties) {
|
|
23920
|
+
const generateConfig = properties["GenerateSecretString"];
|
|
23921
|
+
if (generateConfig) {
|
|
23922
|
+
const previous = previousProperties["GenerateSecretString"];
|
|
23923
|
+
return isDeepStrictEqual(asJson(generateConfig), asJson(previous)) || isDeepStrictEqual(asJson(this.asPersisted(generateConfig)), asJson(previous)) ? void 0 : this.generateSecretString(generateConfig);
|
|
23924
|
+
}
|
|
23925
|
+
const literal = properties["SecretString"];
|
|
23926
|
+
if (literal === void 0) return void 0;
|
|
23927
|
+
if (isDeepStrictEqual(asJson(literal), asJson(previousProperties["SecretString"]))) return;
|
|
23928
|
+
return requireSecretStringShape(literal);
|
|
23929
|
+
}
|
|
23930
|
+
/**
|
|
23931
|
+
* `bag` as the state writer would persist it: every plaintext this
|
|
23932
|
+
* provider call resolved from a `{{resolve:...}}` reference is rewritten
|
|
23933
|
+
* back to its expression. The pairs come from the per-resource scope the
|
|
23934
|
+
* deploy engine / rollback executor bind around the provider call
|
|
23935
|
+
* (`resource-secrets-scope.ts`); absent (drift `--revert`, import, tests)
|
|
23936
|
+
* the bag is returned as-is. The map is handed to the redaction helper
|
|
23937
|
+
* only — never enumerated, never logged.
|
|
23938
|
+
*/
|
|
23939
|
+
asPersisted(bag) {
|
|
23940
|
+
const secrets = getCurrentResourceSecrets();
|
|
23941
|
+
return secrets !== void 0 && secrets.size > 0 ? redactSecretsForState(bag, secrets) : bag;
|
|
23942
|
+
}
|
|
23943
|
+
/**
|
|
23828
23944
|
* Generate a secret string from GenerateSecretString configuration
|
|
23829
23945
|
*
|
|
23830
23946
|
* Simple implementation that generates a random string based on the config.
|
|
@@ -89544,4 +89660,4 @@ function buildProgram() {
|
|
|
89544
89660
|
|
|
89545
89661
|
//#endregion
|
|
89546
89662
|
export { buildProgram };
|
|
89547
|
-
//# sourceMappingURL=program-
|
|
89663
|
+
//# sourceMappingURL=program-C5evYwxk.js.map
|