@go-to-k/cdkd 0.278.4 → 0.278.6
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-HQeXH4I8.js → asg-provider-CTMEDbqF.js} +2 -2
- package/dist/{asg-provider-HQeXH4I8.js.map → asg-provider-CTMEDbqF.js.map} +1 -1
- package/dist/cli.js +101 -13
- package/dist/cli.js.map +1 -1
- package/dist/{deploy-engine-BEGqPEMI.js → deploy-engine-BKRlw9Hx.js} +3 -3
- package/dist/{deploy-engine-BEGqPEMI.js.map → deploy-engine-BKRlw9Hx.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 DagBuilder, A as red, At as resolveApp, B as isTerminationProtectionPropagationError, Bt as CFN_TEMPLATE_URL_LIMIT, C as isStatefulRecreateTargetSync, Ct as runDockerStreaming, D as cyan, Dt as synthesisStatusMessage, E as bold, Et as Synthesizer, F as ProviderRegistry, Ft as resolveStateBucketWithDefaultAndSource, G as normalizeAwsTagsToCfn, Gt as AssemblyReader, H as cfnRefValueFromPhysicalId, Ht as findLargeInlineResources, I as findActionableSilentDrops, It as resolveUseCdkBootstrapAssets, J as applyRoleArnIfSet, Jt as resolveBucketRegion, K as resolveExplicitPhysicalId, Kt as processStackMessages, L as CloudControlProvider, Lt as stateBucketExistenceConfirmed, M as IAMRoleProvider, Mt as resolveCaptureObservedState, N as collectInlinePolicyNamesManagedBySiblings, Nt as resolveSkipPrefix, O as gray, Ot as getDefaultStateBucketName, P as clearOnUpdateRemoval, Pt as resolveStateBucketWithDefault, Q as isRetryableTransientError, Qt as setAwsClients, R as slowCcOperationTimeoutMs, Rt as warnDeprecatedNoPrefixCliFlag, S as MULTI_REGION_RECREATE_BLOCKED_TYPES, St as runDockerForeground, T as formatResourceLine, Tt as getDockerImageBySourceHash, U as refStateLookupFromResource, Ut as uploadCfnTemplate, V as IntrinsicFunctionResolver, Vt as MIGRATE_TMP_PREFIX, W as WAFv2WebACLProvider, Wt as expectedOwnerParam, X as describeTypeWithThrottleRetry, Xt as getAwsClients, Y as DiffCalculator, Yt as AwsClients, Z as withRetry, Zt as resetAwsClients, _ as createPreDeleteFinalSnapshot, _t as validateAssetBucketName, a as DeploymentEventsStore, an as LocalMigrateError, at as AssetPublisher, b as unsupportedFinalSnapshotError, bn as normalizeAwsError, bt as formatDockerLoginError, c as replayFailedOperations, cn as MissingCdkCliError, ct as buildAssetRedirectMap, d as IMPLICIT_DELETE_DEPENDENCIES, dn as ProvisioningError, dt as rewriteTemplateAssetReferences, en as CdkdError, et as TemplateParser, f as computeImplicitDeleteEdges, fn as ResourceTimeoutError, ft as AssetModeResolver, g as ccRoutedFinalSnapshotError, gt as parseBootstrapMarker, h as buildFinalSnapshotIdentifier, hn as StackTerminationProtectionError, ht as getBootstrapMarkerKey, i as DeploymentEventsReader, in as LocalInvokeBuildError$1, it as shouldRetainResource, j as yellow, jt as resolveAutoAssetStorage, k as green, kt as getLegacyStateBucketName, l as replayRollback, ln as NestedStackChildDirectDestroyError, lt as createAssetRedirectResolver, m as PRE_DELETE_SNAPSHOT_TYPES, mn as StackHasActiveImportsError, mt as ensureAssetStorage, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nt as S3StateBackend, o as planFailedOps, on as LocalStartServiceError, ot as stringifyValue, p as ATOMIC_FINAL_SNAPSHOT_TYPES, pn as ResourceUpdateNotSupportedError, pt as BOOTSTRAP_MARKER_PREFIX, q as assertRegionMatch, r as DeployEngine, rn as DeployCancelledError, rt as rebuildClientForBucketRegion, s as planRollback, st as WorkGraph, t as DEFAULT_RESOURCE_TIMEOUT_MS, tt as LockManager, u as withResourceDeadline, un as PartialFailureError, ut as loadPublishableAssetManifest, v as isFinalSnapshotError, vt as validateContainerRepoName, w as renderStatefulReason, wt as AssetManifestLoader, x as extractDeploymentEventError, xn as withErrorHandling, xt as getDockerCmd, y as refusesFinalSnapshot, yt as buildDockerImage, z as disableInstanceApiTermination, zt as CFN_TEMPLATE_BODY_LIMIT } from "./deploy-engine-
|
|
2
|
+
import { $ as DagBuilder, A as red, At as resolveApp, B as isTerminationProtectionPropagationError, Bt as CFN_TEMPLATE_URL_LIMIT, C as isStatefulRecreateTargetSync, Ct as runDockerStreaming, D as cyan, Dt as synthesisStatusMessage, E as bold, Et as Synthesizer, F as ProviderRegistry, Ft as resolveStateBucketWithDefaultAndSource, G as normalizeAwsTagsToCfn, Gt as AssemblyReader, H as cfnRefValueFromPhysicalId, Ht as findLargeInlineResources, I as findActionableSilentDrops, It as resolveUseCdkBootstrapAssets, J as applyRoleArnIfSet, Jt as resolveBucketRegion, K as resolveExplicitPhysicalId, Kt as processStackMessages, L as CloudControlProvider, Lt as stateBucketExistenceConfirmed, M as IAMRoleProvider, Mt as resolveCaptureObservedState, N as collectInlinePolicyNamesManagedBySiblings, Nt as resolveSkipPrefix, O as gray, Ot as getDefaultStateBucketName, P as clearOnUpdateRemoval, Pt as resolveStateBucketWithDefault, Q as isRetryableTransientError, Qt as setAwsClients, R as slowCcOperationTimeoutMs, Rt as warnDeprecatedNoPrefixCliFlag, S as MULTI_REGION_RECREATE_BLOCKED_TYPES, St as runDockerForeground, T as formatResourceLine, Tt as getDockerImageBySourceHash, U as refStateLookupFromResource, Ut as uploadCfnTemplate, V as IntrinsicFunctionResolver, Vt as MIGRATE_TMP_PREFIX, W as WAFv2WebACLProvider, Wt as expectedOwnerParam, X as describeTypeWithThrottleRetry, Xt as getAwsClients, Y as DiffCalculator, Yt as AwsClients, Z as withRetry, Zt as resetAwsClients, _ as createPreDeleteFinalSnapshot, _t as validateAssetBucketName, a as DeploymentEventsStore, an as LocalMigrateError, at as AssetPublisher, b as unsupportedFinalSnapshotError, bn as normalizeAwsError, bt as formatDockerLoginError, c as replayFailedOperations, cn as MissingCdkCliError, ct as buildAssetRedirectMap, d as IMPLICIT_DELETE_DEPENDENCIES, dn as ProvisioningError, dt as rewriteTemplateAssetReferences, en as CdkdError, et as TemplateParser, f as computeImplicitDeleteEdges, fn as ResourceTimeoutError, ft as AssetModeResolver, g as ccRoutedFinalSnapshotError, gt as parseBootstrapMarker, h as buildFinalSnapshotIdentifier, hn as StackTerminationProtectionError, ht as getBootstrapMarkerKey, i as DeploymentEventsReader, in as LocalInvokeBuildError$1, it as shouldRetainResource, j as yellow, jt as resolveAutoAssetStorage, k as green, kt as getLegacyStateBucketName, l as replayRollback, ln as NestedStackChildDirectDestroyError, lt as createAssetRedirectResolver, m as PRE_DELETE_SNAPSHOT_TYPES, mn as StackHasActiveImportsError, mt as ensureAssetStorage, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nt as S3StateBackend, o as planFailedOps, on as LocalStartServiceError, ot as stringifyValue, p as ATOMIC_FINAL_SNAPSHOT_TYPES, pn as ResourceUpdateNotSupportedError, pt as BOOTSTRAP_MARKER_PREFIX, q as assertRegionMatch, r as DeployEngine, rn as DeployCancelledError, rt as rebuildClientForBucketRegion, s as planRollback, st as WorkGraph, t as DEFAULT_RESOURCE_TIMEOUT_MS, tt as LockManager, u as withResourceDeadline, un as PartialFailureError, ut as loadPublishableAssetManifest, v as isFinalSnapshotError, vt as validateContainerRepoName, w as renderStatefulReason, wt as AssetManifestLoader, x as extractDeploymentEventError, xn as withErrorHandling, xt as getDockerCmd, y as refusesFinalSnapshot, yt as buildDockerImage, z as disableInstanceApiTermination, zt as CFN_TEMPLATE_BODY_LIMIT } from "./deploy-engine-BKRlw9Hx.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-CTMEDbqF.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, DeleteBucketIntelligentTieringConfigurationCommand, DeleteBucketInventoryConfigurationCommand, DeleteBucketLifecycleCommand, DeleteBucketMetricsConfigurationCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, DeleteBucketWebsiteCommand, DeleteObjectsCommand, GetBucketAccelerateConfigurationCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketLoggingCommand, GetBucketNotificationConfigurationCommand, 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";
|
|
@@ -9754,6 +9754,48 @@ function classifyEventSourceFromProperties(properties) {
|
|
|
9754
9754
|
DocumentDBEventSourceConfig: properties["DocumentDBEventSourceConfig"]
|
|
9755
9755
|
});
|
|
9756
9756
|
}
|
|
9757
|
+
/**
|
|
9758
|
+
* CFn spells the self-managed-Kafka bootstrap-server list
|
|
9759
|
+
* `SelfManagedEventSource.Endpoints.KafkaBootstrapServers`, while the SDK
|
|
9760
|
+
* models `Endpoints` as `Partial<Record<EndPointType, string[]>>` keyed by the
|
|
9761
|
+
* enum VALUE `KAFKA_BOOTSTRAP_SERVERS` (`@aws-sdk/client-lambda`
|
|
9762
|
+
* `EndPointType`). Because `Endpoints` is a MAP rather than a modeled
|
|
9763
|
+
* structure, the serializer forwards the unknown CFn key verbatim and the
|
|
9764
|
+
* service rejects the whole request — so every CDK `SelfManagedKafkaEventSource`
|
|
9765
|
+
* user hit a hard `CreateEventSourceMapping` failure (issue #1384).
|
|
9766
|
+
*
|
|
9767
|
+
* Both directions are pure key renames of the ONE diverging key; every other
|
|
9768
|
+
* member of the blob (both inside `Endpoints` and beside it) is copied through
|
|
9769
|
+
* untouched. Note that a future `EndPointType` whose CFn spelling also diverges
|
|
9770
|
+
* would reproduce this bug exactly — it needs its own entry here, the pass-
|
|
9771
|
+
* through is not a general solution.
|
|
9772
|
+
*
|
|
9773
|
+
* Anything that is not a re-shapeable object — a non-object blob, a missing or
|
|
9774
|
+
* non-object `Endpoints`, an array `Endpoints` — is returned VERBATIM rather
|
|
9775
|
+
* than dropped. Dropping would be a silent-drop regression against the raw
|
|
9776
|
+
* pass-through this replaced: AWS must stay the one that rejects a malformed
|
|
9777
|
+
* template, not this layer.
|
|
9778
|
+
*/
|
|
9779
|
+
const CFN_KAFKA_ENDPOINTS_KEY = "KafkaBootstrapServers";
|
|
9780
|
+
const SDK_KAFKA_ENDPOINTS_KEY = "KAFKA_BOOTSTRAP_SERVERS";
|
|
9781
|
+
function renameEndpointsKey(selfManagedEventSource, from, to) {
|
|
9782
|
+
if (typeof selfManagedEventSource !== "object" || selfManagedEventSource === null) return selfManagedEventSource;
|
|
9783
|
+
const source = { ...selfManagedEventSource };
|
|
9784
|
+
const endpoints = source["Endpoints"];
|
|
9785
|
+
if (typeof endpoints !== "object" || endpoints === null || Array.isArray(endpoints)) return source;
|
|
9786
|
+
const renamed = {};
|
|
9787
|
+
for (const [key, value] of Object.entries(endpoints)) renamed[key === from ? to : key] = value;
|
|
9788
|
+
source["Endpoints"] = renamed;
|
|
9789
|
+
return source;
|
|
9790
|
+
}
|
|
9791
|
+
/** CFn property bag -> `CreateEventSourceMapping` input shape. */
|
|
9792
|
+
function toSdkSelfManagedEventSource(selfManagedEventSource) {
|
|
9793
|
+
return renameEndpointsKey(selfManagedEventSource, CFN_KAFKA_ENDPOINTS_KEY, SDK_KAFKA_ENDPOINTS_KEY);
|
|
9794
|
+
}
|
|
9795
|
+
/** `GetEventSourceMapping` response -> CFn property shape (drift readback). */
|
|
9796
|
+
function toCfnSelfManagedEventSource(selfManagedEventSource) {
|
|
9797
|
+
return renameEndpointsKey(selfManagedEventSource, SDK_KAFKA_ENDPOINTS_KEY, CFN_KAFKA_ENDPOINTS_KEY);
|
|
9798
|
+
}
|
|
9757
9799
|
const KINDS_WITH_FUNCTION_RESPONSE_TYPES = /* @__PURE__ */ new Set([
|
|
9758
9800
|
"sqs",
|
|
9759
9801
|
"kinesis",
|
|
@@ -9853,7 +9895,7 @@ var LambdaEventSourceMappingProvider = class {
|
|
|
9853
9895
|
if (properties["TumblingWindowInSeconds"]) params.TumblingWindowInSeconds = properties["TumblingWindowInSeconds"];
|
|
9854
9896
|
if (properties["FunctionResponseTypes"]) params.FunctionResponseTypes = properties["FunctionResponseTypes"];
|
|
9855
9897
|
if (properties["SourceAccessConfigurations"]) params.SourceAccessConfigurations = properties["SourceAccessConfigurations"];
|
|
9856
|
-
if (properties["SelfManagedEventSource"]) params.SelfManagedEventSource = properties["SelfManagedEventSource"];
|
|
9898
|
+
if (properties["SelfManagedEventSource"]) params.SelfManagedEventSource = toSdkSelfManagedEventSource(properties["SelfManagedEventSource"]);
|
|
9857
9899
|
if (properties["SelfManagedKafkaEventSourceConfig"]) params.SelfManagedKafkaEventSourceConfig = properties["SelfManagedKafkaEventSourceConfig"];
|
|
9858
9900
|
if (properties["AmazonManagedKafkaEventSourceConfig"]) params.AmazonManagedKafkaEventSourceConfig = properties["AmazonManagedKafkaEventSourceConfig"];
|
|
9859
9901
|
if (properties["DocumentDBEventSourceConfig"]) params.DocumentDBEventSourceConfig = properties["DocumentDBEventSourceConfig"];
|
|
@@ -10081,7 +10123,7 @@ var LambdaEventSourceMappingProvider = class {
|
|
|
10081
10123
|
else if (resp.FunctionResponseTypes !== void 0) result["FunctionResponseTypes"] = [...resp.FunctionResponseTypes];
|
|
10082
10124
|
if (KINDS_WITH_SOURCE_ACCESS_CONFIGURATIONS.has(kind)) result["SourceAccessConfigurations"] = resp.SourceAccessConfigurations ?? [];
|
|
10083
10125
|
else if (resp.SourceAccessConfigurations !== void 0) result["SourceAccessConfigurations"] = resp.SourceAccessConfigurations;
|
|
10084
|
-
if (resp.SelfManagedEventSource !== void 0) result["SelfManagedEventSource"] = resp.SelfManagedEventSource;
|
|
10126
|
+
if (resp.SelfManagedEventSource !== void 0) result["SelfManagedEventSource"] = toCfnSelfManagedEventSource(resp.SelfManagedEventSource);
|
|
10085
10127
|
if (resp.SelfManagedKafkaEventSourceConfig !== void 0) result["SelfManagedKafkaEventSourceConfig"] = resp.SelfManagedKafkaEventSourceConfig;
|
|
10086
10128
|
if (resp.AmazonManagedKafkaEventSourceConfig !== void 0) result["AmazonManagedKafkaEventSourceConfig"] = resp.AmazonManagedKafkaEventSourceConfig;
|
|
10087
10129
|
if (resp.DocumentDBEventSourceConfig !== void 0) result["DocumentDBEventSourceConfig"] = resp.DocumentDBEventSourceConfig;
|
|
@@ -42827,6 +42869,40 @@ var ECRProvider = class {
|
|
|
42827
42869
|
return out;
|
|
42828
42870
|
}
|
|
42829
42871
|
/**
|
|
42872
|
+
* Map CFn `ImageTagMutabilityExclusionFilters`
|
|
42873
|
+
* (`[{ ImageTagMutabilityExclusionFilterType, ImageTagMutabilityExclusionFilterValue }]`)
|
|
42874
|
+
* to the SDK shape (`[{ filterType, filter }]`). The member NAMES diverge —
|
|
42875
|
+
* not just their casing — so forwarding the CFn-shaped array verbatim makes
|
|
42876
|
+
* the SDK drop every member and send `[{}]`, and AWS rejects the call (or,
|
|
42877
|
+
* worse, silently loses the exclusions). Returns `undefined` for an absent /
|
|
42878
|
+
* empty list so the caller can omit the field entirely.
|
|
42879
|
+
*/
|
|
42880
|
+
toSdkTagMutabilityExclusionFilters(cfn) {
|
|
42881
|
+
if (!Array.isArray(cfn) || cfn.length === 0) return void 0;
|
|
42882
|
+
return cfn.map((entry) => {
|
|
42883
|
+
const e = entry ?? {};
|
|
42884
|
+
return {
|
|
42885
|
+
filterType: e["ImageTagMutabilityExclusionFilterType"],
|
|
42886
|
+
filter: e["ImageTagMutabilityExclusionFilterValue"]
|
|
42887
|
+
};
|
|
42888
|
+
});
|
|
42889
|
+
}
|
|
42890
|
+
/**
|
|
42891
|
+
* Inverse of {@link toSdkTagMutabilityExclusionFilters}: SDK
|
|
42892
|
+
* `[{ filterType, filter }]` back to the CFn property shape, so
|
|
42893
|
+
* `cdkd drift` compares the AWS-current exclusions against the
|
|
42894
|
+
* template-shaped baseline instead of a guaranteed false positive.
|
|
42895
|
+
* Returns `undefined` for an absent / empty list so `readCurrentState`
|
|
42896
|
+
* omits the key (a repository with no exclusions).
|
|
42897
|
+
*/
|
|
42898
|
+
toCfnTagMutabilityExclusionFilters(sdk) {
|
|
42899
|
+
if (!sdk || sdk.length === 0) return void 0;
|
|
42900
|
+
return sdk.map((f) => ({
|
|
42901
|
+
...f.filterType !== void 0 && { ImageTagMutabilityExclusionFilterType: f.filterType },
|
|
42902
|
+
...f.filter !== void 0 && { ImageTagMutabilityExclusionFilterValue: f.filter }
|
|
42903
|
+
}));
|
|
42904
|
+
}
|
|
42905
|
+
/**
|
|
42830
42906
|
* Create an ECR Repository
|
|
42831
42907
|
*/
|
|
42832
42908
|
async create(logicalId, resourceType, properties) {
|
|
@@ -42836,10 +42912,12 @@ var ECRProvider = class {
|
|
|
42836
42912
|
const tags = properties["Tags"];
|
|
42837
42913
|
const scanningConfig = this.toSdkScanningConfig(properties["ImageScanningConfiguration"]);
|
|
42838
42914
|
const encryptionConfig = this.toSdkEncryptionConfig(properties["EncryptionConfiguration"]);
|
|
42915
|
+
const exclusionFilters = this.toSdkTagMutabilityExclusionFilters(properties["ImageTagMutabilityExclusionFilters"]);
|
|
42839
42916
|
const repo = (await this.getClient().send(new CreateRepositoryCommand({
|
|
42840
42917
|
repositoryName,
|
|
42841
42918
|
...scanningConfig ? { imageScanningConfiguration: scanningConfig } : {},
|
|
42842
42919
|
...properties["ImageTagMutability"] ? { imageTagMutability: properties["ImageTagMutability"] } : {},
|
|
42920
|
+
...exclusionFilters ? { imageTagMutabilityExclusionFilters: exclusionFilters } : {},
|
|
42843
42921
|
...encryptionConfig ? { encryptionConfiguration: encryptionConfig } : {},
|
|
42844
42922
|
...tags ? { tags } : {}
|
|
42845
42923
|
}))).repository;
|
|
@@ -42880,7 +42958,8 @@ var ECRProvider = class {
|
|
|
42880
42958
|
* Update an ECR Repository
|
|
42881
42959
|
*
|
|
42882
42960
|
* Mutable properties: ImageScanningConfiguration, ImageTagMutability,
|
|
42883
|
-
* LifecyclePolicy, RepositoryPolicyText,
|
|
42961
|
+
* ImageTagMutabilityExclusionFilters, LifecyclePolicy, RepositoryPolicyText,
|
|
42962
|
+
* Tags.
|
|
42884
42963
|
* Immutable: RepositoryName, EncryptionConfiguration (require replacement).
|
|
42885
42964
|
*/
|
|
42886
42965
|
async update(logicalId, physicalId, _resourceType, properties, previousProperties) {
|
|
@@ -42896,10 +42975,14 @@ var ECRProvider = class {
|
|
|
42896
42975
|
this.logger.debug(`Updated image scanning configuration for ${physicalId}`);
|
|
42897
42976
|
}
|
|
42898
42977
|
const newMutability = properties["ImageTagMutability"];
|
|
42899
|
-
|
|
42978
|
+
const oldMutability = previousProperties["ImageTagMutability"];
|
|
42979
|
+
const newExclusionFilters = this.toSdkTagMutabilityExclusionFilters(properties["ImageTagMutabilityExclusionFilters"]);
|
|
42980
|
+
const oldExclusionFilters = this.toSdkTagMutabilityExclusionFilters(previousProperties["ImageTagMutabilityExclusionFilters"]);
|
|
42981
|
+
if (newMutability !== oldMutability || JSON.stringify(newExclusionFilters) !== JSON.stringify(oldExclusionFilters)) {
|
|
42900
42982
|
await this.getClient().send(new PutImageTagMutabilityCommand({
|
|
42901
42983
|
repositoryName: physicalId,
|
|
42902
|
-
imageTagMutability: newMutability ?? "MUTABLE"
|
|
42984
|
+
imageTagMutability: newMutability ?? "MUTABLE",
|
|
42985
|
+
...newExclusionFilters ? { imageTagMutabilityExclusionFilters: newExclusionFilters } : {}
|
|
42903
42986
|
}));
|
|
42904
42987
|
this.logger.debug(`Updated image tag mutability for ${physicalId}`);
|
|
42905
42988
|
}
|
|
@@ -43009,17 +43092,20 @@ var ECRProvider = class {
|
|
|
43009
43092
|
* (which `DescribeRepositories` doesn't return).
|
|
43010
43093
|
*
|
|
43011
43094
|
* Surfaced keys: `RepositoryName`, `ImageTagMutability`,
|
|
43012
|
-
* `
|
|
43013
|
-
*
|
|
43014
|
-
*
|
|
43095
|
+
* `ImageTagMutabilityExclusionFilters` (when the repository has any —
|
|
43096
|
+
* `DescribeRepositories` returns them on the `Repository` shape, mapped back
|
|
43097
|
+
* to the CFn member names), `ImageScanningConfiguration`,
|
|
43098
|
+
* `EncryptionConfiguration`, `LifecyclePolicy` (when configured —
|
|
43099
|
+
* `LifecyclePolicyNotFoundException` is caught and the key omitted, NOT
|
|
43100
|
+
* propagated as repo-gone).
|
|
43015
43101
|
*
|
|
43016
43102
|
* Intentionally omitted:
|
|
43017
43103
|
* - `RepositoryPolicyText`: requires a separate `GetRepositoryPolicy`
|
|
43018
43104
|
* round-trip; cdkd state holds the policy as either a string or an
|
|
43019
43105
|
* object (depending on user input), and the comparator round-trip
|
|
43020
43106
|
* is not yet handled here.
|
|
43021
|
-
* - `EmptyOnDelete
|
|
43022
|
-
*
|
|
43107
|
+
* - `EmptyOnDelete`: a cdkd/CDK delete-time intent flag, not part of the
|
|
43108
|
+
* persisted AWS state visible via standard Describe.
|
|
43023
43109
|
*
|
|
43024
43110
|
* `Tags` is surfaced via a follow-up `ListTagsForResource(arn)` call
|
|
43025
43111
|
* (using the repository ARN that `DescribeRepositories` returns). CDK's
|
|
@@ -43041,6 +43127,8 @@ var ECRProvider = class {
|
|
|
43041
43127
|
const result = {};
|
|
43042
43128
|
if (r.repositoryName !== void 0) result["RepositoryName"] = r.repositoryName;
|
|
43043
43129
|
if (r.imageTagMutability !== void 0) result["ImageTagMutability"] = r.imageTagMutability;
|
|
43130
|
+
const cfnExclusionFilters = this.toCfnTagMutabilityExclusionFilters(r.imageTagMutabilityExclusionFilters);
|
|
43131
|
+
if (cfnExclusionFilters) result["ImageTagMutabilityExclusionFilters"] = cfnExclusionFilters;
|
|
43044
43132
|
result["ImageScanningConfiguration"] = { ScanOnPush: r.imageScanningConfiguration?.scanOnPush ?? false };
|
|
43045
43133
|
{
|
|
43046
43134
|
const encType = r.encryptionConfiguration?.encryptionType ?? "AES256";
|
|
@@ -64366,7 +64454,7 @@ function createMigrateCommand() {
|
|
|
64366
64454
|
*/
|
|
64367
64455
|
function buildProgram() {
|
|
64368
64456
|
const program = new Command();
|
|
64369
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.278.
|
|
64457
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.278.6");
|
|
64370
64458
|
program.hook("preAction", (_thisCommand, actionCommand) => {
|
|
64371
64459
|
const { profile } = actionCommand.optsWithGlobals();
|
|
64372
64460
|
if (profile !== void 0) process.env["AWS_PROFILE"] = profile;
|