@go-to-k/cdkd 0.101.1 → 0.102.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/README.md +14 -1
- package/dist/cli.js +98 -13
- package/dist/cli.js.map +1 -1
- package/dist/{deploy-engine-BzsWm3DG.js → deploy-engine-D4t--jpp.js} +14 -3
- package/dist/{deploy-engine-BzsWm3DG.js.map → deploy-engine-D4t--jpp.js.map} +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -673,7 +673,19 @@ new cdk.CfnOutput(this, 'BucketArn', {
|
|
|
673
673
|
});
|
|
674
674
|
```
|
|
675
675
|
|
|
676
|
-
After deployment, outputs are resolved and saved to the S3 state file:
|
|
676
|
+
After deployment, outputs are resolved and printed at the end of `cdkd deploy` (matching CDK CLI's format) and saved to the S3 state file:
|
|
677
|
+
|
|
678
|
+
```text
|
|
679
|
+
Deployment Summary:
|
|
680
|
+
Stack: MyStack
|
|
681
|
+
...
|
|
682
|
+
Duration: 21.25s
|
|
683
|
+
|
|
684
|
+
Outputs:
|
|
685
|
+
MyStack.BucketArn = arn:aws:s3:::actual-bucket-name-xyz
|
|
686
|
+
|
|
687
|
+
✓ Deployment completed successfully
|
|
688
|
+
```
|
|
677
689
|
|
|
678
690
|
```json
|
|
679
691
|
{
|
|
@@ -687,6 +699,7 @@ After deployment, outputs are resolved and saved to the S3 state file:
|
|
|
687
699
|
|
|
688
700
|
- CloudFormation: Outputs accessible via `aws cloudformation describe-stacks`
|
|
689
701
|
- cdkd: Outputs saved in S3 state file (e.g., `s3://bucket/cdkd/MyStack/us-east-1/state.json`)
|
|
702
|
+
- Both print outputs to stdout after a successful deploy
|
|
690
703
|
- Both resolve intrinsic functions (Ref, Fn::GetAtt, etc.) to actual values
|
|
691
704
|
|
|
692
705
|
## Exit codes
|
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 { A as resolveApp, B as CdkdError, C as AssetPublisher, D as Synthesizer, E as buildDockerImage, F as warnDeprecatedNoPrefixCliFlag, G as PartialFailureError, I as AssemblyReader, J as ResourceUpdateNotSupportedError, K as ProvisioningError, M as resolveSkipPrefix, N as resolveStateBucketWithDefault, O as getDefaultStateBucketName, P as resolveStateBucketWithDefaultAndSource, R as resolveBucketRegion, S as shouldRetainResource, T as WorkGraph, U as LocalInvokeBuildError, X as StackHasActiveImportsError, Y as RouteDiscoveryError, Z as StackTerminationProtectionError, _ as DiffCalculator, a as withRetry, at as getLogger, b as LockManager, c as collectInlinePolicyNamesManagedBySiblings, ct as getLiveRenderer, d as normalizeAwsTagsToCfn, dt as generateResourceName, f as resolveExplicitPhysicalId, ft as generateResourceNameWithFallback, g as IntrinsicFunctionResolver, h as assertRegionMatch, i as withResourceDeadline, j as resolveCaptureObservedState, k as getLegacyStateBucketName, l as CDK_PATH_TAG, lt as PATTERN_B_NAME_PROPERTIES, m as CloudControlProvider, mt as withStackName, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nt as normalizeAwsError, o as IMPLICIT_DELETE_DEPENDENCIES, p as ProviderRegistry, pt as withSkipPrefix, q as ResourceTimeoutError, r as DeployEngine, rt as withErrorHandling, s as IAMRoleProvider, st as runStackBuffered, t as DEFAULT_RESOURCE_TIMEOUT_MS, u as matchesCdkPath, ut as PATTERN_B_RESOURCE_TYPES, v as DagBuilder, w as stringifyValue, x as S3StateBackend, y as TemplateParser } from "./deploy-engine-
|
|
3
|
+
import { A as resolveApp, B as CdkdError, C as AssetPublisher, D as Synthesizer, E as buildDockerImage, F as warnDeprecatedNoPrefixCliFlag, G as PartialFailureError, I as AssemblyReader, J as ResourceUpdateNotSupportedError, K as ProvisioningError, M as resolveSkipPrefix, N as resolveStateBucketWithDefault, O as getDefaultStateBucketName, P as resolveStateBucketWithDefaultAndSource, R as resolveBucketRegion, S as shouldRetainResource, T as WorkGraph, U as LocalInvokeBuildError, X as StackHasActiveImportsError, Y as RouteDiscoveryError, Z as StackTerminationProtectionError, _ as DiffCalculator, a as withRetry, at as getLogger, b as LockManager, c as collectInlinePolicyNamesManagedBySiblings, ct as getLiveRenderer, d as normalizeAwsTagsToCfn, dt as generateResourceName, f as resolveExplicitPhysicalId, ft as generateResourceNameWithFallback, g as IntrinsicFunctionResolver, h as assertRegionMatch, i as withResourceDeadline, j as resolveCaptureObservedState, k as getLegacyStateBucketName, l as CDK_PATH_TAG, lt as PATTERN_B_NAME_PROPERTIES, m as CloudControlProvider, mt as withStackName, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nt as normalizeAwsError, o as IMPLICIT_DELETE_DEPENDENCIES, p as ProviderRegistry, pt as withSkipPrefix, q as ResourceTimeoutError, r as DeployEngine, rt as withErrorHandling, s as IAMRoleProvider, st as runStackBuffered, t as DEFAULT_RESOURCE_TIMEOUT_MS, u as matchesCdkPath, ut as PATTERN_B_RESOURCE_TYPES, v as DagBuilder, w as stringifyValue, x as S3StateBackend, y as TemplateParser } from "./deploy-engine-D4t--jpp.js";
|
|
4
4
|
import { createHash, createPublicKey, createVerify, randomBytes, randomUUID } 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";
|
|
@@ -11,7 +11,7 @@ import { AssumeRoleCommand, GetCallerIdentityCommand, STSClient } from "@aws-sdk
|
|
|
11
11
|
import { AssociateRouteTableCommand, AttachInternetGatewayCommand, AuthorizeSecurityGroupEgressCommand, AuthorizeSecurityGroupIngressCommand, CreateInternetGatewayCommand, CreateNatGatewayCommand, CreateNetworkAclCommand, CreateNetworkAclEntryCommand, CreateRouteCommand, CreateRouteTableCommand, CreateSecurityGroupCommand, CreateSubnetCommand, CreateTagsCommand, CreateVpcCommand, DeleteInternetGatewayCommand, DeleteNatGatewayCommand, DeleteNetworkAclCommand, DeleteNetworkAclEntryCommand, DeleteNetworkInterfaceCommand, DeleteRouteCommand, DeleteRouteTableCommand, DeleteSecurityGroupCommand, DeleteSubnetCommand, DeleteTagsCommand, DeleteVpcCommand, DescribeAvailabilityZonesCommand, DescribeInstanceAttributeCommand, DescribeInstancesCommand, DescribeInternetGatewaysCommand, DescribeNatGatewaysCommand, DescribeNetworkAclsCommand, DescribeNetworkInterfacesCommand, DescribeRouteTablesCommand, DescribeSecurityGroupsCommand, DescribeSubnetsCommand, DescribeVolumesCommand, DescribeVpcAttributeCommand, DescribeVpcsCommand, DetachInternetGatewayCommand, DisassociateRouteTableCommand, EC2Client, ModifyInstanceAttributeCommand, ModifySubnetAttributeCommand, ModifyVpcAttributeCommand, ReplaceNetworkAclAssociationCommand, RevokeSecurityGroupEgressCommand, RevokeSecurityGroupIngressCommand, RunInstancesCommand, TerminateInstancesCommand, waitUntilInstanceRunning, waitUntilInstanceTerminated, waitUntilNatGatewayAvailable, waitUntilNatGatewayDeleted } from "@aws-sdk/client-ec2";
|
|
12
12
|
import { CreateTableCommand, DeleteTableCommand, DescribeTableCommand, DynamoDBClient, ListTablesCommand, ListTagsOfResourceCommand, ResourceNotFoundException as ResourceNotFoundException$1, TagResourceCommand as TagResourceCommand$2, UntagResourceCommand as UntagResourceCommand$2, UpdateTableCommand } from "@aws-sdk/client-dynamodb";
|
|
13
13
|
import { CloudFormationClient, CreateChangeSetCommand, DeleteChangeSetCommand, DeleteStackCommand, DescribeChangeSetCommand, DescribeStackEventsCommand, DescribeStackResourcesCommand, DescribeStacksCommand, DescribeTypeCommand, ExecuteChangeSetCommand, GetTemplateCommand, UpdateStackCommand, waitUntilChangeSetCreateComplete, waitUntilStackDeleteComplete, waitUntilStackImportComplete, waitUntilStackUpdateComplete } from "@aws-sdk/client-cloudformation";
|
|
14
|
-
import { APIGatewayClient, CreateAuthorizerCommand, CreateDeploymentCommand, CreateResourceCommand, CreateStageCommand, DeleteAuthorizerCommand, DeleteDeploymentCommand, DeleteMethodCommand, DeleteResourceCommand, DeleteStageCommand, GetAccountCommand, GetAuthorizerCommand, GetDeploymentCommand, GetMethodCommand, GetResourceCommand, GetStageCommand, NotFoundException as NotFoundException$1, PutIntegrationCommand, PutMethodCommand, PutMethodResponseCommand, TagResourceCommand as TagResourceCommand$3, UntagResourceCommand as UntagResourceCommand$3, UpdateAccountCommand, UpdateAuthorizerCommand, UpdateMethodCommand, UpdateStageCommand } from "@aws-sdk/client-api-gateway";
|
|
14
|
+
import { APIGatewayClient, CreateAuthorizerCommand, CreateDeploymentCommand, CreateResourceCommand, CreateStageCommand, DeleteAuthorizerCommand, DeleteDeploymentCommand, DeleteMethodCommand, DeleteResourceCommand, DeleteStageCommand, GetAccountCommand, GetAuthorizerCommand, GetDeploymentCommand, GetMethodCommand, GetResourceCommand, GetStageCommand, NotFoundException as NotFoundException$1, PutIntegrationCommand, PutIntegrationResponseCommand, PutMethodCommand, PutMethodResponseCommand, TagResourceCommand as TagResourceCommand$3, UntagResourceCommand as UntagResourceCommand$3, UpdateAccountCommand, UpdateAuthorizerCommand, UpdateMethodCommand, UpdateStageCommand } from "@aws-sdk/client-api-gateway";
|
|
15
15
|
import { CreateEventBusCommand, DeleteEventBusCommand, DeleteRuleCommand, DescribeEventBusCommand, DescribeRuleCommand, EventBridgeClient, ListEventBusesCommand, ListRulesCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$1, ListTargetsByRuleCommand, PutRuleCommand, PutTargetsCommand, RemoveTargetsCommand, ResourceNotFoundException as ResourceNotFoundException$2, TagResourceCommand as TagResourceCommand$4, UntagResourceCommand as UntagResourceCommand$4, UpdateEventBusCommand } from "@aws-sdk/client-eventbridge";
|
|
16
16
|
import { CreateSecretCommand, DeleteSecretCommand, DescribeSecretCommand, GetSecretValueCommand, ListSecretsCommand, RemoveRegionsFromReplicationCommand, ReplicateSecretToRegionsCommand, ResourceNotFoundException as ResourceNotFoundException$3, SecretsManagerClient, TagResourceCommand as TagResourceCommand$5, UntagResourceCommand as UntagResourceCommand$5, UpdateSecretCommand } from "@aws-sdk/client-secrets-manager";
|
|
17
17
|
import { AddTagsToResourceCommand, DeleteParameterCommand, DescribeParametersCommand, GetParameterCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$2, ParameterNotFound, PutParameterCommand, RemoveTagsFromResourceCommand, SSMClient } from "@aws-sdk/client-ssm";
|
|
@@ -11757,6 +11757,12 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
11757
11757
|
"HttpMethod",
|
|
11758
11758
|
"AuthorizationType",
|
|
11759
11759
|
"AuthorizerId",
|
|
11760
|
+
"ApiKeyRequired",
|
|
11761
|
+
"OperationName",
|
|
11762
|
+
"RequestParameters",
|
|
11763
|
+
"RequestModels",
|
|
11764
|
+
"RequestValidatorId",
|
|
11765
|
+
"AuthorizationScopes",
|
|
11760
11766
|
"Integration",
|
|
11761
11767
|
"MethodResponses"
|
|
11762
11768
|
])]
|
|
@@ -12317,8 +12323,32 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
12317
12323
|
/**
|
|
12318
12324
|
* Create an API Gateway Method
|
|
12319
12325
|
*
|
|
12320
|
-
* Creates a method on a resource and optionally sets up the integration
|
|
12326
|
+
* Creates a method on a resource and optionally sets up the integration
|
|
12327
|
+
* (and per-status-code integration responses) plus method responses.
|
|
12321
12328
|
* PhysicalId format: `{restApiId}|{resourceId}|{httpMethod}`
|
|
12329
|
+
*
|
|
12330
|
+
* All mutable Method-level fields supported by `PutMethodRequest` are
|
|
12331
|
+
* forwarded (`ApiKeyRequired`, `OperationName`, `RequestParameters`,
|
|
12332
|
+
* `RequestModels`, `RequestValidatorId`, `AuthorizationScopes`).
|
|
12333
|
+
*
|
|
12334
|
+
* All mutable Integration-level fields supported by
|
|
12335
|
+
* `PutIntegrationRequest` are forwarded (`ConnectionType`,
|
|
12336
|
+
* `ConnectionId`, `Credentials`, `RequestParameters`, `RequestTemplates`,
|
|
12337
|
+
* `PassthroughBehavior`, `ContentHandling`, `TimeoutInMillis`,
|
|
12338
|
+
* `CacheNamespace`, `CacheKeyParameters`, `TlsConfig`,
|
|
12339
|
+
* `ResponseTransferMode`). Pre-fix only `Type` / `IntegrationHttpMethod`
|
|
12340
|
+
* / `Uri` were forwarded — silently dropping every other field. This
|
|
12341
|
+
* surfaced as e.g. `responseTransferMode: 'STREAM'` being lost,
|
|
12342
|
+
* producing the AWS rejection
|
|
12343
|
+
* "Invalid ResponseTransferMode. Cannot use ResponseTransferMode
|
|
12344
|
+
* BUFFERED for Lambda functions invoked by InvokeWithResponseStream
|
|
12345
|
+
* for AWS_PROXY integrations."
|
|
12346
|
+
* when CDK's `LambdaIntegration({ responseTransferMode: STREAM })` was
|
|
12347
|
+
* used together with the streaming `response-streaming-invocations` URI.
|
|
12348
|
+
*
|
|
12349
|
+
* `IntegrationResponses` (the CFn array shape under `Integration`) is
|
|
12350
|
+
* applied via per-entry `PutIntegrationResponseCommand` calls after the
|
|
12351
|
+
* integration itself is put in place.
|
|
12322
12352
|
*/
|
|
12323
12353
|
async createMethod(logicalId, resourceType, properties) {
|
|
12324
12354
|
this.logger.debug(`Creating API Gateway Method ${logicalId}`);
|
|
@@ -12327,6 +12357,12 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
12327
12357
|
const httpMethod = properties["HttpMethod"];
|
|
12328
12358
|
const authorizationType = properties["AuthorizationType"] ?? "NONE";
|
|
12329
12359
|
const authorizerId = properties["AuthorizerId"];
|
|
12360
|
+
const apiKeyRequired = properties["ApiKeyRequired"];
|
|
12361
|
+
const operationName = properties["OperationName"];
|
|
12362
|
+
const methodRequestParameters = properties["RequestParameters"];
|
|
12363
|
+
const requestModels = properties["RequestModels"];
|
|
12364
|
+
const requestValidatorId = properties["RequestValidatorId"];
|
|
12365
|
+
const authorizationScopes = properties["AuthorizationScopes"];
|
|
12330
12366
|
if (!restApiId || !resourceId || !httpMethod) throw new ProvisioningError(`RestApiId, ResourceId, and HttpMethod are required for API Gateway Method ${logicalId}`, resourceType, logicalId);
|
|
12331
12367
|
try {
|
|
12332
12368
|
await this.apiGatewayClient.send(new PutMethodCommand({
|
|
@@ -12334,17 +12370,51 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
12334
12370
|
resourceId,
|
|
12335
12371
|
httpMethod,
|
|
12336
12372
|
authorizationType,
|
|
12337
|
-
authorizerId
|
|
12373
|
+
authorizerId,
|
|
12374
|
+
apiKeyRequired,
|
|
12375
|
+
operationName,
|
|
12376
|
+
requestParameters: methodRequestParameters,
|
|
12377
|
+
requestModels,
|
|
12378
|
+
requestValidatorId,
|
|
12379
|
+
authorizationScopes
|
|
12338
12380
|
}));
|
|
12339
12381
|
const integration = properties["Integration"];
|
|
12340
|
-
if (integration)
|
|
12341
|
-
|
|
12342
|
-
|
|
12343
|
-
|
|
12344
|
-
|
|
12345
|
-
|
|
12346
|
-
|
|
12347
|
-
|
|
12382
|
+
if (integration) {
|
|
12383
|
+
await this.apiGatewayClient.send(new PutIntegrationCommand({
|
|
12384
|
+
restApiId,
|
|
12385
|
+
resourceId,
|
|
12386
|
+
httpMethod,
|
|
12387
|
+
type: integration["Type"],
|
|
12388
|
+
integrationHttpMethod: integration["IntegrationHttpMethod"],
|
|
12389
|
+
uri: integration["Uri"],
|
|
12390
|
+
connectionType: integration["ConnectionType"],
|
|
12391
|
+
connectionId: integration["ConnectionId"],
|
|
12392
|
+
credentials: integration["Credentials"],
|
|
12393
|
+
requestParameters: integration["RequestParameters"],
|
|
12394
|
+
requestTemplates: integration["RequestTemplates"],
|
|
12395
|
+
passthroughBehavior: integration["PassthroughBehavior"],
|
|
12396
|
+
contentHandling: integration["ContentHandling"],
|
|
12397
|
+
timeoutInMillis: integration["TimeoutInMillis"],
|
|
12398
|
+
cacheNamespace: integration["CacheNamespace"],
|
|
12399
|
+
cacheKeyParameters: integration["CacheKeyParameters"],
|
|
12400
|
+
tlsConfig: integration["TlsConfig"] ? { insecureSkipVerification: integration["TlsConfig"]["InsecureSkipVerification"] } : void 0,
|
|
12401
|
+
responseTransferMode: integration["ResponseTransferMode"]
|
|
12402
|
+
}));
|
|
12403
|
+
const integrationResponses = integration["IntegrationResponses"];
|
|
12404
|
+
if (integrationResponses) for (const ir of integrationResponses) {
|
|
12405
|
+
const statusCode = String(ir["StatusCode"]);
|
|
12406
|
+
await this.apiGatewayClient.send(new PutIntegrationResponseCommand({
|
|
12407
|
+
restApiId,
|
|
12408
|
+
resourceId,
|
|
12409
|
+
httpMethod,
|
|
12410
|
+
statusCode,
|
|
12411
|
+
selectionPattern: ir["SelectionPattern"],
|
|
12412
|
+
responseParameters: ir["ResponseParameters"],
|
|
12413
|
+
responseTemplates: ir["ResponseTemplates"],
|
|
12414
|
+
contentHandling: ir["ContentHandling"]
|
|
12415
|
+
}));
|
|
12416
|
+
}
|
|
12417
|
+
}
|
|
12348
12418
|
const methodResponses = properties["MethodResponses"];
|
|
12349
12419
|
if (methodResponses) for (const resp of methodResponses) {
|
|
12350
12420
|
const statusCode = String(resp["StatusCode"]);
|
|
@@ -12381,6 +12451,10 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
12381
12451
|
* `/requestParameters/method.request.querystring.foo`
|
|
12382
12452
|
* `/requestModels/application~1json` (slashes escaped per RFC 6901).
|
|
12383
12453
|
*
|
|
12454
|
+
* `AuthorizationScopes` is an array — AWS accepts a comma-joined
|
|
12455
|
+
* `replace /authorizationScopes` op (same pattern as Authorizer's
|
|
12456
|
+
* `ProviderARNs`).
|
|
12457
|
+
*
|
|
12384
12458
|
* `HttpMethod`, `ResourceId`, `RestApiId` are immutable (replacement
|
|
12385
12459
|
* layer handles them via DELETE + CREATE).
|
|
12386
12460
|
*
|
|
@@ -12436,6 +12510,13 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
12436
12510
|
}
|
|
12437
12511
|
appendMapPatchOps(patchOperations, "/requestParameters", properties["RequestParameters"] ?? {}, previousProperties["RequestParameters"] ?? {});
|
|
12438
12512
|
appendMapPatchOps(patchOperations, "/requestModels", properties["RequestModels"] ?? {}, previousProperties["RequestModels"] ?? {});
|
|
12513
|
+
const newScopes = properties["AuthorizationScopes"];
|
|
12514
|
+
const prevScopes = previousProperties["AuthorizationScopes"];
|
|
12515
|
+
if ((newScopes?.length ?? 0) !== (prevScopes?.length ?? 0) || (newScopes ?? []).some((s, i) => s !== prevScopes?.[i])) patchOperations.push({
|
|
12516
|
+
op: "replace",
|
|
12517
|
+
path: "/authorizationScopes",
|
|
12518
|
+
value: (newScopes ?? []).join(",")
|
|
12519
|
+
});
|
|
12439
12520
|
if (patchOperations.length === 0) {
|
|
12440
12521
|
this.logger.debug(`No changes detected for API Gateway Method ${logicalId}`);
|
|
12441
12522
|
return {
|
|
@@ -27988,6 +28069,10 @@ async function deployCommand(stacks, options) {
|
|
|
27988
28069
|
logger.info(` Deleted: ${deployResult.deleted}`);
|
|
27989
28070
|
logger.info(` Unchanged: ${deployResult.unchanged}`);
|
|
27990
28071
|
logger.info(` Duration: ${(deployResult.durationMs / 1e3).toFixed(2)}s`);
|
|
28072
|
+
if (deployResult.outputs && Object.keys(deployResult.outputs).length > 0) {
|
|
28073
|
+
logger.info("\nOutputs:");
|
|
28074
|
+
for (const [key, value] of Object.entries(deployResult.outputs)) logger.info(` ${deployResult.stackName}.${key} = ${String(value)}`);
|
|
28075
|
+
}
|
|
27991
28076
|
if (options.dryRun) logger.info("\n✓ Dry run completed - no actual changes made");
|
|
27992
28077
|
else logger.info("\n✓ Deployment completed successfully");
|
|
27993
28078
|
} finally {
|
|
@@ -42616,7 +42701,7 @@ function reorderArgs(argv) {
|
|
|
42616
42701
|
*/
|
|
42617
42702
|
async function main() {
|
|
42618
42703
|
const program = new Command();
|
|
42619
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.
|
|
42704
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.102.0");
|
|
42620
42705
|
program.addCommand(createBootstrapCommand());
|
|
42621
42706
|
program.addCommand(createSynthCommand());
|
|
42622
42707
|
program.addCommand(createListCommand());
|