konokenj.cdk-api-mcp-server 0.28.0__py3-none-any.whl → 0.30.0__py3-none-any.whl
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.
Potentially problematic release.
This version of konokenj.cdk-api-mcp-server might be problematic. Click here for more details.
- cdk_api_mcp_server/__about__.py +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/aws-amplify-alpha/README.md +71 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/@aws-cdk/integ-tests-alpha/README.md +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api-dualstack.ts +4 -3
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.api.ts +4 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2/integ.stage.ts +20 -7
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-authorizers/integ.iam.ts +38 -34
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-apigatewayv2-integrations/integ.sqs.ts +71 -58
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-backup/README.md +2 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-backup/integ.backup.ts +12 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudfront/README.md +18 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/README.md +32 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.alarm-and-dashboard.ts +1 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-cloudwatch/integ.math-alarm-and-dashboard.ts +4 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codedeploy/integ.deployment-config.ts +4 -15
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codedeploy/integ.deployment-group.ts +218 -40
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-codepipeline-actions/integ.pipeline-elastic-beanstalk-deploy.ts +1 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/README.md +13 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-ec2/integ.client-vpn-endpoint-client-route-enforcement.ts +68 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/README.md +83 -83
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.eks-al2023-nodegroup.ts +1 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.fargate-cluster.ts +1 -3
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-eks/integ.helm-chart-logging.ts +55 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/README.md +4 -3
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-kms/integ.alias-from-alias-name.ts +26 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/README.md +15 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda/integ.log-retention.ts +8 -2
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/README.md +68 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-lambda-event-sources/integ.kafka-schema-registry.ts +186 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/README.md +23 -13
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.cluster-snapshot.ts +3 -71
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-rds/integ.instance-engine-lifecycle-support.ts +53 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3/README.md +16 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-s3-notifications/integ.bucket-notifications.ts +42 -80
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.call-aws-service-cross-region-lambda.ts +97 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/aws-stepfunctions-tasks/integ.start-job-run.ts +51 -106
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/FEATURE_FLAGS.md +21 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/cx-api/README.md +14 -0
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/README.md +7 -1
- cdk_api_mcp_server/resources/aws-cdk/constructs/aws-cdk-lib/pipelines/integ.newpipeline-single-publisher.ts +53 -0
- {konokenj_cdk_api_mcp_server-0.28.0.dist-info → konokenj_cdk_api_mcp_server-0.30.0.dist-info}/METADATA +2 -2
- {konokenj_cdk_api_mcp_server-0.28.0.dist-info → konokenj_cdk_api_mcp_server-0.30.0.dist-info}/RECORD +45 -38
- {konokenj_cdk_api_mcp_server-0.28.0.dist-info → konokenj_cdk_api_mcp_server-0.30.0.dist-info}/WHEEL +0 -0
- {konokenj_cdk_api_mcp_server-0.28.0.dist-info → konokenj_cdk_api_mcp_server-0.30.0.dist-info}/entry_points.txt +0 -0
- {konokenj_cdk_api_mcp_server-0.28.0.dist-info → konokenj_cdk_api_mcp_server-0.30.0.dist-info}/licenses/LICENSE.txt +0 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import * as cdk from 'aws-cdk-lib';
|
|
2
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
3
|
+
import * as tasks from 'aws-cdk-lib/aws-stepfunctions-tasks';
|
|
4
|
+
import { ExpectedResult, IntegTest, Match } from '@aws-cdk/integ-tests-alpha';
|
|
5
|
+
import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
|
|
6
|
+
|
|
7
|
+
class TestStack extends cdk.Stack {
|
|
8
|
+
public readonly stateMachine: sfn.StateMachine;
|
|
9
|
+
constructor(scope: cdk.App, id: string, props: cdk.StackProps = {}) {
|
|
10
|
+
super(scope, id, props);
|
|
11
|
+
// Create a target Lambda function that returns JSON response
|
|
12
|
+
const targetLambda = new lambda.Function(this, 'TargetLambda', {
|
|
13
|
+
runtime: lambda.Runtime.NODEJS_18_X,
|
|
14
|
+
handler: 'index.handler',
|
|
15
|
+
code: lambda.Code.fromInline(`
|
|
16
|
+
exports.handler = async (event) => {
|
|
17
|
+
console.log('Target Lambda received event:', JSON.stringify(event, null, 2));
|
|
18
|
+
|
|
19
|
+
// Return a JSON response that should be properly serialized
|
|
20
|
+
return {
|
|
21
|
+
statusCode: 200,
|
|
22
|
+
body: {
|
|
23
|
+
status: 'success',
|
|
24
|
+
message: 'Hello from target Lambda',
|
|
25
|
+
receivedData: event
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
`),
|
|
30
|
+
description: 'Target Lambda function for CallAwsServiceCrossRegion testing',
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
// Create a cross-region Lambda invoke task using CallAwsServiceCrossRegion
|
|
34
|
+
const crossRegionInvokeTask = tasks.CallAwsServiceCrossRegion.jsonata(this, 'CrossRegionLambdaInvoke', {
|
|
35
|
+
service: 'lambda',
|
|
36
|
+
action: 'invoke',
|
|
37
|
+
region: 'us-east-1',
|
|
38
|
+
parameters: {
|
|
39
|
+
FunctionName: targetLambda.functionArn,
|
|
40
|
+
Payload: JSON.stringify({
|
|
41
|
+
hello: 'world',
|
|
42
|
+
testData: 'reproduction',
|
|
43
|
+
}),
|
|
44
|
+
},
|
|
45
|
+
iamResources: [targetLambda.functionArn],
|
|
46
|
+
iamAction: 'lambda:InvokeFunction',
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
// Create a Step Functions state machine to execute the cross-region task
|
|
50
|
+
this.stateMachine = new sfn.StateMachine(this, 'TestStateMachine', {
|
|
51
|
+
definitionBody: sfn.DefinitionBody.fromChainable(crossRegionInvokeTask),
|
|
52
|
+
timeout: cdk.Duration.minutes(5),
|
|
53
|
+
comment: 'State machine to reproduce issue 34768 - CallAwsServiceCrossRegion byte array bug',
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const app = new cdk.App({
|
|
59
|
+
postCliContext: {
|
|
60
|
+
'@aws-cdk/aws-lambda:useCdkManagedLogGroup': false,
|
|
61
|
+
'@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy': false,
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
const stack = new TestStack(app, 'aws-stepfunctions-call-aws-service-cross-region-lambda-integ');
|
|
66
|
+
|
|
67
|
+
const integ = new IntegTest(app, 'IntegTest', {
|
|
68
|
+
testCases: [stack],
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// Start the Step Functions execution
|
|
72
|
+
const res = integ.assertions.awsApiCall('StepFunctions', 'startExecution', {
|
|
73
|
+
stateMachineArn: stack.stateMachine.stateMachineArn,
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
const executionArn = res.getAttString('executionArn');
|
|
77
|
+
|
|
78
|
+
// Describe the execution to see the output
|
|
79
|
+
const describe = integ.assertions
|
|
80
|
+
.awsApiCall('StepFunctions', 'describeExecution', {
|
|
81
|
+
executionArn,
|
|
82
|
+
})
|
|
83
|
+
.expect(ExpectedResult.objectLike({
|
|
84
|
+
status: 'SUCCEEDED',
|
|
85
|
+
}))
|
|
86
|
+
.waitForAssertions({
|
|
87
|
+
totalTimeout: cdk.Duration.minutes(5),
|
|
88
|
+
interval: cdk.Duration.seconds(10),
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
// Verify that the output contains the expected Lambda response structure as JSON
|
|
92
|
+
// This ensures the response is properly serialized as JSON, not as byte array
|
|
93
|
+
describe.expect(ExpectedResult.objectLike({
|
|
94
|
+
output: Match.stringLikeRegexp('.*"statusCode":200.*"status":"success".*"message":"Hello from target Lambda".*'),
|
|
95
|
+
}));
|
|
96
|
+
|
|
97
|
+
app.synth();
|
|
@@ -1,124 +1,69 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import * as glue from 'aws-cdk-lib/aws-glue';
|
|
2
3
|
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
3
|
-
import * as
|
|
4
|
+
import * as assets from 'aws-cdk-lib/aws-s3-assets';
|
|
4
5
|
import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
|
|
5
6
|
import * as cdk from 'aws-cdk-lib';
|
|
6
|
-
import {
|
|
7
|
+
import { GlueStartJobRun } from 'aws-cdk-lib/aws-stepfunctions-tasks';
|
|
8
|
+
import { IntegTest } from '@aws-cdk/integ-tests-alpha';
|
|
7
9
|
|
|
8
10
|
/*
|
|
9
11
|
* Stack verification steps:
|
|
10
|
-
* * aws stepfunctions start-execution --state-machine-arn <deployed state machine arn>
|
|
11
|
-
* * aws stepfunctions describe-execution --execution-arn <
|
|
12
|
+
* * aws stepfunctions start-execution --state-machine-arn <deployed state machine arn>
|
|
13
|
+
* * aws stepfunctions describe-execution --execution-arn <execution arn created above>
|
|
14
|
+
* The "describe-execution" call should eventually return status "SUCCEEDED".
|
|
15
|
+
* NOTE: It will take up to 15 minutes for the step function to complete due to the cold start time
|
|
16
|
+
* for AWS Glue, which as of 02/2020, is around 10-15 minutes.
|
|
12
17
|
*/
|
|
13
18
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
super(scope, id, props);
|
|
17
|
-
|
|
18
|
-
const region = this.region;
|
|
19
|
-
|
|
20
|
-
const outputBucket = new s3.Bucket(this, 'JobOutputBucket', {
|
|
21
|
-
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
const role = new iam.Role(this, 'DataBrew Role', {
|
|
25
|
-
managedPolicies: [{
|
|
26
|
-
managedPolicyArn: 'arn:aws:iam::aws:policy/service-role/AWSGlueDataBrewServiceRole',
|
|
27
|
-
}],
|
|
28
|
-
path: '/',
|
|
29
|
-
assumedBy: new iam.ServicePrincipal('databrew.amazonaws.com'),
|
|
30
|
-
inlinePolicies: {
|
|
31
|
-
DataBrewPolicy: iam.PolicyDocument.fromJson({
|
|
32
|
-
Statement: [{
|
|
33
|
-
Effect: 'Allow',
|
|
34
|
-
Action: [
|
|
35
|
-
's3:GetObject',
|
|
36
|
-
's3:PutObject',
|
|
37
|
-
's3:DeleteObject',
|
|
38
|
-
's3:ListBucket',
|
|
39
|
-
],
|
|
40
|
-
Resource: [
|
|
41
|
-
`arn:aws:s3:::databrew-public-datasets-${region}/*`,
|
|
42
|
-
`arn:aws:s3:::databrew-public-datasets-${region}`,
|
|
43
|
-
`${outputBucket.bucketArn}/*`,
|
|
44
|
-
`${outputBucket.bucketArn}`,
|
|
45
|
-
],
|
|
46
|
-
}],
|
|
47
|
-
}),
|
|
48
|
-
},
|
|
49
|
-
});
|
|
19
|
+
const app = new cdk.App();
|
|
20
|
+
const stack = new cdk.Stack(app, 'aws-stepfunctions-integ');
|
|
50
21
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
{
|
|
55
|
-
action: {
|
|
56
|
-
operation: 'UPPER_CASE',
|
|
57
|
-
parameters: {
|
|
58
|
-
sourceColumn: 'description',
|
|
59
|
-
},
|
|
60
|
-
},
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
action: {
|
|
64
|
-
operation: 'DELETE',
|
|
65
|
-
parameters: {
|
|
66
|
-
sourceColumn: 'doc_id',
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
},
|
|
70
|
-
],
|
|
71
|
-
});
|
|
22
|
+
const codeAsset = new assets.Asset(stack, 'Glue Job Script', {
|
|
23
|
+
path: path.join(__dirname, 'my-glue-script/job.py'),
|
|
24
|
+
});
|
|
72
25
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
name: 'dataset-1',
|
|
81
|
-
});
|
|
26
|
+
const jobRole = new iam.Role(stack, 'Glue Job Role', {
|
|
27
|
+
assumedBy: new iam.ServicePrincipal('glue'),
|
|
28
|
+
managedPolicies: [
|
|
29
|
+
iam.ManagedPolicy.fromAwsManagedPolicyName('service-role/AWSGlueServiceRole'),
|
|
30
|
+
],
|
|
31
|
+
});
|
|
32
|
+
codeAsset.grantRead(jobRole);
|
|
82
33
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
34
|
+
const job = new glue.CfnJob(stack, 'Glue Job', {
|
|
35
|
+
name: 'My Glue Job',
|
|
36
|
+
glueVersion: '1.0',
|
|
37
|
+
command: {
|
|
38
|
+
name: 'glueetl',
|
|
39
|
+
pythonVersion: '3',
|
|
40
|
+
scriptLocation: `s3://${codeAsset.s3BucketName}/${codeAsset.s3ObjectKey}`,
|
|
41
|
+
},
|
|
42
|
+
role: jobRole.roleArn,
|
|
43
|
+
});
|
|
91
44
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
bucket: outputBucket.bucketName,
|
|
100
|
-
},
|
|
101
|
-
}],
|
|
102
|
-
});
|
|
103
|
-
job.addDependency(project);
|
|
45
|
+
const jobTask = new GlueStartJobRun(stack, 'Glue Job Task', {
|
|
46
|
+
glueJobName: job.name!,
|
|
47
|
+
integrationPattern: sfn.IntegrationPattern.RUN_JOB,
|
|
48
|
+
arguments: sfn.TaskInput.fromObject({
|
|
49
|
+
'--enable-metrics': 'true',
|
|
50
|
+
}),
|
|
51
|
+
});
|
|
104
52
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
});
|
|
53
|
+
const startTask = new sfn.Pass(stack, 'Start Task');
|
|
54
|
+
const endTask = new sfn.Pass(stack, 'End Task');
|
|
108
55
|
|
|
109
|
-
|
|
56
|
+
const stateMachine = new sfn.StateMachine(stack, 'State Machine', {
|
|
57
|
+
definition: sfn.Chain.start(startTask).next(jobTask).next(endTask),
|
|
58
|
+
});
|
|
110
59
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
});
|
|
60
|
+
new cdk.CfnOutput(stack, 'State Machine ARN Output', {
|
|
61
|
+
value: stateMachine.stateMachineArn,
|
|
62
|
+
});
|
|
115
63
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
64
|
+
new IntegTest(app, 'AwsSfnIntegTest', {
|
|
65
|
+
testCases: [stack],
|
|
66
|
+
diffAssets: true,
|
|
67
|
+
});
|
|
121
68
|
|
|
122
|
-
const app = new cdk.App();
|
|
123
|
-
new GlueDataBrewJobStack(app, 'aws-stepfunctions-tasks-databrew-start-job-run-integ');
|
|
124
69
|
app.synth();
|
|
@@ -103,6 +103,7 @@ Flags come in three types:
|
|
|
103
103
|
| [@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions](#aws-cdks3-notificationsadds3trustkeypolicyforsnssubscriptions) | Add an S3 trust policy to a KMS key resource policy for SNS subscriptions. | 2.195.0 | fix |
|
|
104
104
|
| [@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway](#aws-cdkaws-ec2requireprivatesubnetsforegressonlyinternetgateway) | When enabled, the EgressOnlyGateway resource is only created if private subnets are defined in the dual-stack VPC. | 2.196.0 | fix |
|
|
105
105
|
| [@aws-cdk/aws-s3:publicAccessBlockedByDefault](#aws-cdkaws-s3publicaccessblockedbydefault) | When enabled, setting any combination of options for BlockPublicAccess will automatically set true for any options not defined. | 2.196.0 | fix |
|
|
106
|
+
| [@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal](#aws-cdkaws-kmsapplyimportedaliaspermissionstoprincipal) | Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition | 2.202.0 | fix |
|
|
106
107
|
|
|
107
108
|
<!-- END table -->
|
|
108
109
|
|
|
@@ -146,6 +147,7 @@ The following json shows the current recommended set of flags, as `cdk init` wou
|
|
|
146
147
|
"@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": true,
|
|
147
148
|
"@aws-cdk/aws-apigateway:requestValidatorUniqueId": true,
|
|
148
149
|
"@aws-cdk/aws-kms:aliasNameRef": true,
|
|
150
|
+
"@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": true,
|
|
149
151
|
"@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": true,
|
|
150
152
|
"@aws-cdk/core:includePrefixInUniqueNameGeneration": true,
|
|
151
153
|
"@aws-cdk/aws-efs:denyAnonymousAccess": true,
|
|
@@ -2175,4 +2177,23 @@ The new behavior from this feature will allow a user, for example, to set 1 of t
|
|
|
2175
2177
|
| 2.196.0 | `false` | `true` |
|
|
2176
2178
|
|
|
2177
2179
|
|
|
2180
|
+
### @aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal
|
|
2181
|
+
|
|
2182
|
+
*Enable grant methods on Aliases imported by name to use kms:ResourceAliases condition*
|
|
2183
|
+
|
|
2184
|
+
Flag type: Backwards incompatible bugfix
|
|
2185
|
+
|
|
2186
|
+
This flag enables the grant methods (grant, grantDecrypt, grantEncrypt, etc.) on Aliases imported
|
|
2187
|
+
by name to grant permissions based on the 'kms:ResourceAliases' condition rather than no-op grants.
|
|
2188
|
+
When disabled, grant calls on imported aliases will be dropped (no-op) to maintain compatibility.
|
|
2189
|
+
|
|
2190
|
+
|
|
2191
|
+
| Since | Default | Recommended |
|
|
2192
|
+
| ----- | ----- | ----- |
|
|
2193
|
+
| (not in v1) | | |
|
|
2194
|
+
| 2.202.0 | `false` | `true` |
|
|
2195
|
+
|
|
2196
|
+
**Compatibility with old behavior:** Remove calls to the grant* methods on the aliases referenced by name
|
|
2197
|
+
|
|
2198
|
+
|
|
2178
2199
|
<!-- END details -->
|
|
@@ -310,6 +310,20 @@ _cdk.json_
|
|
|
310
310
|
}
|
|
311
311
|
```
|
|
312
312
|
|
|
313
|
+
* `@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal`
|
|
314
|
+
|
|
315
|
+
Enable grant methods on imported KMS Aliases to apply permissions scoped by the alias using the `kms:ResourceAliases` condition key. When this flag is disabled, grant* methods on `Alias.fromAliasName` remain no-ops to preserve existing behavior.
|
|
316
|
+
|
|
317
|
+
_cdk.json_
|
|
318
|
+
|
|
319
|
+
```json
|
|
320
|
+
{
|
|
321
|
+
"context": {
|
|
322
|
+
"@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": true
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
```
|
|
326
|
+
|
|
313
327
|
* `@aws-cdk/aws-eks:nodegroupNameAttribute`
|
|
314
328
|
|
|
315
329
|
When enabled, nodegroupName attribute of the provisioned EKS NodeGroup will not have the cluster name prefix.
|
|
@@ -565,6 +565,7 @@ pass in order to promote from the `PreProd` to the `Prod` environment:
|
|
|
565
565
|
declare const pipeline: pipelines.CodePipeline;
|
|
566
566
|
const preprod = new MyApplicationStage(this, 'PreProd');
|
|
567
567
|
const prod = new MyApplicationStage(this, 'Prod');
|
|
568
|
+
const topic = new sns.Topic(this, 'ChangeApprovalTopic');
|
|
568
569
|
|
|
569
570
|
pipeline.addStage(preprod, {
|
|
570
571
|
post: [
|
|
@@ -574,7 +575,12 @@ pipeline.addStage(preprod, {
|
|
|
574
575
|
],
|
|
575
576
|
});
|
|
576
577
|
pipeline.addStage(prod, {
|
|
577
|
-
pre: [new pipelines.ManualApprovalStep('PromoteToProd'
|
|
578
|
+
pre: [new pipelines.ManualApprovalStep('PromoteToProd', {
|
|
579
|
+
//All options below are optional
|
|
580
|
+
comment: 'Please validate changes',
|
|
581
|
+
reviewUrl: 'https://my.webservice.com/',
|
|
582
|
+
notificationTopic: topic,
|
|
583
|
+
})],
|
|
578
584
|
});
|
|
579
585
|
```
|
|
580
586
|
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
3
|
+
import * as s3_assets from 'aws-cdk-lib/aws-s3-assets';
|
|
4
|
+
import * as sqs from 'aws-cdk-lib/aws-sqs';
|
|
5
|
+
import * as pipelines from 'aws-cdk-lib/pipelines';
|
|
6
|
+
import { App, RemovalPolicy, Stack, StackProps, Stage, StageProps } from 'aws-cdk-lib';
|
|
7
|
+
import { Construct } from 'constructs';
|
|
8
|
+
import { IntegTest } from '@aws-cdk/integ-tests-alpha';
|
|
9
|
+
|
|
10
|
+
class PipelineStack extends Stack {
|
|
11
|
+
constructor(scope: Construct, id: string, props?: StackProps) {
|
|
12
|
+
super(scope, id, props);
|
|
13
|
+
|
|
14
|
+
const bucket = new s3.Bucket(this, 'Source', {
|
|
15
|
+
removalPolicy: RemovalPolicy.DESTROY,
|
|
16
|
+
});
|
|
17
|
+
const pipeline = new pipelines.CodePipeline(this, 'Pipeline', {
|
|
18
|
+
synth: new pipelines.ShellStep('Synth', {
|
|
19
|
+
input: pipelines.CodePipelineSource.s3(bucket, 'source.zip'),
|
|
20
|
+
commands: [
|
|
21
|
+
'npm ci',
|
|
22
|
+
'npm run build',
|
|
23
|
+
'npx cdk synth',
|
|
24
|
+
],
|
|
25
|
+
}),
|
|
26
|
+
publishAssetsInParallel: false,
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
pipeline.addStage(new AppStage(this, 'Beta'));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
class AppStage extends Stage {
|
|
34
|
+
constructor(scope: Construct, id: string, props?: StageProps) {
|
|
35
|
+
super(scope, id, props);
|
|
36
|
+
|
|
37
|
+
const stack = new Stack(this, 'Stack1');
|
|
38
|
+
new s3_assets.Asset(stack, 'Asset', {
|
|
39
|
+
path: path.join(__dirname, 'testhelpers/assets/test-file-asset.txt'),
|
|
40
|
+
});
|
|
41
|
+
new s3_assets.Asset(stack, 'Asset2', {
|
|
42
|
+
path: path.join(__dirname, 'testhelpers/assets/test-file-asset-two.txt'),
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
new sqs.Queue(stack, 'OtherQueue');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const app = new App();
|
|
50
|
+
const stack = new PipelineStack(app, 'PipelineStackSinglePublisher');
|
|
51
|
+
new IntegTest(app, 'PipelineStackSinglePublisher-integ', {
|
|
52
|
+
testCases: [stack],
|
|
53
|
+
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: konokenj.cdk-api-mcp-server
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.30.0
|
|
4
4
|
Summary: An MCP server provides AWS CDK API Reference
|
|
5
5
|
Project-URL: Documentation, https://github.com/konokenj/cdk-api-mcp-server#readme
|
|
6
6
|
Project-URL: Issues, https://github.com/konokenj/cdk-api-mcp-server/issues
|
|
@@ -26,7 +26,7 @@ Description-Content-Type: text/markdown
|
|
|
26
26
|
[](https://pypi.org/project/konokenj.cdk-api-mcp-server)
|
|
27
27
|
|
|
28
28
|
<!-- DEP-VERSIONS-START -->
|
|
29
|
-
[](https://github.com/konokenj/cdk-api-mcp-server/blob/main/current-versions/aws-cdk.txt)
|
|
30
30
|
<!-- DEP-VERSIONS-END -->
|
|
31
31
|
|
|
32
32
|
---
|