@go-to-k/cdkd 0.279.0 → 0.280.0
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-C-EXD6HS.js → asg-provider-XOMGgJrK.js} +2 -2
- package/dist/{asg-provider-C-EXD6HS.js.map → asg-provider-XOMGgJrK.js.map} +1 -1
- package/dist/cli.js +183 -9
- package/dist/cli.js.map +1 -1
- package/dist/{deploy-engine-CFVg2o__.js → deploy-engine-DRLo8PHT.js} +10 -11
- package/dist/{deploy-engine-CFVg2o__.js.map → deploy-engine-DRLo8PHT.js.map} +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { $ as DiffCalculator, $t as resolveBucketRegion, A as red, At as getDockerImageBySourceHash, B as isTerminationProtectionPropagationError, Bt as resolveStateBucketWithDefaultAndSource, C as isStatefulRecreateTargetSync, Ct as validateContainerRepoName, D as cyan, Dt as runDockerForeground, E as bold, En as withErrorHandling, Et as getDockerCmd, F as ProviderRegistry, Ft as resolveApp, G as normalizeAwsTagsToCfn, Gt as CFN_TEMPLATE_URL_LIMIT, H as cfnRefValueFromPhysicalId, Ht as stateBucketExistenceConfirmed, I as findActionableSilentDrops, It as resolveAutoAssetStorage, J as readConfigString, Jt as uploadCfnTemplate, K as resolveExplicitPhysicalId, Kt as MIGRATE_TMP_PREFIX, L as CloudControlProvider, Lt as resolveCaptureObservedState, M as IAMRoleProvider, Mt as synthesisStatusMessage, N as collectInlinePolicyNamesManagedBySiblings, Nt as getDefaultStateBucketName, O as gray, Ot as runDockerStreaming, P as clearOnUpdateRemoval, Pt as getLegacyStateBucketName, Q as applyRoleArnIfSet, R as slowCcOperationTimeoutMs, Rt as resolveSkipPrefix, S as MULTI_REGION_RECREATE_BLOCKED_TYPES, St as validateAssetBucketName, T as formatResourceLine, Tn as normalizeAwsError, Tt as formatDockerLoginError, U as refStateLookupFromResource, Ut as warnDeprecatedNoPrefixCliFlag, V as IntrinsicFunctionResolver, Vt as resolveUseCdkBootstrapAssets, W as WAFv2WebACLProvider, Wt as CFN_TEMPLATE_BODY_LIMIT, X as requireConfigArray, Xt as AssemblyReader, Y as replayWarn, Yt as expectedOwnerParam, Z as requireConfigString, Zt as processStackMessages, _ as createPreDeleteFinalSnapshot, _n as ResourceTimeoutError, _t as AssetModeResolver, a as DeploymentEventsStore, an as CdkdError, at as TemplateParser, b as unsupportedFinalSnapshotError, bn as StackTerminationProtectionError, bt as getBootstrapMarkerKey, c as replayFailedOperations, cn as DeployCancelledError, ct as rebuildClientForBucketRegion, d as IMPLICIT_DELETE_DEPENDENCIES, dn as LocalStartServiceError, dt as stringifyValue, en as AwsClients, et as describeTypeWithThrottleRetry, f as computeImplicitDeleteEdges, ft as WorkGraph, g as ccRoutedFinalSnapshotError, gn as ProvisioningError, gt as rewriteTemplateAssetReferences, h as buildFinalSnapshotIdentifier, hn as PartialFailureError, ht as loadPublishableAssetManifest, i as DeploymentEventsReader, it as DagBuilder, j as yellow, jt as Synthesizer, k as green, kt as AssetManifestLoader, l as replayRollback, ln as LocalInvokeBuildError$1, lt as shouldRetainResource, m as PRE_DELETE_SNAPSHOT_TYPES, mn as NestedStackChildDirectDestroyError, mt as createAssetRedirectResolver, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as resetAwsClients, nt as isRetryableTransientError, o as planFailedOps, ot as LockManager, p as ATOMIC_FINAL_SNAPSHOT_TYPES, pn as MissingCdkCliError, pt as buildAssetRedirectMap, q as assertRegionMatch, qt as findLargeInlineResources, r as DeployEngine, rn as setAwsClients, rt as isThrottlingError, s as planRollback, st as S3StateBackend, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as getAwsClients, tt as withRetry, u as withResourceDeadline, un as LocalMigrateError, ut as AssetPublisher, v as isFinalSnapshotError, vn as ResourceUpdateNotSupportedError, vt as BOOTSTRAP_MARKER_PREFIX, w as renderStatefulReason, wt as buildDockerImage, x as extractDeploymentEventError, xt as parseBootstrapMarker, y as refusesFinalSnapshot, yn as StackHasActiveImportsError, yt as ensureAssetStorage, z as disableInstanceApiTermination, zt as resolveStateBucketWithDefault } from "./deploy-engine-
|
|
2
|
+
import { $ as DiffCalculator, $t as resolveBucketRegion, A as red, At as getDockerImageBySourceHash, B as isTerminationProtectionPropagationError, Bt as resolveStateBucketWithDefaultAndSource, C as isStatefulRecreateTargetSync, Ct as validateContainerRepoName, D as cyan, Dt as runDockerForeground, E as bold, En as withErrorHandling, Et as getDockerCmd, F as ProviderRegistry, Ft as resolveApp, G as normalizeAwsTagsToCfn, Gt as CFN_TEMPLATE_URL_LIMIT, H as cfnRefValueFromPhysicalId, Ht as stateBucketExistenceConfirmed, I as findActionableSilentDrops, It as resolveAutoAssetStorage, J as readConfigString, Jt as uploadCfnTemplate, K as resolveExplicitPhysicalId, Kt as MIGRATE_TMP_PREFIX, L as CloudControlProvider, Lt as resolveCaptureObservedState, M as IAMRoleProvider, Mt as synthesisStatusMessage, N as collectInlinePolicyNamesManagedBySiblings, Nt as getDefaultStateBucketName, O as gray, Ot as runDockerStreaming, P as clearOnUpdateRemoval, Pt as getLegacyStateBucketName, Q as applyRoleArnIfSet, R as slowCcOperationTimeoutMs, Rt as resolveSkipPrefix, S as MULTI_REGION_RECREATE_BLOCKED_TYPES, St as validateAssetBucketName, T as formatResourceLine, Tn as normalizeAwsError, Tt as formatDockerLoginError, U as refStateLookupFromResource, Ut as warnDeprecatedNoPrefixCliFlag, V as IntrinsicFunctionResolver, Vt as resolveUseCdkBootstrapAssets, W as WAFv2WebACLProvider, Wt as CFN_TEMPLATE_BODY_LIMIT, X as requireConfigArray, Xt as AssemblyReader, Y as replayWarn, Yt as expectedOwnerParam, Z as requireConfigString, Zt as processStackMessages, _ as createPreDeleteFinalSnapshot, _n as ResourceTimeoutError, _t as AssetModeResolver, a as DeploymentEventsStore, an as CdkdError, at as TemplateParser, b as unsupportedFinalSnapshotError, bn as StackTerminationProtectionError, bt as getBootstrapMarkerKey, c as replayFailedOperations, cn as DeployCancelledError, ct as rebuildClientForBucketRegion, d as IMPLICIT_DELETE_DEPENDENCIES, dn as LocalStartServiceError, dt as stringifyValue, en as AwsClients, et as describeTypeWithThrottleRetry, f as computeImplicitDeleteEdges, ft as WorkGraph, g as ccRoutedFinalSnapshotError, gn as ProvisioningError, gt as rewriteTemplateAssetReferences, h as buildFinalSnapshotIdentifier, hn as PartialFailureError, ht as loadPublishableAssetManifest, i as DeploymentEventsReader, it as DagBuilder, j as yellow, jt as Synthesizer, k as green, kt as AssetManifestLoader, l as replayRollback, ln as LocalInvokeBuildError$1, lt as shouldRetainResource, m as PRE_DELETE_SNAPSHOT_TYPES, mn as NestedStackChildDirectDestroyError, mt as createAssetRedirectResolver, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as resetAwsClients, nt as isRetryableTransientError, o as planFailedOps, ot as LockManager, p as ATOMIC_FINAL_SNAPSHOT_TYPES, pn as MissingCdkCliError, pt as buildAssetRedirectMap, q as assertRegionMatch, qt as findLargeInlineResources, r as DeployEngine, rn as setAwsClients, rt as isThrottlingError, s as planRollback, st as S3StateBackend, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as getAwsClients, tt as withRetry, u as withResourceDeadline, un as LocalMigrateError, ut as AssetPublisher, v as isFinalSnapshotError, vn as ResourceUpdateNotSupportedError, vt as BOOTSTRAP_MARKER_PREFIX, w as renderStatefulReason, wt as buildDockerImage, x as extractDeploymentEventError, xt as parseBootstrapMarker, y as refusesFinalSnapshot, yn as StackHasActiveImportsError, yt as ensureAssetStorage, z as disableInstanceApiTermination, zt as resolveStateBucketWithDefault } from "./deploy-engine-DRLo8PHT.js";
|
|
3
3
|
import { a as getLiveRenderer, c as PATTERN_B_RESOURCE_TYPES, d as generateResourceNameWithFallback, f as withSkipPrefix, i as runStackBuffered, n as getLogger, o as PATTERN_B_NAME_OPTIONS, p as withStackName, s as PATTERN_B_NAME_PROPERTIES, u as generateResourceName } from "./logger-BYMEE-BS.js";
|
|
4
|
-
import { t as ASGProvider } from "./asg-provider-
|
|
4
|
+
import { t as ASGProvider } from "./asg-provider-XOMGgJrK.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";
|
|
@@ -20266,7 +20266,13 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
20266
20266
|
"Tags",
|
|
20267
20267
|
"TracingEnabled",
|
|
20268
20268
|
"Variables",
|
|
20269
|
-
"MethodSettings"
|
|
20269
|
+
"MethodSettings",
|
|
20270
|
+
"AccessLogSetting",
|
|
20271
|
+
"CacheClusterEnabled",
|
|
20272
|
+
"CacheClusterSize",
|
|
20273
|
+
"CanarySetting",
|
|
20274
|
+
"ClientCertificateId",
|
|
20275
|
+
"DocumentationVersion"
|
|
20270
20276
|
])],
|
|
20271
20277
|
["AWS::ApiGateway::Method", /* @__PURE__ */ new Set([
|
|
20272
20278
|
"RestApiId",
|
|
@@ -20749,7 +20755,12 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
20749
20755
|
const stageName = properties["StageName"];
|
|
20750
20756
|
const deploymentId = properties["DeploymentId"];
|
|
20751
20757
|
if (!restApiId || !stageName || !deploymentId) throw new ProvisioningError(`RestApiId, StageName, and DeploymentId are required for API Gateway Stage ${logicalId}`, resourceType, logicalId);
|
|
20758
|
+
for (const key of ["AccessLogSetting", "CanarySetting"]) {
|
|
20759
|
+
const block = properties[key];
|
|
20760
|
+
if (block != null && !isPlainObjectBlock(block)) throw new ProvisioningError(`AWS::ApiGateway::Stage ${key} for ${logicalId} must be an object block; got ${Array.isArray(block) ? "an array" : typeof block}. Fix the template value instead of letting cdkd drop the config.`, resourceType, logicalId);
|
|
20761
|
+
}
|
|
20752
20762
|
try {
|
|
20763
|
+
const rawCacheClusterSize = properties["CacheClusterSize"];
|
|
20753
20764
|
await this.apiGatewayClient.send(new CreateStageCommand({
|
|
20754
20765
|
restApiId,
|
|
20755
20766
|
stageName,
|
|
@@ -20757,15 +20768,38 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
20757
20768
|
description: properties["Description"],
|
|
20758
20769
|
tracingEnabled: properties["TracingEnabled"],
|
|
20759
20770
|
variables: properties["Variables"],
|
|
20760
|
-
tags: this.cfnTagsToRecord(properties["Tags"])
|
|
20771
|
+
tags: this.cfnTagsToRecord(properties["Tags"]),
|
|
20772
|
+
cacheClusterEnabled: properties["CacheClusterEnabled"],
|
|
20773
|
+
cacheClusterSize: rawCacheClusterSize != null ? String(rawCacheClusterSize) : void 0,
|
|
20774
|
+
documentationVersion: properties["DocumentationVersion"],
|
|
20775
|
+
canarySettings: toSdkCanarySettings(properties["CanarySetting"])
|
|
20761
20776
|
}));
|
|
20762
20777
|
const methodSettings = properties["MethodSettings"];
|
|
20763
|
-
const
|
|
20764
|
-
|
|
20778
|
+
const postCreateOps = buildMethodSettingsPatchOps(void 0, methodSettings);
|
|
20779
|
+
const accessLogSetting = properties["AccessLogSetting"];
|
|
20780
|
+
if (accessLogSetting != null) {
|
|
20781
|
+
if (accessLogSetting.DestinationArn !== void 0) postCreateOps.push({
|
|
20782
|
+
op: "replace",
|
|
20783
|
+
path: "/accessLogSettings/destinationArn",
|
|
20784
|
+
value: normalizeAccessLogDestinationArn(String(accessLogSetting.DestinationArn))
|
|
20785
|
+
});
|
|
20786
|
+
if (accessLogSetting.Format !== void 0) postCreateOps.push({
|
|
20787
|
+
op: "replace",
|
|
20788
|
+
path: "/accessLogSettings/format",
|
|
20789
|
+
value: String(accessLogSetting.Format)
|
|
20790
|
+
});
|
|
20791
|
+
}
|
|
20792
|
+
const clientCertificateId = properties["ClientCertificateId"];
|
|
20793
|
+
if (clientCertificateId !== void 0) postCreateOps.push({
|
|
20794
|
+
op: "replace",
|
|
20795
|
+
path: "/clientCertificateId",
|
|
20796
|
+
value: clientCertificateId
|
|
20797
|
+
});
|
|
20798
|
+
if (postCreateOps.length > 0) try {
|
|
20765
20799
|
await this.apiGatewayClient.send(new UpdateStageCommand({
|
|
20766
20800
|
restApiId,
|
|
20767
20801
|
stageName,
|
|
20768
|
-
patchOperations:
|
|
20802
|
+
patchOperations: postCreateOps
|
|
20769
20803
|
}));
|
|
20770
20804
|
} catch (patchError) {
|
|
20771
20805
|
try {
|
|
@@ -20774,7 +20808,7 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
20774
20808
|
stageName
|
|
20775
20809
|
}));
|
|
20776
20810
|
} catch (cleanupError) {
|
|
20777
|
-
this.logger.warn(`Failed to clean up stage ${stageName} after a
|
|
20811
|
+
this.logger.warn(`Failed to clean up stage ${stageName} after a post-create patch failure: ${cleanupError instanceof Error ? cleanupError.message : String(cleanupError)}`);
|
|
20778
20812
|
}
|
|
20779
20813
|
throw patchError;
|
|
20780
20814
|
}
|
|
@@ -20817,6 +20851,91 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
20817
20851
|
path: "/tracingEnabled",
|
|
20818
20852
|
value: String(tracingEnabled ?? false)
|
|
20819
20853
|
});
|
|
20854
|
+
const cacheClusterEnabled = properties["CacheClusterEnabled"];
|
|
20855
|
+
if (cacheClusterEnabled !== previousProperties["CacheClusterEnabled"]) patchOperations.push({
|
|
20856
|
+
op: "replace",
|
|
20857
|
+
path: "/cacheClusterEnabled",
|
|
20858
|
+
value: String(cacheClusterEnabled ?? false)
|
|
20859
|
+
});
|
|
20860
|
+
const rawCacheClusterSize = properties["CacheClusterSize"];
|
|
20861
|
+
const prevRawCacheClusterSize = previousProperties["CacheClusterSize"];
|
|
20862
|
+
if (rawCacheClusterSize != null && (prevRawCacheClusterSize == null || String(rawCacheClusterSize) !== String(prevRawCacheClusterSize))) patchOperations.push({
|
|
20863
|
+
op: "replace",
|
|
20864
|
+
path: "/cacheClusterSize",
|
|
20865
|
+
value: String(rawCacheClusterSize)
|
|
20866
|
+
});
|
|
20867
|
+
const clientCertificateId = properties["ClientCertificateId"];
|
|
20868
|
+
if (clientCertificateId !== previousProperties["ClientCertificateId"]) patchOperations.push({
|
|
20869
|
+
op: "replace",
|
|
20870
|
+
path: "/clientCertificateId",
|
|
20871
|
+
value: clientCertificateId ?? ""
|
|
20872
|
+
});
|
|
20873
|
+
const documentationVersion = properties["DocumentationVersion"];
|
|
20874
|
+
if (documentationVersion !== previousProperties["DocumentationVersion"]) patchOperations.push({
|
|
20875
|
+
op: "replace",
|
|
20876
|
+
path: "/documentationVersion",
|
|
20877
|
+
value: documentationVersion ?? ""
|
|
20878
|
+
});
|
|
20879
|
+
const rawAccessLog = properties["AccessLogSetting"];
|
|
20880
|
+
const accessLogMalformed = rawAccessLog != null && !isPlainObjectBlock(rawAccessLog);
|
|
20881
|
+
if (accessLogMalformed) this.logger.warn(`AWS::ApiGateway::Stage AccessLogSetting for ${logicalId} is not an object block (got ${Array.isArray(rawAccessLog) ? "an array" : typeof rawAccessLog}); leaving the live access-log config untouched.`);
|
|
20882
|
+
const accessLog = accessLogMalformed ? void 0 : rawAccessLog;
|
|
20883
|
+
const prevAccessLog = previousProperties["AccessLogSetting"];
|
|
20884
|
+
if (accessLogMalformed) {} else if (accessLog == null) {
|
|
20885
|
+
if (prevAccessLog != null) patchOperations.push({
|
|
20886
|
+
op: "remove",
|
|
20887
|
+
path: "/accessLogSettings"
|
|
20888
|
+
});
|
|
20889
|
+
} else {
|
|
20890
|
+
if (accessLog.DestinationArn !== prevAccessLog?.DestinationArn) patchOperations.push({
|
|
20891
|
+
op: "replace",
|
|
20892
|
+
path: "/accessLogSettings/destinationArn",
|
|
20893
|
+
value: accessLog.DestinationArn !== void 0 ? normalizeAccessLogDestinationArn(String(accessLog.DestinationArn)) : ""
|
|
20894
|
+
});
|
|
20895
|
+
if (accessLog.Format !== prevAccessLog?.Format) patchOperations.push({
|
|
20896
|
+
op: "replace",
|
|
20897
|
+
path: "/accessLogSettings/format",
|
|
20898
|
+
value: accessLog.Format !== void 0 ? String(accessLog.Format) : ""
|
|
20899
|
+
});
|
|
20900
|
+
}
|
|
20901
|
+
const rawCanary = properties["CanarySetting"];
|
|
20902
|
+
const canaryMalformed = rawCanary != null && !isPlainObjectBlock(rawCanary);
|
|
20903
|
+
if (canaryMalformed) this.logger.warn(`AWS::ApiGateway::Stage CanarySetting for ${logicalId} is not an object block (got ${Array.isArray(rawCanary) ? "an array" : typeof rawCanary}); leaving the live canary config untouched.`);
|
|
20904
|
+
const canary = canaryMalformed ? void 0 : rawCanary;
|
|
20905
|
+
const prevCanary = previousProperties["CanarySetting"];
|
|
20906
|
+
if (canaryMalformed) {} else if (canary == null) {
|
|
20907
|
+
if (prevCanary != null) patchOperations.push({
|
|
20908
|
+
op: "remove",
|
|
20909
|
+
path: "/canarySettings"
|
|
20910
|
+
});
|
|
20911
|
+
} else {
|
|
20912
|
+
if (canary.PercentTraffic !== prevCanary?.PercentTraffic) patchOperations.push({
|
|
20913
|
+
op: "replace",
|
|
20914
|
+
path: "/canarySettings/percentTraffic",
|
|
20915
|
+
value: String(canary.PercentTraffic ?? 0)
|
|
20916
|
+
});
|
|
20917
|
+
if (canary.DeploymentId !== prevCanary?.DeploymentId) patchOperations.push({
|
|
20918
|
+
op: "replace",
|
|
20919
|
+
path: "/canarySettings/deploymentId",
|
|
20920
|
+
value: canary.DeploymentId ?? ""
|
|
20921
|
+
});
|
|
20922
|
+
if (canary.UseStageCache !== prevCanary?.UseStageCache) patchOperations.push({
|
|
20923
|
+
op: "replace",
|
|
20924
|
+
path: "/canarySettings/useStageCache",
|
|
20925
|
+
value: String(canary.UseStageCache ?? false)
|
|
20926
|
+
});
|
|
20927
|
+
const overrides = canary.StageVariableOverrides ?? {};
|
|
20928
|
+
const prevOverrides = prevCanary?.StageVariableOverrides ?? {};
|
|
20929
|
+
for (const [key, value] of Object.entries(overrides)) if (prevOverrides[key] !== value) patchOperations.push({
|
|
20930
|
+
op: "replace",
|
|
20931
|
+
path: `/canarySettings/stageVariableOverrides/${key}`,
|
|
20932
|
+
value
|
|
20933
|
+
});
|
|
20934
|
+
for (const key of Object.keys(prevOverrides)) if (!(key in overrides)) patchOperations.push({
|
|
20935
|
+
op: "remove",
|
|
20936
|
+
path: `/canarySettings/stageVariableOverrides/${key}`
|
|
20937
|
+
});
|
|
20938
|
+
}
|
|
20820
20939
|
const variables = properties["Variables"] ?? {};
|
|
20821
20940
|
const prevVariables = previousProperties["Variables"] ?? {};
|
|
20822
20941
|
for (const [key, value] of Object.entries(variables)) if (prevVariables[key] !== value) patchOperations.push({
|
|
@@ -21333,6 +21452,24 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
21333
21452
|
result["Description"] = resp.description ?? "";
|
|
21334
21453
|
if (resp.tracingEnabled !== void 0) result["TracingEnabled"] = resp.tracingEnabled;
|
|
21335
21454
|
if (resp.variables !== void 0) result["Variables"] = resp.variables;
|
|
21455
|
+
if (resp.cacheClusterEnabled !== void 0) result["CacheClusterEnabled"] = resp.cacheClusterEnabled;
|
|
21456
|
+
if (resp.cacheClusterSize !== void 0) result["CacheClusterSize"] = resp.cacheClusterSize;
|
|
21457
|
+
if (resp.clientCertificateId !== void 0) result["ClientCertificateId"] = resp.clientCertificateId;
|
|
21458
|
+
if (resp.documentationVersion !== void 0) result["DocumentationVersion"] = resp.documentationVersion;
|
|
21459
|
+
if (resp.accessLogSettings !== void 0) {
|
|
21460
|
+
const accessLog = {};
|
|
21461
|
+
if (resp.accessLogSettings.destinationArn !== void 0) accessLog["DestinationArn"] = resp.accessLogSettings.destinationArn;
|
|
21462
|
+
if (resp.accessLogSettings.format !== void 0) accessLog["Format"] = resp.accessLogSettings.format;
|
|
21463
|
+
result["AccessLogSetting"] = accessLog;
|
|
21464
|
+
}
|
|
21465
|
+
if (resp.canarySettings !== void 0) {
|
|
21466
|
+
const canary = {};
|
|
21467
|
+
if (resp.canarySettings.percentTraffic !== void 0) canary["PercentTraffic"] = resp.canarySettings.percentTraffic;
|
|
21468
|
+
if (resp.canarySettings.deploymentId !== void 0) canary["DeploymentId"] = resp.canarySettings.deploymentId;
|
|
21469
|
+
if (resp.canarySettings.stageVariableOverrides !== void 0) canary["StageVariableOverrides"] = resp.canarySettings.stageVariableOverrides;
|
|
21470
|
+
if (resp.canarySettings.useStageCache !== void 0) canary["UseStageCache"] = resp.canarySettings.useStageCache;
|
|
21471
|
+
result["CanarySetting"] = canary;
|
|
21472
|
+
}
|
|
21336
21473
|
const stateMethodSettings = properties?.["MethodSettings"];
|
|
21337
21474
|
if (stateMethodSettings && stateMethodSettings.length > 0) result["MethodSettings"] = stateMethodSettings.map((stateEntry) => {
|
|
21338
21475
|
const awsEntry = (resp.methodSettings ?? {})[methodSettingKey(stateEntry)];
|
|
@@ -21412,6 +21549,43 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
21412
21549
|
}
|
|
21413
21550
|
};
|
|
21414
21551
|
/**
|
|
21552
|
+
* A nested CFn config block must be a plain object; a string, array, or
|
|
21553
|
+
* unresolved intrinsic that leaks through resolution indexes every sub-field
|
|
21554
|
+
* to `undefined` (#1471/#1493 class). Create refuses such a block; update
|
|
21555
|
+
* warns and skips the property.
|
|
21556
|
+
*/
|
|
21557
|
+
function isPlainObjectBlock(value) {
|
|
21558
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
21559
|
+
}
|
|
21560
|
+
/**
|
|
21561
|
+
* Strip the `:*` suffix off a CloudWatch Logs log-group ARN.
|
|
21562
|
+
*
|
|
21563
|
+
* CDK's canonical `LogGroupLogDestination` emits `Fn::GetAtt [LogGroup, Arn]`
|
|
21564
|
+
* for `AccessLogSetting.DestinationArn`, and a log group's Arn attribute ends
|
|
21565
|
+
* with `:*` — a shape API Gateway's UpdateStage REJECTS ("Access log
|
|
21566
|
+
* destination must only contain characters a-z, ..."). CloudFormation's Stage
|
|
21567
|
+
* handler normalizes the suffix and accepts the template (proven by the
|
|
21568
|
+
* apigw-stage-throttling fixture's CC-routed history), so the SDK provider
|
|
21569
|
+
* must match for parity or every CDK `deployOptions.accessLogDestination`
|
|
21570
|
+
* app fails on deploy (caught live by that integ, 2026-08-11).
|
|
21571
|
+
*/
|
|
21572
|
+
function normalizeAccessLogDestinationArn(arn) {
|
|
21573
|
+
return arn.endsWith(":*") ? arn.slice(0, -2) : arn;
|
|
21574
|
+
}
|
|
21575
|
+
/**
|
|
21576
|
+
* Map the CFn `CanarySetting` block to the SDK `CreateStageCommand`
|
|
21577
|
+
* `canarySettings` shape (PascalCase -> camelCase member rename).
|
|
21578
|
+
*/
|
|
21579
|
+
function toSdkCanarySettings(setting) {
|
|
21580
|
+
if (setting == null) return void 0;
|
|
21581
|
+
return {
|
|
21582
|
+
percentTraffic: setting.PercentTraffic,
|
|
21583
|
+
deploymentId: setting.DeploymentId,
|
|
21584
|
+
stageVariableOverrides: setting.StageVariableOverrides,
|
|
21585
|
+
useStageCache: setting.UseStageCache
|
|
21586
|
+
};
|
|
21587
|
+
}
|
|
21588
|
+
/**
|
|
21415
21589
|
* CFn MethodSetting field → UpdateStage patch-path suffix under
|
|
21416
21590
|
* `/{method_setting_key}/`. The get-stage response field for each is the
|
|
21417
21591
|
* camelCase of the CFn name (used by the drift readback).
|
|
@@ -68114,7 +68288,7 @@ function createMigrateCommand() {
|
|
|
68114
68288
|
*/
|
|
68115
68289
|
function buildProgram() {
|
|
68116
68290
|
const program = new Command();
|
|
68117
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.
|
|
68291
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.280.0");
|
|
68118
68292
|
program.hook("preAction", (_thisCommand, actionCommand) => {
|
|
68119
68293
|
const { profile } = actionCommand.optsWithGlobals();
|
|
68120
68294
|
if (profile !== void 0) process.env["AWS_PROFILE"] = profile;
|