@go-to-k/cdkd 0.122.0 → 0.123.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/cli.js +2 -59
- package/dist/cli.js.map +1 -1
- package/dist/{deploy-engine-B2RZT3ai.js → deploy-engine-DWpeb9wT.js} +339 -20
- package/dist/deploy-engine-DWpeb9wT.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-B2RZT3ai.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { a as setAwsClients, i as resetAwsClients, r as getAwsClients, t as AwsClients } from "./aws-clients-CuHRHcyW.js";
|
|
3
|
-
import {
|
|
3
|
+
import { A as AssetPublisher, B as getLegacyStateBucketName, C as applyRoleArnIfSet, Ct as generateResourceNameWithFallback, D as LockManager, E as TemplateParser, F as getDockerCmd, G as resolveStateBucketWithDefaultAndSource, H as resolveCaptureObservedState, I as runDockerForeground, K as warnDeprecatedNoPrefixCliFlag, L as runDockerStreaming, M as WorkGraph, N as buildDockerImage, O as S3StateBackend, P as formatDockerLoginError, R as Synthesizer, S as IntrinsicFunctionResolver, St as generateResourceName, T as DagBuilder, Tt as withStackName, U as resolveSkipPrefix, V as resolveApp, W as resolveStateBucketWithDefault, Y as resolveBucketRegion, Z as CdkdError, _ as normalizeAwsTagsToCfn, a as withRetry, at as ResourceUpdateNotSupportedError, b as CloudControlProvider, bt as PATTERN_B_NAME_PROPERTIES, c as cyan, ct as StackTerminationProtectionError, d as red, et as LocalInvokeBuildError, f as yellow, g as matchesCdkPath, gt as getLogger, h as CDK_PATH_TAG, i as withResourceDeadline, it as ResourceTimeoutError, j as stringifyValue, k as shouldRetainResource, l as gray, m as collectInlinePolicyNamesManagedBySiblings, mt as withErrorHandling, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nt as PartialFailureError, o as IMPLICIT_DELETE_DEPENDENCIES, ot as RouteDiscoveryError, p as IAMRoleProvider, pt as normalizeAwsError, q as AssemblyReader, r as DeployEngine, rt as ProvisioningError, s as bold, st as StackHasActiveImportsError, t as DEFAULT_RESOURCE_TIMEOUT_MS, u as green, v as resolveExplicitPhysicalId, vt as runStackBuffered, w as DiffCalculator, wt as withSkipPrefix, x as assertRegionMatch, xt as PATTERN_B_RESOURCE_TYPES, y as ProviderRegistry, yt as getLiveRenderer, z as getDefaultStateBucketName } from "./deploy-engine-DWpeb9wT.js";
|
|
4
4
|
import { createHash, createHmac, createPublicKey, createVerify, randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
|
|
5
5
|
import { CopyObjectCommand, CreateBucketCommand, DeleteBucketAnalyticsConfigurationCommand, DeleteBucketCommand, DeleteBucketCorsCommand, DeleteBucketIntelligentTieringConfigurationCommand, DeleteBucketInventoryConfigurationCommand, DeleteBucketLifecycleCommand, DeleteBucketMetricsConfigurationCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, DeleteBucketWebsiteCommand, DeleteObjectCommand, DeleteObjectsCommand, GetBucketAccelerateConfigurationCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketLoggingCommand, GetBucketNotificationConfigurationCommand, GetBucketPolicyCommand, GetBucketReplicationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetBucketWebsiteCommand, GetObjectCommand, GetObjectLockConfigurationCommand, GetPublicAccessBlockCommand, HeadBucketCommand, ListBucketAnalyticsConfigurationsCommand, ListBucketIntelligentTieringConfigurationsCommand, ListBucketInventoryConfigurationsCommand, ListBucketMetricsConfigurationsCommand, ListBucketsCommand, ListDirectoryBucketsCommand, 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";
|
|
6
6
|
import { AddRoleToInstanceProfileCommand, AddUserToGroupCommand, AttachGroupPolicyCommand, AttachUserPolicyCommand, CreateGroupCommand, CreateInstanceProfileCommand, CreateLoginProfileCommand, CreateUserCommand, DeleteAccessKeyCommand, DeleteGroupCommand, DeleteGroupPolicyCommand, DeleteInstanceProfileCommand, DeleteLoginProfileCommand, DeleteRolePolicyCommand, DeleteUserCommand, DeleteUserPermissionsBoundaryCommand, DeleteUserPolicyCommand, DetachGroupPolicyCommand, DetachUserPolicyCommand, GetGroupCommand, GetGroupPolicyCommand, GetInstanceProfileCommand, GetRolePolicyCommand, GetUserCommand, GetUserPolicyCommand, IAMClient, ListAccessKeysCommand, ListAttachedGroupPoliciesCommand, ListAttachedUserPoliciesCommand, ListGroupPoliciesCommand, ListGroupsForUserCommand, ListInstanceProfilesCommand, ListUserPoliciesCommand, ListUserTagsCommand, ListUsersCommand, NoSuchEntityException, PutGroupPolicyCommand, PutRolePolicyCommand, PutUserPermissionsBoundaryCommand, PutUserPolicyCommand, RemoveRoleFromInstanceProfileCommand, RemoveUserFromGroupCommand, TagUserCommand, UntagUserCommand, UpdateLoginProfileCommand } from "@aws-sdk/client-iam";
|
|
@@ -437,63 +437,6 @@ function effectiveAssumeRoleArn(logicalId, opt) {
|
|
|
437
437
|
*/
|
|
438
438
|
const destroyOptions = [new Option("-f, --force", "Do not ask for confirmation before destroying the stacks").default(false), new Option("--remove-protection", "Bypass deletion protection on protected resources by flipping the per-resource protection flag off in-place before delete. Covers stack-level terminationProtection (CDK property) and resource-level protection on AWS::Logs::LogGroup, AWS::RDS::DBInstance, AWS::RDS::DBCluster, AWS::DocDB::DBCluster, AWS::Neptune::DBCluster, AWS::Neptune::DBInstance, AWS::DynamoDB::Table, AWS::EC2::Instance, AWS::Cognito::UserPool, AWS::AutoScaling::AutoScalingGroup, and AWS::ElasticLoadBalancingV2::LoadBalancer.").default(false)];
|
|
439
439
|
|
|
440
|
-
//#endregion
|
|
441
|
-
//#region src/utils/role-arn.ts
|
|
442
|
-
/**
|
|
443
|
-
* Resolve the role-arn argument (CLI flag or `CDKD_ROLE_ARN` env var) and,
|
|
444
|
-
* when set, assume the role and write the resulting temporary credentials
|
|
445
|
-
* into `AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` / `AWS_SESSION_TOKEN`
|
|
446
|
-
* for the rest of the process.
|
|
447
|
-
*
|
|
448
|
-
* **Why env vars, not threaded credentials.** cdkd constructs ~13
|
|
449
|
-
* independent `AwsClients` instances across deploy / destroy / state /
|
|
450
|
-
* import / etc. paths (each with its own region, sometimes — e.g. the
|
|
451
|
-
* state-bucket client lives in a different region from the provisioning
|
|
452
|
-
* clients). Threading a `credentials` object through every site is high
|
|
453
|
-
* churn for an opt-in flag. AWS SDK v3 reads the standard `AWS_*` env
|
|
454
|
-
* vars at the top of its default credentials chain, so writing into them
|
|
455
|
-
* once at the command's entry makes every later `new XxxClient()` pick
|
|
456
|
-
* up the assumed-role credentials automatically without touching the
|
|
457
|
-
* client construction sites.
|
|
458
|
-
*
|
|
459
|
-
* **Why cdkd needs admin-equivalent on the assumed role.** Unlike `cdk
|
|
460
|
-
* deploy`, cdkd does NOT route through CloudFormation. There is no
|
|
461
|
-
* cfn-exec-role to delegate to. Every IAM / EC2 / Lambda / etc. API
|
|
462
|
-
* call is issued from the cdkd process directly. The role you pass to
|
|
463
|
-
* `--role-arn` (or set in `CDKD_ROLE_ARN`) MUST therefore have
|
|
464
|
-
* admin-equivalent permissions on the resources being deployed; CDK
|
|
465
|
-
* CLI's `cdk-hnb659fds-deploy-role-*` is NOT sufficient — that role
|
|
466
|
-
* only carries CFn + asset-publish permissions.
|
|
467
|
-
*
|
|
468
|
-
* Default session duration is 1 hour. For longer-running deploys, the
|
|
469
|
-
* caller should re-issue the cdkd command (the in-flight credentials
|
|
470
|
-
* stay valid until expiry, but a re-run is the simplest recovery for
|
|
471
|
-
* the rare case where a deploy outlives them).
|
|
472
|
-
*/
|
|
473
|
-
async function applyRoleArnIfSet(opts) {
|
|
474
|
-
const roleArn = opts.roleArn || process.env["CDKD_ROLE_ARN"];
|
|
475
|
-
if (!roleArn) return;
|
|
476
|
-
const logger = getLogger().child("role-arn");
|
|
477
|
-
logger.debug(`Assuming role ${roleArn}...`);
|
|
478
|
-
const sts = new STSClient({ ...opts.region && { region: opts.region } });
|
|
479
|
-
try {
|
|
480
|
-
const response = await sts.send(new AssumeRoleCommand({
|
|
481
|
-
RoleArn: roleArn,
|
|
482
|
-
RoleSessionName: `cdkd-${Date.now()}`,
|
|
483
|
-
DurationSeconds: 3600
|
|
484
|
-
}));
|
|
485
|
-
if (!response.Credentials) throw new Error(`AssumeRole returned no credentials for role ${roleArn}`);
|
|
486
|
-
const { AccessKeyId, SecretAccessKey, SessionToken, Expiration } = response.Credentials;
|
|
487
|
-
if (!AccessKeyId || !SecretAccessKey || !SessionToken) throw new Error(`AssumeRole response missing credentials fields for role ${roleArn}`);
|
|
488
|
-
process.env["AWS_ACCESS_KEY_ID"] = AccessKeyId;
|
|
489
|
-
process.env["AWS_SECRET_ACCESS_KEY"] = SecretAccessKey;
|
|
490
|
-
process.env["AWS_SESSION_TOKEN"] = SessionToken;
|
|
491
|
-
logger.info(`Assumed role ${roleArn} (session expires ${Expiration?.toISOString() ?? "unknown"})`);
|
|
492
|
-
} finally {
|
|
493
|
-
sts.destroy();
|
|
494
|
-
}
|
|
495
|
-
}
|
|
496
|
-
|
|
497
440
|
//#endregion
|
|
498
441
|
//#region src/cli/commands/bootstrap.ts
|
|
499
442
|
/**
|
|
@@ -47212,7 +47155,7 @@ function reorderArgs(argv) {
|
|
|
47212
47155
|
*/
|
|
47213
47156
|
async function main() {
|
|
47214
47157
|
const program = new Command();
|
|
47215
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.
|
|
47158
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.123.0");
|
|
47216
47159
|
program.addCommand(createBootstrapCommand());
|
|
47217
47160
|
program.addCommand(createSynthCommand());
|
|
47218
47161
|
program.addCommand(createListCommand());
|