@go-to-k/cdkd 0.284.42 → 0.284.44
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-Dn9oXi9c.js → asg-provider-D33XE2vS.js} +2 -2
- package/dist/{asg-provider-Dn9oXi9c.js.map → asg-provider-D33XE2vS.js.map} +1 -1
- package/dist/cli.js +34 -20
- package/dist/cli.js.map +1 -1
- package/dist/{deploy-engine-8ygMMbQ8.js → deploy-engine-B4dbov9o.js} +182 -4
- package/dist/deploy-engine-B4dbov9o.js.map +1 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-8ygMMbQ8.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { $ as startInterruptWatch, $n as
|
|
2
|
+
import { $ as startInterruptWatch, $n as setAwsClients, $t as WorkGraph, A as renderStatefulReason, An as resolveCaptureObservedState, At as redactSecretsForState, B as exportAliasCollisionScrubWarning, Bn as findLargeInlineResources, Bt as DiffCalculator, C as isFinalSnapshotError, Cn as getDockerImageBySourceHash, Cr as normalizeAwsError, Ct as TEMPLATE_SOURCED_RULES, D as extractDeploymentEventError, Dn as getLegacyStateBucketName, Dr as isThrottlingError, Dt as isSingleDynamicReferenceToken, E as makeCanonicalizePropertiesFn, En as getDefaultStateBucketName, Er as isRetryableTransientError, Et as errorCauseChain, F as green, Fn as stateBucketExistenceConfirmed, Ft as s3BucketDomainName, G as collectInlinePolicyNamesManagedBySiblings, Gn as derivePartitionAndUrlSuffix, Gt as TemplateParser, H as secretBearingStateKeyWarning, Hn as expectedOwnerParam, Ht as describeTypeWithThrottleRetry, I as red, In as warnDeprecatedNoPrefixCliFlag, It as s3BucketDualStackDomainName, J as findActionableSilentDrops, Jt as S3StateBackend, K as clearOnUpdateRemoval, Kn as AssemblyReader, Kt as LockManager, L as yellow, Ln as CFN_TEMPLATE_BODY_LIMIT, Lt as s3BucketRegionalDomainName, M as bold, Mn as resolveStateBucketWithDefault, Mt as classifyReplaySecretRegion, N as cyan, Nn as resolveStateBucketWithDefaultAndSource, Nt as producerRegionsFromState, O as MULTI_REGION_RECREATE_BLOCKED_TYPES, On as resolveApp, Or as markNonRetryable, Ot as maskSecretsInError, P as gray, Pn as resolveUseCdkBootstrapAssets, Pt as s3BucketArn, Q as isInterruptedWaitError, Qn as resetAwsClients, Qt as stringifyValue, R as collectDeclaredOutputNames, Rn as CFN_TEMPLATE_URL_LIMIT, Rt as s3BucketWebsiteUrl, S as createPreDeleteFinalSnapshot, Sn as AssetManifestLoader, St as STATE_SOURCED_READBACK_RULES, T as unsupportedFinalSnapshotError, Tn as synthesisStatusMessage, Tr as isMarkedNonRetryable, Tt as dynamicReferenceTokens, U as stateKeySecretExposure, Un as PARTITION_TABLE, Ut as withRetry, V as isExportAliasCollision, Vn as uploadCfnTemplate, Vt as INTRINSIC_KEYS, W as IAMRoleProvider, Wn as canonicalizeRegion, Wt as DagBuilder, X as beginCommandInterruptScope, Xn as AwsClients, Xt as shouldRetainResource, Y as findSilentDropProperties, Yn as resolveBucketRegion, Yt as rebuildClientForBucketRegion, Z as endCommandInterruptScope, Zn as getAwsClients, Zt as AssetPublisher, _ as computeImplicitDeleteEdges, _n as formatDockerLoginError, _r as StackHasActiveImportsError, _t as replayWarn, a as DeploymentEventsStore, an as stripControlChars, ar as DeployCancelledError, at as carriesDynamicReference, b as buildFinalSnapshotIdentifier, bn as runDockerForeground, bt as requireConfigString, c as replayFailedOperations, cn as ensureAssetStorage, cr as LocalMigrateError, ct as refStateLookupFromResource, d as updatePartialReason, dn as readBootstrapMarkerBody, dr as MissingCdkCliError, dt as resolveExplicitPhysicalId, en as buildAssetRedirectMap, et as CloudControlProvider, f as UNSPECIFIED_SKIP_REASON, fn as validateAssetBucketName, fr as NestedStackChildDirectDestroyError, ft as assertRegionMatch, g as IMPLICIT_DELETE_DEPENDENCIES, gn as dockerSpawnEnvWithSensitive, gr as ResourceUpdateNotSupportedError, gt as readConfigString, h as maskingRetryLogger, hn as buildDockerImage, hr as ResourceTimeoutError, ht as configStringRefusal, i as DeploymentEventsReader, in as escapeRegExp, it as IntrinsicFunctionResolver, j as formatResourceLine, jn as resolveSkipPrefix, jt as scrubResourceRecord, k as isStatefulRecreateTargetSync, kn as resolveAutoAssetStorage, kt as maskSecretsInText, l as replayRollback, ln as getBootstrapMarkerKey, lr as LocalStartServiceError, lt as WAFv2WebACLProvider, m as withResourceDeadline, mn as buildDenyExternalAccessPolicy, mr as ProvisioningError, mt as configBooleanRefusal, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as loadPublishableAssetManifest, nt as disableInstanceApiTermination, o as planFailedOps, on as AssetModeResolver, or as DynamicReferenceRegionAmbiguousError, ot as cfnRefValueFromPhysicalId, p as deleteSkipReason, pn as validateContainerRepoName, pr as PartialFailureError, pt as coerceCfnBoolean, q as ProviderRegistry, qn as processStackMessages, qt as displaySafe, r as DeployEngine, rn as rewriteTemplateAssetReferences, rr as CrossAccountSecretRefusalError, rt as isTerminationProtectionPropagationError, s as planRollback, sn as BOOTSTRAP_MARKER_PREFIX, sr as LocalInvokeBuildError$1, st as getAccountInfo, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as createAssetRedirectResolver, tr as CdkdError, tt as slowCcOperationTimeoutMs, u as updatePartialMessage, un as parseBootstrapMarker, ut as normalizeAwsTagsToCfn, v as ATOMIC_FINAL_SNAPSHOT_TYPES, vn as getDockerCmd, vr as StackTerminationProtectionError, vt as requireConfigArray, w as refusesFinalSnapshot, wn as Synthesizer, wr as withErrorHandling, wt as createSecretMasker, x as ccRoutedFinalSnapshotError, xn as runDockerStreaming, xt as STATE_SOURCED_CROSS_GENERATION_RULES, y as PRE_DELETE_SNAPSHOT_TYPES, yn as partitionSensitiveEnv, yt as requireConfigObject, z as collectPublishedOutputNames, zn as MIGRATE_TMP_PREFIX, zt as applyRoleArnIfSet } from "./deploy-engine-B4dbov9o.js";
|
|
3
3
|
import { a as getLiveRenderer, c as PATTERN_B_RESOURCE_TYPES, d as generateResourceNameWithFallback, f as getCurrentStackName, 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-D33XE2vS.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";
|
|
@@ -78844,11 +78844,8 @@ async function runDetached(opts) {
|
|
|
78844
78844
|
args.push("-v", `${mount.hostPath}:${mount.containerPath}${ro}`);
|
|
78845
78845
|
}
|
|
78846
78846
|
const sensitiveKeys = opts.sensitiveEnvKeys && opts.sensitiveEnvKeys.size > 0 ? /* @__PURE__ */ new Set([...SENSITIVE_ENV_KEYS, ...opts.sensitiveEnvKeys]) : SENSITIVE_ENV_KEYS;
|
|
78847
|
-
const passthroughEnv =
|
|
78848
|
-
|
|
78849
|
-
args.push("-e", k);
|
|
78850
|
-
passthroughEnv[k] = v;
|
|
78851
|
-
} else args.push("-e", `${k}=${v}`);
|
|
78847
|
+
const { flags, sensitiveEnv: passthroughEnv, collisions } = partitionSensitiveEnv(opts.env, sensitiveKeys);
|
|
78848
|
+
args.push(...flags);
|
|
78852
78849
|
if (opts.tmpfs) args.push("--tmpfs", `${opts.tmpfs.target}:rw,size=${opts.tmpfs.sizeMb}m`);
|
|
78853
78850
|
if (opts.workingDir) args.push("--workdir", opts.workingDir);
|
|
78854
78851
|
let entryPointTail = [];
|
|
@@ -78857,14 +78854,13 @@ async function runDetached(opts) {
|
|
|
78857
78854
|
entryPointTail = opts.entryPoint.slice(1);
|
|
78858
78855
|
}
|
|
78859
78856
|
args.push(opts.image, ...entryPointTail, ...opts.cmd);
|
|
78860
|
-
getLogger().child("docker")
|
|
78857
|
+
const logger = getLogger().child("docker");
|
|
78858
|
+
logger.debug(`${getDockerCmd()} ${redactAwsCredentialsInArgs(args).join(" ")}`);
|
|
78859
|
+
if (collisions.length > 0) logger.warn(`Env var(s) ${collisions.join(", ")} share a name with a docker-client environment variable or have a malformed name (empty, or containing '=' / NUL), and were NOT passed to the container at all (a colliding name would hijack the docker client; a malformed name cannot form a valid environment variable).`);
|
|
78861
78860
|
try {
|
|
78862
78861
|
const { stdout } = await execFileAsync$4(getDockerCmd(), args, {
|
|
78863
78862
|
maxBuffer: 10 * 1024 * 1024,
|
|
78864
|
-
env:
|
|
78865
|
-
...process.env,
|
|
78866
|
-
...passthroughEnv
|
|
78867
|
-
}
|
|
78863
|
+
env: dockerSpawnEnvWithSensitive(passthroughEnv)
|
|
78868
78864
|
});
|
|
78869
78865
|
return stdout.trim();
|
|
78870
78866
|
} catch (error) {
|
|
@@ -82003,11 +81999,16 @@ async function createNetworkAndSidecar(args) {
|
|
|
82003
81999
|
if (credentials.sessionToken) sidecarEnv["AWS_SESSION_TOKEN"] = credentials.sessionToken;
|
|
82004
82000
|
}
|
|
82005
82001
|
if (cluster) sidecarEnv["CLUSTER"] = cluster;
|
|
82006
|
-
|
|
82002
|
+
const { flags: sidecarFlags, sensitiveEnv: sidecarSensitiveEnv, collisions: sidecarCollisions } = partitionSensitiveEnv(sidecarEnv, SENSITIVE_ENV_KEYS);
|
|
82003
|
+
sidecarArgs.push(...sidecarFlags);
|
|
82004
|
+
if (sidecarCollisions.length > 0) logger.warn(`Sidecar env var(s) ${sidecarCollisions.join(", ")} share a name with a docker-client environment variable and were NOT passed to the sidecar at all (they would hijack the docker client).`);
|
|
82007
82005
|
sidecarArgs.push(METADATA_ENDPOINT_IMAGE);
|
|
82008
82006
|
logger.info(`Starting ECS local-container-endpoints sidecar at ${sidecarIp}...`);
|
|
82009
82007
|
try {
|
|
82010
|
-
const { stdout } = await execFileAsync$3(getDockerCmd(), sidecarArgs, {
|
|
82008
|
+
const { stdout } = await execFileAsync$3(getDockerCmd(), sidecarArgs, {
|
|
82009
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
82010
|
+
env: dockerSpawnEnvWithSensitive(sidecarSensitiveEnv)
|
|
82011
|
+
});
|
|
82011
82012
|
return stdout.trim();
|
|
82012
82013
|
} catch (err) {
|
|
82013
82014
|
await destroyNetworkOnly(networkName);
|
|
@@ -82328,10 +82329,11 @@ async function runEcsTask(task, options, state) {
|
|
|
82328
82329
|
const volumeByName = await realizeDockerVolumes(task.volumes, state);
|
|
82329
82330
|
const mergedAddHostFlags = mergeHostGatewayAddHostFlags(options.addHostFlags, options.hostGatewayExtraHosts);
|
|
82330
82331
|
const dockerCmds = /* @__PURE__ */ new Map();
|
|
82332
|
+
const dockerEnvs = /* @__PURE__ */ new Map();
|
|
82331
82333
|
for (const container of task.containers) {
|
|
82332
82334
|
const image = imagePlan.get(container.name);
|
|
82333
82335
|
if (!image) throw new EcsTaskRunnerError(`Internal: no resolved image for container '${container.name}'.`);
|
|
82334
|
-
|
|
82336
|
+
const built = buildDockerRunArgs({
|
|
82335
82337
|
task,
|
|
82336
82338
|
container,
|
|
82337
82339
|
image,
|
|
@@ -82348,7 +82350,10 @@ async function runEcsTask(task, options, state) {
|
|
|
82348
82350
|
...mergedAddHostFlags.length > 0 ? { addHostFlags: mergedAddHostFlags } : {},
|
|
82349
82351
|
...(options.networkAliasesByContainer?.get(container.name)?.length ?? 0) > 0 ? { networkAliases: options.networkAliasesByContainer.get(container.name) } : {},
|
|
82350
82352
|
...options.profileCredentialsFile && { profileCredentialsFile: options.profileCredentialsFile }
|
|
82351
|
-
})
|
|
82353
|
+
});
|
|
82354
|
+
dockerCmds.set(container.name, built.args);
|
|
82355
|
+
dockerEnvs.set(container.name, built.sensitiveEnv);
|
|
82356
|
+
if (built.collisions.length > 0) logger.warn(`Container '${container.name}': secret(s) ${built.collisions.join(", ")} share a name with a docker-client environment variable or have a malformed name (empty, or containing '=' / NUL), and were NOT passed to the container at all (a colliding name would hijack the docker client; a malformed name cannot form a valid environment variable). Rename the secret if the container needs it.`);
|
|
82352
82357
|
}
|
|
82353
82358
|
const startedByName = /* @__PURE__ */ new Map();
|
|
82354
82359
|
for (const containerName of startOrder) {
|
|
@@ -82358,7 +82363,11 @@ async function runEcsTask(task, options, state) {
|
|
|
82358
82363
|
logger.info(`Starting container '${container.name}' (image=${imagePlan.get(container.name)})`);
|
|
82359
82364
|
let id;
|
|
82360
82365
|
try {
|
|
82361
|
-
const
|
|
82366
|
+
const sensitiveEnv = dockerEnvs.get(container.name);
|
|
82367
|
+
const { stdout } = await execFileAsync$2(getDockerCmd(), args, {
|
|
82368
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
82369
|
+
env: dockerSpawnEnvWithSensitive(sensitiveEnv)
|
|
82370
|
+
});
|
|
82362
82371
|
id = stdout.trim();
|
|
82363
82372
|
} catch (err) {
|
|
82364
82373
|
const e = err;
|
|
@@ -82712,7 +82721,8 @@ function buildDockerRunArgs(opts) {
|
|
|
82712
82721
|
applyOverrideMap(finalEnv, overrides["Parameters"]);
|
|
82713
82722
|
applyOverrideMap(finalEnv, overrides[container.name]);
|
|
82714
82723
|
}
|
|
82715
|
-
|
|
82724
|
+
const { flags, sensitiveEnv, collisions } = partitionSensitiveEnv(finalEnv, /* @__PURE__ */ new Set([...SENSITIVE_ENV_KEYS, ...secrets.map((s) => s.name)]));
|
|
82725
|
+
args.push(...flags);
|
|
82716
82726
|
if (container.user) args.push("--user", container.user);
|
|
82717
82727
|
if (container.privileged) args.push("--privileged");
|
|
82718
82728
|
if (container.readonlyRootFilesystem) args.push("--read-only");
|
|
@@ -82732,7 +82742,11 @@ function buildDockerRunArgs(opts) {
|
|
|
82732
82742
|
entryPointTail = container.entryPoint.slice(1);
|
|
82733
82743
|
}
|
|
82734
82744
|
args.push(image, ...entryPointTail, ...container.command ?? []);
|
|
82735
|
-
return
|
|
82745
|
+
return {
|
|
82746
|
+
args,
|
|
82747
|
+
sensitiveEnv,
|
|
82748
|
+
collisions
|
|
82749
|
+
};
|
|
82736
82750
|
}
|
|
82737
82751
|
function applyOverrideMap(acc, map) {
|
|
82738
82752
|
if (!map) return;
|
|
@@ -86623,7 +86637,7 @@ function createMigrateCommand() {
|
|
|
86623
86637
|
*/
|
|
86624
86638
|
function buildProgram() {
|
|
86625
86639
|
const program = new Command();
|
|
86626
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.284.
|
|
86640
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.284.44");
|
|
86627
86641
|
program.hook("preAction", (_thisCommand, actionCommand) => {
|
|
86628
86642
|
const { profile } = actionCommand.optsWithGlobals();
|
|
86629
86643
|
if (profile !== void 0) process.env["AWS_PROFILE"] = profile;
|