@go-to-k/cdkd 0.283.28 → 0.283.29
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-DzaowTd_.js → asg-provider-r0-peaiL.js} +2 -2
- package/dist/{asg-provider-DzaowTd_.js.map → asg-provider-r0-peaiL.js.map} +1 -1
- package/dist/cli.js +70 -27
- package/dist/cli.js.map +1 -1
- package/dist/{deploy-engine-5rA6lMn8.js → deploy-engine-BZ4SAIK7.js} +3 -3
- package/dist/{deploy-engine-5rA6lMn8.js.map → deploy-engine-BZ4SAIK7.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 coerceCfnBoolean, $t as resolveApp, A as cyan, An as LocalInvokeBuildError$1, At as createAssetRedirectResolver, B as findSilentDropProperties, Bn as StackHasActiveImportsError, Bt as validateContainerRepoName, C as makeCanonicalizePropertiesFn, Cn as resetAwsClients, Ct as S3StateBackend, D as renderStatefulReason, Dt as stringifyValue, E as isStatefulRecreateTargetSync, En as CdkdError, Et as AssetPublisher, F as IAMRoleProvider, Fn as NestedStackChildDirectDestroyError, Ft as BOOTSTRAP_MARKER_PREFIX, G as IntrinsicFunctionResolver, Gt as runDockerForeground, H as slowCcOperationTimeoutMs, Ht as buildDockerImage, I as collectInlinePolicyNamesManagedBySiblings, In as PartialFailureError, It as ensureAssetStorage, J as refStateLookupFromResource, Jn as isMarkedNonRetryable, Jt as getDockerImageBySourceHash, K as cfnRefValueFromPhysicalId, Kn as normalizeAwsError, Kt as runDockerStreaming, L as clearOnUpdateRemoval, Ln as ProvisioningError, Lt as getBootstrapMarkerKey, M as green, Mn as LocalStartServiceError, Mt as rewriteTemplateAssetReferences, N as red, Nt as escapeRegExp, O as formatResourceLine, Ot as WorkGraph, P as yellow, Pn as MissingCdkCliError, Pt as AssetModeResolver, Q as assertRegionMatch, Qt as getLegacyStateBucketName, R as ProviderRegistry, Rn as ResourceTimeoutError, Rt as parseBootstrapMarker, S as unsupportedFinalSnapshotError, Sn as getAwsClients, St as LockManager, T as MULTI_REGION_RECREATE_BLOCKED_TYPES, Tt as shouldRetainResource, U as disableInstanceApiTermination, Ut as formatDockerLoginError, V as CloudControlProvider, Vn as StackTerminationProtectionError, Vt as buildDenyExternalAccessPolicy, W as isTerminationProtectionPropagationError, Wt as getDockerCmd, X as normalizeAwsTagsToCfn, Xn as isThrottlingError, Xt as synthesisStatusMessage, Y as WAFv2WebACLProvider, Yn as isRetryableTransientError, Yt as Synthesizer, Z as resolveExplicitPhysicalId, Zn as markNonRetryable, Zt as getDefaultStateBucketName, _ as buildFinalSnapshotIdentifier, _n as AssemblyReader, _t as INTRINSIC_KEYS, a as DeploymentEventsStore, an as resolveUseCdkBootstrapAssets, at as requireConfigObject, b as isFinalSnapshotError, bn as resolveBucketRegion, bt as DagBuilder, c as replayFailedOperations, cn as CFN_TEMPLATE_BODY_LIMIT, ct as redactSecretsForState, d as deleteSkipReason, dn as findLargeInlineResources, dt as s3BucketDomainName, en as resolveAutoAssetStorage, et as configBooleanRefusal, f as withResourceDeadline, fn as uploadCfnTemplate, ft as s3BucketDualStackDomainName, g as PRE_DELETE_SNAPSHOT_TYPES, gn as derivePartitionAndUrlSuffix, gt as DiffCalculator, h as ATOMIC_FINAL_SNAPSHOT_TYPES, hn as canonicalizeRegion, ht as applyRoleArnIfSet, i as DeploymentEventsReader, in as resolveStateBucketWithDefaultAndSource, it as requireConfigArray, j as gray, jn as LocalMigrateError, jt as loadPublishableAssetManifest, k as bold, kn as DeployCancelledError, kt as buildAssetRedirectMap, l as replayRollback, ln as CFN_TEMPLATE_URL_LIMIT, lt as scrubResourceRecord, m as computeImplicitDeleteEdges, mn as PARTITION_TABLE, mt as s3BucketWebsiteUrl, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as resolveSkipPrefix, nt as readConfigString, o as planFailedOps, on as stateBucketExistenceConfirmed, ot as requireConfigString, p as IMPLICIT_DELETE_DEPENDENCIES, pn as expectedOwnerParam, pt as s3BucketRegionalDomainName, q as getAccountInfo, qn as withErrorHandling, qt as AssetManifestLoader, r as DeployEngine, rn as resolveStateBucketWithDefault, rt as replayWarn, s as planRollback, sn as warnDeprecatedNoPrefixCliFlag, st as TEMPLATE_SOURCED_READBACK_RULES, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as resolveCaptureObservedState, tt as configStringRefusal, u as UNSPECIFIED_SKIP_REASON, un as MIGRATE_TMP_PREFIX, ut as s3BucketArn, v as ccRoutedFinalSnapshotError, vn as processStackMessages, vt as describeTypeWithThrottleRetry, w as extractDeploymentEventError, wn as setAwsClients, wt as rebuildClientForBucketRegion, x as refusesFinalSnapshot, xn as AwsClients, xt as TemplateParser, y as createPreDeleteFinalSnapshot, yt as withRetry, z as findActionableSilentDrops, zn as ResourceUpdateNotSupportedError, zt as validateAssetBucketName } from "./deploy-engine-
|
|
2
|
+
import { $ as coerceCfnBoolean, $t as resolveApp, A as cyan, An as LocalInvokeBuildError$1, At as createAssetRedirectResolver, B as findSilentDropProperties, Bn as StackHasActiveImportsError, Bt as validateContainerRepoName, C as makeCanonicalizePropertiesFn, Cn as resetAwsClients, Ct as S3StateBackend, D as renderStatefulReason, Dt as stringifyValue, E as isStatefulRecreateTargetSync, En as CdkdError, Et as AssetPublisher, F as IAMRoleProvider, Fn as NestedStackChildDirectDestroyError, Ft as BOOTSTRAP_MARKER_PREFIX, G as IntrinsicFunctionResolver, Gt as runDockerForeground, H as slowCcOperationTimeoutMs, Ht as buildDockerImage, I as collectInlinePolicyNamesManagedBySiblings, In as PartialFailureError, It as ensureAssetStorage, J as refStateLookupFromResource, Jn as isMarkedNonRetryable, Jt as getDockerImageBySourceHash, K as cfnRefValueFromPhysicalId, Kn as normalizeAwsError, Kt as runDockerStreaming, L as clearOnUpdateRemoval, Ln as ProvisioningError, Lt as getBootstrapMarkerKey, M as green, Mn as LocalStartServiceError, Mt as rewriteTemplateAssetReferences, N as red, Nt as escapeRegExp, O as formatResourceLine, Ot as WorkGraph, P as yellow, Pn as MissingCdkCliError, Pt as AssetModeResolver, Q as assertRegionMatch, Qt as getLegacyStateBucketName, R as ProviderRegistry, Rn as ResourceTimeoutError, Rt as parseBootstrapMarker, S as unsupportedFinalSnapshotError, Sn as getAwsClients, St as LockManager, T as MULTI_REGION_RECREATE_BLOCKED_TYPES, Tt as shouldRetainResource, U as disableInstanceApiTermination, Ut as formatDockerLoginError, V as CloudControlProvider, Vn as StackTerminationProtectionError, Vt as buildDenyExternalAccessPolicy, W as isTerminationProtectionPropagationError, Wt as getDockerCmd, X as normalizeAwsTagsToCfn, Xn as isThrottlingError, Xt as synthesisStatusMessage, Y as WAFv2WebACLProvider, Yn as isRetryableTransientError, Yt as Synthesizer, Z as resolveExplicitPhysicalId, Zn as markNonRetryable, Zt as getDefaultStateBucketName, _ as buildFinalSnapshotIdentifier, _n as AssemblyReader, _t as INTRINSIC_KEYS, a as DeploymentEventsStore, an as resolveUseCdkBootstrapAssets, at as requireConfigObject, b as isFinalSnapshotError, bn as resolveBucketRegion, bt as DagBuilder, c as replayFailedOperations, cn as CFN_TEMPLATE_BODY_LIMIT, ct as redactSecretsForState, d as deleteSkipReason, dn as findLargeInlineResources, dt as s3BucketDomainName, en as resolveAutoAssetStorage, et as configBooleanRefusal, f as withResourceDeadline, fn as uploadCfnTemplate, ft as s3BucketDualStackDomainName, g as PRE_DELETE_SNAPSHOT_TYPES, gn as derivePartitionAndUrlSuffix, gt as DiffCalculator, h as ATOMIC_FINAL_SNAPSHOT_TYPES, hn as canonicalizeRegion, ht as applyRoleArnIfSet, i as DeploymentEventsReader, in as resolveStateBucketWithDefaultAndSource, it as requireConfigArray, j as gray, jn as LocalMigrateError, jt as loadPublishableAssetManifest, k as bold, kn as DeployCancelledError, kt as buildAssetRedirectMap, l as replayRollback, ln as CFN_TEMPLATE_URL_LIMIT, lt as scrubResourceRecord, m as computeImplicitDeleteEdges, mn as PARTITION_TABLE, mt as s3BucketWebsiteUrl, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as resolveSkipPrefix, nt as readConfigString, o as planFailedOps, on as stateBucketExistenceConfirmed, ot as requireConfigString, p as IMPLICIT_DELETE_DEPENDENCIES, pn as expectedOwnerParam, pt as s3BucketRegionalDomainName, q as getAccountInfo, qn as withErrorHandling, qt as AssetManifestLoader, r as DeployEngine, rn as resolveStateBucketWithDefault, rt as replayWarn, s as planRollback, sn as warnDeprecatedNoPrefixCliFlag, st as TEMPLATE_SOURCED_READBACK_RULES, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as resolveCaptureObservedState, tt as configStringRefusal, u as UNSPECIFIED_SKIP_REASON, un as MIGRATE_TMP_PREFIX, ut as s3BucketArn, v as ccRoutedFinalSnapshotError, vn as processStackMessages, vt as describeTypeWithThrottleRetry, w as extractDeploymentEventError, wn as setAwsClients, wt as rebuildClientForBucketRegion, x as refusesFinalSnapshot, xn as AwsClients, xt as TemplateParser, y as createPreDeleteFinalSnapshot, yt as withRetry, z as findActionableSilentDrops, zn as ResourceUpdateNotSupportedError, zt as validateAssetBucketName } from "./deploy-engine-BZ4SAIK7.js";
|
|
3
3
|
import { a as getLiveRenderer, c as PATTERN_B_RESOURCE_TYPES, d as generateResourceNameWithFallback, h as withStackName, i as runStackBuffered, m as withSkipPrefix, n as getLogger, o as PATTERN_B_NAME_OPTIONS, s as PATTERN_B_NAME_PROPERTIES, u as generateResourceName } from "./logger-zRrlbaQt.js";
|
|
4
|
-
import { t as ASGProvider } from "./asg-provider-
|
|
4
|
+
import { t as ASGProvider } from "./asg-provider-r0-peaiL.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";
|
|
@@ -38659,6 +38659,56 @@ const MFA_FACTOR_SMS = "SMS_MFA";
|
|
|
38659
38659
|
const MFA_FACTOR_SOFTWARE_TOKEN = "SOFTWARE_TOKEN_MFA";
|
|
38660
38660
|
const MFA_FACTOR_EMAIL_OTP = "EMAIL_OTP";
|
|
38661
38661
|
/**
|
|
38662
|
+
* Read `EnabledMfas` as the pair (recognized list, "the template asked for a
|
|
38663
|
+
* factor at all").
|
|
38664
|
+
*
|
|
38665
|
+
* The second half exists because `Array.isArray` is not the same question as
|
|
38666
|
+
* "did the user declare a factor". A hand-written YAML scalar
|
|
38667
|
+
* (`EnabledMfas: SOFTWARE_TOKEN_MFA`) or an intrinsic that resolves to a String
|
|
38668
|
+
* parameter is a factor DECLARATION that happens to be mis-shaped. Treating it
|
|
38669
|
+
* as absence lets the MfaConfiguration default resolve to `OFF`, which AWS
|
|
38670
|
+
* ACCEPTS — so the pool ships with MFA disabled and the declared factor
|
|
38671
|
+
* dropped, silently. Treating it as intent keeps the default at `OPTIONAL`
|
|
38672
|
+
* instead, which AWS refuses loudly — unless the template pinned
|
|
38673
|
+
* `MfaConfiguration: OFF`, or another factor is enabled. The warning in
|
|
38674
|
+
* `buildMfaConfigRequest` reports which of those three actually happened.
|
|
38675
|
+
* Same reasoning as the unrecognized-spelling case there; this is that hole
|
|
38676
|
+
* reached through the SHAPE instead of the spelling.
|
|
38677
|
+
*/
|
|
38678
|
+
function readEnabledMfas(properties) {
|
|
38679
|
+
const raw = properties["EnabledMfas"];
|
|
38680
|
+
if (Array.isArray(raw)) {
|
|
38681
|
+
const factors = raw;
|
|
38682
|
+
return {
|
|
38683
|
+
factors,
|
|
38684
|
+
declaresFactor: factors.length > 0,
|
|
38685
|
+
malformed: false
|
|
38686
|
+
};
|
|
38687
|
+
}
|
|
38688
|
+
const malformed = raw !== void 0 && raw !== null && raw !== "";
|
|
38689
|
+
return {
|
|
38690
|
+
factors: void 0,
|
|
38691
|
+
declaresFactor: malformed,
|
|
38692
|
+
malformed
|
|
38693
|
+
};
|
|
38694
|
+
}
|
|
38695
|
+
/**
|
|
38696
|
+
* True when any MFA-config-API-routed property is present, i.e. a
|
|
38697
|
+
* `SetUserPoolMfaConfig` call will run post-create. When true, `create()` must
|
|
38698
|
+
* NOT forward `MfaConfiguration` to `CreateUserPool`: AWS rejects
|
|
38699
|
+
* `CreateUserPool` with `MfaConfiguration: ON/OPTIONAL` unless the pool already
|
|
38700
|
+
* has SMS configured (+ phone_number auto-verification) OR software-token MFA
|
|
38701
|
+
* enabled — but software-token / email-OTP MFA can only be enabled via the
|
|
38702
|
+
* post-create `SetUserPoolMfaConfig` call, not on `CreateUserPool`. So the
|
|
38703
|
+
* correct sequence is: `CreateUserPool` WITHOUT `MfaConfiguration` (defaults
|
|
38704
|
+
* OFF) -> `SetUserPoolMfaConfig` sets `MfaConfiguration` + the factor blocks
|
|
38705
|
+
* together (the factor satisfies the MFA requirement, no SMS needed). This
|
|
38706
|
+
* mirrors how CloudFormation/CDK sequence the two calls.
|
|
38707
|
+
*/
|
|
38708
|
+
function hasMfaConfigProps(properties) {
|
|
38709
|
+
return readEnabledMfas(properties).declaresFactor || !!properties["EmailAuthenticationMessage"] || !!properties["EmailAuthenticationSubject"] || !!properties["WebAuthnRelyingPartyID"] || !!properties["WebAuthnUserVerification"];
|
|
38710
|
+
}
|
|
38711
|
+
/**
|
|
38662
38712
|
* Build the `SetUserPoolMfaConfig` request from the CFn-level MFA properties,
|
|
38663
38713
|
* or return `undefined` when none of the MFA-config-API-routed properties are
|
|
38664
38714
|
* present (so the caller skips the extra control-plane call entirely).
|
|
@@ -38674,37 +38724,21 @@ const MFA_FACTOR_EMAIL_OTP = "EMAIL_OTP";
|
|
|
38674
38724
|
* omitted `MfaConfiguration` defaults to OFF on the wire — which resets the
|
|
38675
38725
|
* pool to MFA-disabled and makes AWS reject (or silently drop) the per-factor
|
|
38676
38726
|
* sub-blocks we are trying to enable. Use the template's `MfaConfiguration`
|
|
38677
|
-
* when present;
|
|
38678
|
-
*
|
|
38679
|
-
*
|
|
38727
|
+
* when present; when the template omitted it, default by whether this call
|
|
38728
|
+
* enables an MFA FACTOR — `OPTIONAL` if it does, `OFF` (CloudFormation's own
|
|
38729
|
+
* default) if it does not. The body comment on that decision explains why both
|
|
38730
|
+
* halves of the factor test are load-bearing.
|
|
38680
38731
|
*/
|
|
38681
|
-
|
|
38682
|
-
|
|
38683
|
-
* `SetUserPoolMfaConfig` call will run post-create. When true, `create()` must
|
|
38684
|
-
* NOT forward `MfaConfiguration` to `CreateUserPool`: AWS rejects
|
|
38685
|
-
* `CreateUserPool` with `MfaConfiguration: ON/OPTIONAL` unless the pool already
|
|
38686
|
-
* has SMS configured (+ phone_number auto-verification) OR software-token MFA
|
|
38687
|
-
* enabled — but software-token / email-OTP MFA can only be enabled via the
|
|
38688
|
-
* post-create `SetUserPoolMfaConfig` call, not on `CreateUserPool`. So the
|
|
38689
|
-
* correct sequence is: `CreateUserPool` WITHOUT `MfaConfiguration` (defaults
|
|
38690
|
-
* OFF) -> `SetUserPoolMfaConfig` sets `MfaConfiguration` + the factor blocks
|
|
38691
|
-
* together (the factor satisfies the MFA requirement, no SMS needed). This
|
|
38692
|
-
* mirrors how CloudFormation/CDK sequence the two calls.
|
|
38693
|
-
*/
|
|
38694
|
-
function hasMfaConfigProps(properties) {
|
|
38695
|
-
const enabledMfas = Array.isArray(properties["EnabledMfas"]) ? properties["EnabledMfas"] : void 0;
|
|
38696
|
-
return enabledMfas !== void 0 && enabledMfas.length > 0 || !!properties["EmailAuthenticationMessage"] || !!properties["EmailAuthenticationSubject"] || !!properties["WebAuthnRelyingPartyID"] || !!properties["WebAuthnUserVerification"];
|
|
38697
|
-
}
|
|
38698
|
-
function buildMfaConfigRequest(physicalId, properties) {
|
|
38699
|
-
const enabledMfas = Array.isArray(properties["EnabledMfas"]) ? properties["EnabledMfas"] : void 0;
|
|
38732
|
+
function buildMfaConfigRequest(physicalId, properties, logger) {
|
|
38733
|
+
const { factors: enabledMfas, declaresFactor, malformed: enabledMfasMalformed } = readEnabledMfas(properties);
|
|
38700
38734
|
const emailMessage = properties["EmailAuthenticationMessage"] || void 0;
|
|
38701
38735
|
const emailSubject = properties["EmailAuthenticationSubject"] || void 0;
|
|
38702
38736
|
const webAuthnRpId = properties["WebAuthnRelyingPartyID"] || void 0;
|
|
38703
38737
|
const webAuthnUserVerification = properties["WebAuthnUserVerification"] || void 0;
|
|
38704
38738
|
if (!hasMfaConfigProps(properties)) return void 0;
|
|
38705
38739
|
const request = { UserPoolId: physicalId };
|
|
38706
|
-
request.MfaConfiguration = properties["MfaConfiguration"] ?? "OPTIONAL";
|
|
38707
38740
|
const factors = new Set(enabledMfas ?? []);
|
|
38741
|
+
const unrecognizedFactors = [...factors].filter((factor) => factor !== MFA_FACTOR_SMS && factor !== MFA_FACTOR_SOFTWARE_TOKEN && factor !== MFA_FACTOR_EMAIL_OTP);
|
|
38708
38742
|
if (factors.has(MFA_FACTOR_SOFTWARE_TOKEN)) request.SoftwareTokenMfaConfiguration = { Enabled: true };
|
|
38709
38743
|
if (factors.has(MFA_FACTOR_SMS)) request.SmsMfaConfiguration = { ...properties["SmsConfiguration"] ? { SmsConfiguration: properties["SmsConfiguration"] } : {} };
|
|
38710
38744
|
if (factors.has(MFA_FACTOR_EMAIL_OTP) || emailMessage !== void 0 || emailSubject !== void 0) request.EmailMfaConfiguration = {
|
|
@@ -38715,6 +38749,15 @@ function buildMfaConfigRequest(physicalId, properties) {
|
|
|
38715
38749
|
...webAuthnRpId !== void 0 ? { RelyingPartyId: webAuthnRpId } : {},
|
|
38716
38750
|
...webAuthnUserVerification !== void 0 ? { UserVerification: webAuthnUserVerification } : {}
|
|
38717
38751
|
};
|
|
38752
|
+
const enablesMfaFactor = declaresFactor || request.EmailMfaConfiguration !== void 0;
|
|
38753
|
+
request.MfaConfiguration = properties["MfaConfiguration"] ?? (enablesMfaFactor ? "OPTIONAL" : "OFF");
|
|
38754
|
+
const dropped = unrecognizedFactors.map((f) => JSON.stringify(f) ?? String(f));
|
|
38755
|
+
if (enabledMfasMalformed) dropped.push(`${JSON.stringify(properties["EnabledMfas"])} (not a list)`);
|
|
38756
|
+
if (dropped.length > 0) {
|
|
38757
|
+
const anyFactorBlock = request.SmsMfaConfiguration !== void 0 || request.SoftwareTokenMfaConfiguration !== void 0 || request.EmailMfaConfiguration !== void 0;
|
|
38758
|
+
const consequence = request.MfaConfiguration === "OFF" ? `MfaConfiguration is OFF, so this pool deploys with MFA DISABLED` : anyFactorBlock ? `MfaConfiguration is ${request.MfaConfiguration} and another factor block IS sent, so these entries are silently ignored rather than failing the call on their own` : `MfaConfiguration is ${request.MfaConfiguration} with no factor enabled, so AWS rejects this call rather than deploying the pool with MFA disabled`;
|
|
38759
|
+
logger?.warn(`UserPool ${physicalId}: EnabledMfas entries ${dropped.join(", ")} do not map to an MFA factor block (known: ${MFA_FACTOR_SMS}, ${MFA_FACTOR_SOFTWARE_TOKEN}, ${MFA_FACTOR_EMAIL_OTP}); no factor is enabled from them. ${consequence}.`);
|
|
38760
|
+
}
|
|
38718
38761
|
return request;
|
|
38719
38762
|
}
|
|
38720
38763
|
/**
|
|
@@ -38852,7 +38895,7 @@ var CognitoUserPoolProvider = class {
|
|
|
38852
38895
|
* (mirrors DynamoDBTableProvider.retryOnTransientControlPlane).
|
|
38853
38896
|
*/
|
|
38854
38897
|
async applyMfaConfig(physicalId, properties) {
|
|
38855
|
-
const request = buildMfaConfigRequest(physicalId, properties);
|
|
38898
|
+
const request = buildMfaConfigRequest(physicalId, properties, this.logger);
|
|
38856
38899
|
if (!request) return;
|
|
38857
38900
|
await this.retryOnTransientControlPlane(() => this.getClient().send(new SetUserPoolMfaConfigCommand(request)), `SetUserPoolMfaConfig(${physicalId})`);
|
|
38858
38901
|
}
|
|
@@ -80107,7 +80150,7 @@ function createMigrateCommand() {
|
|
|
80107
80150
|
*/
|
|
80108
80151
|
function buildProgram() {
|
|
80109
80152
|
const program = new Command();
|
|
80110
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.283.
|
|
80153
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.283.29");
|
|
80111
80154
|
program.hook("preAction", (_thisCommand, actionCommand) => {
|
|
80112
80155
|
const { profile } = actionCommand.optsWithGlobals();
|
|
80113
80156
|
if (profile !== void 0) process.env["AWS_PROFILE"] = profile;
|