@go-to-k/cdkd 0.285.2 → 0.285.3
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-DEG5QGu2.js → asg-provider-D3bSjRiw.js} +2 -2
- package/dist/{asg-provider-DEG5QGu2.js.map → asg-provider-D3bSjRiw.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-Bci2hIDt.js → deploy-engine-3lJaFGjA.js} +5 -5
- package/dist/{deploy-engine-Bci2hIDt.js.map → deploy-engine-3lJaFGjA.js.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/{program-fntegUX1.js → program-BU6F1UD2.js} +105 -8
- package/dist/{program-fntegUX1.js.map → program-BU6F1UD2.js.map} +1 -1
- package/dist/{version-CPBCBoA5.js → version-B4YqJKXh.js} +2 -2
- package/dist/{version-CPBCBoA5.js.map → version-B4YqJKXh.js.map} +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Bn as Synthesizer, Br as normalizeAwsError, Dr as LockError, G as IAMRoleProvider, Ir as StateError, J as ProviderRegistry, Lr as SynthesisError, Rr as formatError, Ut as DagBuilder, Wt as TemplateParser, _r as AssetError, dr as clearBucketRegionCache, fr as resolveBucketRegion, gr as setAwsClients, hr as resetAwsClients, in as S3StateBackend, jr as ProvisioningError, lr as AssemblyReader, mr as getAwsClients, nn as LockManager, pr as AwsClients, r as DeployEngine, st as CloudControlProvider, un as AssetPublisher, vr as CdkdError, xr as DependencyError, yr as ConfigError, zr as isCdkdError, zt as DiffCalculator } from "./deploy-engine-
|
|
1
|
+
import { Bn as Synthesizer, Br as normalizeAwsError, Dr as LockError, G as IAMRoleProvider, Ir as StateError, J as ProviderRegistry, Lr as SynthesisError, Rr as formatError, Ut as DagBuilder, Wt as TemplateParser, _r as AssetError, dr as clearBucketRegionCache, fr as resolveBucketRegion, gr as setAwsClients, hr as resetAwsClients, in as S3StateBackend, jr as ProvisioningError, lr as AssemblyReader, mr as getAwsClients, nn as LockManager, pr as AwsClients, r as DeployEngine, st as CloudControlProvider, un as AssetPublisher, vr as CdkdError, xr as DependencyError, yr as ConfigError, zr as isCdkdError, zt as DiffCalculator } from "./deploy-engine-3lJaFGjA.js";
|
|
2
2
|
import { i as setLogger, n as getLogger, t as ConsoleLogger } from "./logger-Dz3Le2Pw.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 maskerOrIdentity, $n as CFN_TEMPLATE_BODY_LIMIT, $t as maskSecretsInText, A as renderStatefulReason, An as describeAwsFailure, Ar as PartialFailureError, At as requireConfigString, B as exportAliasCollisionScrubWarning, Bn as Synthesizer, Br as normalizeAwsError, Bt as INTRINSIC_KEYS, C as isFinalSnapshotError, Cn as getBootstrapMarkerKey, Cr as DynamicReferenceRegionAmbiguousError, Ct as coerceCfnBoolean, D as extractDeploymentEventError, Dn as validateAssetBucketName, Dt as replayWarn, E as makeCanonicalizePropertiesFn, En as readBootstrapMarkerBody, Er as LocalStartServiceError, Et as readConfigString, F as green, Fn as partitionSensitiveEnv, Fr as StackTerminationProtectionError, Ft as s3BucketDualStackDomainName, G as IAMRoleProvider, Gn as resolveAutoAssetStorage, Gr as
|
|
1
|
+
import { $ as maskerOrIdentity, $n as CFN_TEMPLATE_BODY_LIMIT, $t as maskSecretsInText, A as renderStatefulReason, An as describeAwsFailure, Ar as PartialFailureError, At as requireConfigString, B as exportAliasCollisionScrubWarning, Bn as Synthesizer, Br as normalizeAwsError, Bt as INTRINSIC_KEYS, C as isFinalSnapshotError, Cn as getBootstrapMarkerKey, Cr as DynamicReferenceRegionAmbiguousError, Ct as coerceCfnBoolean, D as extractDeploymentEventError, Dn as validateAssetBucketName, Dt as replayWarn, E as makeCanonicalizePropertiesFn, En as readBootstrapMarkerBody, Er as LocalStartServiceError, Et as readConfigString, F as green, Fn as partitionSensitiveEnv, Fr as StackTerminationProtectionError, Ft as s3BucketDualStackDomainName, G as IAMRoleProvider, Gn as resolveAutoAssetStorage, Gr as isTransientServerError, Gt as STATE_SOURCED_CROSS_GENERATION_RULES, H as secretBearingStateKeyWarning, Hn as getDefaultStateBucketName, Hr as isMarkedNonRetryable, Ht as withRetry, I as red, In as runDockerForeground, It as s3BucketRegionalDomainName, J as ProviderRegistry, Jn as resolveStateBucketWithDefault, Jr as retryClassificationText, Jt as createSecretMasker, K as collectInlinePolicyNamesManagedBySiblings, Kn as resolveCaptureObservedState, Kr as markNonRetryable, Kt as STATE_SOURCED_READBACK_RULES, L as yellow, Ln as runDockerStreaming, Lt as s3BucketWebsiteUrl, M as bold, Mn as dockerSpawnEnvWithSensitive, Mr as ResourceTimeoutError, Mt as producerRegionsFromState, N as cyan, Nn as formatDockerLoginError, Nr as ResourceUpdateNotSupportedError, Nt as s3BucketArn, O as MULTI_REGION_RECREATE_BLOCKED_TYPES, On as validateContainerRepoName, Or as MissingCdkCliError, Ot as requireConfigArray, P as gray, Pn as getDockerCmd, Pr as StackHasActiveImportsError, Pt as s3BucketDomainName, Q as maskDeep, Qn as warnDeprecatedNoPrefixCliFlag, Qt as maskSecretsInError, R as collectDeclaredOutputNames, Rn as AssetManifestLoader, Rt as applyRoleArnIfSet, S as createPreDeleteFinalSnapshot, Sn as ensureAssetStorage, Sr as DeployCancelledError, St as assertRegionMatch, T as unsupportedFinalSnapshotError, Tn as parseBootstrapMarker, Tr as LocalMigrateError, Tt as configStringRefusal, U as stateKeySecretExposure, Un as getLegacyStateBucketName, Ur as isRetryableTransientError, Ut as DagBuilder, V as isExportAliasCollision, Vn as synthesisStatusMessage, Vr as withErrorHandling, Vt as describeTypeWithThrottleRetry, W as getCurrentResourceSecrets, Wn as resolveApp, Wr as isThrottlingError, Wt as TemplateParser, X as findSilentDropProperties, Xn as resolveUseCdkBootstrapAssets, Xt as errorCauseChain, Y as findActionableSilentDrops, Yn as resolveStateBucketWithDefaultAndSource, Yt as dynamicReferenceTokens, Z as createMaskedRetryLogger, Zn as stateBucketExistenceConfirmed, Zt as isSingleDynamicReferenceToken, _ as computeImplicitDeleteEdges, _n as escapeRegExp, _t as parameterTypeMayLoseSecretIdentity, a as DeploymentEventsStore, an as rebuildClientForBucketRegion, ar as expectedOwnerParam, at as isInterruptedWaitError, b as buildFinalSnapshotIdentifier, bn as BOOTSTRAP_MARKER_PREFIX, br as CrossAccountSecretRefusalError, bt as normalizeAwsTagsToCfn, c as replayFailedOperations, cn as importableOutputs, cr as derivePartitionAndUrlSuffix, ct as slowCcOperationTimeoutMs, d as updatePartialReason, dn as stringifyValue, dt as IntrinsicFunctionResolver, en as redactSecretsForState, er as CFN_TEMPLATE_URL_LIMIT, et as CUSTOM_RESOURCE_RESPONSE_PREFIX, f as UNSPECIFIED_SKIP_REASON, fn as WorkGraph, fr as resolveBucketRegion, ft as carriesDynamicReference, g as IMPLICIT_DELETE_DEPENDENCIES, gn as rewriteTemplateAssetReferences, gr as setAwsClients, gt as isUnboundTemplateParameter, h as maskingRetryLogger, hn as loadPublishableAssetManifest, hr as resetAwsClients, ht as getAccountInfo, i as DeploymentEventsReader, in as S3StateBackend, ir as CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION, it as interruptWatchListenerCount, j as formatResourceLine, jn as buildDockerImage, jr as ProvisioningError, jt as classifyReplaySecretRegion, k as isStatefulRecreateTargetSync, kn as buildDenyExternalAccessPolicy, kr as NestedStackChildDirectDestroyError, kt as requireConfigObject, l as replayRollback, ln as shouldRetainResource, lr as AssemblyReader, lt as disableInstanceApiTermination, m as withResourceDeadline, mn as createAssetRedirectResolver, mr as getAwsClients, mt as coerceParameterTypedValue, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as LockManager, nr as findLargeInlineResources, nt as beginCommandInterruptScope, o as planFailedOps, on as exportNamesCarriedFrom, or as PARTITION_TABLE, ot as startInterruptWatch, p as deleteSkipReason, pn as buildAssetRedirectMap, pr as AwsClients, pt as cfnRefValueFromPhysicalId, q as clearOnUpdateRemoval, qn as resolveSkipPrefix, qr as markRedactedCause, qt as TEMPLATE_SOURCED_RULES, r as DeployEngine, rn as displaySafe, rr as uploadCfnTemplate, rt as endCommandInterruptScope, s as planRollback, sn as importableOutputKeys, sr as canonicalizeRegion, st as CloudControlProvider, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as scrubResourceRecord, tr as MIGRATE_TMP_PREFIX, tt as DEFAULT_STATE_PREFIX, u as updatePartialMessage, un as AssetPublisher, ur as processStackMessages, ut as isTerminationProtectionPropagationError, v as ATOMIC_FINAL_SNAPSHOT_TYPES, vn as stripControlChars, vr as CdkdError, vt as refStateLookupFromResource, w as refusesFinalSnapshot, wn as isCrossRegionRedirect, wr as LocalInvokeBuildError$1, wt as configBooleanRefusal, x as ccRoutedFinalSnapshotError, xn as assertAssetBucketRegion, xt as resolveExplicitPhysicalId, y as PRE_DELETE_SNAPSHOT_TYPES, yn as AssetModeResolver, yt as WAFv2WebACLProvider, z as collectPublishedOutputNames, zn as getDockerImageBySourceHash, zt as DiffCalculator } from "./deploy-engine-3lJaFGjA.js";
|
|
2
2
|
import { a as runStackBuffered, c as PATTERN_B_NAME_PROPERTIES, d as generateResourceName, f as generateResourceNameWithFallback, g as withStackName, h as withSkipPrefix, l as PATTERN_B_RESOURCE_TYPES, n as getLogger, o as getLiveRenderer, p as getCurrentStackName, r as reserveStdoutForPayload, s as PATTERN_B_NAME_OPTIONS } from "./logger-Dz3Le2Pw.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-B4YqJKXh.js";
|
|
5
|
+
import { t as ASGProvider } from "./asg-provider-D3bSjRiw.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";
|
|
@@ -57,7 +57,7 @@ import { ConcurrentModificationException, CrawlerRunningException, CreateConnect
|
|
|
57
57
|
import { BudgetsClient, CreateBudgetCommand, CreateNotificationCommand, CreateSubscriberCommand, DeleteBudgetCommand, DeleteNotificationCommand, DeleteSubscriberCommand, DescribeBudgetCommand, DuplicateRecordException, NotFoundException as NotFoundException$5, TagResourceCommand as TagResourceCommand$17, UntagResourceCommand as UntagResourceCommand$17, UpdateBudgetCommand } from "@aws-sdk/client-budgets";
|
|
58
58
|
import { AddTagsToStreamCommand, CreateStreamCommand, DecreaseStreamRetentionPeriodCommand, DeleteStreamCommand, DeregisterStreamConsumerCommand, DescribeStreamCommand, DescribeStreamConsumerCommand, DescribeStreamSummaryCommand, DisableEnhancedMonitoringCommand, EnableEnhancedMonitoringCommand, IncreaseStreamRetentionPeriodCommand, KinesisClient, ListTagsForResourceCommand as ListTagsForResourceCommand$15, ListTagsForStreamCommand, RegisterStreamConsumerCommand, RemoveTagsFromStreamCommand, ResourceNotFoundException as ResourceNotFoundException$10, StartStreamEncryptionCommand, StopStreamEncryptionCommand, TagResourceCommand as TagResourceCommand$18, UntagResourceCommand as UntagResourceCommand$18, UpdateMaxRecordSizeCommand, UpdateShardCountCommand, UpdateStreamModeCommand } from "@aws-sdk/client-kinesis";
|
|
59
59
|
import { CreateScheduleCommand, DeleteScheduleCommand, GetScheduleCommand, ResourceNotFoundException as ResourceNotFoundException$11, SchedulerClient, UpdateScheduleCommand } from "@aws-sdk/client-scheduler";
|
|
60
|
-
import { AccessPointNotFound, CreateAccessPointCommand, CreateFileSystemCommand, CreateMountTargetCommand, DeleteAccessPointCommand, DeleteFileSystemCommand, DeleteMountTargetCommand, DescribeAccessPointsCommand, DescribeBackupPolicyCommand, DescribeFileSystemPolicyCommand, DescribeFileSystemsCommand, DescribeLifecycleConfigurationCommand, DescribeMountTargetSecurityGroupsCommand, DescribeMountTargetsCommand, EFSClient, FileSystemNotFound, ModifyMountTargetSecurityGroupsCommand, MountTargetNotFound, PutBackupPolicyCommand, PutFileSystemPolicyCommand, PutLifecycleConfigurationCommand, UpdateFileSystemCommand, UpdateFileSystemProtectionCommand } from "@aws-sdk/client-efs";
|
|
60
|
+
import { AccessPointAlreadyExists, AccessPointNotFound, CreateAccessPointCommand, CreateFileSystemCommand, CreateMountTargetCommand, DeleteAccessPointCommand, DeleteFileSystemCommand, DeleteMountTargetCommand, DescribeAccessPointsCommand, DescribeBackupPolicyCommand, DescribeFileSystemPolicyCommand, DescribeFileSystemsCommand, DescribeLifecycleConfigurationCommand, DescribeMountTargetSecurityGroupsCommand, DescribeMountTargetsCommand, EFSClient, FileSystemNotFound, ModifyMountTargetSecurityGroupsCommand, MountTargetNotFound, PutBackupPolicyCommand, PutFileSystemPolicyCommand, PutLifecycleConfigurationCommand, UpdateFileSystemCommand, UpdateFileSystemProtectionCommand } from "@aws-sdk/client-efs";
|
|
61
61
|
import { CreateFileSystemCommand as CreateFileSystemCommand$1, CreateFileSystemFromBackupCommand, DeleteFileSystemCommand as DeleteFileSystemCommand$1, DescribeFileSystemsCommand as DescribeFileSystemsCommand$1, FSxClient, FileSystemNotFound as FileSystemNotFound$1, TagResourceCommand as TagResourceCommand$19, UntagResourceCommand as UntagResourceCommand$19, UpdateFileSystemCommand as UpdateFileSystemCommand$1 } from "@aws-sdk/client-fsx";
|
|
62
62
|
import { AddInstanceFleetCommand, AddInstanceGroupsCommand, AddTagsCommand as AddTagsCommand$1, DescribeClusterCommand, EMRClient, InvalidRequestException, ListInstanceFleetsCommand, ListInstanceGroupsCommand, ModifyClusterCommand, ModifyInstanceFleetCommand, ModifyInstanceGroupsCommand, PutAutoScalingPolicyCommand, PutAutoTerminationPolicyCommand, PutManagedScalingPolicyCommand, RemoveAutoScalingPolicyCommand, RemoveAutoTerminationPolicyCommand, RemoveManagedScalingPolicyCommand, RemoveTagsCommand as RemoveTagsCommand$1, RunJobFlowCommand, SetTerminationProtectionCommand, SetVisibleToAllUsersCommand, TerminateJobFlowsCommand } from "@aws-sdk/client-emr";
|
|
63
63
|
import { CreateDeliveryStreamCommand, DeleteDeliveryStreamCommand, DescribeDeliveryStreamCommand, FirehoseClient, ListTagsForDeliveryStreamCommand, ResourceNotFoundException as ResourceNotFoundException$12, TagDeliveryStreamCommand, UntagDeliveryStreamCommand, UpdateDestinationCommand } from "@aws-sdk/client-firehose";
|
|
@@ -51420,7 +51420,7 @@ var EFSProvider = class {
|
|
|
51420
51420
|
"AccessPointTags"
|
|
51421
51421
|
])]
|
|
51422
51422
|
]);
|
|
51423
|
-
unhandledByDesign = /* @__PURE__ */ new Map([["AWS::EFS::FileSystem", /* @__PURE__ */ new Map([["ReplicationConfiguration", "Cross-region EFS replication (CreateReplicationConfiguration) provisions a separate destination file system in another region with its own lifecycle, KMS key, and availability-zone placement; replicating + then tearing down the destination on destroy is a multi-resource, cross-region orchestration that is out of scope for the single-resource SDK provider. Tracked as a follow-up to issue #609."]])], ["AWS::EFS::AccessPoint", /* @__PURE__ */ new Map([["ClientToken", "
|
|
51423
|
+
unhandledByDesign = /* @__PURE__ */ new Map([["AWS::EFS::FileSystem", /* @__PURE__ */ new Map([["ReplicationConfiguration", "Cross-region EFS replication (CreateReplicationConfiguration) provisions a separate destination file system in another region with its own lifecycle, KMS key, and availability-zone placement; replicating + then tearing down the destination on destroy is a multi-resource, cross-region orchestration that is out of scope for the single-resource SDK provider. Tracked as a follow-up to issue #609."]])], ["AWS::EFS::AccessPoint", /* @__PURE__ */ new Map([["ClientToken", "cdkd supplies its own retry-stable ClientToken on CreateAccessPoint (issues #2039 and #2080), so a template-supplied value would be overwritten. The SDK does not own this field either: measured against @aws-sdk/client-efs 3.1018.0, an omitted ClientToken is auto-filled with a FRESH uuid per attempt, which leaves a retried 500 free to mint a second access point, while a caller-supplied value goes on the wire verbatim."]])]]);
|
|
51424
51424
|
getClient() {
|
|
51425
51425
|
if (!this.client) this.client = new EFSClient(this.providerRegion ? { region: this.providerRegion } : {});
|
|
51426
51426
|
return this.client;
|
|
@@ -51782,8 +51782,14 @@ var EFSProvider = class {
|
|
|
51782
51782
|
const posixUser = properties["PosixUser"];
|
|
51783
51783
|
const rootDirectory = properties["RootDirectory"];
|
|
51784
51784
|
const tags = properties["AccessPointTags"];
|
|
51785
|
+
const clientToken = acquireIdempotencyToken({
|
|
51786
|
+
scope: "CreateAccessPoint",
|
|
51787
|
+
logicalId,
|
|
51788
|
+
maxLength: 64
|
|
51789
|
+
});
|
|
51785
51790
|
try {
|
|
51786
|
-
const response = await this.
|
|
51791
|
+
const response = await this.createOrAdoptAccessPoint(logicalId, resourceType, {
|
|
51792
|
+
ClientToken: clientToken.value,
|
|
51787
51793
|
FileSystemId: fileSystemId,
|
|
51788
51794
|
PosixUser: posixUser ? {
|
|
51789
51795
|
Uid: Number(posixUser.Uid),
|
|
@@ -51802,10 +51808,11 @@ var EFSProvider = class {
|
|
|
51802
51808
|
Key: t.Key,
|
|
51803
51809
|
Value: t.Value
|
|
51804
51810
|
}))
|
|
51805
|
-
})
|
|
51811
|
+
});
|
|
51806
51812
|
const accessPointId = response.AccessPointId;
|
|
51807
51813
|
const arn = response.AccessPointArn;
|
|
51808
51814
|
this.logger.debug(`Successfully created EFS AccessPoint ${logicalId}: ${accessPointId}`);
|
|
51815
|
+
clientToken.release();
|
|
51809
51816
|
return {
|
|
51810
51817
|
physicalId: accessPointId,
|
|
51811
51818
|
attributes: {
|
|
@@ -51814,10 +51821,100 @@ var EFSProvider = class {
|
|
|
51814
51821
|
}
|
|
51815
51822
|
};
|
|
51816
51823
|
} catch (error) {
|
|
51824
|
+
if (error instanceof ProvisioningError) throw error;
|
|
51817
51825
|
const cause = error instanceof Error ? error : void 0;
|
|
51818
51826
|
throw new ProvisioningError(`Failed to create EFS AccessPoint ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, void 0, cause);
|
|
51819
51827
|
}
|
|
51820
51828
|
}
|
|
51829
|
+
/**
|
|
51830
|
+
* `CreateAccessPoint`, with the retry-replay case ADOPTED rather than failed
|
|
51831
|
+
* (issue [#2080](https://github.com/go-to-k/cdkd/issues/2080)).
|
|
51832
|
+
*
|
|
51833
|
+
* When EFS REPLAYS a seen token it answers with the access point the lost
|
|
51834
|
+
* response described and this method returns it like any other success. When
|
|
51835
|
+
* it instead REFUSES the repeat -- `AccessPointAlreadyExists`, which the
|
|
51836
|
+
* `CreateAccessPoint` reference documents with no window attached -- the
|
|
51837
|
+
* first attempt's access point is live AND absent from state, which is the
|
|
51838
|
+
* orphan the token exists to prevent, now with a failed deploy on top. How
|
|
51839
|
+
* often each happens is not something EFS documents for this call (see the
|
|
51840
|
+
* DERIVATION note in `createAccessPoint`), so this arm is written as the
|
|
51841
|
+
* ORDINARY recovery path rather than a rare one.
|
|
51842
|
+
* `route53-provider.ts`'s `createOrAdoptHostedZone` is the same pattern for
|
|
51843
|
+
* the same issue family.
|
|
51844
|
+
*
|
|
51845
|
+
* Adoption is CONFIRMED rather than assumed, on two axes: the token (cdkd
|
|
51846
|
+
* mints a per-process value, so only an attempt of THIS create can hold it --
|
|
51847
|
+
* the parameter type requires one, so there is no "both undefined" way to
|
|
51848
|
+
* satisfy the comparison vacuously) and the file system (structural rather
|
|
51849
|
+
* than contingent on the engine resolving properties once per create, which
|
|
51850
|
+
* is true today and is not this method's to rely on).
|
|
51851
|
+
*
|
|
51852
|
+
* Every way the confirmation can fail -- no id on the error, a read-back that
|
|
51853
|
+
* throws, a token or file system that does not match, a description with no
|
|
51854
|
+
* ARN -- DECLINES the adoption, says so at `warn`, and rethrows carrying the
|
|
51855
|
+
* AWS error as `cause`. A conflict cdkd cannot attribute to itself is not
|
|
51856
|
+
* something to paper over, and a lookup failure must never REPLACE the
|
|
51857
|
+
* diagnosis: a missing `elasticfilesystem:DescribeAccessPoints` permission
|
|
51858
|
+
* would otherwise surface as `AccessDenied` and send the next reader after a
|
|
51859
|
+
* permissions problem instead of the token collision that actually happened.
|
|
51860
|
+
*
|
|
51861
|
+
* The rethrow is WRAPPED rather than bare, and that is load-bearing rather
|
|
51862
|
+
* than cosmetic. `DeployEngine`'s replacement path classifies a failed
|
|
51863
|
+
* create-first attempt with `isNameCollisionError`, which tests the
|
|
51864
|
+
* TOP-LEVEL message for `already exists` / `AlreadyExists` -- both of which
|
|
51865
|
+
* the raw AWS conflict carries. A token collision misread as a physical-NAME
|
|
51866
|
+
* collision is not a cosmetic mistake: under `UpdateReplacePolicy: Retain` it
|
|
51867
|
+
* produces advice about renaming a resource that has no name, and under
|
|
51868
|
+
* `--replace` it falls back to delete-first, which DELETES the old access
|
|
51869
|
+
* point and then re-creates with the same still-unreleased token -- colliding
|
|
51870
|
+
* again, against the orphan rather than the old resource. Before this change
|
|
51871
|
+
* the create path could not raise an already-exists shape at all, so the
|
|
51872
|
+
* exposure arrives with the token. The AWS error is preserved as `cause`, so
|
|
51873
|
+
* nothing is lost; only the string the engine classifies on changes.
|
|
51874
|
+
*/
|
|
51875
|
+
async createOrAdoptAccessPoint(logicalId, resourceType, input) {
|
|
51876
|
+
try {
|
|
51877
|
+
return await this.getClient().send(new CreateAccessPointCommand(input));
|
|
51878
|
+
} catch (error) {
|
|
51879
|
+
if (!(error instanceof AccessPointAlreadyExists || error?.name === "AccessPointAlreadyExists")) throw error;
|
|
51880
|
+
const decline = (reason) => {
|
|
51881
|
+
this.logger.warn(`CreateAccessPoint for ${logicalId} was refused because the idempotency token cdkd sent is already bound to an access point, and cdkd declined to adopt it: ${reason}.`);
|
|
51882
|
+
throw markNonRetryable(new ProvisioningError(`EFS refused CreateAccessPoint for ${logicalId}: the idempotency token cdkd sent is already bound to an access point, and cdkd could not confirm that access point is the one this deploy created (${reason}). That access point is NOT recorded in cdkd state -- find it with: aws efs describe-access-points --query "AccessPoints[?ClientToken=='${input.ClientToken}']"`, resourceType, logicalId, void 0, error instanceof Error ? error : void 0));
|
|
51883
|
+
};
|
|
51884
|
+
const existingId = error?.AccessPointId;
|
|
51885
|
+
if (!existingId) return decline("the conflict named no AccessPointId to read back");
|
|
51886
|
+
let existing;
|
|
51887
|
+
try {
|
|
51888
|
+
const watch = startInterruptWatch(`EFS AccessPoint ${logicalId} (adoption read-back)`);
|
|
51889
|
+
let described;
|
|
51890
|
+
try {
|
|
51891
|
+
described = await withRetry(() => this.getClient().send(new DescribeAccessPointsCommand({ AccessPointId: existingId })), logicalId, {
|
|
51892
|
+
maxRetries: 3,
|
|
51893
|
+
isRetryable: (_text, err) => isThrottlingError(err) || isTransientServerError(err),
|
|
51894
|
+
logger: this.logger,
|
|
51895
|
+
isInterrupted: watch.isInterrupted,
|
|
51896
|
+
onInterrupted: watch.onInterrupted
|
|
51897
|
+
});
|
|
51898
|
+
} finally {
|
|
51899
|
+
watch.dispose();
|
|
51900
|
+
}
|
|
51901
|
+
existing = described.AccessPoints?.[0];
|
|
51902
|
+
} catch (lookupError) {
|
|
51903
|
+
if (isInterruptedWaitError(lookupError)) throw lookupError;
|
|
51904
|
+
const failure = describeAwsFailure(lookupError);
|
|
51905
|
+
this.logger.debug(`Read-back of access point ${existingId} failed with: ${failure.detail}`);
|
|
51906
|
+
return decline(`reading access point ${existingId} back failed: ${failure.summary}`);
|
|
51907
|
+
}
|
|
51908
|
+
if (existing === void 0) return decline(`access point ${existingId} could not be read back`);
|
|
51909
|
+
if (existing.ClientToken !== input.ClientToken) return decline(`access point ${existingId} carries a different ClientToken`);
|
|
51910
|
+
if (existing.FileSystemId !== input.FileSystemId) return decline(`access point ${existingId} belongs to a different file system`);
|
|
51911
|
+
if (!existing.AccessPointId) return decline(`access point ${existingId} was read back without an id`);
|
|
51912
|
+
if (!existing.AccessPointArn) return decline(`access point ${existingId} was read back without an ARN`);
|
|
51913
|
+
if (existing.LifeCycleState === "deleting" || existing.LifeCycleState === "deleted" || existing.LifeCycleState === "error") return decline(`access point ${existingId} is ${existing.LifeCycleState} rather than usable`);
|
|
51914
|
+
this.logger.warn(`CreateAccessPoint was replayed after a lost response; adopting the access point ${existing.AccessPointId} the previous attempt already created instead of creating a second one`);
|
|
51915
|
+
return existing;
|
|
51916
|
+
}
|
|
51917
|
+
}
|
|
51821
51918
|
async deleteAccessPoint(logicalId, physicalId, resourceType, context) {
|
|
51822
51919
|
this.logger.debug(`Deleting EFS AccessPoint ${logicalId}: ${physicalId}`);
|
|
51823
51920
|
try {
|
|
@@ -88901,4 +88998,4 @@ function buildProgram() {
|
|
|
88901
88998
|
|
|
88902
88999
|
//#endregion
|
|
88903
89000
|
export { buildProgram };
|
|
88904
|
-
//# sourceMappingURL=program-
|
|
89001
|
+
//# sourceMappingURL=program-BU6F1UD2.js.map
|