All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
1.60.0 (2020-08-19)
- cloudfront: Distribution:
.domains
must be specified ifcertificate
is provided. - appsync: appsync.addXxxDataSource
name
anddescription
props are now optional and in anDataSourceOptions
interface.
- appsync: the props
name
anddescription
inaddXxxDataSource
have been moved into new propsoptions
of typeDataSourceOptions
- appsync:
DataSourceOptions.name
defaults to id - appsync:
DataSourceOptions.description
defaults to undefined
- amplify: automatic branch deletion (#9663) (4ee37a4), closes #9650
- appsync: code-first schema allows for object type definition (#9417) (6f1782f), closes #9307
- appsync: import existing graphql api (#9254) (5732b8e), closes #6959
- aws-cloudwatch: log query widget visualisation types (#9694) (8debcf8), closes #9675
- cli: MFA support (#6510) (611c48d), closes #1248
- make imported resources account/region-aware (#8280) (d6278b3), closes #2807 #5740 #7012
- cfn-include: add support for retrieving Mapping objects from the template (#9777) (a038304), closes #9711
- cfn-include: add support for retrieving Rule objects from the template (#9783) (e4720bf), closes #9712
- cloudfront: Distribution - alternate domains (#9699) (97e44a7)
- codebuild: support images with WINDOWS_SERVER_2019_CONTAINER environment type (#9526) (d3813e7), closes #9484
- custom-resources: optional latest SDK installation for AwsCustomResource (#9515) (effdd3c), closes #9289 #9322
- ec2: CloudFormation init for files, packages, sources, users, & groups (#9664) (d6c44e8), closes #9065 #8788 #8788
- ecs: add EfsVolumeConfiguration to Volume (#8467) (85ff9fd)
- ecs: add support for automatic HTTPS redirect (#9341) (84a3ef6), closes #8488
- lambda-nodejs: local bundling (#9632) (276c322)
- pipelines: add PolicyStatements to CodeBuild project role (#9527) (c570d9c), closes aws/aws-cdk#9163
- rds: CloudWatch logs exports for DB clusters (#9772) (118e5c6), closes #7810
- rds: Validate log types for clusters (#9797) (85fdeb5), closes #9772 #9772 #9772
- apigateway: access log format does not allow tokens (#9769) (a7c5c75), closes #9687
- build: Prereq check - support paths with spaces. (9ca1d02), closes #9749
- cfn-include: handle numbers expressed as strings in templates (#9525) (e9a4102), closes #9524
- cli: "fancy" progress reporting not disabled on all CI systems (#9516) (97ef371), closes #8696 #8893
- cli: CLI does not use regional endpoints (#9835) (34450b0), closes #9223
- cli: stack monitor reads complete stack history every 5 seconds (#9795) (cace51a), closes #9470
- cli: SynthUtils is not used (#9836) (9f1007e)
- cloudformation-diff: DependsOn singleton arrays aren't equal to string values (#9814) (49cdb47)
- cloudfront: all origin access identities have identical names (#9829) (ca79188), closes #9580
- cloudfront: Distribution ignores webAclId (#9828) (366c781), closes #9635 #9824
- cloudfront: Update Suported Security Protocol enum and set TLS_V1_2_2019 as a default version (#9738) (f6c25ad), closes #9212
- codebuild: fails on using PR Events together with FILE_PATH filters in a FilterGroup (#9725) (fdaf6bc), closes #8867
- codepipeline: Service Catalog action generated incorrect file path (#9773) (286ff50), closes #9767
- eks: AMI changes in managed SSM store param causes rolling update of ASG (#9746) (44f7753), closes #7273
- elbv2: NLB Target Group does not inherit protocol (#9331) (#9651) (171ab59)
- lambda: compute platform missing for autocreated profiling group (#9716) (a8f4c9f)
- lambda-nodejs: cannot bundle when entry file is named index.ts (#9724) (bb90fbe), closes #9709
- lambda-nodejs: NodejsFunction construct incompatible with lambda@edge (#9562) (dfe2c5c), closes #9328 #9453
- lambda-python: install rsync if necessary (#9763) (6edb6e6), closes #9704 #9349 #9582
1.59.0 (2020-08-14)
- eks:
cluster.addResource
was renamed tocluster.addManifest
andKubernetesResource
was renamed toKubernetesManifest
- cloudfront: (cloudfront) Changed IDs for Distributions (will cause resource replacement).
- cfn-include: allow passing Parameters to the included template (#9543) (cb6de0a)
- cfnspec: cloudformation spec v16.3.0 (#9452) (fb5068d)
- cloudfront: Distribution support for logging, geo restrictions, http version and IPv6 (#9635) (4c62702)
- codebuild: add support for GPU build images (#8879) (b1b4cee), closes #8408
- codeguruprofiler: add support for ComputePlatform in ProfilingGroup (#9391) (5a64bc5)
- ec2: CloudFormation-init support (#9065) (014c13a), closes #8788 #9063 #9063
- eks: ability to query runtime information from the cluster (#9535) (4bc8188), closes #8394
- synthetics: Synthetics L2 Support (#8824) (691b349), closes #7687
- cloudfront: ensures origin groups are added with their own ID as a target (#9593) (246842f), closes #9561 #9561
- cloudfront: Escape hatch support for Distribution (#9648) (cc229c2), closes #9620
- codepipeline: S3 source Action with trigger=Events fails for bucketKey a Token (#9575) (43214b4), closes #9554
- ec2: can't use imported Subnets in a SubnetSelection (#9579) (1c4eae8)
1.58.0 (2020-08-12)
- cloudwatch: alarm status widget (#9456) (41940d3)
- cognito: better control sms role creation (#9513) (a772fe8), closes #6943
- core: local bundling provider (#9564) (3da0aa9)
- core: new annotations api (#9563) (ae9ed62), closes /github.com/aws/aws-cdk-rfcs/blob/master/text/0192-remove-constructs-compat.md#09
- core: new APIs for Aspects and Tags (#9558) (a311428), closes /github.com/aws/aws-cdk-rfcs/blob/master/text/0192-remove-constructs-compat.md#02
- ecs: Option to encrypt lifecycle hook SNS Topic (#9343) (38aad67)
- events: use existing Role when running ECS Task (#8145) (aad951a), closes #7859
- global-accelerator: referencing Global Accelerator security group (#9358) (1fe9684)
- iam: validate policies for missing resources/principals (#9269) (60d01b1), closes #7615
- lambda: autoscaling for lambda aliases (#8883) (d9d9b90)
- readme: include partitions.io cdk board in "getting help" (#9541) (f098014)
- "stack relative exports" flag (#9604) (398f872)
- secretsmanager: Specify secret value at creation (#9594) (07fedff), closes #5810
- cfn-include: allowedValues aren't included when specified by a parameter (#9532) (e7dc82f)
- codedeploy: ServerDeploymentGroup takes AutoScalingGroup instead of IAutoScalingGroup (#9252) (9ff55ae), closes #9175
- docdb:
autoMinorVersionUpgrade
property was not set totrue
by default as stated in the docstring (#9505) (e878f9c) - ec2: Volume grants have an overly complicated API (#9115) (74e8391), closes #9114
- efs: LifecyclePolicy of AFTER_7_DAYS is not applied (#9475) (f78c346), closes #9474
- eks: clusters in a FAILED state are not detected (#9553) (d651948)
- eks: private endpoint access doesn't work with
Vpc.fromLookup
(#9544) (dd0f4cb), closes #9542 #5383 - lambda: cannot create lambda in public subnets (#9468) (b46fdc9)
- pipelines: CodeBuild images have (too) old Node version (#9446) (bd45f34), closes #9070
- pipelines: manual approval of changeset uses wrong ordering (#9508) (5c01da8), closes #9101 #9101
1.57.0 (2020-08-07)
- apigatewayv2: The parameter for the method
bind()
onIHttpRouteIntegration
has changed to accept one of typeHttpRouteIntegrationBindOptions
. The previous parameterIHttpRoute
is now a property inside the new parameter under the keyroute
. - eks: The experimental
eks.Cluster
construct no longer supports settingkubectlEnabled: false
. A temporary drop-in alternative iseks.LegacyCluster
, but we have plans to completely remove support for it in an upcoming release sinceeks.Cluster
has matured and should provide all the needed capabilities. Please comment on aws#9332 if there are use cases that are not supported byeks.Cluster
. - eks: endpoint access is configured to private and public by default instead of just public
lambda.Version
andapigateway.Deployment
resources with auto-generated IDs will be replaced as we fixed a bug which ignored resource dependencies when generating these logical IDs.- core: in unit tests, the
node.path
of constructs within stacks created the root of the tree vianew Stack()
will now have a prefixDefault/
which represents an implicitApp
root.
Related: aws/aws-cdk-rfcs#192
- cloudfront: the property OriginBase.originId has been removed
- apigateway: additionalProperties in RestApi Model supports JsonSchema type (#8848) (5e087e5), closes #8069
- apigateway: configure endpoint types on SpecRestApi (#9068) (7673e48), closes #9060
- apigateway: import API keys (#9155) (e3f6ae3), closes #8367
- appsync: add x-ray parameter to AppSync (#9389) (51921ad)
- cloudfront: add support for Origin Groups (#9360) (11e146c), closes #9109
- cloudfront: Behaviors support cached methods, compression, viewer protocol, and smooth streaming (#9411) (2451fa9), closes #7086 #9107
- core: implicit app for root stacks (#9342) (1d85a9f)
- core: warn if an aspect was added via another aspect (#8639) (9d7bef7)
- eks: default masters role (#9464) (b80c271), closes #9463
- eks: deprecate "kubectlEnabled: false" (#9454) (2791017), closes #9332
- eks: endpoint access customization (#9095) (692864c), closes #5220 /github.com/aws/aws-cdk/pull/9095#issuecomment-665621701
- s3: Introduce S3 Inventory (#9102) (b0f359e)
-
apigatewayv2: cyclic dependency between HttpApi and the lambda function (#9100) (7b29774), closes #9075
-
athena: WorkGroup tags corruption (#9085) (b688913), closes #6936
-
aws-lambda-python: use cp instead of rsync (#9355) (056bcaf), closes #9349
-
cfn-include: no longer concatenate elements of Fn::Join without tokens (#9476) (d038b61)
-
core: can't have multiple CfnRules in a Stack (#9500) (76a7bfd), closes #8251 #9485
-
core: docs for CfnMapping are not clear (#9451) (c1e3c57), closes #9432
-
dynamodb: allow using PhysicalName.GENERATE_IF_NEEDED as the Table name (#9377) (8ab7b10), closes #9374
-
ecs: Scope-down IAM permissions for ECS drain (#9502) (9fbeec3)
-
ecs: Scope-down IAM permissions on Cluster ASG (#9493) (1670289)
-
ecs-patterns: Adds missing option to secure ingress of ALB in Ap… (#9434) (ba1427f)
-
lambda: bundling docker image does not exist for Go runtime (#9465) (7666d9b), closes #9435
-
cloudfront: remove the originId property from OriginBase (#9380) (70b9f63)
-
do not use "synthesize" and "prepare" in the cdk (#9410) (e3ae645), closes /github.com/aws/aws-cdk/pull/9410#issuecomment-668552361
1.56.0 (2020-07-31)
- appsync: appsync prop
schemaDefinition
no longer takes string, instead it is required to configure schema definition mode.
- appsync: schemaDefinition takes param
SchemaDefinition.XXX
to declare how schema will be configured- SchemaDefinition.CODE allows schema definition through CDK
- SchemaDefinition.FILE allows schema definition through schema.graphql file
- cloudfront: Removed origin classes from the aws-cloudfront module.
- aws-cloudfront: Removed S3Origin and HttpOrigin from the aws-cloudfront module. Use the S3Origin and HttpOrigin classes in the aws-cloudfront-origins module instead.
- aws-cloudfront: Renamed Origin to OriginBase.
- cloudfront: the property Origin.domainName has been removed
- cfn-include: add support for the Fn::Sub function (#9275) (2a48495)
- core: make the CfnParameter class mutable (#9365) (860966a), closes #9364
-
certificatemanager: DNS validation for wildcard certificates (#9291) (419278b), closes #9248
-
pipelines: reduce assets IAM policy size (#9333) (88d563f), closes #9316
-
appsync: strongly type schema definition mode (#9283) (b46aa99), closes #9301
-
cloudfront: README updates and notes of breaking changes (#9356) (fbb0418), closes #9326
-
cloudfront: small refactoring of the Origin API (#9281) (cbfdc15), closes #9109
1.55.0 (2020-07-28)
- lambda: the
bundlingDockerImage
prop of aRuntime
now points to the AWS SAM build image (amazon/aws-sam-cli-build-image-<runtime>
) instead of the LambCI build image (lambci/lambda:build-<runtime>
) - appsync:
pipelineConfig
is now an array ofstring
instead ofCfnResolver.PipelineConfigProperty
for usability.
- appsync:
pipelineConfig
parameter takes instring []
- appsync: grant APIs for managing permissions (#8993) (e6dca52), closes #6772 #7871 #7313
- aws-codepipeline: experimental support for ServiceCatalog deploy action (#9214) (950e51f)
- cfn-include: handle resources not in the CloudFormation schema (#9199) (d287525), closes #9197
- cfnspec: cloudformation spec v16.1.0 (#9074) (d1ca04f)
- cfnspec: cloudformation spec v16.1.0 (#9216) (d4b68d3)
- cloudfront: new aws-cloudfront-origins module, support for ALB/NLB origins (#9209) (27ee332), closes #9207
- cloudfront: support Lambda@Edge for behaviors (#9220) (d3e5533), closes #9108
- lambda: official lambda build docker images (#9211) (ae0cf2a), closes #9205
- lambda-python: introducing LambdaPython (#9182) (4cc2834)
- route53-patterns: the route53-patterns module is now stable (#9232) (add23bf)
- appsync: resolver unable to set pipelineConfig (#9093) (dac9bb3), closes #6923
- cloudfront: Set MinimumProtocolVersion and SslSupportMethod when specifying distribution certificate (#9200) (f99c327)
- cloudtrail: missing sns publish permissions (#9239) (b4339a1)
- codepipeline-actions: CodeDeployEcsDeployAction does not properly handle unnamed Artifacts (#9147) (ac612c6), closes #8971
- pipelines: Reduce template size by combining IAM roles and policies (#9243) (1ac6863), closes #9066 #9225 #9237
- rds: SQL Server instance engine uses incorrect major version (#9215) (eee8689), closes #9171
- route53-targets: Add China Partition Support for CloudFrontTarget (#9174) (52a966a)
- stepfunctions-tasks: EvaluateExpression error when key specified multiple times (#8858) (6506327), closes #8856
1.54.0 (2020-07-22)
- autoscaling: enable group metrics collections (#7432) (9867555)
- cloudfront: Custom origins and more origin properties (#9137) (c807ff2), closes #9106
- cloudfront: support origin groups for failover (#8740) (345389f)
- apigatewayv2: Invalid mapping key value (#9141) (c88ad5f)
- core: bundling corrupts stdout (#9202) (fadad22), closes #9186
- kinesis: unable to use CfnParameter valueAsNumber to specify retentionPeriod (#9176) (3749c2a), closes #9038
- lambda-nodejs: permission denied on npm cache (#9167) (4327843)
- pipelines: prevent self-mutation on asset updates (#9183) (05fc934), closes #9080
- pipelines: standardYarnSynth cannot have custom install command (#9180) (fdfed40), closes #9162
1.53.0 (2020-07-20)
- ec2: access a vpc's internet gateway (#7939) (cb5dad8), closes #5327
- lambda-nodejs: connection reuse with aws-sdk (#9083) (44c0400)
1.52.0 (2020-07-18)
- rds: the property 'version' has been changed from string to an engine-specific version class; use VersionClass.of() if you need to create a specific version of an engine from a string
- rds: the property ParameterGroupProps.family has been renamed to engine, and its type changed from string to IEngine
- rds: the property engineVersion in IClusterEngine changed from a string to EngineVersion
- rds: the property engineVersion in IInstanceEngine changed from a string to EngineVersion
- rds: the property parameterGroupFamily in IClusterEngine changed from required to optional
- rds: the property parameterGroupFamily in IInstanceEngine changed from required to optional
- rds: the class ClusterParameterGroup has been removed - use ParameterGroup instead
- rds:
DatabaseProxyProps.secret
=>DatabaseProxyProps.secrets[]
- apigateway:
defaultMethodOptions
,defaultCorsPreflightOptions
anddefaultIntegration
have been removed fromSpecRestApiProps
. These can be specifed directly in the OpenAPI spec or viaaddMethod()
andaddResource()
APIs. - glue: The default location of glue data will be the root of an s3 bucket, instead of
/data
- rds: the class
DatabaseClusterEngine
has been replaced with the interfaceIClusterEngine
in the type ofDatabaseClusterProps.engine
- rds: the class
DatabaseInstanceEngine
has been replaced with the interfaceIInstanceEngine
in the type ofDatabaseInstanceSourceProps.engine
- rds:
DatabaseClusterProps.engineVersion
has been removed; instead, create anIClusterEngine
with a specific version using the static factory methods inDatabaseClusterEngine
- rds:
DatabaseInstanceSourceProps.engineVersion
has been removed; instead, create anIInstanceEngine
with a specific version using the static factory methods inDatabaseInstanceEngine
- rds: the property
majorEngineVersion
can no longer be passed when creating anOptionGroup
; instead, create anIInstanceEngine
with a specific version using the static factory methods inDatabaseInstanceEngine
- aws-stepfunctions-tasks: allow lambda invocations to combine input and function results (#9022) (846a222), closes #8943
- certificatemanager: native CloudFormation DNS validated certificate (#8552) (337279f), closes #5831 #5835 #6081 #6516 #7150 #7941 #7995 #7996 #8282 #8659 #8783
- cfn-include: add support for nested stacks (#8980) (bf12456), closes #8978
- cloudfront: Initial CloudFront redesign (#8982) (d30fa9d)
- codepipeline: add support for a StepFunctions invoke action (#8931) (499776d)
- core: cloudformation resource metadata (#9063) (b0f8729), closes #8788
- core: Duration.plus for adding durations (a127048)
- custom-resources: custom resource provider log retention (#9024) (18c024c)
- glue: default data location for tables is the root of the bucket (#8999) (28949bd), closes #8472
- lambda: codeguru profiling groups (#8852) (8c01420)
- lambda-nodejs: support build args (#9035) (e27658e), closes #8117
- rds: Allow multiple secrets to be passed to an RDS Proxy (#9103) (2ab329f), closes #9098
- rds: introduce type-safe engine versions (#9016) (fab7e28), closes #6532
- rds: the RDS Construct Library is now in Developer Preview (#9119) (92e620c)
- rds: unify ParameterGroup and ClusterParameterGroup (#8959) (17b690b), closes #8932
- stepfunctions-tasks: assign boolean value in DynamoDB from state input (Json path) (#9088) (7b8ef5b), closes #9007
- appsync: erroneous api key created when additional authorization is not configured (#9057) (6f934e9), closes #9054
- cfn-include: fix issues in Conditions handling (#9142) (e8d0776)
- cli: diff against multiple stacks do not always fail if any have a diff (#7690) (85f4a83), closes #7492
- cli: unable to update stacks in UPDATE_ROLLBACK_COMPLETE (#8948) (72ec59b), closes #8779 /github.com/aws/aws-cdk/pull/8779#issuecomment-655258569 #8126 #5151
- core: fix Duration.toIsoString() for millseconds (#9042) (8559117)
- core: use any type for context (#9014) (375335e), closes #8865
- custom-resources: Fix typo in README (#9126) (1e16a7f), closes #9024
- ec2: Remove validation of availabilityZone from Volume (#9082) (8d470b2)
- eks: cluster creation fails due to missing
ec2:DescribeVpcs
permission (#9029) (4a714ee) - lambda-event-sources: use of CfnParameter for maxBatchSize, retryAttempts & parallelizationFactor fails (#9064) (4470e89), closes #9044
- lambda-nodejs: parcel tries to install @babel/core (#9067) (8d4c635), closes #9032
- stepfunctions: Choice state does not allow state input as a condition (#8991) (db9d29b), closes #8990
- stepfunctions: Map state does not render JSON paths from state input (#9008) (767da12), closes #8992
- apigateway: remove default properties from SpecRestApi (#9099) (06842d6), closes #8347 /github.com/aws/aws-cdk/issues/8347#issuecomment-651900511 /github.com/aws/aws-cdk/issues/8347#issuecomment-652779763
- rds: change the way Engines are modeled (#8686) (63cc1b4), closes #2213 #2512 #4150 #5126 #7072
1.51.0 (2020-07-09)
- cloudfront: Add connectionAttempts, connectionTimeout in origin configuration (#8573) (84b923f), closes #8572
- Developer Preview of CDK Pipelines (#8868) (d2609bd), closes aws/aws-cdk-rfcs#49
- appmesh: Update enums for appmesh (#8716) (64e3d88)
- cli: Python sample app template does not follow PEP8 (#8936) (0717919)
- codepipeline: set correct header assignment in S3 deployment cache control (#8864) (be1094b), closes #8774
- ec2: VpcEndpoint AZ lookup fails for AWS services (#8386) (54e5c36)
- iam: cannot import service role with a principal in its path (#8692) (55eb7d7), closes #8691
1.50.0 (2020-07-07)
- eks:
version
is now a mandatory property
- apigatewayv2: http api - custom domain & stage mapping (#8027) (5e43348), closes #7847
- autoscaling: allow setting autoscaling group name (#8853) (38d8414)
- cfn-include: add support for retrieving Output objects from the template (#8821) (0b09bbb), closes #8820
- custom-resources: include handler log group in error messages (#8839) (8e055d4)
- eks: document how to add a manifest from url (#8802) (b5acfaa), closes #8340
- eks: support cluster version pinning (#8889) (a732d14), closes #7762
- lambda: efs filesystems (#8602) (8529387), closes #8595
- lambda-nodejs: allow jsx and tsx entry files (#8892) (4ba20fd)
- s3-deployment: prune - keep missing files on destination bucket (#8263) (57914c7), closes #953
- stepfunctions: stepfunctions and stepfunctions-tasks modules are now stable! (#8912) (ae2378c), closes #6489
- stepfunctions-tasks: task for invoking a Step Functions activity worker (#8840) (021533c)
- apigateway: Lambda integration for imported functions (#8870) (8420f96), closes #8869
- config: cannot scope a custom rule without configurationChanges on (#8738) (841060d)
- core: asset bundling fails with BuildKit (#8911) (c1d4e0f)
- eks: incorrect enableDockerBridge value when enabled (#8895) (ea0552a), closes #5786
- eks: kubectl resources fail before fargate profiles are created (#8859) (4fad9bc), closes #8854 #8574
- eks: missing nodegroup identity in aws-auth after awsAuth.addMasterRole (#8901) (a9c66f7), closes #7595
- lambda-nodejs: maximum call stack size exceeded with relative entry file path (#8907) (c585e18), closes #8902
- rds: proxy for db cluster fails with model validation error (#8896) (7d47cfb), closes #8885 #8476
1.49.1 (2020-07-02)
1.49.0 (2020-07-02)
- core: improved docker bundling performance on mac os (#8766) (99c12f5), closes #8544
- eks: document how to define dependencies for resources and charts (#8780) (e38b692), closes #7592 #6806
- rds: database proxy (#8476) (e0e5e03), closes #8475
- apigateway: permission error in lambda integration when function name is modified (#8813) (f1b37ef), closes #5306
- codebuild: project didn't have permissions to retrieve secret of image with credentials (#8845) (4326f24)
- elasticloadbalancingv2: dualstack ALB missing default IPv6 ingress rule (#8798) (66f9634), closes #7043
- lambda-nodejs: parcel build cannot find target (#8838) (ce7a015), closes #8837
1.48.0 (2020-07-01)
- stepfunctions-tasks:
containerName
is not supported as an override anymore and has been replaced bycontainerDefinition
- stepfunctions-tasks:
EvaluateExpression
is now a construct representing a task state rather than an embedded property calledtask
- backup: existing vaults that use a generated name will be replaced but
existing recovery points won't be lost. The default vault removal policy is
RETAIN
and if it was set toDESTROY
the deployment will fail because vault with recovery points cannot be deleted.
- autoscaling: bring your own security group (3698f47)
- aws-cloudwatch: add comparison operators (#8812) (7003a09), closes #8808
- cfn-include: add support for YAML templates (#8746) (293a937), closes #8745
- cfnspec: cloudformation spec v16.0.0 (#8807) (4ce27f4)
- cli: support multiple verbosity levels (#8749) (fa4196b)
- ec2:
Volume
construct (#8219) (7490dee) - ec2: add 6xlarge InstanceSize (#8701) (4917c04)
- ec2: natGateways=0 disables private subnets (#8817) (7f432ff), closes #4814
- efs: Filesystem.addAccessPoint() (#8737) (127547a)
- lambda-nodejs: external and install modules (#8681) (401594e), closes #6323 #7912
- secretsmanager: add grantUpdate method (#8600) (4e72d1e), closes #8491
- stepfunctions: class for working with Json paths to retrieve state machine data and context (#8647) (67978a1)
- stepfunctions-tasks: evaluate expression as a task construct (#8555) (83fd2ae)
- stepfunctions-tasks: task construct to call
RunJob
on ECS (#8451) (13deb26), closes #8610
- apigateway: error defining lambda integration on imported RestApi (#8785) (05aaf42), closes #8679
- backup: correctly validate Vault name (#8689) (07b330c)
- backup: vault name may exceed 50 characters (#8653) (d09c121), closes #8627
- batch: Invalid spot fleet service role (#8325) (034bc35), closes #6706
- cli: post install warnings are not clearly visible when running cdk init (#8723) (2662db3), closes #8720
- cli: unable to use "legacy" bootstrap with --public-access-block-configuration=false (#8755) (88f8e1e), closes #8728
- cognito: cannot add multiple route53 targets to the same user pool domain (#8622) (32b54a5), closes #8603
- core: bundling directory access permission is too restrictive (#8767) (1842168), closes #8757
- eks: Helm chart timeout expects duration (#8773) (d1c2ef2), closes #8718
- elbv2: Add missing accounts to ELBv2 Log Delivery. (#8715) (8914899)
- rewrite: script ignores list of files (#8777) (bb514c1)
- route53-targets: A/AAAA Alias Record to ELB cannot resolve IPv6 addresses (#8747) (87e2651), closes #6271
- s3-notifications: broken permissions query in
LambdaDestination
(#8741) (10bd8e4), closes #8538
1.47.1 (2020-06-30)
1.47.0 (2020-06-24)
- stepfunctions-tasks:
Dynamo*
tasks no longer implementIStepFunctionsTask
and have been replaced by constructs that can be instantiated directly. See README for examples
- cfn-include: add support for retrieving parameter objects (#8658) (52dc123), closes #8657
- cfn-include: support logical id overrides (#8529) (d9c4f5e), closes #7375
- cloudwatch: CompositeAlarm (#8498) (1e6d293)
- efs: access point (#8631) (dde0ef5)
- stepfunctions: grant APIs for state machine construct (#8486) (fe71364), closes #5933
- stepfunctions-tasks: task constructs to call DynamoDB APIs (#8466) (a7cb3b7), closes #8108
- appsync: Not to throw an Error even if 'additionalAuthorizationModes' is undefined (#8673) (6b5d77b), closes #8666 #8668
- cli: cannot change policies or trust after initial bootstrap (#8677) (6e6b23e), closes #6581
- cli: crash on tiny reported terminal width (#8675) (a186c24), closes #8667
- toolkit: CLI tool fails on CloudFormation Throttling (#8711) (e512a40), closes #5637
1.46.0 (2020-06-19)
- stepfunctions-tasks: constructs for
EMR*
have been introduced to replace previous implementation which implementedIStepFUnctionsTask
. - stepfunctions-tasks:
sizeInGB
property inVolumeSpecification
has been renamed tovolumeSize
and is of typecdk.Size
as we want to enable specifying any unit - stepfunctions-tasks:
ebsRootVolumeSize
property inEmrCreateCluster
is now of typecdk.Size
as we want to enable specifying any unit - stepfunctions-tasks:
Tags
inEmrCreateCluster
type has changed fromcdk.CfnTag[]
to a map of string to string as we do not want to leakCfn
types - rds: the attribute securityGroupId has been removed from IDatabaseCluster, use cluster.connections.securityGroups instead
- rds: DatabaseClusterAttributes.securityGroup has been changed to securityGroups, and its type to an array
- rds: InstanceProps.securityGroup has been changed to securityGroups, and its type to an array
- rds: the property
engine
can no longer be passed when creating a DatabaseInstanceReadReplica - rds: the property 'instanceClass' in DatabaseInstanceNewProps has been renamed to 'instanceType'
- appsync: Changes way of auth config even for existing supported methods viz., User Pools and API Key.
- amplify: add "404 (Rewrite)" RedirectStatus (#7944) (21dda30)
- amplify: support for GitLab source code provider (#8353) (f10da03)
- apigateway: define Resources on imported RestApi (#8270) (21a1de3), closes #7391 #1477 #7391 #8347
- appsync: add Construct for AppSync HTTP DataSource (#8009) (0592b36), closes #8007
- appsync: enhances and completes auth config (#7878) (6d7ce65)
- autoscaling: add instanceMonitoring option (#8213) (6e23ae7), closes #8212
- awslint: publish as an external module (#8558) (378939c)
- cfn-include: add support for all remaining CloudFormation functions except Fn::Sub (#8591) (8d699c5), closes #8590
- cfn-include: add support for CreationPolicy and UpdatePolicy resource attributes (#8457) (2fc5372)
- cfnspec: cloudformation spec v15.1.0 (#8547) (50f4a21)
- cli: allow disabling of Public Access Block Configuration on bootstrap Bucket (#8171) (33f4746)
- cli: new deployment monitoring (#8165) (f066c52)
- cloudtrail: cloudtrail module is now stable! (#8651) (835f375)
- cloudwatch: liveData in GraphWidget (#8579) (831092e), closes #8376
- cognito: user pool - account recovery (#8531) (1112abb), closes #8502
- cognito: user pool - identity provider attribute mapping (#8445) (1bd513b)
- cognito: user pool client - disable OAuth easily (#8496) (f69cdfd), closes #8429
- logs: MetricFilter exposes extracted Metric object (#8556) (a35a53b), closes #1353
- upgrade JSII to version 1.7.0 (#8632) (1d26dbd)
- cognito: user pools are now in developer preview (#8522) (4fcad9a)
- core,s3-assets: custom bundling docker command (#8481) (2a6d90c), closes #8460
- ec2: Add Step Functions interface endpoint (#8512) (d21231f)
- efs: removal policy on FileSystem (#8593) (b17863b)
- eks: expose cluster security group and encryption configuration (#8317) (03e85eb), closes #8276 #8276 #8236
- eks: timeout option helm charts (#8338) (d1403cc), closes #8215
- globalaccelerator: support Accelerator, Listener and EndpointGroup (#8221) (e4e8270), closes #5527
- kms: import an Alias by name (#8299) (4611e69), closes #5953
- lambda: configurable retries for log retention custom resource (#8258) (e17a49a), closes #8257
- rds: multiple security groups in Cluster and Instance (#8510) (31925c1)
- sns-subscriptions: Add support for SMS subscriptions (#8582) (82d8f11), closes #7882
- apigateway: deployment fails when domain name has uppercase letters (#8456) (1e6a8e9), closes #8428
- appsync: don't mix the json result with setting variables (#8290) (7ca74e0), closes #7026
- autoscaling: can't configure notificationTypes (#8294) (01ef1ca)
- cli: bootstrapping cannot be retried (#8577) (cad6649)
- cloudtrail: Invalid arn partition for GovCloud (#8248) (5189170), closes #8247
- core: asset bundling runs as root (#8492) (6df546f), closes #8489
- core: asset staging custom hash generates invalid file names (#8521) (4521ae3), closes #8513
- core: cannot use container assets with new-style synthesis (#8575) (357d5f7), closes #8540
- core: incorrect temp directory when bundling assets (#8469) (9dc2e04), closes #8465
- core: s3-deployments don't work with new bootstrap stack (#8578) (b2006c3), closes #8541
- ec2: can't set natGateways=0 using reserved private subnets (#8407) (d7bf724), closes #8203
- eks: can't define a cluster with multiple Fargate profiles (#8374) (1e78a68), closes #6084
- eks: fargate profile deployment fails with missing iam:PassRole (#8548) (d6190f2), closes #8546
- eks: fargate profile role not added to aws-auth by the cdk (#8447) (f656ea7), closes #7981
- elbv2: allow non-TCP protocols in NLB TargetGroup (#8525) (387c1a8)
- rds: 'engine' is no longer required in DatabaseInstanceReadReplica (#8509) (86d84e6)
- rds: rename 'instanceClass' in DatabaseInstance to 'instanceType' (#8507) (e35cb1a)
- secretsmanager: rotation function name can exceed 64 chars (#7896) (24e474b), closes #7885, #8442
1.45.0 (2020-06-09)
- stepfunctions-tasks: constructs for
SageMakerCreateTrainingJob
andSageMakerCreateTransformJob
replace previous implementation that implementedIStepFunctionsTask
. - stepfunctions-tasks:
volumeSizeInGB
property inResourceConfig
for SageMaker tasks are now typecore.Size
- stepfunctions-tasks:
maxPayload
property inSagemakerTransformProps
is now typecore.Size
- stepfunctions-tasks:
volumeKmsKeyId
property inSageMakerCreateTrainingJob
is nowvolumeEncryptionKey
- cognito:
requiredAttributes
onUserPool
construct is now replaced withstandardAttributes
with a slightly modified signature. - rds: DatabaseClusterProps.kmsKey has been renamed to storageEncryptionKey
- rds: DatabaseInstanceNewProps.performanceInsightKmsKey has been renamed to performanceInsightEncryptionKey
- rds: DatabaseInstanceSourceProps.secretKmsKey has been renamed to masterUserPasswordEncryptionKey
- rds: DatabaseInstanceProps.kmsKey has been renamed to storageEncryptionKey
- rds: DatabaseInstanceReadReplicaProps.kmsKey has been renamed to storageEncryptionKey
- rds: Login.kmsKey has been renamed to encryptionKey
- assert: more powerful matchers (#8444) (ed6f763)
- cloud9: support AWS CodeCommit repository clone on launch (#8205) (4781f94), closes #8204
- codestar: support the GitHubRepository resource (#8209) (02ddab8), closes #8210
- cognito: allow mutable attributes for requiredAttributes (#7754) (1fabd98)
- core,s3-assets,lambda: custom asset bundling (#7898) (888b412)
- rds: rename 'kmsKey' properties to 'encryptionKey' (#8324) (4eefbbe)
- secretsmanager: deletionPolicy for secretsmanager (#8188) (f6fe36a), closes #6527
- secretsmanager: Secret.grantRead() also gives DescribeSecret permissions (#8409) (f44ae60), closes #6444 #7953
- stepfunctions-tasks: task constructs for creating and transforming SageMaker jobs (#8391) (480d4c0)
- apigateway: authorizerUri does not resolve to the correct partition (#8152) (f455273), closes #8098
- apigateway: methodArn not replacing path parameters with asterisks (#8206) (8fc3751), closes #8036
- aws-s3-deployment: Set proper s-maxage Cache Control header (#8434) (8d5b801), closes #6292
- cognito: error when using parameter for
domainPrefix
(#8399) (681b3bb), closes #8314 - dynamodb: old global table replicas cannot be deleted (#8224) (00884c7), closes #7189
- elbv2: addAction ignores conditions (#8385) (729cc0b), closes #8328
- elbv2: missing permission to write NLB access logs to S3 bucket (#8114) (d6a1265), closes #8113
1.44.0 (2020-06-04)
1.43.0 (2020-06-03)
- rds: the default retention policy for RDS Cluster and DbInstance is now 'Snapshot'
- cognito: OAuth flows
authorizationCodeGrant
andimplicitCodeGrant
inUserPoolClient
are enabled by default. - cognito:
callbackUrl
property inUserPoolClient
is now optional and has a default. - cognito: All OAuth scopes in a
UserPoolClient
are now enabled by default.
- cfn-include: add support for Conditions (#8144) (33212d2)
- cognito: addDomain() on an imported user pool (#8123) (49c9f99)
- cognito: sign in url for a UserPoolDomain (#8155) (e942936)
- cognito: user pool identity provider with support for Facebook & Amazon (#8134) (1ad919f)
- dynamodb: allow providing indexes when importing a Table (#8245) (9ee61eb), closes #6392
- events-targets: kinesis stream as event rule target (#8176) (21ebc2d), closes #2997
- lambda-nodejs: allow passing env vars to container (#8169) (1755cf2), closes #8031
- rds: change the default retention policy of Cluster and DB Instance to Snapshot (#8023) (2d83328), closes #3298
- redshift: add initial L2 Redshift construct (#5730) (703f0fa), closes #5711
- s3: supports RemovalPolicy for BucketPolicy (#8158) (cb71f34), closes #7415
- stepfunctions-tasks: start a nested state machine execution as a construct (#8178) (3000dd5)
- stepfunctions-tasks: task state construct to submit a job to AWS Batch (#8115) (bc41cd5)
- apigateway: deployment is not updated when OpenAPI definition is updated (#8207) (d28c947), closes #8159
- app-delivery: could not use PipelineDeployStackAction more than once in a Stage (#8217) (9a54447), closes #3984 #8183
- cli: termination protection not updated when change set has no changes (#8275) (29d3145)
- codepipeline: allow multiple CodeCommit source actions using events (#8018) (103c144), closes #7802
- codepipeline: correctly handle CODEBUILD_CLONE_REF in BitBucket source (#7107) (ac001b8)
- codepipeline: unhelpful artifact validation messages (#8256) (2a2406e)
- core: CFN version and description template sections were merged incorrectly (#8251) (b7e328d), closes #8151
- lambda:
SingletonFunction.grantInvoke()
API fails with error 'No child with id' (#8296) (a8b1815), closes #8240 - rds: cannot delete a stack with DbCluster set to 'Retain' (#8110) (c2e534e), closes #5282
- sqs: unable to use CfnParameter 'valueAsNumber' to specify queue properties (#8252) (8ec405f), closes #7126
1.42.1 (2020-06-01)
- lambda:
SingletonFunction.grantInvoke()
API fails with error 'No child with id' (#8296) (b4e264c), closes #8240
1.42.0 (2020-05-27)
- cloudtrail: API signatures of
addS3EventSelectors
andaddLambdaEventSelectors
have changed. Their parameters are now strongly typed to acceptIBucket
andIFunction
respectively. - cloudtrail:
addS3EventSelectors
andaddLambdaEventSelectors
can no longer be used to configure all S3 data events or all Lambda data events. Two new APIslogAllS3DataEvents()
andlogAllLambdaDataEvents()
have been introduced to achieve this. - cloudtrail: The property
snsTopic
is now of the typeITopic
.
- cfnspec: cloudformation spec v14.4.0 (#8195) (99e7330)
- cloudtrail: create cloudwatch event without needing to create a Trail (#8076) (0567a23), closes #6716
- cloudtrail: user specified log group (#8079) (0a3785b), closes #6162
- codeguruprofiler: ProfilingGroup (#7895) (995088a)
- codepipeline: use a special bootstrapless synthesizer for cross-region support Stacks (#8091) (575f1db), closes #8082
- cognito: user pool - case sensitivity for sign in (460394f), closes #7988 #7235
- core: CfnJson enables intrinsics in hash keys (#8099) (195cd40), closes #8084
- eks: improve security using IRSA conditions (#8084) (35a01a0)
- elbv2: Supports new types of listener rule conditions (#7848) (3d30ffa), closes #3888
- secretsmanager: adds grantWrite to Secret (#7858) (3fed84b)
- sns: add support for subscription DLQ in SNS (383cdb8)
- stepfunctions: new service integration classes for Lambda, SNS, and SQS (#7946) (c038848), closes #6715 #6489
- stepfunctions: support paths in Pass state (#8070) (86eac6a), closes #7181
- stepfunctions-tasks: task for starting a job run in AWS Glue (#8143) (a721e67)
- apigateway: contextAccountId in AccessLogField incorrectly resolves to requestId (7b89e80), closes #7952 #7951
- autoscaling: add noDevice as a volume type (#7253) (751958b), closes #7242
- aws-eks: kubectlEnabled: false conflicts with addNodegroup (#8119) (8610889), closes #7993
- cli: paper cuts (#8164) (af2ea60)
- dynamodb: the maximum number of nonKeyAttributes is 100, not 20 (#8186) (0393528), closes #8095
- eks: unable to add multiple service accounts (#8122) (524440c)
- events: cannot use the same target account for 2 cross-account event sources (#8068) (395c07c), closes #8010
- lambda-nodejs: build fails on Windows (#8140) (04490b1), closes #8107
- cloudtrail: better typed event selector apis (#8097) (0028778)
1.41.0 (2020-05-21)
- cloudtrail: create cloudwatch event without needing to create a Trail (#8076) (0567a23), closes #6716
- cognito: user pool - case sensitivity for sign in (460394f), closes #7988 #7235
- core: CfnJson enables intrinsics in hash keys (#8099) (195cd40), closes #8084
- secretsmanager: adds grantWrite to Secret (#7858) (3fed84b)
- sns: add support for subscription DLQ in SNS (383cdb8)
- stepfunctions: new service integration classes for Lambda, SNS, and SQS (#7946) (c038848), closes #6715 #6489
- apigateway: contextAccountId in AccessLogField incorrectly resolves to requestId (7b89e80), closes #7952 #7951
- autoscaling: add noDevice as a volume type (#7253) (751958b), closes #7242
1.40.0 (2020-05-20)
- add support for Gitpod workspaces (20d5511)
- autoscaling: support max instance lifetime (d126c46), closes #7758
- cfn-include: add support for the DependsOn attribute (613df1b)
- docdb: high level constrcuts for db clusters and instances (#6511) (a376dd3)
- eks: IAM roles for service accounts (3f0d2c8), closes #6062 #5388 #3949
- elbv2: full Action support (2939105), closes #2563 #6310 #6308
- region-info: add information for us-gov, us-iso, and us-isob regions (afe0b00), closes #7876 #4669
- s3-asset: add httpUrl and s3ObjectUrl (eeff393), closes #7509 #7221
1.39.0 (2020-05-15)
- cognito: An invalid template placeholder has been removed from the default verification email body in a user pool.
- apigateway: create RestApi from an OpenAPI spec (31014ca), closes #4421
- apigateway: import existing VpcLink (#7811) (7b42f7f), closes #4178
- initial version of an improved CloudFormation template include experience (0132251), closes #3537
- apigateway: specify API key name and value in
addApiKey()
(#7714) (e93da2c), closes #3233 #7767 - apigatewayv2: HTTP API - configure CORS preflight (#7923) (9f35104), closes #7922
- cognito: user pool client - prevent user existence errors (c7f15f2), closes #7406
- dynamodb: support for Customer-managed CMK (#7425) (ff8219b), closes #7142
- ec2: lookup available AZs for Interface Endpoints (9fa3221)
- events-targets: support multiple security groups for an ECS task (#7857) (c6504e6), closes #3312
- init/java: model CDK version in property in Maven POMs (#7931) (ce5b8fb), closes #7862
- cli: cdk bootstrap cannot be used without supplying the --app argument (#7970) (540a7e6), closes #7510 #7906
- cognito: invalid default for verification email (#7790) (cb3c184), closes #7597
- core: consistent sorting of resource tags (0105efd), closes #7707
- core: hangs when used with yarn PnP (8579100), closes yarnpkg/berry#1298
- elbv2: race condition for Lambda backends (1819a6b), closes #4663 #7236
- iot1click: incorrect type for Project.deviceTemplates (#8000) (338ef92), closes #8001
- lambda: SingletonFunction ignores explicit declared dependencies (#7997) (91f913f), closes #7568
- stepfunctions-tasks: EvaluateExpression is limited to expressions that contain state paths (#7774) (97f4f01), closes #7655
1.38.0 (2020-05-08)
- cloudfront: support geo restrictions for cloudfront distribution (#7345) (cf25ba0), closes #3456
- cloudwatch: legend positions in GraphWidgets (ada0de1), closes #3625
- codebuild: add support for test reports (4befefc), closes #7367
- core: custom resource provider helper (4a76973)
- ec2: EBS volume configuration for BastionHostLinux (207a8ec), closes #6945
- ecs: support multiple security groups when creating an ecs service (#7850) (456c469)
- iam: openid connect providers (20621ac), closes #5388 #3949 #6308
- add an example construct package (#7748) (2223584)
- lambda-nodejs: run parcel in a docker container (d86e500), closes #7169
- cloudformation spec v14.1.0 (#7822) (e133027)
- s3: new
s3UrlForObject
method onIBucket
(#7508) (8fe4015), closes #7507 - stepfunctions: custom state as an escape hatch (c498f60)
- assets: invalid fingerprint when 'exclude' captures root directory name (#7719) (a5c06a3), closes #7718
- aws-batch: gpuCount was ignored in JobDefinition creation (#7587) (0f1bf23)
- cli: parameter value reuse is not configurable (44310c9), closes #7041
- core: docs refer to "createNamingScheme" which was renamed to "allocateLogicalId" (#7840) (d79595d), closes #7527
- ecs: update minHealthyPercent constrain for ec2service using daemon strategy (#7814) (19e3fd8)
- ecs: using secret JSON field with fargate task does not fail (#7317) (cb03a60), closes #7272
- eks: "vendor response doesn't contain attribute" when updating version (#7830) (8cabae0), closes #7526 #7794
- s3: grantDelete with KMS SSE (#7528) (c6d1a21), closes #4380
- secretsmanager: add kms policy to allow secret to use kms key (5460717)
1.37.0 (2020-05-05)
- amplify:
mapSubDomain()
called with an empty string forprefix
now maps to the domain root.
- amplify: add SPA redirect custom rule (#7320) (0ef9883)
- apigatewayv2: http api (#6432) (f3219c3), closes #5301
- appsync: export configured API key (#7380) (fa8c13c)
- aws-fsx: L2 construct for FSx for Lustre (#6653) (7363912)
- cfnspec: cloudformation spec v14.0.0 (#7664) (fa21274)
- cloudwatch: LogGroup Query Widget (1275952), closes #3681
- codebuild: allow taking the artifact name from the buildspec (f7d3cd6), closes #5955
- core: move all types from "assets" to "core" (#7708) (4a84c96)
- core: move all types from "aws-cloudformation" to "core" (#7736) (40fa93a), closes #4896 #7035 #7034
- core: stack termination protection (#7610) (7ed60b8), closes #1682
- ecr: support imageScanOnPush when creating the repository (9df5486), closes #7471
- amplify: cannot map branch to domain root (#7621) (da7c508), closes #7590
- cdk-assets: assets archiving corruption (#7653) (f8eddb8), closes #6925
- cli: cdk deploy cannot update stacks in REVIEW_IN_PROGRESS status (#7731) (a52b3e3), closes #6674
- cli: CLI can't be used in Lambda Function (0e96415), closes #7530
- cli: CLI ignores profile in cdk.json (#7398) (6784dc3), closes #3007
- cloudwatch: Alarm can't use
MathExpression
without submetrics (b59aed0), closes #7155 - ec2:
new Instance
fails in lookup Vpc (3161de8), closes #7580 - ec2:
Vpc.fromLookup()
does not work in unit tests (e869a0d), closes #6045 - ec2: can't add VPN connections to a VPC progressively (9498e05)
- ec2: default gateway endpoint fails without private subnets (c475783), closes #7619
- ec2: NAT instances don't route ICMP or UDP (a93534f), closes #7459
- eks: impossible to define multiple spot capacities (be6666b), closes #7136 #7524
- eks: missing required permission for fargate profile (723813f), closes #7614
- eks: ssm path for amazon linux 2 gpu ami is invalid (#7672) (5861d18), closes #6891
- iam: principal with implicit conditions overwrite each other (e72c353), closes #3227
- logs: grants don't work on imported LogGroups (5a1a929), closes #7096
- rds: Cluster does not work with imported VPC (#7666) (95c66a7), closes #6115
1.36.1 (2020-04-29)
1.36.0 (2020-04-28)
- stepfunctions-tasks:
payload
in RunLambdaTask is now of typeTaskInput
and has a default of the state input instead of the empty object. You can migrate your current assignment to payload by supplying it to theTaskInput.fromObject()
API
- apigateway: gateway responses (#7441) (b0a65c1), closes #7071
- aws-ecs: add support for IPC and PID Mode for EC2 Task Definitions (1ee629e), closes #7186
- apigateway: authorizer is not attached to RestApi across projects (#7596) (1423c53), closes #7377
- cli: can't bootstrap environment not in app (9566cca)
- cli: context keys specified in
cdk.json
get moved tocdk.context.json
(022eb66), closes #7399 - dynamodb: grant() is not available on ITable (#7618) (3b0a397), closes #7473
- dynamodb: grantXxx() does not grant in replication regions (98429e0), closes #7362
- eks: version update completes prematurely (#7526) (307c8b0), closes #7457
- stepfunctions-tasks: cannot specify part of execution data or task context as input to the
RunLambda
service integration (#7428) (a1d9884), closes #7371
1.35.0 (2020-04-23)
- assets:
cdk deploy
now needss3:ListBucket
instead ofs3:HeadObject
. - efs: Exported types no longer have the
Efs
prefix. - efs:
provisionedThroughputInMibps
property is renamed toprovisionedThroughputPerSecond
and has the typeSize
. - efs: The property
fileSystemID
is now renamed tofileSystemId
in the now namedFileSystemAttributes
(previously,EfsFileSystemAttributes
). - efs:
LifecyclePolicyProperty
is now renamed toLifecyclePolicy
.
- backup: Vault, Plan and Selection (#7074) (c8aa92d)
- cfnspec: cloudformation spec v13.0.0 (#7504) (6903869)
- cloudtrail: Lambda Function data events (4a70138)
- cognito: user pool domain (#7224) (feadd6c), closes #6787
- stepfunctions: retrieve all reachable states from a given state in a state machine definition (#7324) (ac3b330), closes #7256
- assets: infrequent "ValidationError: S3 error: Access Denied" (#7556) (00c9deb), closes #6430 #7553
- route53: cannot add tags to
HostedZone
(#7531) (2729804), closes #7445 - efs: drop Efs prefix from all exported types (#7481) (ddd47cd)
1.34.1 (2020-04-22)
1.34.0 (2020-04-21)
- glue:
DateFormat
constant names are now UPPERCASE (JSON, AVRO, LOGSTASH, ...
)
- cognito: add mutable property in cognito user pool custom attribute (#7190) (16e85df), closes #7011 #7011 #7011 #7011
- ecs: add Fargate 1.4.0 support (#7267) (5c83a46)
- cloudwatch: can't override Alarm statistic with percentile (d5918c3), closes #7341
- glue: DataFormat constants are not visible in non-JS languages (#7458) (e5d4c31)
- monocdk: assert package has incorrect imports (#7404) (825c9e1)
- stepfunctions-tasks: encryptionKey is Key instead of IKey (#7429) (f1e2c67)
1.33.1 (2020-04-19)
1.33.0 (2020-04-17)
- kinesis:
grantRead()
API no longer provides permissions tokinesis:DescribeStream
as it provides permissions tokinesis:DescribeStreamSummary
andkinesis:SubscribeToShard
in it's place. If it's still desired, it can be added through thegrant()
API on the stream. - kinesis:
grantWrite()
API no longer hasDescribeStream
permissions as it has been replaced byListShards
for shard discovery
- cfnspec: cloudformation spec v12.2.0 (#7248) (1475d5a)
- Support AppSync DataSource type: NONE (f35a4db)
- cfnspec: cloudformation spec v12.3.0 (#7359) (a80918f)
- ec2: expose blockDevices in CommonAutoScalingGroupProps (#7291) (5fe4480)
- ec2: filtering selected subnets by availability zone (2d3e612)
- eks: support a new option to create
bottlerocket
capacity. (e9f691f), closes #7268 - kinesis:
grantRead
now allows theListShards
action andgrant
is now public (#6141) (563fba4), closes #3357 - kinesis: add
grant
API to IStream to add permissions to a Stream (#7354) (c223406) - kinesis: the
aws-kinesis
module is now stable (#7349) (4ab3ffa), closes #5874 - update "constructs" to 3.x (#7408) (8f8d20f), closes #6978
- appsync: Don't create serviceRole for datasource type NONE (6d1cb11), closes #7360
- cli: --app command does not work when executing a command without arguments (#7249) (994414c), closes #6930
- cli: parameter values with multiple
=
symbols get truncated (#7226) (b7ddf5b), closes #7246 - cloudwatch: Alarm annotation ignores datapointsToAlarm (#7202) (92fb853), closes #7152
- cloudwatch: Dashboard Spacer doesn't require empty props object (ca2f923)
- new IAM Condition type is unusable in Java (#7270) (ffb2e1e)
- core: unable to reference resources across multiple nested stacks (#7187) (000f0c2), closes #6473 #7059 #7059 #5888
- ec2: can reference VpcEndpointService id and service name (1007a22)
- efs: support tagging + filesystem naming (3dd8058)
- eks: missing permissions to add and remove tags when creating EKS cluster resource (#7302) (b14172d), closes #7163
- eks: unable to create KubernetesResources in another stack (#7322) (54129c8), closes #7231
- elbv2: imported LoadBalancer ignores pathPatterns prop (8ed2e0c), closes #7303
- route53-patterns: HttpsRedirect redirects to index.html (278fe29), closes /github.com/aws/aws-cdk/issues/5700#issuecomment-614112813 /github.com/aws/aws-cdk/issues/5700#issuecomment-614816819
- s3: allow accessLogsPrefix without accessLogsBucket (#6709) (4c199f6), closes #6599
1.32.2 (2020-04-10)
- cli: profile AssumeRole credentials don't work via proxy (#7292)
1.32.1 (2020-04-09)
1.32.0 (2020-04-07)
- cognito:
UserPoolClient
construct no longer has the propertyuserPoolClientClientSecret
. The functionality to retrieve the client secret never existed in CloudFormation, so this property was not working in the first place. - cognito: The
userPoolClientName
property on theUserPoolClient
construct will throw an error if client name was not configured on theUserPoolClient
during initialization. This property was previously incorrectly configured and was returning a not-implemented message from CloudFormation every time. - amplify: use the
sourceCodeProvider
prop to connect your app to a source code provider. The propsrepository
,accessToken
andoauthToken
do not exist anymore inAppProps
. - kinesis:
retentionPeriodHours
is nowretentionPeriod
and of typeDuration
- eks:
Cluster
now creates a default managed nodegroup as its default capacity. Set the new cluster propertydefaultCapacityType
toDefaultCapacityType.EC2
to preserveEC2
as its default capacity. - cognito:
add*Trigger()
methods to configure lambda triggers has now been replaced by a singleaddTrigger()
method. - cognito:
addTrigger()
method will fail if a trigger was already configured for that user pool operation. - iam: methods accepting iam conditions now requires passing
{[key: string]: any}
instead of plainany
. You were always supposed to pass a map/dictionary in these locations, but the type system didn't enforce it. It now does.
- amplify: source code providers (#6921) (3dc3d75), closes #6818
- apigateway: access logging (#6559) (7484935), closes #6501
- apigateway: auto-create RequestValidator from options to addMethod() (#6780) (573464d), closes #6193
- applicationautoscaling: add PredefinedMetric for Lambda provisioned concurrency autoscaling (#6394) (45b68d5), closes #6369
- aws-codebuild: add from codebuild image option (#7117) (de8e670), closes #2606
- aws-codebuild: add ProjectFileSystemLocation property to codebuild (#6539) (2195cc2), closes #6533
- bootstrap: require
aws:SecureTransport
for staging bucket (#7192) (ed106ea) - cfnspec: cloudformation spec v11.6.0 (#6995) (9a552c2)
- cli: write stack outputs to a file (#7020) (75d5ee9), closes #1773
- codebuild: expose aws/windows/base:2.0 image (#7004) (9374642)
- codebuild: support AL2 3.0 & Standard 4.0 (#6968) (3254c5d)
- cognito: import an existing user pool client (#7091) (abc2144)
- cognito: user pool - OAuth2.0 authentication (#7141) (09852d0)
- core:
Size
unit representing digital information quantity (#6940) (22a560d) - ec2: EFS interface VPC endpoint (#6961) (6e61889), closes #6960
- ecs: secret JSON key for environment variables (#6435) (97959f6), closes #5665
- eks: managed nodegroup support (#6759) (74169bf), closes #5086
- elbv2: health checks for Lambda targets (#7023) (cf8c831)
- iam: add arbitrary conditions to existing principals (#7015) (64bad91), closes #5855
- kinesis: stream encryption with the Kinesis master key (#7057) (bded683), closes #751
- kinesis: streams are encrypted by default (#7102) (d6ecf44)
- lambda: .net core 3.1 runtime (#7105) (ca2585c)
- lambda: currentVersion, version.addAlias() (#6771) (c94ce62), closes #6750 #5334
- lambda: ruby 2.7 runtime (#7024) (4994e0d), closes #6979
- cloudformation spec v12.0.0 (#7113) (1956ded)
- Support passing AssetOptions (#7099) (3925d9a)
- rds: aurora - iam role to import and export data from s3 (#6611) (aa60f89), closes #6610
- rds: database instance - auto scale allocated storage (#6788) (22ffae3), closes #6666
- stepfunctions: execution history logging options (#6933) (adb6954), closes #5754
- stepfunctions-tasks: dynamodb tasks (#6654) (435b66f), closes #6468
-
acm-certificatemanager: DnsValidatedCertificateHandler support for
SubjectAlternativeNames
(#7050) (a711c01), closes #4659 -
aws-kinesis: test assume order between stacks (#7065) (17aab37)
-
cli: can't use credential providers for stacks with assets (#7022) (afd7045), closes #7005
-
cloudtrail: include s3KeyPrefix in bucket policy resource (#7053) (b49881f), closes #6741
-
cognito: user pool -
passwordPolicy.minLength
is not optional in all cases (#6971) (49cdd8f) -
dynamodb: cannot use attribute as key in a GSI, non-key in another (#7075) (a6bd34f), closes #4398
-
ecs: default Service throws in a VPC without private subnets (#7188) (0ef6a95), closes #7062
-
events: Batch target does not work (#7191) (6f00783), closes #7137
-
kinesis: retention period does not use Duration type (#7037) (1186227), closes #7036
-
rewrite-imports: incorrect main in package.json (#7021) (2bf85b3)
-
stepfunctions-tasks: batch job - can not use task input as array size (#7008) (923d2a1), closes #6922
-
stepfunctions-tasks: confusion between multiple ways to run a Lambda (#6796) (7485448), closes #4801
1.31.0 (2020-03-24)
- .NET Core v3.1 is required with JSII v1.1
- cloud9: Support Cloud9 EC2 Environment (#6298) (f50b876)
- codepipeline: add experimental support for the BitBucket source action (#6756) (95bb1ad), closes #6710
- eks: KubernetesPatch (#6753) (c7fab5b), closes #6723
- events: AWS Batch event target (#6570) (73899a9)
-
acm: Allow tokens as a part of the hosted zone name (#6685) (acfb6ef), closes #6133
-
aws-ecs-patterns: only create an A record if LB is public (#6895) (f31f4e1), closes #6702
-
cdk-assets: context path not honored by Docker asset build (#6957) (1edd507), closes #6954 #6814
-
cloudwatch: unhelpful error when reusing metric IDs (#6892) (60253a3)
-
cognito: user pool - link style email verification fails to deploy (#6938) (b5c60d5), closes #6811
-
ec2: spelling error in Instance's subnet selection logic. (#6752) (564561a)
-
iam: immutable role cannot be used as a construct (#6920) (56be032), closes #6885
1.30.0 (2020-03-18)
1.29.0 (2020-03-18)
🚀 To enable new CDK projects such as CDK for Kubernetes, we have released the constructs programming model as an independent library called constructs. The @aws-cdk/core.Construct
class is now a subclass of the base constructs.Construct
.
- cognito:
UserPoolAttribute
has been removed. It is no longer required to defined aUserPool
. - ec2: if you implemented a custom subclass of
IMachineImage
it must now always return auserData
object.
- cli: add permissions to the bootstrap action role for
cdk deploy
(#6684) (52fd078) - codebuild: add support for Source Credentials (#6722) (a6e2d28)
- cognito: user pool - custom & mandatory standard attributes (#6487) (6dfb677), closes #1747
- cognito: user pool - MFA, password policy and email settings (#6717) (cc35dad)
- core: the "constructs" module (#6623) (eded95b)
- ec2: availabilityZone is optional when importing subnet (d10fe67), closes #6607
- lambda-event-sources: failure handling for stream event sources (#5929) (5028009), closes #5236
- aws-ecs-pattern: allow ScheduledTaskBase to run on a public subnet (#6624) (b9a1408), closes #6312
- SecretValue.secretManager validates non-ARN ids do not contain : (#6371) (7cb8c3f)
- aws-logs: remove validation of retentionInDays for unresolved tokens (#6727) (43a3420), closes #6690
- ec2: MachineImages create appropriate UserData (7a10f0f)
1.28.0 (2020-03-16)
- batch:
computeEnvironments
is now required - batch: the
allocationStrategy
property was moved fromComputeEnvironmentProps
to theComputeResources
interface, which is where it semantically belongs. - custom-resources:
getDataString
was renamed togetResponseField
. - custom-resources:
getData
was renamed togetResponseFieldReference
. - custom-resources:
catchErrorPattern
was renamed toignoreErrorCodesMatching
. In addition, a few synth time validations were added when using this property. See Error Handling for details. - custom-resources:
policyStatements
property was removed in favor of a requiredpolicy
property. Refer to Execution Policy for more details.
- amplify: App, Branch and Domain (#5177) (e126048)
- apigateway: authorizationScopes for a Method (#6502) (3887cd2)
- apigateway: DomainName supports SecurityPolicy (#6374) (e8c2e0c)
- apigateway: rate limited API key (#6509) (040906f), closes #6405
- batch: ec2 launch template support (#6602) (2b02693)
- cfnspec: cloudformation spec v11.3.0 (#6598) (ee3a530)
- cli: pass CloudFormation parameters to "cdk deploy" (#6385) (6551124), closes #1237
- core: duration.toHumanString() (#6691) (d833bea)
- custom-resources: enforce user opt-in when auto-generating SDK call policies (0f5c24e), closes #5873
- custom-resources: log retention for AwsCustomResource (#6698) (bf5ab69)
- custom-resources: module is now stable :) (#6584) (a2a738c)
- custom-resources: rename
catchErrorPattern
toignoreErrorCodesMatching
(#6553) (94599f8), closes #5873 - custom-resources: rename
getData*
togetResponseField*
(#6556) (d5867b4), closes #5873 - dynamodb: expose stream features on ITable (#6635) (52e8b95), closes #6344
- efs: create EFS file systems (#6373) (a0fb518), closes #6286 #6286
- elbv2: support pathpattern array (#6558) (c3ee413), closes #6497
- iam: policy document from json (#6486) (bf08988)
- prlinter: support exempting checks from pr based on a label (#6693) (77cbe80)
- stepfunctions-tasks: run batch job (#6396) (de1a36b), closes #6467
- cloudformation spec v11.4.0 (#6700) (b28b427)
- apigateway: type mismatch in C# when setting identitySources (#6649) (2d3e7b1), closes #6538 40aws-cdk/aws-apigateway/test/authorizers/integ.request-authorizer.ts#L26
- batch:
computeEnvironments
is now required for JobQueue (#6616) (0b6c865), closes #6615 - batch: managed compute environment now properly works with compute resources and instanceRole has correct docstring and type definition (#6549) (4e81334)
- certificatemanager: Route53 endpoint cannot be set and does not work for aws-cn (#6480) (9858cdb)
- cli: codepipeline cloudformation action in cross account fail writing outputArtifacts (#6594) (05cf78b)
- cloudwatch: missing LessThanLowerOrGreaterThanUpperThreshold (#6597) (9731555)
- codepipeline-actions: use IBaseService instead of BaseService in EcsDeployActionProps (#6412) (bed5357)
- eks: cannot upgrade version of clusters with an explicit name (#6064) (1dd7104)
- eks: sporadic broken pipe when deploying helm charts (#6522) (03df1f1), closes #6381
- iam: cannot add multiple conditions using same operator (348a952)
1.27.0 (2020-03-03)
- cognito:
UserPool.fromUserPoolAttributes()
has been replaced byfromUserPoolId()
andfromUserPoolArn()
. - cognito:
IUserPool
no longer containsuserPoolProviderName
anduserPoolProviderUrl
. - cognito: The property
signInType
ofUserPool
has been renamed tosignInAliases
and given a new typeSignInAliases
. The list of sign in types are now specified via boolean properties. - cognito: The property
usernameAliasAttributes
ofUserPool
has been dropped and its functionality merged with thesignInAliases
property. - cognito: The property
autoVerifiedAttributes
forUserPool
is now renamed toautoVerify
and its default has now changed. The new default is now determined by the value ofsignInAliases
. - appsync: Configuration the user pool authorization is now done through the authorizationConfig property. This allows us to specify a default authorization mode out of the supported ones, currently limited to Cognito user pools and API keys.
- custom-resources:
physicalResourceId
andphysicalResourceIdPath
were unified to a concrete type under thephysicalResourceId
property. UsePhysicalResourceId.fromResponse
andPhysicalResourceId.of
factory functions to specify it.
- appsync: extend authorization configuration (#6260) (948881a), closes #6246 #6247
- aws-ec2: signal, download and execute helpers for UserData (#6029) (ee8f169), closes #623
- cognito: refresh modeling of import APIs, sign in & autoverified attrs (#6422) (c02e852)
- contributors: use 0.0.0 as a version marker (#6463) (d5f88c7), closes /github.com/aws/aws-cdk/pull/6463/files#diff-6a3371457528722a734f3c51d9238c13
- custom-resources: physical resource id union type (#6518) (d5000bc)
- lambda-event-sources: expose
eventSourceMappingId
(#5689) (5ea2679), closes #5430 - rds: master secret in DatabaseSecret (#6415) (a9e5b60), closes #6358
- stepfunctions-tasks: add step functions task to run glue job (#6258) (15d9bd7), closes #5266
- assert:
haveResourceLike
andcountResourcesLike
compatibility (#6202) (86c04f3) - cli: fast "no-op" deploys do not consider tags (#6472) (5de87c1), closes #6463
- codepipeline: an action's role imported in a different stack adds a dependency to the CodePipeline stack (#6458) (86ea564)
- codepipeline: automatically named artifacts could contain illegal characters from stage/action names (#6460) (34aaca4)
- core: adds enableVersionUpgrade property to CfnUpdatePolicy (#6434) (f8cacb9), closes #6158
- custom-resources: AwsCustomResource with delete only action fails (#6363) (61a99e7), closes #6061
- docker: cannot use cdk docker assets as base image (#6471) (983dd40), closes #6466
- rds: setting timezone on DatabaseInstance causes internal failure (#6534) (9e2ac91), closes #6439
- stepfunctions: valid reference path '$' fails with an error (#6483) (221c83b), closes #6388
1.26.0 (2020-02-25)
- apigateway: the interface now accepts endpointconfiguration property instead of endpoint type as defined by cfn
- lambda-nodejs:
parcel-bundler
v1.x is now a peer dependency of@aws-cdk/aws-lambda-nodejs
. Please add it to yourpackage.json
.
- apigateway: expose endpointconfiguration to include vpcEndpointIds (#6078) (99de6ca), closes #6038
- apigateway: lambda request authorizer (#5642) (031932d)
- appsync: mapping template for lambda proxy (#6288) (f865d5e)
- batch: add JobQueue, ComputeEnvironment and JobDefinition constructs (c8a22b1)
- cdk-assets: asset uploading tool (c505348)
- cli: faster "no-op" deployments (#6346) (d4a132b), closes #6046 #2553 #6216
- cfn: CloudFormation Resource Specification 11.1.0 (#6424) (ab9b77c)
- cognito: user pool verification and invitation messages (#6282) (faf6693)
- ecs-patterns: create dlq when queue is not provided for QueueProcessingService (#6356) (e307d7f)
- kms:
trustAccountIdentities
avoids cyclic stack dependencies (03f4ef2) - rds: attach description to database secret (d5a4854)
- sns: support multiple tokens as url and email subscriptions (#6357) (e5493bd), closes #3996
- ssm: add ability to specify SSM Parameter tier (#6326) (9209ef6)
- aws-ecs: propagate dnsTtl property part of cloudMapOptions (#6370) (747bdb2), closes #6223
- cli:
cdk deploy
hangs when stack deployment fails (#6433) (4b11d99) - cli: Python init templates are missing .gitignore file (#6350) (cd6cd42), closes #5566
- core: top-level resources cannot use long logical ids (#6419) (2a418b9), closes #6190 #6190
- ecs: support file as firelens config type (#6322) (f9996f3)
- lambda: erroneous inline code support for ruby (#6365) (8e21e78), closes #6302
- lambda-nodejs: parcel is too big to bundle (a93e4d5), closes #6340
1.25.0 (2020-02-18)
- appsync: Changes
MappingTemplate.dynamoDbPutItem()
to acceptPrimaryKey
andAttributeValues
, which allow configuring the primary key and to project an object to a set of attribute values.
- appsync: more general mapping template for DynamoDB PutItem (#6236) (e9937d3), closes #6225
- aws-applicationautoscaling: support Lambda and Comprehend (#6191) (bdab747)
- cfn: update CloudFormation spec to v11.0.0 (#6311) (ea272fa)
- aws-lambda-nodejs: Fix parcel invocation when invoked from globally installed cdk cli (#6206) (ce96e08), closes #6204
- codepipeline: fixed typo in method docs within action.ts (78a39b7)
- eks: Helm release name length &
--wait
option. (#6276) (1811e00), closes /github.com/helm/helm/blob/b63822ed12de1badbb61736d2f7ea4e756ef757d/pkg/action/install.go#L52-L55 - lambda-nodejs: not meaningful parcel error message when build fails (#6277) (a97b48a), closes #6274
1.24.0 (2020-02-13)
- assert: add countResourcesLike method (#6168) (491e2d9)
- cx-api: clean up features.ts (#6181) (efd6f3d), closes #6098
- dynamodb: add metrics for dynamodb table (#6149) (295391e)
- dynamodb: global tables version 2019.11.21 (#5821) (8c0c2b1), closes #5752
- ec2: smarter default for VPN route propagation (#6071) (5dd8aca), closes #6008
- ec2: VPC flow logs (a2fddec), closes #3493
- iam: add ability to create IAM role descriptions (cee8825)
- iam: descriptions for IAM Roles (a1294d3)
- cfnspec: update CloudFormation spec to 10.5.0 (#6195) (47a9949)
- iam: lookup ManagedPolicy via ARN (2df2023), closes #6186
- lambda: expose
function.deadLetterQueue
(6656047), closes #6170 - step-functions:
grantStartExecution
available on imported StateMachine (5ae81cd), closes #6173 - stepfunctions: EMR service integrations (c69b6d2), closes #5224
- cli: truncated 'cdk diff' output in pipes (aba1485)
- apigateway: deployment fails when Model's contentType is not specified (#6199) (0bf1403), closes #6161
- apigateway: stack deployment fails when a Stage is explicitly specified (#6165) (879601e), closes #6068
- cli: wrongly assume aws config file always exists (#6196) (23f8b9f)
- codebuild: badge is not allowed for CodeCommit sources (#6211) (433d957), closes #6205
- ec2:
onePerAz
does not work for looked-up VPCs (3332d06), closes #3126 - ecs-patterns: allow imported load balancers as inputs (7f8c90d)
- elasticloadbalancingv2: logAccessLogs in Base Load Balancer (#6197) (adbc3b9), closes #3794
- elbv2: validate rule priority is a positive number (#6222) (1fbaafe), closes #3794
- kms: add TagResource & UntagResource IAM permissions to default key policy (#6125) (e65a326), closes #6102
1.23.0 (2020-02-07)
- appsync: add support for mapping DynamoDB queries (#5940) (2240e97), closes #5861
- aws-codebuild: allow github sourceversion branch (#5890) (155b80e), closes #5777
- cloudformation: update Resource Specification to v10.4.0 (#5982) (178ca5e)
- ecs: add support for enabling container insights (#5601) (6236634)
- ecs: ContainerImage.fromDockerImageAsset (b94577a), closes #5791 #5983
- ecs: ContainerImage.fromDockerImageAsset (#6093) (38e9865), closes #5791 #5983
- ecs: Firelens log driver support (#5457) (4acf0f7)
- lambda: avail function log group in the CDK (#5878) (fd54a17), closes #3838
- lambda: higher level construct for Node.js (#5532) (02d0e2a)
- assets: add exclude glob patterns to calculating fingerprint for staging (#6085) (d9a043b), closes #5238
- aws-s3-deployment: fix server side encryption parameters (#6006) (c7197c0), closes #6002
- cli: colored text is unreadable when using light themes (#5250) (b4573ef)
- cli: parse equals sign in context values (#5773) (667443c), closes #5738
- codepipeline: manual approval action doesn't have configuration without a topic (#6106) (a63cbf8), closes #6100
- cognito: standard attr timezone unexpectedly creates custom attr (#5973) (acf3ffc)
- ec2: add
MachineImage
factory, document instance replacement (#6065) (435d810), closes #5675 #6025 - ec2: private DNS for custom endpoints has incorrect default (d681d96)
- ecr-assets: docker images are not built if .dockerignore includes an entry that ignores the dockerfile. (#6007) (e7ef5e5)
- ecs: fix splunk-sourcetype (#6128) (6456a7c)
- ecs-patterns: queue service grant permission automatically (#6110) (0d0794e)
- ecs-patterns: remove duplicated schedule property for scheduled task pattern (#6101) (15b6aa7)
- eks: missing VPC permissions for fargate profiles (#6074) (0a586fc)
- glue: Make Glue Database locationUri optional. (#5784) (a065169), closes #5268 #5268 #5268 #5268
- iam: policies added to immutably imported role (#6090) (f1f5319), closes #5569 #5943
- init-templates: JavaScript, TypeScript, and Python init templates are broken in 1.21.0 (#5989) (505c91e), closes #5986
- route53: CaaAmazonRecord ignores recordName (#6027) (16f9721), closes #5764
- route53: correct import example in README.md (#5946) (ed71931)
- s3-deployment: passing any system metadata causes lambda to fail on "Unknown options:" when invoking aws cli. (#6086) (b30add8)
1.22.0 (2020-01-23)
- eks: (experimental module) the
Mapping
struct was renamed toAwsAuthMapping
. - core: Arn.parseArn now returns empty string for nullable Arn components. Users who were depending on an undefined value will now receive the falsy empty string.
- ecr-assets: all docker image assets are now pushed to a single ECR repository named
aws-cdk/assets
with an image tag based on the hash of the docker build source directory (the directory where yourDockerfile
resides). See PR #5733 for details and discussion. - autoscaling: AutoScaling by using
scaleOnMetric
will no longer force the alarm period to 1 minute, but use the period from the Metric object instead (5 minutes by default). Usemetric.with({ period: Duration.minute(1) })
to create a high-frequency scaling policy.
- apigatewayv2: fork APIGatewayV2 into its own package (#5816) (d58667e)
- cloudformation: upgrade the CloudFormation resource specification to v10.3.0 (#5882) (e5e4725)
- ecr-assets: simplify docker asset publishing (#5733) (b52b43d), closes #3463 #5807
- eks: fargate profiles (#5589) (450a127), closes #5303
- lambda: allow inline code for nodejs12.x runtime (#5710) (a1cd743)
- lambda-destinations: option to auto-extract the payload when using LambdaDestination (#5503) (321372f)
- route53-targets: Add aws-route53-targets/InterfaceVpcEndpointTarget (#4868) (6969562)
- bump JSII to version 0.21.2 (#5919) (dd18456)
- apigateway: LambdaRestApi fails when a user defined Stage is attached (#5838) (05719d7), closes #5744
- autoscaling: can't use
MathExpression
inscaleOnMetric
(d4c1b0e), closes #5776 SecretsManagerRDSPostgreSQLRotationMultiUser
not working (49032ee)- autoscaling: can't use block devices (fee1324), closes #5868
- core: allow empty string components in parseArn (#5875) (5ed5eb4), closes #5808
- lambda: setting log retention to INFINITE causes failure (#5876) (19ed739)
- route53: incorrect domain name produced when using HTTPS in ApplicationLoadBalancedFargateService (#5802) (5ba5a5e)
1.21.1 (2020-01-16)
- ecr-assets: cannot build docker images outside the source tree (i.e. against a cdk.out directory) (#5836) (6bc8ecc), fixes (#5807)
- cli:
cdk init
fails if run under a directory wherecdk.json
exists, reverts (#5772) due to an issue which will be fixed in a subsequent version (#5836) (da9c626) , fixes (#5826)
1.21.0 (2020-01-15)
- assert: cdk assert: implement 'haveOutput' assertion (#5366) (ee6decb), closes #1906
- cli: run cdk from inner directories (#5772) (a54630d)
- codepipeline: add CannedACL and CacheControl to S3 deploy action (#5698) (b3e7978)
- codepipeline: add support for externalEntityLink in the manual approval action (#5558) (be2e3e3)
- codepipeline: Pipeline Variables (#5604) (34d3e7d), closes #5219
- ec2:
VpcEndpointService
construct (#5498) (a2713f3) - recommend matching commands (#5668) (6108b91)
- elbv2: default config for internal load balancer will fall back to Isolated subnets (#5696) (8b9c1fc)
- iam:
Role.withoutPolicyUpdates()
(#5569) (ea4ca3e), closes #2985 #4465 #4501 - iam: support importing service roles (#5701) (0f02dad), closes #2651
- s3: server access logs (#5072) (c9b074b)
- acm:
DnsValidatedCertificate
in non-aws partitions (#5771) (e3305d8) - apigateway: authorizer name is not optional (#5731) (21c425e), closes #5678
- apigateway: unable to associate RestApi as a route53 target for late bound domains (#5555) (c02741e)
- cli: Fix various init templates & their tests (#5693) (a85da79)
- cli: proxy support is broken (#5803) (3a63f57), closes #5743 #5791
- cloudformation: nested stack example in readme is broken (#5729) (c53356a), closes #5686
- cloudwatch: cross-account metrics in env-agnostic stack (#5775) (5292bd5), closes aws/aws-cdk#5628
- codepipeline: Action.onStateChange() has wrong detail type (#5721) (8686dd5), closes #3614
- custom-resources: missing physical resource id for delete calls (#5805) (9b7236a), closes #5796
- ecr-assets: unable to use one Dockerfile to build multiple images (#5705) (ff3f27f), closes #5683
- ecs: cannot separate
Cluster
andEc2Service
behind ALB (#5813) (eb3c517) - glue: empty string in Table.s3prefix is not undefined (#5783) (18e15de), closes #5763
- iam: can't use
OrganizationPrincipal
for assuming Role (#5746) (6c3d4c4), closes #5732 - rds: pass the ARN of master instead of its ID in DatabaseInstanceReadReplica (#5702) (d323c0c), closes #5530
1.20.0 (2020-01-07)
- autoscaling: AutoScalingGroups without
desiredCapacity
are now initially scaled to their minimum capacity (instead of their maximum capaciety). - rds:
addRotationSingleUser(id: string, options: SecretRotationOptions)
is nowaddRotationSingleUser(automaticallyAfter?: Duration)
- glue: InputFormat. TEXT_INPUT_FORMAT has been renamed to TEXT. OutputFormat. HIVE_IGNORE_KEY_TEXT_OUTPUT_FORMAT has been renamed to HIVE_IGNORE_KEY_TEXT
- apigateway: lambda token authorizer (#5197) (5c16744), closes #5584
- aws-stepfunctions: support StateMachineType (#5398) (ea095f0), closes #5397
- cli: support custom CA certificate bundles (ac748c1), closes #5294
- cloudformation: update cloudformation spec to v10.2.0 (#5542) (cb65da3)
- cloudwatch: make Metric objects region-aware (212687c)
- cloudwatch: support for metric math (#5582) (a7f189e), closes #1077 #5449 #5261 #4716
- codebuild: add 2X_Large compute type option (#5429) (1291ef6), closes #5401
- core: add support for the ref intrinsic function (#5468) (#5470) (cad5bc1)
- custom-resource: Allow custom ResourceTypes on CustomResources (#5248) (c605ceb)
- custom-resources: getDataString for AwsCustomResource (#5578) (faa368d), closes #5570
- custom-resources: ignore DELETE after failed CREATE (#5525) (9ab989e), closes #5524
- custom-resources: use latest SDK in AwsCustomResource (#5442) (a111cdd), closes #2689 #5063
- dynamodb: Implement importing existing dynamodb table. (#5280) (8d9b58b), closes #3895
- ec2: add
privateIpAddress
to Instance (a00906d), closes #4004 - ec2: support block devices for
Instance
(#5567) (1085a27), closes #4773 #4781 - ecr-assets: custom docker files (#5652) (1b25a4b)
- ecs-patterns: higher-level constructs for ECS service with multiple target groups (#5083) (c0a7192)
- eks: EKS-Optimized AMI with GPU support for G4 instance (#5479) (7b34d56)
- eks: helm chart support (#5390) (394313e)
- glue: add support for more DataFormats (#5246) (ca535d0)
- lambda: configuration for async invocations (#5299) (746ba32)
- logs: import a LogGroup from its name (#5580) (9cbbaea)
- rds: more extensive secret rotation support (#5281) (b700b77), closes #5194
- codebuild: add Secrets Manager to CodeBuild environment variable types (#5464) (ff1fa68)
- autoscaling: every deployment resets capacity (#5507) (0adf6c7), closes #5215 #5208
- aws-cdk: upgrade canaries lambda node version (#5674) (96b802b)
- codebuild: ARM images have the wrong type and compute kind (#5541) (6999baf), closes #5517
- codebuild: cannot use immutable roles for Project (6103180), closes #1408
- codebuild: rename CodeBuild VPC policy to be unique (#5385) (16a1200)
- core: nested Fn.join with token fails (#5679) (24ded60), closes #5655
- cli: java sample-app init template does not have a src/ directory (#5546) (71947b5)
- core: nested stacks does not report missing context #5594 (#5638) (9472e09)
- core: tags not working for cognito user pools (#4225) (a67f0ef), closes #3882
- custom-resources: default timeout of 2 minutes for AwsCustomResource (#5658) (e0c41d4)
- ec2: allow ingress to VPC interface endpoints (#4938) (d5ed97a), closes #4937
- eks: aws-auth username not set by default (#5649) (87befa6), closes #5263
- eks: default capacity uses desiredCapacity which is an anti-pattern (#5651) (a883fed), closes #5215 #5507 #5650
- eks: failures when creating or updating clusters (#5540) (a13cfe6), closes #5544 #4087 #4695 #5259 #5501
- eks: generated cluster name can exceed 100 characters (#5597) (3256a41), closes #5596
- eks: kubernetes cannot create external load balancers (#5448) (384d22d), closes #5443
- iam: policy added to resource for immutable Role (#5568) (950a5f7)
- java: resolve Java class naming error (#5602) (e9ede13)
- rds: do not allow aurora engines when using DatabaseInstance (#5367) (03b3b7a), closes #5345
- s3n: s3n lambda destination works with function by arn (#5599) (7ceee6d), closes #5592
- stepfunctions: permission race condition on state machine deletion (#5466) (c3ac965), closes #5336
- tests: flaky integration tests in release pipeline (#5485) (01800cf)
- increase IAM wait timeout in integ test (#5504) (f10b3e6)
1.19.0 (2019-12-17)
- route53: the value of
hostedZoneId
will no longer include/hostedzone/
prefix and only includes the hostedZoneId when usingHostedZone.fromLookup
orfromHostedZoneAttributes
- cloudfront: (experimental module)
S3OriginConfig.originAccessIdentityId
or typestring
has been removed in favor ofS3OriginConfig.originAccessIdentity
of typeIOriginAccessIdentity
. - cli:
cdk diff
now exits with 0 even when there's a diff, use--fail
to exit with 1. To enable this feature for old projects, add the context key"aws-cdk:diffNoFail": "true"
in yourcdk.json
file.
- appsync: add L2 constuct for AppSync (#4438) (226b27a)
- cfnspec: Update CloudFormation spec to v10.1.0 (#5431) (ac905ac)
- cli: always exit with 0 on cdk diff (under feature flag) (#4721) (3ffd810), closes #4650 #4708
- cloudformation: import CloudFormation resource specification v9.1.1 (#5297) (7f33541)
- cloudformation: update Resource Specification to v10.0.0 (#5339) (3db8565), closes #5302
- cloudfront: CloudFrontOriginAccessIdentity (#4491) (8623fe5)
- codebuild: support AL2 2.0 & Standard 3.0 (#5226) (e6ef981)
- codebuild: Support ARM-based AL2 image (#5233) (8fc5622)
- codepipeline: allow retrieving created stages and actions (#5206) (a5b056b), closes #4878
- ec2: access gateways created by NatProvider (#4948) (5907055), closes #4858
- ec2: Add missing EC2 instance types (#5349) (#5350) (bc161d6)
- ec2: Add REKOGNITION_FIPS interface endpoint (#5316) (b291280), closes #5314
- ecs: Add support for ECS DeploymentController (#5402) (58e67e6)
- ecs-patterns: healthyPercent on ALB, NLB, Fargate (#4820) (150e65c)
- events: add static grantPutEvents() to EventBus (#5133) (0823396)
- lambda: function can be attached to a list of security groups in the vpc (#5049) (4c1a9ec)
- lambda: provisioned concurrency (#5308) (d50344a), closes #5298
- region-info: throw exception when no fact found (#5166) (88df1eb), closes #3194
- sns: support KMS masterKey on SNS (#5052) (edd5395), closes #1729
- Make activating Python virtualenv easier on Windows (#5014) (fc73747)
- apigateway: unable to enable cors with a root proxy and LambdaRestApi (#5249) (f3d5fc9), closes #5232
- cdk-dasm: prevent duplicate imports (#5293) (d4562b7)
- cli: fix the behaviour for the
--generate-only
flag (#5253) (ecbe0b6) - cli: this.node.addError does not cause
cdk diff
to fail #4700 (#5284) (1b12dba) - cloudfront: associated lambda role requires edgelambda.amazonaws.com (#5191) (173d886), closes #5180
- codebuild: add deprecation warning for UBUNTU_14_04 (#5234) (c1b575f)
- codepipeline: CloudFormation deployment role always gets pipeline bucket and key permissions (#5190) (d5c0f3e), closes #5183
- core: dependencies across stack boundaries of all kinds (#5211) (d1f0dd5), closes #4460 #4474
- dockerfile:
docker build
is missingdotnet
(#5091) (18fa3aa) - docs: update removed subscribeLambda method example (#5060) (d2a86a5)
- dynamodb: add missing permission for read stream data (#5074) (22688ce)
- dynamodb: stacks created by GlobalTable correctly inherit their account. (#5202) (5ad5407), closes #4882
- ec2: can't add non-default routes to subnets (#5332) (e4309ab)
- ec2: CIDR for "any" IPv6 too long (#5179) (3695d8c)
- ec2: Fix CODEBUILD_FIPS interface endpoint (#5315) (465c848)
- ecr: remove deprecated requirement on docs and comments (#5428) (40ec78e), closes #2857 #2857 #3273
- init-templates: use pytest for Python sample-app init template (#5325) (6c25da7), closes #5313
- route53: return plain hosted zone id without /hostedzone/ prefix (#5230) (5e08753)
- sfn: Task
parameters
property does nothing (#5408) (01df7c6), closes #5267 - test: fix .nycrc symlinking (#5245) (d2496e0)
1.18.0 (2019-11-25)
We are excited to announce the general availability of support for the .NET family of languages (C#, F#, ...) as well as Java!
We want to express our gratitude to all of our early customers as well as the amazing contributors for all the help and support in making this release possible. Thank you for all the feedback provided during the Developer Preview of .NET and Java support, without which the product would not be what it is today.
Special thanks go out to a handful of amazing people who have provided instrumental support in bringing .NET and Java support to this point:
- Aaron Costley
- Ben Maizels
- Daniel Dinu
- Erik Karlsson
- Hamza Assyad
- Jerry Kindall
- Noah Litov
- Richard Boyd
Of course, we continue to be amazed and thrilled by the community contributions we received besides language support. The passion demonstrated by the CDK community is heartwarming and largely contributes to making maintaining the CDK an enjoyable, enriching experience!
- lambda: node12.x, python3.8 and java11 runtimes (#5107) (e62f9fb)
- lambda: unlock the lambda environment variables restriction in China regions (#5122) (cc13009)
- init/chsarp: correct README for sample-app C# template (#5144) (b2031f6)
- init/sample-app: numerous fixes and additions to the sample-app init templates (#5119) (02c3b05), closes #5130 #5130
- init/java: add -e to mvn command so errors aren't hidden (#5129) (5427106), closes #5128
- init/csharp: .NET semantic fixes for init templates (#5154) (04a1b32)
The following known issues were identified that specifically affect .NET and Java support in the CDK, and which will be promptly addressed in upcoming CDK releases (in no particular order). See the GitHub issues for more information and workarounds where applicable.
- .NET and Java:
aws/jsii#1011
- abstract members are not marked as such on their .NET and Java representations - .NET:
aws/jsii#1029
- user-defined classes implementing CDK interfaces must extendAmazon.Jsii.Runtime.Deputy.DeputyBase
- .NET:
aws/jsii#1042
- Parameters typed object accept only primitive types, instances of CDK types,Dictionary<string,?>
- .NET:
aws/jsii#1044
- Unable to pass interface instance through in aDictionary<string,object>
- Java:
aws/jsii#1034
- Implementing or overriding overloaded methods in Java does not work consistently - Java:
aws/jsii#1035
- ReturningLazy.anyValue
from an method whose return type isjava.lang.Object
may result in Resolution Errors - Java:
aws/jsii#1005
- property getter implementations (e.g: from an interface) may be ignored
1.17.1 (2019-11-19)
- align all jsii deps to 0.20.7 (15770f4)
1.17.0 (2019-11-19)
- cfnspec: update CloudFormation Resource Specification to v8.0.0 (#5031) (1896de2)
- cli: adding new option to
cdk deploy
to indicate whether ChangeSet should be executed (#4852) (c02c9e5), closes #4739 - custom-resources: python handler skeleton in readme (#4977) (f0a62fd
- upgrade all uses of node8.10 lambda runtime to node10.x (#5075) (7a3a3b1), #4655 #4653 #4642
- upgrade to jsii 0.20.7 (#5103) (5ebc633), closes aws/aws-cdk#4316 #994 aws/aws-cdk#5066 #904 #925
- cli: cdk bootstrap is broken due to --no-execute (#5092) (7acc588)
- cli: cdk version prints to STDERR instead of STDOUT like --version (#5095) (ae5170c), closes #4720
- core: unable to find stack by name using the cli in legacy mode (#4998) (26bba19), closes #4895 #4997
- custom-resources: flatten objects with null values in AwsCustomResource (#5073) (f4ea264), closes #5061
- ecs-patterns: Fix issue related to protocol being passed to target group (#4988) (a257d4d)
- init-templates: update init templates for csharp and java (#5059) (2d92ab3)
- logs: cannot use same Lambda for multiple SubscriptionFilters (#4975) (94f5017), closes #4951
1.16.3 (2019-11-13)
- ecs-patterns: Fix issue related to protocol being passed to target group (#4988) (6bb29b5)
- core: unable to find stack by name using the cli in legacy mode (#4998) (26bba19)
1.16.2 (2019-11-12)
- python: correct handling of inline-dict for nested props (7666264)
1.16.1 (2019-11-11)
- jsii: correct handling of mappings into
object
parameters (0d23eb3)
1.16.0 (2019-11-11)
- core: template file names in
cdk.out
for new projects created bycdk init
will usestack.artifactId
instead of the physical stack name to enable multiple stacks to use the same name. In most cases the artifact ID is the same as the stack name. To enable this fix for old projects, add the context key@aws-cdk/core:enableStackNameDuplicates: true
in yourcdk.json
file.
- apigateway: publish api endpoint through an export name #3662 (#4849) (652a8f5)
- aws-ecr: add onImageScanCompleted() support (#4819) (5bdd9bb), closes #4818
- aws-eks: support aws/aws-node-termination-handler as the default spot draining handler (#4931) (f4a41d1)
- aws-events: Adds EventBus resources (#4609) (bbec8c5)
- cfnspec: update CloudFormation spec to 7.3.0 (#4838) (ed904cb)
- cli: add @types/node to typescript init templates (#4947) (efde8e9), closes #3839 #4462 #3840
- cli: cdk version command (#4720) (3459982)
- cli: docker image asset scanning by default (#4874) (87421c9)
- cli: dotnet init templates come with Roslyn Analyzers (#4765) (fbd007e)
- cloudwatch: allow overriding of metric graph rendering (#4571) (3643130)
- core: add resource type and properties for all CfnResource constructs to tree.json (#4894) (4037155), closes #4562
- core: cdk init --generate-only (#4826) (9cc1e52)
- custom-resources: allow specifying role for AwsCustomResource (#4909) (98fb888), closes #4906
- custom-resources: implement IGrantable for AwsCustomResource (#4790) (b840784), closes #4710
- ec2: allow using existing security groups with interface VPC endpoints (#4908) (bda28e8), closes #4589 #2699 #3446
- ec2: support NAT instances, AMI lookups (#4898) (dca9a24), closes #4876
- ecs: add cloudMapNamespace as a property of cloudMapOptions (#4890) (06caf4f)
- feature flags rfc (#4925) (db50ab0)
- custom-resources: provider framework (#4572) (f9eec04)
- ecs-patterns: add listener port as a property for network/application load balanced services (#4825) (20b8e5d), closes #4793
- elbv2: add redirect action of ALB's listener (#4606) (c770d3c), closes #4546
- events: support event bus for rule (#4839) (f5858ba)
- s3: onCloudTrailWriteObject matches all update events (#4723) (46d9885), closes #4634
- sns: support cross-region subscription on imported topics (#4917) (3dd194d), closes #3842
- stepfunctions: add
EvaluateExpression
task (#4602) (6dba637) - vpc: allow Vpc.fromLookup() to discover asymmetric subnets (#4544) (2ccb745), closes #3407
- apigateway: allow multiple api keys to the same usage plan (#4903) (142bd0e), closes #4860
- assets: support exceptions to exclude patterns (#4473) (b7b4336)
- cloudfront: aliasConfiguration fallback identifier conflict (#4760) (4d16f79)
- cloudfront: revert certificate region verification (#4734) (de0eb47)
- core: cannot use the same stack name for multiple stacks (under feature flag) (#4895) (658f100), closes #4412
- dockerfile: add yarn (#4844) (2f8d06a)
- dynamodb: Fix AutoScaling role ARN (#4854) (fc054e9)
- dynamodb-global: cannot deploy global tables due to unresolved resource dependencies (45f0e02), closes #4676
- ecs-patterns: handle desired task count being set to 0 (#4722) (c31ca27)
- eks: pass
--use-max-pods
to bootstrap options when false (#4753) (22fe0ce) - elbv2: update region/account map of elbv2 (#4738) (5d98e7f)
- init: 'cdk init' doesn't leave .d.ts files (#4841) (10b5b3c)
- init: remove automatic JSII Roslyn analyzer dependency (#4835) (5029f0e)
- init/csharp: correct cdk.json 'app' command (#4778) (d89504f)
- ssm: malformed ARNs for parameters with physical names that use path notation (#4842) (43f276a)
In addition to the above, several bugs in the Python, .NET and Java release of the CDK have been addressed.
1.15.0 (2019-10-28)
- rds:
securityGroup: ec2.ISecurityGroup
is nowsecurityGroups: ec2.ISecurityGroup[]
inDatabaseInstanceAttributes
- rds: removed
securityGroupId
fromIDatabaseInstance
- acm: update CertificateRequestorFunction runtime (#4612) (a711425), closes #4610
- assets: docker asset versions are pushed to separate repositories (#4537) (8484114), closes #4535
- aws-lambda: update deprecation warning for node.js 8.10 (#4624) (ace8041)
- cli: add Cloud Assembly backwards compat tests (#4625) (5d2e5e3), closes #4475 #4544
- cloudformation: cannot reference resource attributes with "." in nested stacks (#4684) (561bb73)
- codebuild: revert validation that only a project with source CODEPIPELINE can be added to a pipeline (#4689) (8e72720), closes #4646
- codepipeline: the CodeBuild action now works with imported projects (#4637) (6c4085e), closes #4613
- core: fix docs for CfnInclude (#4703) (ba38b76), closes #3424
- core: removalpolicy correct default (#4499) (09d89c3), closes #4416
- custom-resources: increase and expose timeout for AwsCustomResource (#4623) (f17f809), closes #3272
- eks: cannot update cluster configuration (#4696) (e17ba55), closes #4311 #4310
- elbv2: fix disabling proxy protocol v2 attribute for NetworkTargetGroup (#4596) (8b598c4), closes #4574
- iam: fix
managedPolicyName
, cross-account references (#4630) (9b7d2d0), closes #4581 #4567 - ssm: invalid parameter arn (#4685) (e26a36c), closes #4672
- apigateway: add convenience url property at resource level (#4686) (012eeed)
- autoscaling: let AutoScalingGroup be IGrantable (#4654) (406dc8e)
- cloudfront: complete viewerCertificate support (#4579) (80b4ac9)
- codedeploy: Model ECS deployment resources and pipeline action (#4600) (ed639ca)
- codepipeline: add ability to override env variables in CodeBuild actions (#4502) (c0c0513), closes #4531
- ec2: Support explicit Subnet selection (#4622) (203a605)
- ecs: add support for start and stop timeout in ContainerDefinition (#4638) (b00c0af)
- ecs-patterns: add family name to load balanced service properties (#4688) (d7654e7)
- ecs-patterns: add service name to queue processing service properties (#4505) (3202720), closes #4504 #4504
- rds: allow using existing security groups for new instance (#4495) (ef1ce5e), closes #2949
- vpc: additional validation around Subnet Types (#4668) (9a96c37), closes #3704
1.14.0 (2019-10-22)
NOTICE: since Node.js 8.x is going out of maintenance early next year, starting in the next release, we will only test the AWS CDK against Node.js 10.x. If you are using an older version of Node.js, we recommend to upgrade.
- apigateway: deployment not invalidated when integration is changed (#4552) (eac7695), closes #4551 aws-samples/aws-cdk-intro-workshop#83
- cli: patch security vulnerability in https-proxy-agent (npm advisory 1184) (#4603) (ddb05f9)
- cli: upgrade proxy-agent to address security volnarability (#4618) (5a941a2)
- cloudfront: expose CfnDistribution as defaultChild (#4556) (8a79cad)
- codepipeline: work around CodeBuild's pipeline key bug (#4183) (b149b02), closes #4033
- core: child stack assembly metadata is duplidated on parent (#4540) (eeb5ae9), closes #2900
- eks: invalid arn when mapping users to rbac (#4549) (8f4a38d), closes #4545
- elbv2: correct wrong invalidation rules (#4583) (5f50e5f)
- region-info: add eu-west-1 to AWS_OLDER_REGIONS (#4584) (7055ee3)
- s3: access denied when adding an event notification to a s3 bucket (#4219) (6f22446), closes #3318
- s3: bucket notifications deleted during stack update (#4458) (f5daa6e), closes #1566
- ssm: allow specifying encryption key (#4511) (02a447f), closes #4498
- stepfunctions: map state validation fix (#4382) (bbe0380)
- stepfunctions-tasks: update resourceArn in service integrations (#4598) (b0f8a74), closes #4597
- apigateway: cors preflight support (#4211) (0f06223)
- ec2: mutable? param for imported SecurityGroups (#4493) (9764996)
- ecs-patterns: add family name to queue processing service properties (#4508) (b0874bb), closes #4507
1.13.1 (2019-10-15)
- cli: fix bootstrap so that it has a default for tags on the stack. (#4519) (f4a20a6), closes #4320 #4518
1.13.0 (2019-10-15)
- codepipeline: allow adding an S3 source action with the same bucket multiple times (#4481) (87458c1), closes #4237
- use fixed dependency versions between CDK packages (#4470) (1d1b8bc)
- cli: remove warning about assets not included in diff (#4454) (123c594), closes #395
- cli: Use RegionalDomainName attribute in output of Toolkit stack for GovCloud and CN compatibility (#4427) (adbc2e3), closes #1469
- codepipeline: do not retain the default bucket key and alias (#4400) (9740ed3), closes #4336
- elbv2: add new FS security policies (#4425) (a4e63bd)
- elbv2: validate healthcheck intervals (#4280) (3627e23), closes #4279
- s3-deployment: lambda "src" not included in published module (#4430) (d16080a), closes #4404
- aws-s3-deployment: support specifying objects metadata (#4288) (63cb2da)
- cli: add tags to CDKToolkit stack through bootstrap cli command (#4320) (4284aa2), closes #4227
- cli: notify option in deploy command to specify SNS Notification ARNs (#4420) (7d6b474), closes #2528
- codepipeline: support cross-environment deployments for all actions (#4276) (1eebf92), closes #3389
- core: Add ability to set stack description (#4457) (#4477) (443394c)
- ecs: add automated spot instance draining support (#4360) (9c208d0)
- elbv2: support
UDP
andTCP_UDP
protocols (#4390) (1958f26) - s3-deployment: optional role override for bucket-deployment (#4284) (e1b48bc)
1.12.0 (2019-10-07)
- apigateway: defaultChild on RestApi returns the underlying L1 (#4318) (53db8bc), closes #3234
- cloudmap: fix CloudMap Service import, expose ECS CloudMap Service (#4313) (c968c96), closes #4286
- codebuild: validate if a CodePipeline action that is cross-account does not have outputs (#4171) (1744f8a), closes #4032
- custom-resources: support region for AwsCustomResource (#4298) (934d36f), closes #4292
- ecr-assets:
exclude
option (#4354) (f96b2fb), closes #4353 #4353 - ecs: nat network mode for windows tasks (#4317) (9ceb995), closes #4272
- lambda-event-sources: add missing export of streams.ts (#4362) (032b70c), closes #4352
- cloudformation: nested stacks (#2821) (5225306), closes #239 #395 #3437 #1439 #3463
- ecs: add a new API for registering ECS targets (#4212) (de84c4a)
- ecs: add support for ProxyConfiguration in ECS TaskDefinition (#4007) (68e1e85)
- ecs: Add warning message when pulling ECR image (#4334) (bd36c6c)
- ecs-patterns: add CloudMapOptions to load balanced services (#4369) (de0a028)
- rds: add support for monitoring to database cluster (#2828) (910c8bf), closes #2826
- stepfunctions: add support for Map state (#4145) (c8f0bcf)
- cloudmap:
cloudmap.Service.fromServiceAttributes
takes a newly required argumentnamespace
.
1.11.0 (2019-10-02)
- cli: make new CLI work with old assembly versions (#4307) (2f979b7), closes #4294
- iam: validate actions (#4278) (3917c4b)
- stepfunctions: allow condition on array (#4340) (47203f4)
- codepipeline: validate that source actions are in the same region as the pipeline (#4303) (c35091f)
- update CloudFormation resource specification to v6.2.0 (#4309) (92b05a6)
- cli: Add Jest tests to JavaScript init templates (#4282) (22a5ada), closes #4027
- ecs-patterns: Allow overriding
loadBalancer
andtaskDefinition
(#4213) (f2a6d46) - lambda: event-source maxBatchingWindow property (#4260) (4040032)
1.10.1 (2019-10-01)
1.10.0 (2019-09-27)
- acm: on delete, wait for certificate to become unused (#4191) (db77bfe), closes #4179
- acm: support Tokens for domainName in Certificate (#4251) (ee1283d), closes #4232
- apigateway: honour requestParameters passed via defaultMethodOptions (#4249) (b347c35)
- apigateway: proxy method options are not duplicated to root (#4192) (0d235fe)
- appmesh: actually set listener healthCheck.path (#4218) (602bac2)
- cloudtrail: fix use of imported bucket with CloudTrail (#4270) (7adb5ea), closes #4256
- cloudwatch: can use percentile override in
Alarm
(#4253) (859e4d1), closes #3845 - ecr-assets: docker build targets (#4185) (91cda9d), closes #4184
- ecr-assets: give accurate error when Tokens are being used (#4255) (1381b2d), closes #3795
- ecs: FargateTaskDefinition supports Tokens for
cpu
andmemory
(#4224) (c9529f9) - glue: expose CfnTable as defaultChild (#4197) (467d855)
- lambda: asset metadata invalid for layers (#4205) (d998e46), closes #4076 awslabs/aws-sam-cli#1411
- route53: use static s3 website endpoint (#4250) (3c252c4)
- rule: make
ruleName
accessible onRule
object (#4252) (be06fd5), closes #3809 - s3: missing http on website url (#4189) (960d71f)
- ssm: AWS::EC2::Image::Id parameter type (#4161) (48c26c2)
- appmesh: eagerly validate
healthCheck
settings (#4221) (84a1b45) - core: context lookup errors are reported to CX app (#3772) (b0267e4), closes #3654
- ec2: add custom userdata factory (#4193) (3a9f4c8)
- ec2: add sourceDestCheck to instance (#4186) (6e75168)
- ec2: let Instance be IGrantable (#4190) (87f096e)
- ecr-assets: Support .dockerignore (faster Docker builds) (#4104) (8389eeb)
- ecs: add protocol option and default certificate for HTTPS services (#4120) (e02c6cc)
- ecs: add URL output for LB services (#4238) (38d78ed)
- ecs-patterns: support
propagateTags
andecsManagedTags
(#4100) (caa0077), closes #3979 - eks: retrieve ami with ssm (#4156) (622a4e1)
- eks: upgrade latest kubertenes version to 1.14 (#4157) (c7def91)
- elasticloadbalancingv2: add Instance target (#4187) (f11bece)
- s3-deployment: allow specifying memory limit (#4204) (84e1d4b), closes #4058
- ses-actions: move SES rule actions to separate package (#4163) (a9fef66), closes #3726
- publish construct tree into the cloud assembly (#4194) (3cca03d)
- ses-actions: adding an action to a receipt rule now requires an integration
object from the
@aws-cdk/aws-ses-actions
package.
1.9.0 (2019-09-19)
- apigateway: cross-stack lambda integration causes a cyclic reference (#4010) (17fc967), closes #3705 #3000
- apigateway: json schema additionalProperties should be boolean (#3997) (73a1de1)
- cloudfront: actually default 'compress' to true (#3359) (364fd56)
- core:
stack.urlSuffix
is no longer scoped (#4011) (82e08bc), closes #3970 - ec2: fix subnet selection on looked-up VPCs (#4090) (4a113e6), closes #3650
- ec2: improve errors around subnet selection (#4089) (2392108), closes #3859
- elbv2: allow multiple certificates on ALB listener (#4116) (d1f8e5c), closes #3757
- elbv2: fix cross-stack use of ALB (#4111) (7dfd6be)
- elbv2: unhealthyHostCount metric case fix (#4133) (899656c)
- events: remove custom resource for fargate event target (#3952) (920f12f), closes #3930
- events: remove policy statement from CF template when using AwsApi (#4037) (2e67c2d)
- route53: remove
http://
from bucket target (#4070) (621441d)
- codebuild: add support of Amazon Linux 2 image (#4052) (#4055) (f63bf6f)
- codepipeline: cross-environment (account+region) actions (#3694) (69bff3d), closes #52 #1584 #2517 #2569 #3275 #3138 #3388
- codepipeline: handle non-CFN cross-region actions (#3777) (b8b4c4d), closes #3387
- cognito: add PreTokenGeneration lambda trigger support (#3910) (e9f46da), closes #2497
- ecs: add additional log drivers (#3762) (f308f1d), closes #3761
- ecs: allow load balancing to any container and port of service (#4107) (c3b3c93)
- iam: support NotPrincipal in policy statements (#4077) (9945d9e)
- route53: Domain redirect pattern (#3946) (3ac4671), closes #3893
- s3-deployment: allow multiple Sources for single Deployment (#4105) (2ce4a87)
- update baseline requirement for node engine to 10.3.0 (#4135) (d5ab865)
- sns: add support for attribute key matching in message filtering (#3709) (dbf0134)
- upgrade CloudFormation resource specification to v6.1.0 (#4112) (3d693e6)
- toolkit: conditionally emit AWS::CDK::Metadata resource (#3692) (5901d6e), closes #3648
- s3-deployment: Property
source
is nowsources
and is aSource
array
1.8.0 (2019-09-10)
- app-delivery: action template filename incorrect (#3986) (f6ef79d), closes #3595
- certificatemanager: increase minimum validation total timeout (#3914) (4973a8c)
- custom-resources: correctly handle booleans conversion (#4000) (77105ab), closes #3933
- dynamodb: prevent "StreamARN not found for resource" errors (#3935) (617ef82)
- ecs: separate application and network load balanced services (#3719) (21eb835)
- events:
fromObject
handles regular and field tokens together (#3916) (b01f62d), closes #3915 - iam: only attach policies to imported roles if the accounts match (#3716) (87db7aa), closes #2985 #3025
- cli: #3971 changed cdk synth to rebuild app (#3972) (198f45f)
- ec2: support configuring network ACLs (#3699) (3f10543), closes #3621
- ecr-assets: fail if tokens are used in buildArgs (#3989) (56ce9ff), closes #3981
- eks: add EKS AMis for 1.14 (#3950) (741ef43)
- eks: spot capacity and bootstrap options (#3937) (5da6b36), closes #3523 #3857 #3929 #3938 #3939
- events: allow passing a role to the CodePipeline target (#4006) (c4054ce), closes #3999
- assets: assets no longer expose a property
contentHash
. UsesourceHash
as a good approximation. if you have a strong use case for content hashes, please raise a github issue and we will figure out a solution. - dynamodb: fix
- ecs: The LoadBalancedServiceBase, LoadBalancedEc2Service and LoadBalancedFargateService constructs have been separated out into Application and Network LoadBalancedService constructs for both Ec2 and Fargate Services.
1.7.0 (2019-09-05)
- codepipeline: insufficient deploy cross-account CFN role S3 permissions (#3855) (09304f7), closes #3765
- ecs: default ecsmanagedtags and propagatetags to be undefined (#3887) (1f589a3)
- init-templates: add typesRoot compiler option for TypeScript templates (#3865) (2c9bafa), closes #3830
- init-templates: fix to include environments and CDK files to .gitignore for Python templates (#3863) (e4f9677), closes #2842
- lambda: environment var values are strings (#3858) (f892312), closes #3337
- s3-deployment: CallerReference has to be unique (#3880) (16eb658)
- ecs,lambda,rds: specify allowAllOutbound when importing security groups (#3833) (5ef34a1)
- events: validate MessageGroupId is specified only for FIFO queues (#3811) (cc88f1a)
- upgrade to CloudFormation specification 6.0.0 (#3942) (27de0a0)
- ecs,lambda,rds:
securityGroupId: string
replaced bysecurityGroup: ISecurityGroup
when importing a cluster/instance in@aws-cdk/aws-rds
1.6.1 (2019-08-29)
- cloudwatch: don't ignore 'stacked' property in GraphWidget class (#2103) (#3796) (527b362)
- init-templates: remove dependency on @types/node (#3840) (f46ce18), closes #3839
- toolkit: do not deploy empty stacks (#3144) (64ace90)
- vpc: recognize Public subnets by Internet Gateway (#3784) (54599e5), closes #3706
1.6.0 (2019-08-27)
- aws-stepfunctions: refactor sagemaker tasks and fix default role issue (#3014) (d8fcb50)
- cli: update bit.ly link to use GitHub link directly (#3782) (042fb53)
- ec2: also add egress rules for
allowInternally()
(#3741) (051aacb), closes #3254 - ec2: fix error when using Tokens in Vpc.fromLookup() (#3740) (004077f), closes #3600
- ec2: throw useful error when using lazy CIDR in VPC (#3739) (c92e9a9), closes #3617
- ecs: IAM role ARN must not specific region. (#3755) (210ed8f), closes #3733
- events: fix ECS target in Isolated subnet (#3786) (8bbc7e6)
- iam: make User implement IUser (#3738) (05e13f3), closes #3490
- lambda: generate correct metrics for aliases (#3728) (ce08853), closes #3724
- lambda/rds: allow to specify a role for log retention lambda (#3730) (013cab6), closes #3685
- scaling: don't fail when using Tokens (#3758) (0a2ed3d)
- acm: validated certificate can use existing Role (#3785) (b51723c), closes #3519 #3753
- appmesh: add support for AWS AppMesh (#2299) (98863f9), closes #2297
- cloudfront: define lambda@edge as resolvable resource (#2861) (c39d659), closes #1575
- cloudtrail: accept existing S3 bucket (#3680) (c2d6847), closes #3651
- core: stack.templateFile (#3808) (ac54e14), closes #3807
- ec2: add Instance and Bastion Host (#3697) (ef09aba), closes #3174 #1713
- ec2: imported SecurityGroups don't create egress rules (#3386) (04710d0), closes #3355
- ec2: Validate IP addresses passed to CidrIPvX (#3642) (b67b0f3), closes #3639
- ecs: add GPU support in container definition (#3044) (2590327)
- ecs: support ecs tag propagation and ecs managed tags (#3420) (1e81053)
- eks: updated AMI and EC2 instance sizes (#3805) (2d165ad), closes #3751
- elbv2: add support for Lambda targets (#3348) (f003dcc), closes #1921
- events: add target to make AWS API calls (#3720) (b6f055a), closes #2538
- region-info: report availability of metadata service in Bahrein & Hong-Kong (#3799) (95d8ac3)
- updated CloudFormation Resource specification 5.3.0 (#3789) (39ee810)
- ec2: By default, egress rules are not created anymore on imported security groups. This can be configured by setting
allowAllOutbound: false
upon importing.
1.5.0 (2019-08-20)
- aws-cdk: update Java template to new builder style (#3723) (ab07af1)
- ecr: set correct resource policy for ecr repository (#3590) (30f3968)
- events-targets: allow adding same fargate task to multiple rules (#3576) (5b109f9), closes #3574
- iam: support NotActions/NotResources (#964) (#3677) (a8ee987)
- kms: append aliasName only after first (#3659) (77671ad)
- region-info: IAM service principal for China regions (#3491) (013c181)
- s3-deployment: custom resource fails to run aws-cli (#3668) (6eabe6d), closes #3656
- bootstrap: force toolkit bucket private (#3695) (d1ee4ba)
- cloudformation: Update CloudFormation spec to 5.2.0 (#3710) (ab86df7)
- cloudformation: update cloudformation spec to v5.1.0 (#3670) (15f01d0)
- eks: output update-kubeconfig command (04d88fb), closes #3664
- eks: output update-kubeconfig command (#3669) (9e46532), closes #3664
- events-targets: allow specifying event for codebuild project target (#3637) (c240e1e)
- aws-cdk: Java builders no longer use the "with" prefix.
- eks: cluster name output will not be synthesized by default. instead we synthesize an output that includes the full
aws eks update-kubeconfig
command. You can enable synthesis of the cluster name output using theoutputClusterName: true
options.
1.4.0 (2019-08-14)
- acm: validated certificate survives eventual consistency in service (#3528) (e7eabca), closes #3527
- ec2: allow adding gateway endpoints to imported VPC (#3509) (b5db88d), closes #3171 #3472
- typo in restapi.ts (#3530) (8381683)
- apigateway: allow reusing lambda integration for multiple apis (#3532) (6e6440a)
- apigateway: invalid schema generated due to un-mapped
ref
(#3258) (254f62c) - asg/ec2: fix value of
defaultChild
(#3572) (c95eab6), closes #3478 - aws-ecs: ensure cluster attributes are accessible from constructor’s props (#3020) (24ebec8)
- cdk-dasm: update README and fix small typo (#3565) (92b5c2d)
- ci: add "do-not-merge" label auto-merge block (#3553) (0c806a6)
- cli: support aws:// prefix for bootstrap command (#3599) (8ac7389)
- core: correct return type of Fn.getAtt (#3559) (02ef2dc)
- core: fix detection of references in Fn.join (#3569) (0a2540b), closes #3554
- core: fix use of references in toJsonString() (#3568) (0fc2c3b)
- ecs: update driverOpts type definition from array to map (#3358) (65e4a5d)
- events: simplify the cache key for cross-account targets (#3526) (db7dc2e)
- java: surpress maven output in cdk.json (#3624) (02e097b), closes #3571
- kms: allow multiple
addAlias
calls on single key (#3596) (54f8ea9) - lambda: allow ArnPrincipal in grantInvoke (#3501) (e222e87), closes #3264
- sqs: do not emit grants to the AWS-managed encryption key (#3169) (07f017b), closes #2794
- ssm: add GetParameters action to grantRead() (#3546) (ebaa1b5)
- apigateway: support imported roles for integrations (#3369) (15df3c7), closes #2860
- autoscaling: blockDevices property (#3622) (6953e03)
- autoscaling: health check configuration (#3390) (#3436) (76e5173), closes #3381
- aws-codebuild: support pull_request_merged eventaction type (#3575) (5d4a275), closes #3557
- aws-stepfunctions-tasks: support step functions state machine execution from a task state (#3522) (ac77990), closes #3521
- bootstrap: add kms option to cdk bootstrap (#3634) (d915aac)
- cloudformation: update Resource Specification to v5.0.0 (#3605) (1509399)
- codepipeline: allow cross-account CloudFormation actions (#3208) (8df4b7e)
- ec2: add
GenericWindowsImage
(#3454) (f4ca41c), closes #3400 - ecs: container dependencies (#3032) (56656e0), closes #2490
- ecs-patterns: allow customizing logdriver (#3550) (8ffba4b)
- eks: add HKG (ap-east-1) EKS AMIs (#3533) (e9f9907)
- eks: default capacity (#3633) (91af473), closes #3541
- eks: default vpc (#3632) (3a96c27), closes #3541
- eks: programmatic definition of kubernetes resources (#3510) (4e11d86)
- elasticloadbalancing: add subnet selection (#2833) (#3415) (14e4bc9)
- iam: add Role.externalIds property (#3598) (ba2a4df)
- iam: customer managed policies (#3578) (4681d01)
- png and svg of official aws-cdk logo (#3567) (7158e45), closes #3561
- iam: support permissions boundary policy for User and Role (#3584) (661a95e)
- .net: templatized csharp sample app and moved from init to sample-app. Changed hook code to allow templating. (#3525) (dd52cec)
- route53: add classic elb target support (#3380) (b0720dd)
- route53-targets: s3 bucket website target support (#3618) (bccc11f)
- s3: website routing rules (#3411) (33f3554)
- s3-deployment: CloudFront invalidation (#3213) (e84bdd6), closes #3106
- eks: clusters will be created with a default capacity of x2 m5.large instances.
You can specify
defaultCapacity: 0
if you wish to disable. - stepfunctions-tasks: To define a callback task, users should specify "serviceIntegrationPattern: sfn.ServiceIntegrationPattern.WAIT_FOR_TASK_TOKEN" instead of "waitForTaskToken: true". For a sync task, users should use "serviceIntegrationPattern: sfn.ServiceIntegrationPattern.SYNC" in the place of "synchronous: true".
1.3.0 (2019-08-02)
- aws-ecs-patterns: update ecs-patterns to be consistent across constructs (#3404) (f7fbbe0)
- aws-kms: Incomplete KMS Resource Policy Permissions (#3459) (1280071), closes #3458 #3458
- cli: conversion of "tags" filter for EC2 DescribeVpcs call (#3393) (cf2e3f6), closes #3372
- cli: correctly handle tags when deploying multiple stacks (#3455) (4cb9755), closes #3471
- core: stop relying on === to find PhysicalName.GENERATE_IF_NEEDED (#3506) (c7e9dfb)
- iam: correctly limit the default PolicyName to 128 characters (#3487) (8259756), closes #3402
- toolkit: avoid EMFILE and preserve mode when zipping (#3428) (750708b), closes #3145 #3344 #3413
- codepipeline: make Pipeline importable by ARN (#3469) (8a100e5), closes #3467
- core: improved API for tags (#3465) (e15d391)
- ecs: ECS optimized Windows images (#3376) (6c0bf4a), closes #3398 #2574
- ecs: make cluster and vpc optional for higher level constructs (#2773) (979f6fd)
- ecs: support secret environment variables (#2994) (bc233fa), closes #1478
- events: ability to add cross-account targets (#3323) (3b794ea)
1.2.0 (2019-07-25)
- assert: CfnParameter MatchStyle diff support (#3408) (2747a76), closes #3399
- ecs: make registry URL domain-suffix dependent (#3394) (c989fa4), closes #3377
- events: allow adding the same target to rule multiple times (#3353) (5879178), closes #3173
- s3: fail early with bad notification filters (#3397) (cd0e9bd), closes #3347 #3398
- cli: VPC context provider looks up RouteTable IDs (#3171) (6d762f9)
- cloudformation: update to Resource Specification v4.2.0 (#3351) (9ec57af)
- cloudwatch: dashboardName validation (#3382) (f53f845), closes #2976
- core: allow multiple transforms on ITemplateOptions (#3395) (9565b9b), closes #3366
- s3: bucket access control (#3391) (820575b), closes /docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3 #3383
- s3: bucket websiteRedirect (#3392) (dd574cc), closes /docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration.html#cfn-s3 #1083
1.1.0 (2019-07-18)
- codepipeline: invoked Lambda doesn't have permissions to the pipeline bucket (#3303) (50c7319), closes #3274
- logs: fix infinite retention for jsii users (#3250) (0b1ea76)
- acm: add support for validationMethod (#3252) (ceb857d)
- codebuild: make artifact encryption configurable (#3230) (792a260)
- ec2: add new EC2 instance types #3308 (#3309) (184b93f)
- eks: update Kubernetes AMIs and latest version (#3331) (3fcdb45)
1.0.0 (2019-07-09)
We are excited to announce the 1.0.0 release of the AWS CDK – including GA support for TypeScript, JavaScript, and Python!
We want to thank all of our early customers, and the hundreds of contributors, for all the help and support in making this release a reality. Thank you for the patience to deal with the many, many breaking changes that happened along the way. This product would not be what it is today if it weren't for all the feedback, diligent issue reporting (bugs, missing features, unclear documentation, etc.), and code contributions from the community.
Special thanks go out to a few of our most prolific contributors who went above and beyond to help improve the CDK:
- Mike Cowgill
- Jonathan Goldwasser
- Breland Miley
- Piradeep Kandasamy
- Hsing-Hui Hsu
- Simon-Pierre Gingras
- Jungseok Lee
- Clare Liguori
- Yenlin Chen
- Lee Packham
1.0.0 is a huge milestone for us, but it's still only the beginning! We are excited to continue evolving the CDK, to introduce support for new languages and capabilities, and to continue working closely with the open-source community.
- cli: output message when successfully synthesizing multiple stacks (#3259) (0c30f12)
- python: Make sure stack name in the init template does not contain illegal characters (#3261) (7d22b2c)
0.39.0 (2019-07-08)
- codepipeline: mark crossRegionReplicationBuckets and crossRegionSupport as experimental. (#3226) (f8256e7)
- assets: packages
assets
,aws-ecr-assets
andaws-s3-assets
are now experimental instead of stable
- codepipeline: Pipeline.crossRegionReplicationBuckets is now experimental
- codepipeline: Pipeline.crossRegionSupport is now experimental
- codepipeline: CrossRegionSupport is now experimental
- assets: package
assets
is now experimental instead of stable - aws-ecr-assets: package
aws-ecr-assets
is now experimental instead of stable - aws-s3-assets: package
aws-s3-assets
is now experimental instead of stable
0.38.0 (2019-07-08)
- cli: exclusively is also '-e' for destroy (#3216) (d6f5207), closes #2367
- cloudwatch: AlarmWidget takes IAlarm (#3219) (9948bfd), closes #3068
- core: fix build errors in fsharp init-template (#3229) (7d020f1)
- core: UpdateReplacePolicy mirrors DeletionPolicy (#3217) (d61bd2c), closes #2901
- ecr: repository grant uses correct resource ARN (#3220) (cc2275c), closes #2473
- iam: fix managed policies for User (#3221) (ec1c5b7), closes #2557
- make capitalization of Ip/Az consistent (#3202) (d60d673)
- use classes for structs in Python (#3232) (161a459)
- codebuild: allow specifying principals and credentials for pulling build images. (#3049) (3319fe5), closes #2175
- codebuild:
LinuxBuildImage.fromDockerHub()
has been renamed tofromDockerRegistry()
andWindowsBuildImage.fromDockerHub()
has been renamed tofromDockerRegistry()
- iam:
aws-iam.User
andGroup
:managedPolicyArns
=>managedPolicies
. - in all identifiers, renamed
IPv4
=>Ipv4
,IPv6
=>Ipv6
,AZs
=>Azs
.
0.37.0 (2019-07-04)
- core: fix some return types (#3192) (b5997c3)
- ecs: grant drain-hook policy container-instance permissions (#3199) (7796cd7), closes #3190
- sns: allow tokens to be used in UrlSubscription (#2938) (5ce4141)
- ssm: correctly deduplicate parameter names (#3183) (47bf435), closes #3076
- stepfunctions: Downscope SageMaker permissions (#2991) (69c82c8)
- core:
construct.findChild()
now only looks up direct children - ec2:
Port.toRuleJSON
was renamed totoRuleJson
- codebuild:
PipelineProject.addSecondaryArtifact
now returns void (formerly any) - codebuild:
Project.addSecondaryArtifact
now returns void (formerly any)
0.36.2 (2019-07-03)
- cli: generate metadata resource for region-independent stacks (#3149) (0fb7ea3), closes #3142
- cli: stop processing on metadata errors (#3168) (0936bde)
- codepipeline: correctly pass the replication buckets to Action.bind() (#3131) (99ae5e7)
- codepipeline: grant missing permisisons to the CloudFormationExecuteChangeSetAction. (#3178) (958acc2), closes #3160
- codepipeline: grant the CodeCommit source Action read-write permissions to the Pipeline's Bucket. (#3175) (bd46e49), closes #3170
- core: prevent volatile physical name generation (#2984) (af2680c)
- ecs: remove temporary workaround for long arn support (#3072) (9fdb63f), closes #2176
- codedeploy: allow setting a Deployment Configuration for an imported Lambda Deployment Group. (#3158) (05a49f0)
- iam: can configure 'deny' for policy statements (#3165) (6679e86)
0.36.1 (2019-07-01)
- aws-codepipeline-actions: use SecretValue (#3097) (b84caab)
- cli: fix broken sample-app templates for TypeScript and JavaScript (#3101) (800ecf2)
- cli: fix broken test in Java init template (#3108) (f696efc), closes #3065
- cli: fix Python sample-app template (#3071) (796d6bb), closes #3058 #3069
- cli: improve description of --json to reflect behavior (#3086) (68cfa54), closes #2965
- cli: Python blank app should call app.synth(), not app.run() (16345dc), closes #3123
- cli: update TypeScript lib init template (#3134) (629e963)
- code: make CfnResource#_toCloudFormation null-safe (#3121) (71cb421), closes #3093
- codepipeline-actions: set service as backing resource for EcsDeployAction (#3085) (f2293e0)
- core: improve context providers error message for env-agnostic stacks (#3137) (5b80146), closes #2922 #3078 #3120 #3130
- documentation: auto-labeling fixed (#3089) (7fb82ad)
- documentation: removed duplicate generated template (#3090) (590b05c)
- elasticloadbalancingv2: fix to be able to set deregistrationDelay (#3075) (22ab4b4)
- events: correct token resolution in RuleTargetInput (#3127) (a20c841), closes #3119
- sns: create subscriptions in consumer scope (#3065) (64a203f), closes #3064
- apigateway: support custom domain names (#3135) (52b136b), closes #3103
- aws-apigateway: expand RestApi support to models, parameters and validators (#2960) (12e6380), closes #905 #1695 #727 #723 #2957
- codepipeline: generate a Role for every AWS-owned Action used in a Pipeline. (#3105) (921dcc9)
- core: add Tokenization.isResolvable for aspects (#3122) (d3a417e), closes #3026
- dynamodb: support RemovalPolicy (#3028) (a6175be), closes #2710
0.36.0 (2019-06-24)
- certificatemanager: increase wait time for DNS validation (#2961) (5b5ca48), closes #2914
- cli: disable line folding in YAML (#2964) (0dabb02), closes #2703
- cloudfront: fixes typos in cloudfront docs (#3021) (46b3292), closes #3019
- core: incorrect arg type on Fn.eachMemberIn (#2958) (5baa31f), closes #2950
- core: record DependableTrait directly on instance (#2962) (e535929), closes #2713
- elbv2: restrict ALB access logs bucket permissions to minimum (#2929) (370b905)
- rds: correctly expose DatabaseCluster's read endpoint (#2970) (2d50c18), closes #2969
- ecr: align IRepository events to RepositoryBase (#3036) (f51760f), closes #2921
- route53: dummy hosted zone has right name (#2995) (76b5309), closes #2076
- sfn: pass support non-object Result types (#2811) (5282a08)
- stepfunctions: fix passing of Token in RunLambdaTask (#2939) (58a80ab), closes #2937
- cli: ensure asset zips are consistently produced (#2931) (9101161), closes #1997 #2759
- rename all L1 enum-like members to ALL_CAPS #3024 #3023, #3018 #980 #2989 #2918 #2287
- cx-api: bump cli <=> cdk protocol version (#2956) (8ab84ec), closes #2922
- cloudformation: extract "custom-resources" module (#3027) (767687d), closes #2951
- codepipeline: API cleanup. (#2982) (13025c4)
- codepipeline: change the API of cross-region replication Buckets. (#2977) (98afdeb)
- codepipeline: introduce IAction and unify the Action.bind() signature (#3012) (089fc93)
- core: additional api cleanups (#2972) (7fb6fd6), closes #2971
- core: CfnResource.options => cfnOptions (#3030) (e537e4c)
- core: rename "Stack.autoRun" to "autoSynth" (#3016) (3b44791)
- core: rename @aws-cdk/cdk to @aws-cdk/core (#2932) (4a0272d), closes #2733
- ecs: hide
clusterName
from Services (#2980) (a6e4f6a)
- Support physical names in the entire Construct Library (#2894) (d9d3a99)
- codepipeline-actions: Add CAPABILITY_AUTO_EXPAND (#2851) (#2852) (c9340a6)
- core: environment-agnostic cloud assemblies (#2922) (c75d245), closes #2866
- core: Introduced Duration class (#2857) (2ceec6c)
- ecs: change the default Amazon Linux generation to v2 (#3009) (32e3421), closes #3005
- ecs: set default health check grace period to 60s (#2942) (0535d36), closes #2936
- events: make target optional in
onXxx()
methods (#2921) (ea10f0d), closes #2913 - issues: new format for issue templates (#2917) (67f6de0)
- sns: add support for subscription filter policy (#2778) (ae789ed)
- IMPORTANT: previous versions of the CDK CLI will not be fully compatible with this version of the framework and vice versa.
- core: the
@aws-cdk/cdk
module was renamed to@aws-cdk/core
, python:aws_cdk.core
, java: the artifactcdk
in groupIdsoftware.amazon.awscdk
was renamed tocore
- all enum and public static readonly members have been renamed to use "ALL_CAPS" capitalization
- properties throughout the AWS Construct Libraries that represent lengths of time have been re-typed to be
@aws-cdk/cdk.Duration
instead ofnumber
, and were renamed to exclude any unit indication. - core: The deprecated
app.run()
has been removed (useapp.synth()
). - core: The
CfnResource.options
property was renamed toCfnResource.cfnOptions
to avoid conflicts with properties introduced by derived classes. - core
CfnXxx.cfnResourceTypeName
is nowCFN_RESOURCE_TYPE_NAME
in generated CFN resources. - core:
ContextProvider
is no longer designed to be extended. UseContextProvider.getValue
andContextProvider.getKey
as utilities. - core:
Context.getSsmParameter
has been removed. Usessm.StringParameter.valueFromLookup
- core:
Context.getAvailabilityZones
has been removed. Usestack.availabilityZones
- core:
Context.getDefaultAccount
andgetDefaultRegion
have been removed an no longer available. Use the environment variablesCDK_DEFAULT_ACCOUNT
andCDK_DEFAULT_REGION
instead. - core:
StackProps.autoRun
was renamed toStackProps.autoSynth
. - core:
CfnElement.refAsString
renamed toref
ofstring
type. TheIResolvable
version have been removed. - core:
IStringValue
renamed toIStringProducer
- core:
Include
renamed toCfnInclude
- core:
Cfn
prefix was added to the following types:CfnCreationPolicy
,CfnResourceAutoScalingCreationPolicy
,CfnResourceAutoScalingCreationPolicy
,CfnDeletionPolicy
,CfnUpdatePolicy
,CfnAutoScalingRollingUpdate
,CfnAutoScalingReplacingUpdate
,CfnAutoScalingScheduledAction
,CfnCodeDeployLambdaAliasUpdate
,CfnTag
CfnRuleAssertion
,CfnDynamicReferenceProps
- core:
deepMerge
is no longer exported. - core:
CfnOutputProps.export
was renamed toexportName
. - core:
CfnOutput
all properties are now private - core:
StringListCfnOutput
has been removed - core: all instance methods of
Fn
were madestatic
, and theFn
constructor was made private. - ec2:
VpcNetworkProvider
has been removed. UseVpc.fromLookup
. - ec2:
ec2.MachineImage
will now resolve AMIs from SSM during deployment. - ecs:
ecs.EcsOptimizedAmi
will now resolve AMis from SSM during deployment. - ecs: previously, the default generation is conditionally set to Amazon Linux v1 if
hardwareType
wasSTANDARD
. Now it always defaults to Amazon Linux v2. - ecs:
service.clusterName
has been replaced with.cluster
. - sam
requiredTransform
is nowREQUIRED_TRANSFORM
in generated code. - cloudformation: the
AwsCustomResource
class was moved to a new module called @aws-cdk/custom-resource - codepipeline: the
capabilities
property is now an array to support multiple capabilities. - codepipeline: the Pipeline construction property crossRegionReplicationBuckets now takes values of type IBucket instead of string.
- corepipeline: the property
Pipeline.crossRegionScaffoldStacks
has been renamed tocrossRegionSupport
, and its type changed fromCrossRegionScaffoldStack
toCrossRegionSupport
. - codepipeline-actions: rename
CodeCommitAction.pollForSourceChanges
totrigger
and make it an enum. - codepipeline-actions: rename S3SourceAction.pollForSourceChanges to
trigger
, and make it an enum. - codepipeline-actions: rename StageAddToPipelineProps interface to StageOptions.
- codepipeline-actions: remove the classes
CloudFormationAction
andCloudFormationDeployAction
. - route52:
HostedZoneProvider
has been removed. UseHostedZone.fromLookup
.
0.35.0 (2019-06-19)
- cli: Move version check TTL file to home directory (#2774) (1ae11c0)
- cli: correctly pass Stack-level Tags (#2829) (e0718ef), closes #2822
- cli: Hide @types/yargs types from types (#2907) (095d8e2), closes #2895
- cloudformation-diff: string.replace error on
cdk context
(#2870) (b8a1c8e), closes #2854 - codebuild: API cleanup. (#2745) (c3667d7)
- codebuild: correctly handle permissions for Projects inside VPC. (#2662) (390baf1), closes #2651 #2652
- core: make IResolvable.creationStack required (#2912) (7c6ebb6)
- core: use default account/region when environment is not specified (#2867) (e9a4a79), closes #2728 #2853 #2866
- ecs: downscope permissions required by instance draining hook (#2761) (9ea6148)
- ecs-patterns: update constructs for ECS/Fargate consistency (#2795) (1378e2d)
- events-targets: event targets can have the same construct id (#2744) (210dd0f), closes #2377
- iam: support adding permissions to imported roles (#2805) (936464f), closes #2381 #2651 #2652 #2662
- cli: Correct java init template (#2889) (b3b3ba9)
- rds: allow setting backupRetentionPeriod=0 (#2875) (b0730dd)
- rds: fix unresolved endpoint socket address (#2846) (902636a), closes #2711
- sqs: remove 'Batch' permissions (#2806) (654cb37), closes #2381
- apigateway: API cleanups (#2903) (53e1191)
- assets: API cleanups (#2910) (83eee09)
- codebuild: introduce BuildSpec object (#2820) (86a2192)
- codepipeline: rename
name
inStageProps
tostageName
. (#2882) (be574a1) - core: revisit the Stack API (#2818) (47afdc2), closes #2728
- dynamodb: API cleanups (#2905) (d229836)
- ecs: Asset ContainerImage no longer takes Construct arguments (#2906) (8f400e7)
- ecs: rename
hwType
tohardwareType
(#2916) (1aa0589), closes #2896 - lambda: renamed the lambda.Runtime enum values from NodeJS to Nodejs (#2815) (10c37dd), closes #980
- lambda: Standardize Lambda API (#2876) (6446b78)
- logs: API cleanups (#2909) (06221ac)
- secretsmanager: API cleanups (#2908) (60f46c8)
- ssm: API cleanups (#2904) (bd1bcf5)
- clean up API for removal policy across the library (#2893) (65014ab)
- sns: move subscribers to
aws-sns-subscribers
(#2804) (9ef899c) - events: clean up Events APIs (#2840) (1e23921), closes #2840
- iam: cleanup of IAM library (#2823) (b735d1c), closes #2823
- cli: Expose props in CFN resources and remove propertyOverrides (#2372) (#2372) (aa61dfb), closes #2100
- cli: deploy/destory require explicit stack selection if app contains more than a single stack (#2772) (118a716), closes #2731
- cli: Remove stack rename support (#2819) (0f30e39), closes #2670
- cloudformation: add option to restrict data returned AwsCustomResource (#2859) (a691900), closes #2825
- cloudformation: Add removalPolicy on CustomResource (#2770) (859248a)
- cloudfront: add Lambda associations (#2760) (b088c8c)
- codepipeline: final form of the CodeBuild Pipeline action. (#2716) (c10fc9a)
- core: show token creation stack trace upon resolve error (#2886) (f4c8dcd)
- ecs: add metrics for Fargate services (#2798) (acf015d)
- ecs-patterns: LoadBalancedFargateService - allow specifying containerName and role (#2764) (df12197)
- elasticloadbalancing: add crossZone load balancing (#2787) (192bab7), closes #2786
- lambda: Expose $LATEST function version (#2792) (55d1bc8), closes #2776
- s3: add CORS Property to S3 Bucket (#2101) (#2843) (1a386d8)
- s3: add missing storage classes and API cleanups (#2834) (5cd9609), closes #2708
- stepfunctions: add grantStartExecution() (#2793) (da32176)
- stepfunctions: add support for AmazonSageMaker APIs (#2808) (8b1f3ed), closes #1314
- stepfunctions: waitForTaskToken for Lambda, SQS, SNS (#2686) (d017a14), closes #2658 #2735
- formalize the concept of physical names, and use them for cross-environment CodePipelines. (#1924) (6daaca8)
- assets:
AssetProps.packaging
has been removed and is now automatically discovered based on the file type. - assets:
ZipDirectoryAsset
has been removed, useaws-s3-assets.Asset
. - assets:
FileAsset
has been removed, useaws-s3-assets.Asset
. - lambda:
Code.directory
andCode.file
have been removed. UseCode.asset
. - assets-docker: The module has been renamed to aws-ecr-assets
- ecs: the property that specifies the type of EC2 AMI optimized for ECS was renamed to
hardwareType
fromhwType
. - codebuild: the method addToRoleInlinePolicy in CodeBuild's Project class has been removed.
- dynamodb:
TableOptions.pitrEnabled
renamed topointInTimeRecovery
. - dynamodb:
TableOptions.sseEnabled
renamed toserverSideEncryption
. - dynamodb:
TableOptions.ttlAttributeName
renamed totimeToLiveAttribute
. - dynamodb:
TableOptions.streamSpecification
renamedstream
. - ecs:
ContainerImage.fromAsset()
now takes only build directory directly (no need to passscope
orid
anymore). - secretsmanager:
ISecret.secretJsonValue
renamed tosecretValueFromJson
. - ssm:
ParameterStoreString
has been removed. UseStringParameter.fromStringParameterAttributes
. - ssm:
ParameterStoreSecureString
has been removed. UseStringParameter.fromSecureStringParameterAttributes
. - ssm:
ParameterOptions.name
was renamed toparameterName
. - logs:
newStream
renamed toaddStream
and doesn't need a scope - logs:
newSubscriptionFilter
renamed toaddSubscriptionFilter
and doesn't need a scope - logs:
newMetricFilter
renamed toaddMetricFilter
and doesn't need a scope - logs:
NewSubscriptionFilterProps
renamed toSubscriptionProps
- logs:
NewLogStreamProps
renamed toLogStreamOptions
- logs:
NewMetricFilterProps
renamed toMetricFilterOptions
- logs:
JSONPattern
renamed toJsonPattern
- apigateway:
MethodOptions.authorizerId
is now calledauthorizer
and accepts anIAuthorizer
which is a placeholder interface for the authorizer resource. - apigateway:
restapi.executeApiArn
renamed toarnForExecuteApi
. - apigateway:
restapi.latestDeployment
anddeploymentStage
are now read-only. - events:
EventPattern.detail
is now a map. - events:
scheduleExpression: string
is nowschedule: Schedule
. - multiple modules have been changed to use
cdk.RemovalPolicy
to configure the resource's removal policy. - core:
applyRemovalPolicy
is nowCfnResource.applyRemovalPolicy
. - core:
RemovalPolicy.Orphan
has been renamed toRetain
. - core:
RemovalPolicy.Forbid
has been removed, useRetain
. - ecr:
RepositoryProps.retain
is nowremovalPolicy
, and defaults toRetain
instead of remove since ECR is a stateful resource - kms:
KeyProps.retain
is nowremovalPolicy
- logs:
LogGroupProps.retainLogGroup
is nowremovalPolicy
- logs:
LogStreamProps.retainLogStream
is nowremovalPolicy
- rds:
DatabaseClusterProps.deleteReplacePolicy
is nowremovalPolicy
- rds:
DatabaseInstanceNewProps.deleteReplacePolicy
is nowremovalPolicy
- codebuild: rename BuildSource to Source, S3BucketSource to S3Source, BuildArtifacts to Artifacts, S3BucketBuildArtifacts to S3Artifacts
- codebuild: the classes CodePipelineBuildSource, CodePipelineBuildArtifacts, NoBuildSource, and NoBuildArtifacts have been removed
- codebuild: rename buildScriptAsset and buildScriptAssetEntrypoint to buildScript and buildScriptEntrypoint, respectively
- cli: All L1 ("Cfn") Resources attributes are now prefixed with
attr
instead of the resource type. For example, in S3bucket.bucketArn
is nowbucket.attrArn
. propertyOverrides
has been removed from all "Cfn" resources, instead users can now read/write resource properties directly on the resource class. For example, instead oflambda.propertyOverrides.runtime
just uselambda.runtime
.- codepipeline: the property designating the name of the stage when creating a CodePipeline is now called
stageName
instead ofname
- codepipeline: the output and extraOutputs properties of the CodeBuildAction were merged into one property, outputs.
- lambda:
- Renamed
Function.addLayer
toaddLayers
and made it variadic - Removed
IFunction.handler
property - Removed
IVersion.versionArn
property (the value is atfunctionArn
) - Removed
SingletonLayerVersion
- Stopped exporting
LogRetention
- Renamed
- cli: if an app includes more than one stack "cdk deploy" and "cdk destroy" now require that an explicit selector will be passed. Use "cdk deploy '*'" if you want to select all stacks.
- iam:
PolicyStatement
no longer has a fluid API, and accepts a props object to be able to set the important fields. - iam: rename
ImportedResourcePrincipal
toUnknownPrincipal
. - iam:
managedPolicyArns
renamed tomanagedPolicies
, takes return value fromManagedPolicy.fromAwsManagedPolicyName()
. - iam:
PolicyDocument.postProcess()
is now removed. - iam:
PolicyDocument.addStatement()
renamed toaddStatements
. - iam:
PolicyStatement
is no longerIResolvable
, call.toStatementJson()
to retrieve the IAM policy statement JSON. - iam:
AwsPrincipal
has been removed, useArnPrincipal
instead. - s3:
s3.StorageClass
is now an enum-like class instead of a regular enum. This means that you need to call.value
in order to obtain it's value. - s3:
s3.Coordinates
renamed tos3.Location
- codepipeline:
Artifact.s3Coordinates
renamed toArtifact.s3Location
. - codebuild: buildSpec argument is now a
BuildSpec
object. - lambda:
lambda.Runtime.NodeJS*
are nowlambda.Runtime.Nodejs*
- core: multiple changes to the
Stack
API - core:
stack.name
renamed tostack.stackName
- core:
stack.stackName
will return the concrete stack name. UseAws.stackName
to indicate { Ref: "AWS::StackName" }. - core:
stack.account
andstack.region
will return the concrete account/region only if they are explicitly specified when the stack is defined (under theenv
prop). Otherwise, they will return a token that resolves to the AWS::AccountId and AWS::Region intrinsic references. UseContext.getDefaultAccount()
andContext.getDefaultRegion()
to obtain the defaults passed through the toolkit in case those are needed. UseToken.isUnresolved(v)
to check if you have a concrete or intrinsic. - core:
stack.logicalId
has been removed. Usestack.getLogicalId()
- core:
stack.env
has been removed, usestack.account
,stack.region
andstack.environment
instead - core:
stack.accountId
renamed tostack.account
(to allow treating account more abstractly) - core:
AvailabilityZoneProvider
can now be accessed throughContext.getAvailabilityZones()
- core:
SSMParameterProvider
can now be accessed throughContext.getSsmParameter()
- core:
parseArn
is nowArn.parse
- core:
arnFromComponents
is nowarn.format
- core:
node.lock
andnode.unlock
are now private - core:
stack.requireRegion
andrequireAccountId
have been removed. UseToken.unresolved(stack.region)
instead - core:
stack.parentApp
have been removed. UseApp.isApp(stack.node.root)
instead. - core:
stack.missingContext
is now private - core:
stack.renameLogical
have been renamed tostack.renameLogicalId
- core:
IAddressingScheme
,HashedAddressingScheme
andLogicalIDs
are now internal. OverrideStack.allocateLogicalId
to customize how logical IDs are allocated to resources. - cli: The CLI no longer accepts
--rename
, and the stack names are now immutable on the stack artifact. - sns: using a queue, lambda, email, URL as SNS Subscriber now
requires an integration object from the
@aws-cdk/aws-sns-subscribers
package. - ecs-patterns: Renamed QueueWorkerService for base, ec2 and fargate to QueueProcessingService, QueueProcessingEc2Service, and QueueProcessingFargateService.
- iam:
roleName
inRoleProps
is now of typePhysicalName
- s3:
bucketName
inBucketProps
is now of typePhysicalName
- codebuild:
roleName
inRoleProps
is now of typePhysicalName
0.34.0 (2019-06-07)
- build: Correct buildspec so it does not fail (#2737) (e362ac8)
- certificatemanager: correct certificateArn typo in the README (#2712) (2bfc1c2)
- cli: don't fail if region cannot be determined (#2721) (0c72ef3), closes #2697
- cli: remove support for applets (#2691) (0997ee2)
- cloudwatch: move SNS Alarm Action to
aws-cloudwatch-actions
(#2688) (e3df21a) - codebuild: grant the Project's Role permissions to the KMS Key if it was passed. (#2715) (4e12fe6)
- core: apply overrides after rendering properties (#2685) (f2636e5), closes #2677
- core: Make filterUndefined null-safe (#2789) (e4fb811), closes awslabs/jsii#523
- ecs: remove LoadBalancedFargateServiceApplet, no longer supported (#2779) (a610017)
- ecs-patterns: expose service on queue worker services (#2780) (6d83cb9)
- pkglint: Adjust stability banner style (#2768) (da94d8b)
- route53: support zone roots as record names (#2705) (08a2852)
- stepfunctions: improve Task payload encoding (#2706) (1c13faa)
- Construct props must not use the 'any' type (awslint:props-no-any) (#2701) (cb2b334), closes #2673
- remove deprecated modules (#2693) (421bf6d)
- core: improvements to Construct API (#2767) (3f7a0ad), closes #1934 #2766
- core: misc cleanups to App-related APIs (#2731) (b2e1964), closes #1891 #2750
- kms: Rename EncryptionKeyAlias to Alias (#2769) (da8e1d5)
- core: node.defaultChild as a shortcut to escape hatch (#2684) (8cd3c23), closes #2290
- core+cli: support tagging of stacks (#2185) (d0e19d5), closes #932
- event-targets: add support for fargate/awsvpc tasks (#2707) (2754dde)
- events: support SQS queues as rule targets (#2683) (078e34a), closes #1786
- rds: add engineVersion to DatabaseCluster (#2698) (0593d51), closes #2212
- rds: add support for database instances (#2187) (b864041), closes #2075 #1693
- route53: improve constructs for basic records (#2741) (696f53f)
- s3: default to KMS if encryptionKey is specified (#2719) (ae4a04f), closes #2714
- tokens: enable type coercion (#2680) (0f54698), closes #2679
- route53:
recordValue: string
prop inroute53.TxtRecord
changed tovalues: string[]
recordValue
prop inroute53.CnameRecord
renamed todomainName
route53.AliasRecord
has been removed, useroute53.ARecord
orroute53.AaaaRecord
with thetarget
prop.- kms: The
EncryptionKeyAlias
class was renamed toAlias
. Associated types (such asEncryptionKeyAliasProps
) were renamed in the same way. - cli: This release requires CDK CLI >= 0.34.0
- core:
App.run()
was renamed toApp.synth()
(soft deprecation, it will be removed in the next release). - core:
node.stack
is nowStack.of(construct)
(fixes #2766) - core:
node.resolve
has been moved tostack.resolve
. - core:
node.stringifyJson
has been moved tostack.stringifyJson
. - core:
node.validateTree
is nowConstructNode.validate(node)
- core:
node.prepareTree
is nowConstructNode.prepare(node)
- core:
node.getContext
is nownode.tryGetContext
- core:
node.recordReference
is nownode.addReference
- core:
node.apply
is nownode.applyAspect
- core:
node.ancestors()
is nownode.scopes
- core:
node.required
has been removed. - core:
node.typename
has been removed. - core:
node.addChild
is now private - core:
node.findReferences()
is nownode.references
- core:
node.findDependencies()
is nownode.dependencies
- core:
stack.dependencies()
is nowstack.dependencies
- core:
CfnElement.stackPath
has been removed. - core:
CloudFormationLang
is now internal (usestack.toJsonString()
) - cloudwatch: using an SNS topic as CloudWatch Alarm Actxion now
requires an integration object from the
@aws-cdk/aws-cloudwatch-actions
package. - event-targets:
targets.EcsEc2Task
renamed totargets.EcsTask
- SNS - Subscription
endpoint
is now typestring
(previouslyany
) - Step Functions -
result
in the Pass state is now typemap
(previouslyany
) - the following modules are no longer released:
@aws-cdk/applet-js
,@aws-cdk/aws-autoscaling-api
,@aws-cdk/aws-codedeploy-api
- cli: applets are no longer supported as an app type, use "decdk" instead.
- core: Properties passed to
addPropertyOverride
should match in capitalization to the CloudFormation schema (normally pascal case). For example,addPropertyOverride('accessControl', 'xxx')
should now beaddPropertyOverride('AccessControl', 'xxx')
. - rds:
rds.RotationSingleUser
renamed tords.SecretRotation
- rds:
rds.ClusterParameterGroup
no longer hassetParameter()
andremoveParameter()
methods, use the parameters prop directly in the constructor instead.
0.33.0 (2019-05-30)
IMPORTANT: apps created with the CDK version 0.33.0 and above cannot be used with an older CLI version.
- core: Fn.cidr should return a list and not a string (#2678) (9d2ea2a), closes #2671
- cli: fix ts-node usage on Windows (#2660) (5fe0af5)
- cli: make
cdk docs
open the new API reference (#2633) (6450758) - cli: correctly pass build args to docker build (#2634) (9c58d6f)
- core: hide
dependencyRoots
from public API (#2668) (2ba5ad2), closes #2348 - autoscaling: move lifecycle hook targets to their own module (#2628) (b282132), closes #2447
- codepipeline: no longer allow providing an index when adding a Stage to a Pipeline. (#2624) (ce39b12)
- codepipeline-actions: correctly serialize the userParameters passed to the Lambda invoke Action. (#2537) (ceaf54a)
- cx-api: improve compatibility messages for cli <=> app (#2676) (38a9894)
- ecs: move high level ECS constructs into aws-ecs-patterns (#2623) (f901313)
- logs: move log destinations into 'aws-logs-destinations' (#2655) (01601c2), closes #2444
- s3: move notification destinations into their own module (#2659) (185951c), closes #2445
- cli: decouple "synth" and "deploy" through cloud assemblies (#2636) (c52bcfc), closes #1893 #2093 #1954 #2310 #2073 #1245 #341 #956 #233 #2016
- acm: allow specifying region for validated certificates (#2626) (1a7d4db)
- apigateway: support for UsagePlan, ApiKey, UsagePlanKey (#2564) (203f114), closes #723
- autoscaling: allow setting spotPrice (#2571) (d640055), closes #2208
- cfn: update CloudFormation spec to v3.3.0 (#2669) (0f553ee)
- cli: disable
noUnusedLocals
andnoUnusedParameters
from typescript templates (#2654) (b061826) - cloudformation: aws-api custom resource (#1850) (9a48b66)
- cloudwatch: support all Y-Axis properties (#2406) (8904c3e), closes #2385
- logs: using a Lambda or Kinesis Stream as CloudWatch log subscription destination now requires an integration object from the
@aws-cdk/aws-logs-destinations
package. - codepipeline-actions: removed the
addPutJobResultPolicy
property when creating LambdaInvokeAction. - cli:
--interactive
has been removed - cli:
--numbered
has been removed - cli:
--staging
is now a boolean flag that indicates whether assets should be copied to the--output
directory or directly referenced (--no-staging
is useful for e.g. local debugging with SAM CLI) - assets: Assets (e.g. Lambda code assets) are now referenced relative to the output directory.
- assert:
SynthUtils.templateForStackName
has been removed (useSynthUtils.synthesize(stack).template
). - cx-api:
cxapi.SynthesizedStack
renamed tocxapi.CloudFormationStackArtifact
with multiple API changes. - core:
cdk.App.run()
now returns acxapi.CloudAssembly
instead ofcdk.ISynthesisSession
. - s3: using a Topic, Queue or Lambda as bucket notification destination now requires an integration object from the
@aws-cdk/aws-s3-notifications
package. - autoscaling: using a Topic, Queue or Lambda as Lifecycle Hook Target now requires an integration object from the
@aws-cdk/aws-autoscaling-hooktargets
package. - codepipeline: the property atIndex has been removed from the StagePlacement interface.
- aws-ecs: These changes move all L3 and higher constructs out of the aws-ecs module into the aws-ecs-patterns module. The following constructs have been moved into the aws-ecs-patterns module:
EcsQueueWorkerService
,FargateQueueWorkerService
,LoadBalancedEcsService
,LoadBalancedFargateService
andLoadBalancedFargateServiceApplets
. - cloudwatch: rename
leftAxisRange
=>leftYAxis
,rightAxisRange
=>rightYAxis
, renameYAxisRange
=>YAxisProps
.
0.32.0 (2019-05-24)
- update all 'onXxx' methods to be CloudWatch Events (#2609) (28942d2), closes #2278
- appscaling: fix StepScaling (#2522) (1f004f6)
- aws-ecs: allow linux parameters to be settable (#2397) (417e5e8), closes #2380
- aws-glue: fix glue tableArn and integer schema name (#2585) (99e173e)
- cdk: CfnMapping.findInMap with tokens (#2531) (756e2b6), closes #1363
- cloudfront: Use regional endpoint for S3 bucket origins (64c3c6b)
- codebuild: correctly pass the VPC subnet IDs to the Policy Statement's condition when using a VPC. (#2506) (145da28), closes #2335
- codecommit: add a Repository.fromRepositoryName() method. (#2515) (6fc3718), closes #2514
- codedeploy: change the load balancer API in server Deployment Group. (#2548) (8e05d49), closes #2449
- codepipeline: correctly validate Artifacts used by Actions in the same Stage. (#2558) (cfe46f6), closes #2549
- core: Correctly search for loaded modules in node 12 (#2612) (286866a), closes nodejs/node#27583
- ec2: allow disabling privateDnsEnabled on VPCs (#2596) (4d2fbe9), closes #2556
- ec2: fix VPC endpoint name for SageMaker Notebooks (#2598) (aec8ec2)
- iam: allow CompositePrincipal construction with spread (#2507) (eb13741)
- lambda: compare Runtimes by value instead of identity (#2543) (584579e)
- lambda: deprecate old Lambda runtimes (#2594) (20f4ec1)
- route53-targets: move Alias Targets into their own package (#2617) (f40fe98), closes #2448
- s3: Make IBucket.arnForObject accept only (exactly) one key pattern (5ac6e77)
- remove "export"s and normalize resource names (#2580) (68efa04), closes #2577 #2578 #2458 #2419 #2579 #2313 #2551
- use construct interfaces in public api (awslint:ref-via-interface) (#2499) (f9c6ad6), closes #2412
- assets: Add deploy-time content hash (#2334) (9b4db42), closes #1400
- aws-cdk: use ts-node for TypeScript templates (#2527) (4f7b48d), closes #1532
- aws-codepipeline: Pipeline now accepts existing IAM role (#2587) (eb35807), closes #2572
- aws-ecs: add ECS/Fargate QueueWorkerService constructs (#2568) (7dd0e1a)
- aws-ecs: include GPU & ARM based ECS optimized AMI options (#2453) (45abfcd)
- aws-ecs-patterns: add ScheduledEc2Task L3 construct (#2336) (b9cbb6a)
- cdk: support encoding Tokens as numbers (#2534) (b9eeaa0), closes #1455
- cli: Add javascript for init-templates/app (#2525) (2c5676a), closes #398
- cli: add javascript init-templates 'sample-app' (#2535) (67960f8)
- codebuild: add support for local cache modes (#2529) (e7ad990), closes #1956
- codebuild: rename standard 1.0 image and add standard 2.0 image (#2541) (e4e24ab), closes #2306
- config: AWS Config, Managed and Custom rules (#2326) (deed353)
- ecs: allow to specify log retention for aws log driver (#2511) (1feda0c)
- events: group CW Event Targets in module (#2576) (7cb8e5e), closes #2403 #2404 #2581
- lambda: add NodeJS10x runtime (#2544) (553577a)
- s3: add MetricsConfiguration Property to S3 Bucket (#2163) (1cc43b3)
- stepfunctions: add service integrations (#1646) (e4ac767)
- stepfunctions: ExecutionTime metric (#2498) (84fda45)
- toolkit: allow to pass build args to docker build (#2604) (c51596e)
- toolkit: show when new version is available (#2484) (6cf4bd3), closes #297
- route53-targets: using a CloudFront Distribution or an ELBv2
Load Balancer as an Alias Record Target now requires an integration
object from the
@aws-cdk/aws-route53-targets
package. - s3: The
IBucket.arnForObject
method no longer concatenates path fragments on your behalf. Pass the/
-concatenated key pattern instead. - All
export
methods from all AWS resources have been removed. CloudFormation Exports are now automatically created when attributes are referenced across stacks within the same app. To export resources manually, you can explicitly define aCfnOutput
. - kms:
kms.EncryptionKey
renamed tokms.Key
- ec2:
ec2.VpcNetwork
renamed toec2.Vpc
- ec2:
ec2.VpcSubnet
renamed toec2.Subnet
- cloudtrail:
cloudtrail.CloudTrail
renamedto
cloudtrail.Trail` - Deleted a few
XxxAttribute
andXxxImportProps
interfaces which were no longer in used after their correspondingexport
method was deleted and there was no use for them in imports. - ecs:
ecs.ClusterAttributes
now acceptsIVpc
andISecurityGroup
instead of attributes. You can use their correspondingfromXxx
methods to import them as needed. - servicediscovery:
servicediscovery.CnameInstance.instanceCname
renamed tocname
. - glue:
glue.IDatabase.locationUrl
is now only inglue.Database
(not on the interface) - ec2:
ec2.TcpPortFromAttribute
andUdpPortFromAttribute
removed. UseTcpPort
andUdpPort
withnew Token(x).toNumber
instead. - ec2:
ec2.VpcNetwork.importFromContext
renamed toec2.Vpc.fromLookup
- iam:
iam.IRole.roleId
has been removed from the interface, butRole.roleId
is still available for owned resources. - codedeploy: the type of the
loadBalancer
property in ServerDeploymentGroupProps has been changed. - apigateway:
apigateway.ResourceBase.trackChild
is now internal. - cloudfront:
cloudfront.S3OriginConfig.originAccessIdentity
is noworiginAccessIdentityId
- codedeploy:
codedeploy.LambdaDeploymentGroup.alarms
is nowcloudwatch.IAlarm[]
(previouslycloudwatch.Alarm[]
) - codepipeline:
codepipeline.crossRegionScaffoldingStacks
renamed tocrossRegionScaffolding
- codepipeline:
codepipeline.CrossRegionScaffoldingStack
renamed tocodepipeline.CrossRegionScaffolding
and cannot be instantiated (abstract) - ec2:
ec2.VpcSubnet.addDefaultRouteToNAT
renamed toaddDefaultNatRoute
and made public - ec2:
ec2.VpcSubnet.addDefaultRouteToIGW
renamed toaddDefaultInternetRoute
, made public and first argument is the gateway ID (string) and not the CFN L1 class - ecs:
ecs.Ec2EventRuleTarget.taskDefinition
is nowITaskDefinition
(previouslyTaskDefinition
) - lambda:
lambda.IEventSource.bind
now acceptsIFunction
instead ofFunctionBase
. UseIFunction.addEventSourceMapping
to add an event source mapping under the function. - lambda:
lambda.Layer.grantUsage
renamed tolambda.layer.addPermission
and returns void - stepfunctions:
stepfunctions.StateMachine.role
is nowiam.IRole
(previouslyiam.Role
) - cloudwatch-events: the events API has been significantly re-worked
⚠️ This new API is still being discussed (see #2609) and might change again in the next release!- All
onXxx()
CloudWatch Event methods now have the signature:resource.onEvent('SomeId', { target: new SomeTarget(...), // options });
- CloudWatch:
onAlarm
was renamed toaddAlarmAction
onOk
was renamed toaddOkAction
onInsufficientData
was renamed toaddInsufficientDataAction
- AutoScaling:
onLifecycleTransition
was renamed toaddLifecycleHook
- LambdaDeploymentGroup
onPreHook
was renamed toaddPreHook
onPostHook
was renamed toaddPostHook
- UserPool:
- all
onXxx
were renamed toaddXxxTrigger
- all
- Repository:
onImagePushed
was renamed toonCloudTrailImagePushed
- Bucket:
onEvent
was renamed toaddEventNotification
onObjectCreated
was renamed toaddObjectCreatedNotification
onObjectRemoved
was renamed toaddObjectRemovedNotification
onPutObject
was renamed toonCloudTrailPutObject
0.31.0 (2019-05-06)
- aws-ecs: expose readonly service on LoadBalancedEc2Service (#2395) (52af870), closes #2378
- ecs: correct logic of healthcheck command (#2462) (fa29d3b), closes #2461
- ecs: fix memoryReservationLimit in LoadBalancedEcsService (#2463) (6b50927), closes #2263
- lambda: allow grantInvoke with principals (#2391) (b3792aa)
- update jsii to 0.10.5 (#2482) (e4ec30a)
- update jsii to v10.0.4 (#2479) (1df4e2d), closes #2478
- convert "import" to "from" methods (#2456) (862ed7b), closes #2450 #2428 #2424 #2429 #2425 #2422 #2423 #89
- bootstrap: allow specifying the toolkit staging bucket name (#2407) (3bfc641), closes #2390
- codebuild: add webhook Filter Groups. (#2319) (fd74d07), closes #1842
- elbv2: add fixed response support for application load balancers (#2328) (750bc8b)
- all
Foo.import
static methods are nowFoo.fromFooAttributes
- all
FooImportProps
structs are now calledFooAttributes
stepfunctions.StateMachine.export
has been removed.ses.ReceiptRule.name
is nowses.ReceiptRule.receiptRuleName
ses.ReceiptRuleSet.name
is nowses.ReceiptRuleSet.receiptRuleSetName
secretsmanager.AttachedSecret
is now calledsecretsmanager.SecretTargetAttachment
to match service semanticsecr.Repository.export
has been removeds3.Bucket.bucketUrl
is now calleds3.Bucket.bucketWebsiteUrl
lambda.Version.functionVersion
is now calledlambda.Version.version
ec2.SecurityGroup.groupName
is nowec2.SecurityGroup.securityGroupName
cognito.UserPoolClient.clientId
is nowcognito.UserPoolClient.userPoolClientId
apigateway.IRestApiResource
is nowapigateway.IResource
apigateway.IResource.resourcePath
is nowapigateway.IResource.path
apigateway.IResource.resourceApi
is nowapigateway.IResource.restApi
0.30.0 (2019-05-02)
- cdk-test: check API compatibility (#2356) (1642925), closes #145
- codepipeline: allow creation of GitHub Pipelines without source trigger (#2332) (ed39a8c)
- elbv2: add TLS listener for NLB (#2122) (71d694f)
s3.Bucket.domainName
renamed tos3.Bucket.bucketDomainName
.codedeploy.IXxxDeploymentConfig.deploymentConfigArn
is now a property and not a method.ec2.SecurityGroupBase
is now privateec2.VpcNetworkBase
is now privatekinesis.StreamBase
is now privatekms.EncryptionKeyBase
is now privatelogs.LogGroupBase
is now privatessm.ParameterBase
is now privateeks.ClusterBase
is now privatecodebuild.ProjectBase
is now privatecodecommit.RepositoryBase
is now privatecodedeploy.ServerDeploymentGroupBase
is now privateeks.ClusterBase
is now privatelambda.LayerVersionBase
is now privaterds.DatabaseClusterBase
is now privatesecretsmanager.SecretBase
is now privateses.ReceiptRuleSetBase
is now private- codepipeline: the
pollForSourceChanges
property inGitHubSourceAction
has been renamed totrigger
, and its type changed from aboolean
to an enum.
0.29.0 (2019-04-24)
- acm: enabled validation of certificates on the zone name (#2133) (f216f96)
- aws-apigateway: add integrationHttpMethod prop to AwsIntegration (#2160) (dfc6665), closes #2105
- aws-cloudwatch: remove workaround on optional DashboardName (6c73d8a), closes #213
- aws-ecs: fix default daemon deploymentConfig values (#2210) (c2e806b), closes #2209
- aws-ecs: handle long ARN formats for services (#2176) (66df1c8), closes #1849
- aws-lambda: fix circular dependency with lambda and codedeploy (#2236) (382da6a)
- certificatemanager: remove bundled lambda devdependencies (#2186) (6728b41)
- codebuild: add validation for Source when the badge property is true (#2242) (07812b2), closes #1749
- core: allow CfnMapping.findInMap to use pseudo functions/params (#2220) (464cb6f), closes #1363
- core: Use different symbol for Stack.isStack versus CfnReference.isCfnReference (#2305) (c1e41ed)
- decdk: set the timeout in the schema tests to 10 seconds. (#2250) (8521b6f)
- dynamodb: remove global secondary index limit (#2301) (43afa3a), closes #2262
- ecr: Fix typo in ImportRepository error message (#2217) (b7c9b21)
- elasticloadbalancingv2: dependency between ALB and logging bucket (#2221) (99e085d), closes #1633
- java-app-template: invoke
app.run()
(#2300) (47ff448), closes #2289 awslabs/jsii#456 - lambda: avoid OperationAbortedException when using log retention (#2237) (12a118c)
- s3: Add validations for S3 bucket names (#2256) (f810265), closes #1308
- servicediscovery: allow to register multiple instances on a service (#2207) (9f88696)
- toolkit: don't fail when terminal width is 0 (#2355) (9c2220c), closes #2253
- toolkit: fix broken confirmation prompt (#2333) (4112c84)
- toolkit: options requiring arguments fail if not supplied (#2197) (0f6ce56), closes #2192
- toolkit: remove metadata warning if region does not have resource (#2216) (22ed67c)
- toolkit: stop 'cdk doctor' from printing AWS_ variables (#2357) (6209c6b), closes #1931
- codebuild: remove oauthToken property from source (#2252) (8705af3), closes #2252 #2199
- aws-ec2: correct InstanceSize.Nano spelling (#2215) (d22a154), closes #2215 #2214
- aws-dynamodb-global: global dynamodb tables (experimental) (#2251) (ec367c8)
- aws-events-targets: centralized module for cloudwatch event targets (#2343) (1069938)
- cdk-dasm: generate cdk code from cloudformation (#2244) (b707782)
- cloudwatch: add support for time ranges in dashboards (#2248) (18c1723)
- codebuild: add support for more images (#2233) (87b1ea0), closes #2079
- codepipeline: add ECS deploy Action. (#2050) (d46b814), closes #1386
- codepipeline: change to stand-alone Artifacts. (#2338) (b778e10)
- codepipeline: make the default CodePipeline Bucket have an encryption key (#2241) (ef9bba5), closes #1924
- core: verify CfnOutput has a value and fix VPC export (#2219) (9e87661), closes #2012
- events-targets: LambdaFunction (#2350) (48d536b), closes #1663
- ec2: add support for vpc endpoints (#2104) (bbb3f34)
- lambda: introduce a new kind of
Code
,CfnParametersCode
. (#2027) (4247966) - cfnspec: update CloudFormation resources to v2.30.0 (#2239) (aebcde5)
- toolkit: stage assets under .cdk.assets (#2182) (2f74eb4), closes #1716 #2096
- cloudwatch: Renamed
MetricCustomization
toMetricOptions
. - codepipeline: CodePipeline Actions no longer have the
outputArtifact
andoutputArtifacts
properties. - codepipeline:
inputArtifact(s)
andadditionalInputArtifacts
properties were renamed toinput(s)
andextraInputs
. - codepipeline:
outputArtifactName(s)
andadditionalOutputArtifactNames
properties were renamed tooutput(s)
andextraOutputs
. - codepipeline: The classes
CodeBuildBuildAction
andCodeBuildTestAction
were merged into one classCodeBuildAction
. - codepipeline: The classes
JenkinsBuildAction
andJenkinsTestAction
were merged into one classJenkinsAction
. - events-targets:
lambda.Function
no longer implementsIEventRuleTarget
. Instead, use@aws-cdk/aws-events-targets.LambdaFunction
. - aws-events-targets:
sns.Topic
no longer implementsIEventRuleTarget
. Use@aws-cdk/aws-events-targets.SnsTopic
instead. - codebuild:
codebuild.Project
no longer implementsIEventRuleTarget
. Use@aws-cdk/aws-events-targets.CodeBuildProject
. - core: the
cdk.Root
construct has been removed. Usecdk.App
instead. - stepfunctions: In
stepfunctions.WaitProps
: the propsseconds
,timestamp
,secondsPath
andtimestampPath
are nowduration
of a union-like classWaitDuration
(e.g.duration: WaitDuration.seconds(n)
) - codedeploy: In
codedeploy.ServerDeploymentConfigProps
: the propsminHealthyHostCount
andminHealthyHostPercentage
are nowminimumHealthyHosts
of union-like classMinimumHealthyHosts
(e.g.minimumHealthyHosts: MinimumHealthyHosts.percentage(50)
) - cloudformation: In
cloudformation.CustomResourceProps
: the propstopicProvider
andlambdaProvider
are nowprovider
of union-like classCustomResourceProvider
(e.g.CustomResourceProvider.lambda(fn)
- cloudformation:
cloudformation.CustomResource
no longer extendsCfnCustomResource
. - ssm:
ssm.ParameterProps
renamed tossm.ParameterOptions
. - codepipeline: customers who use GitHub, GitHubEnterprise or Bitbucket as source will need to remove the oauthToken field as it's no longer available.
- codebuild: change the default image from UBUNTU_14_04_BASE to UBUNTU_18_04_STANDARD.
- ec2:
aws-ec2.InstanceSize.None
was renamed toInstanceSize.Nano
- ec2: *
vpc.selectSubnetIds(...)
has been replaced withvpc.selectSubnets(...).subnetIds
. - You will not be able to combine jsii libraries written against previous versions of jsii with this version of the CDK.
0.28.0 (2019-04-04)
-
aws-ecs: use executionRole for event rule target (#2165) (aa6f7bc), closes #2015
-
feat(aws-iam): refactor grants, add OrganizationPrincipal (#1623) (1bb8ca9), closes #1623 #236
- codepipeline: move all of the Pipeline Actions to their dedicated package. (#2098) (b314ecf)
- codepipeline: re-factor the CodePipeline Action
bind
method to take a Role separately from the Pipeline. (#2085) (ffe0046) - ec2: support reserving IP space in VPCs (#2090) (4819ff4)
- Add python support to cdk init (#2130) (997dbcc)
- ecs: support AWS Cloud Map (service discovery) (#2065) (4864cc8), closes #1554
- lambda: add a
newVersion
method. (#2099) (6fc179a) - update CloudFormation resource spec to v2.29.0 (#2170) (ebc490d)
- The
secretsmanager.SecretString
class has been removed in favor ofcdk.SecretValue.secretsManager(id[, options])
- The following prop types have been changed from
string
tocdk.SecretValue
:codepipeline-actions.AlexaSkillDeployAction.clientSecret
,codepipeline-actions.AlexaSkillDeployAction.refreshToken
,codepipeline-actions.GitHubSourceAction.oauthToken
,iam.User.password
secretsmanager.Secret.stringValue
andjsonFieldValue
have been removed. Usesecretsmanage.Secret.secretValue
andsecretJsonValue
instead.secretsmanager.Secret.secretString
have been removed. Usecdk.SecretValue.secretsManager()
orsecretsmanager.Secret.import(..).secretValue
.- The class
cdk.Secret
has been removed. Usecdk.SecretValue
instead. - The class
cdk.DynamicReference
is no longer a construct, and it's constructor signature was changed and was renamedcdk.CfnDynamicReference
. grant(function.role)
andgrant(project.role)
are nowgrant(function)
andgrant(role)
.- core: Replace use of
cdk.Secret
withsecretsmanager.SecretString
(preferred) orssm.ParameterStoreSecureString
. - codepipeline: this changes the package of all CodePipeline Actions to be aws-codepipeline-actions.
- codepipeline: this moves all classes from the aws-codepipeline-api package to the aws-codepipeline package.
- codepipeline: this changes the CodePipeline Action naming scheme from .PipelineAction (s3.PipelineSourceAction) to codepipeline_actions.Action (codepipeline_actions.S3SourceAction).
0.27.0 (2019-03-28)
- Python support (experimental)
- You can now run the CLI through
npx cdk
- Make sure to go through the BREAKING CHANGES section below
- autoscaling: verify public subnets for associatePublicIpAddress (#2077) (1e3d41e)
- ec2: descriptive error message when selecting 0 subnets (#2025) (0de2206), closes #2011
- lambda: use Alias ARN directly (#2091) (bc40494)
- rds: remove Instance class (#2081) (6699fed)
- secretsmanager: allow templated string creation (#2010) (4e105a3)
- secretsmanager/ssm: verify presence of parameter name (#2066) (b93350f)
- serverless: rename aws-serverless to aws-sam (#2074) (4a82f13)
- stepfunctions: make Fail.error optional (#2042) (86e9d03)
- readonly struct properties and hide internals (#2106) (66dd228), closes awslabs/cdk-ops#321
- toolkit:: new 'cdk' package to allow executing the cli through
npx cdk
(#2113) (32bca05) - Python Support (#2009) (e6083fa)
- core: present reason for cyclic references (#2061) (e82e208)
- lambda: add support for log retention (#2067) (63132ec), closes #667 #667
- rds: cluster retention, reference KMS key by object (#2063) (99ab46d)
- secretsmanager/rds: support credential rotation (#2052) (bf79c82)
- toolkit: introduce the concept of auto-deployed Stacks. (#2046) (abacc66)
- lambda:
cloudWatchLogsRetentionTimeDays
in@aws-cdk/aws-cloudtrail
now uses alogs.RetentionDays
instead of aLogRetention
. - core:
stack._toCloudFormation
method is now unavailable and is replaced by@aws-cdk/assert.SynthUtils.toCloudFormation(stack)
. - rds: replaced
kmsKeyArn: string
bykmsKey: kms.IEncryptionKey
inDatabaseClusterProps
- autoscaling:
VpcNetwork.isPublicSubnet()
has been renamed toVpcNetwork.isPublicSubnetIds()
. - serverless: renamed
aws-serverless
toaws-sam
- ec2:
vpcPlacement
has been renamed tovpcSubnets
on all objects,subnetsToUse
has been renamed tosubnetType
.natGatewayPlacement
has been renamed tonatGatewaySubnets
. - All properties of all structs (interfaces that do not begin with an "I") are now readonly since it is passed by-value and not by-ref (Python is the first language to require that). This may impact code in all languages that assumed it is possible to mutate these structs. Let us know if this blocks you in any way.
0.26.0 (2019-03-20)
- aws-cdk: fix VpcNetwork.importFromContext() (#2008) (e1a1a7b), closes #1998
- aws-cdk: update F# template to latest CDK version (#2006) (bda12f2)
- cdk: merge cloudFormation tags with aspect tags (#1762) (bfb14b6), closes #1725
- cfn2ts: properly de-Tokenize L1 string-arrays (#2033) (1e50383), closes #2030
- core: allow embedding condition expression as strings (#2007) (6afa87f), closes #1984
- ecs: make TaskDefinition accept IRoles (#2034) (f32431a), closes #1925
- lambda: expose underlying function's role on the alias (#2024) (de296de)
- stepfunctions: Actually perform rendering of NotCondition (06b59d9)
- toolkit: 'cdk deploy' support updates to Outputs (#2029) (23509ae), closes #778
- toolkit: increase number of retries (#2053) (133dc98), closes #1647
- rename core classes adding a Cfn prefix (#1960) (5886bf6), closes #1462 #288
- name "toCloudFormation" internal (renamed to
_toCloudFormation
) (#2047) (515868b), closes #2044 #2016
- aws-cdk: support fixed repository name for DockerImageAsset (#2032) (942f938)
- aws-rds: ability to add an existing security group to RDS cluster (#2021) (1f24336)
- cfn2ts: make cfn2ts output TSDoc-compatible docblocks (#2000) (c6c66e9)
- cfnspec: update to version 2.28.0 (#2035) (6a671f2)
- cloudformation: allow specifying additional inputs for deploy Actions (#2020) (2d463be), closes #1247
- core: can use Constructs to model applications (#1940) (32c2377), closes #1479
- ecs: support private registry authentication (#1737) (11ed691), closes #1698
- glue: add L2 resources for
Database
andTable
(#1988) (3117cd3) - region-info: Model region-specific information (#1839) (946b444), closes #1282
- servicediscovery: AWS Cloud Map construct library (#1804) (1187366)
- ses: add constructs for email receiving (#1971) (3790858)
- add more directories excluded and treated as source in the JetBrains script. (#1961) (a1df717)
- “toCloudFormation” is now internal and should not be called directly. Instead use “app.synthesizeStack”
- ecs:
ContainerImage.fromDockerHub
has been renamed toContainerImage.fromRegistry
. - rename Condition to CfnCondition.
- rename StackElement to CfnElement.
- rename Parameter to CfnParameter.
- rename Resource to CfnResource.
- rename Output to CfnOutput.
- rename Mapping to CfnMapping.
- rename Referenceable to CfnRefElement.
- rename IConditionExpression to ICfnConditionExpression.
- rename CfnReference to Reference.
- rename Rule to CfnRule.
0.25.3 (2019-03-12)
- aws-cloudtrail: correct created log policy when sendToCloudWatchLogs is true (#1966) (f06ff8e)
- aws-ec2: All SSM WindowsVersion entries (#1977) (85a1840)
- decdk: relax validation when not using constructs (#1999) (afbd591)
0.25.2 (2019-03-07)
- awslint: Don't fail if the
@aws-cdk/cdk
module is not present (#1953) (929e854) - cdk-integ: Update cdk-integ to use new context file (#1962) (dbd2401)
- cloudfront: allow IBucket as CloudFront source (855f1f5), closes #1946
- cloudfront: pass
viewerProtocolPolicy
to the distribution's behaviors (#1932) (615ecd4) - eks: remove 'const' from NodeType enum (#1970) (ac52989), closes #1969
- init: update the C# init sample with the new
App
API (#1919) (02f991d)
- aws-certificatemanager: add DNSValidatedCertificate (#1797) (ae8870d), closes #605
- aws-ecs: add Fargate version 1.3.0 (#1968) (b529ad7)
- core: democratize synthesis and introduce artifacts (#1889) (4ab1cd3), closes #1716 #1893
- ec2: add support for vpn connections (#1899) (e150648), closes awslabs/jsii#231
- toolkit: add '--reuse-asset' option (#1918) (1767b61), closes #1916
0.25.1 (2019-03-04)
0.25.0 (2019-02-28)
- toolkit: Don't collect runtime information when versionReporting is disabled (#1890) (f827a88)
- aws-codepipeline: update CFN example. (#1653) (5dec01a)
- aws-s3-deployment: add setup.cfg to fix pip install bug on mac (#1826) (759c708)
- cdk: move apply() from Construct to ConstructNode (#1738) (642c8a6), closes #1732
- cloudtrail: addS3EventSelector does not expose all options (#1854) (5c3431b), closes #1841
- cloudtrail: Invalid resource for policy when using sendToCloudWatchLogs (#1851) (816cfc0), closes #1848
- cloudwatch: fix name of 'MetricAlarmProps' (#1765) (c87f09a), closes #1760
- codebuild: accept IRole instead of Role (#1781) (f08ca15), closes #1778
- codedeploy: LambdaDeploymentGroup now takes IRole (#1840) (f6adb7c), closes #1833
- codepipeline: allow providing Tokens as the physical name of the Pipeline. (#1800) (f6aea1b), closes #1788
- core: improve error message if construct names conflict (#1706) (0ea4a78)
- core: performance improvements (#1750) (77b516f)
- ecs: rename capacity adding methods (#1715) (e3738ac)
- elbv2: explicitly implement IApplicationTargetGroup (#1806) (828a2d7), closes #1799
- init: add new parameter to C# example (#1831) (c7b99d8)
- kms: have EncryptionKeyBase implement IEncryptionKey (#1728) (49080c6)
- lambda: Add 'provided' runtime (#1764) (73d5bef), closes #1761
- lambda: add region check for environment variables (#1690) (846ed9f)
- ssm: Generate correct SSM Parameter ARN (#1726) (39df456)
- toolkit: correctly reset context from the shell command (#1903) (58025c0)
- toolkit: correcty load cdk.json file without context (#1900) (7731565)
- toolkit: ignore hidden files for 'cdk init' (#1766) (afdd173), closes #1758
- toolkit: only fail if errors are on selected stacks (#1807) (9c0cf8d), closes #1784 #1783
- toolkit: support diff on multiple stacks (#1855) (72d2535)
- build: Npm ignores files and folders named "core" by default (#1767) (42876e7), closes npm/npm-packlist#24
- core: stack.partition is never scoped (#1763) (c968588)
- apigateway: add support for MethodResponse to aws-apigateway. (#1572) (46236d9)
- autoscaling: bring your own IAM role (#1727) (2016b8d), closes #1701
- aws-eks: add construct library for EKS (#1655) (22fc8b9), closes #991
- cfnspec: manually add VPCEndpointService (#1734) (f782958), closes #1659
- codebuild: add support for setting the gitCloneDepth property on Project sources. (#1798) (5408a53), closes #1789
- core: Add
construct.node.stack
attribute (#1753) (a46cfd8), closes #798 - dynamodb: partitionKey and sortKey are now immutable (#1744) (63ae0b4)
- ecs: allow ECS to be used declaratively (#1745) (2480f0f), closes #1618
- kms: Allow opting out of "Retain" deletion policy (#1685) (7706302)
- lambda: allow specify event sources in props (#1746) (a84157d)
- lambda-event-sources: "api" event source (#1742) (5c11680)
- route53: Convenience API for creating zone delegations (#1853) (f974531), closes #1847
- sns: Support raw message delivery (#1827) (cc0a28c)
- ssm: allow referencing "latest" version of SSM parameter (#1768) (9af36af), closes #1587
- toolkit: improve docker build time in CI (#1776) (1060b95), closes #1748
- codepipelines: re-structure the CodePipeline Construct library API. (#1590) (3c3db07)
- decdk: Prototype for declarative CDK (decdk) (#1618) (8713ac6)
- cloudtrail: The
CloudTrail.addS3EventSelector
accepts an options object instead of only aReadWriteType
value. - codedeploy: If an existing role is provided to a LambdaDeploymentGroup,
you will need to provide the assuming service principal (
codedeploy.amazonaws.com
) yourself. - core:$$** 'Aws' class returns unscoped Tokens, introduce a new class 'ScopedAws' which returns scoped Tokens.
- ssm: Rename
parameter.valueAsString
=>parameter.stringValue
, renameparameter.valueAsList
=>parameter.stringListValue
, renamessmParameter.parameterValue
=>ssmParameter.stringValue
orssmParameter.stringListValue
depending on type, renamesecretString.value
=>secretString.stringValue
, renamesecret.toSecretString()
=>secret.secretString
- cloudwatch: Rename 'MetricAarmProps' => 'MetricAlarmProps'.
- core:
Stack.find(c)
andStack.tryFind(c)
were replaced byc.node.stack
. - dynamodb:
partitionKey
is now a required property when defining adynamodb.Table
. TheaddPartitionKey
andaddSortKey
methods have been removed. - cdk: Tag aspects use this feature and any consumers of this
implementation must change from
myConstruct.apply( ... )
tomyConstruct.node.apply( ... )
. - ecs: Rename 'addDefaultAutoScalingGroupCapacity' => 'addCapacity', 'addAutoScalingGroupCapacity' => 'addAutoScalingGroup'.
- codepipelines: the CodePipeline Stage class is no longer a Construct, and cannot be instantiated directly, only through calling Pipeline#addStage; which now takes an Object argument instead of a String.
- codepipelines: the CodePipeline Actions are no longer Constructs.
- codepipelines: the CodePipeline Action name is now part of the Action props, instead of being a separate parameter.
- codepipelines: the Pipeline#addToPipeline methods in Resources like S3, CodeBuild, CodeCommit etc.
have been renamed to
toCodePipelineAction
. - aws-eks: For
AutoScalingGroup
, renamedminSize
=>minCapacity
,maxSize
=>maxCapacity
, for consistency withdesiredCapacity
and also Application AutoScaling. For ECS'saddDefaultAutoScalingGroupCapacity()
,instanceCount
=>desiredCapacity
and the function now takes an ID (pass"DefaultAutoScalingGroup"
to avoid interruption to your deployments).
0.24.1 (2019-02-07)
- reference documentation is missing (8fba8bc)
0.24.0 (2019-02-06)
- aws-ecs: correctly sets MinimumHealthyPercentage to 0 (#1661) (ce5966f), closes #1660
- cdk: only make Outputs Exports when necessary (#1624) (ebb8aa1), closes #903 #1611
- elbv2: fix specifying TargetGroup name (#1684) (1d7198a), closes #1674
- sns: create subscription object under subscriber (#1645) (0cc11ca), closes #1643 #1534
- aws-s3: add option to specify block public access settings (#1664) (299fb6a)
- cdk: aspect framework and tag implementation (#1451) (f7c8531), closes #1136 #1497 #360
- cdk: metric functions now automatically generated (#1617) (36cfca8)
- cognito: Implement user pool and user pool client constructs (#1615) (8e03ed6)
- core: overrideLogicalId: override IDs of CFN elements (#1670) (823a1e8), closes #1594
- secretsmanager: L2 construct for Secret (#1686) (8da9115)
- serverless: add AWS::Serverless::Application to CFN spec (#1634) (bfa40b1)
- ssm: Add L2 resource for SSM Parameters (#1515) (9858a64)
- cdk: if you are using TagManager the API for this object has completely changed. You should no longer use TagManager directly, but instead replace this with Tag Aspects.
cdk.Tag
has been renamed tocdk.CfnTag
to enablecdk.Tag
to be the Tag Aspect.
0.23.0 (2019-02-04)
- apig: Move
selectionPattern
tointegrationResponses
(#1636) (7cdbcec), closes #1608 - aws-cdk: Improvements to IAM diff rendering (#1542) (3270b47), closes #1458 #1495 #1549
- aws-cdk: Java init template works on Windows (#1503) (24f521a)
- sns: create subscription object under subscriber (5c4a9e5), closes #1643 #1534
- Improve error message in SSMParameterProvider (#1630) (6a8e010), closes #1621
- aws-ec2: CfnNetworkAclEntry.CidrBlock should be optional (#1565) (4af7c0d), closes #1517
- aws-ec2: change maxAZs default for VPCs to 3 (#1543) (32a4b29), closes #996
- aws-events: ergonomics improvements to CloudWatch Events (#1570) (5e91a0a), closes #1514 #1198 #1275
- aws-s3-deployment: clean up tempfiles after deployment (#1367) (e291d37)
- dynamodb: grant also gives access to indexes (#1564) (33c2a6d), closes #1540
- Report stack metadata in assertions (#1547) (c2d17f5)
- alexa-ask: Add deploy action for Alexa (#1613) (0deea61)
- apigateway: support function alias in LambdaIntegration (9f8bfa5)
- app: add source map support to TS app template (#1581) (5df22d9), closes #1579
- autoscaling: Support AssociatePublicIpAddress (#1604) (23c9afc), closes #1603
- aws-codepipeline: support setting a Role for a CFN Action (#1449) (77fe077)
- aws-ecs: add additional configuration to Volume (#1357) (ff96f3f)
- aws-ecs: add support for Event Targets (#1571) (aa68db5), closes #1370
- aws-ecs: ECS service scaling on ALB RequestCount (#1574) (2b491d4)
- aws-s3: add the option to not poll to the CodePipeline Action. (#1260) (876b26d)
- cdk: Support UpdateReplacePolicy on Resources (#1610) (f49c33b)
- cdk: treat the "fake" CFN intrinsics (Fn::GetArtifactAtt, Fn::GetParam) specially when stringifying JSON. (#1605) (2af2426), closes #1588
- cfnspec: Upgrade to CFN Resource Specification v2.21.0 (#1622) (21a5529)
- cloudwatch: Support 'datapointsToAlarm' on Alarms (#1631) (828ac20), closes #1626
- core: Generalization of dependencies (#1583) (53e68257)
- ecs: environment variables for LoadBalancedXxxService (#1537) (b633505)
- ecs: VPC link for API Gatweay and ECS services (#1541) (6642ca2)
- iam: Make
roleName
available onIRole
(#1589) (9128390) - lambda: reserved concurrent executions (#1560) (f7469c1)
- lambda: Support AWS Lambda Layers (#1411) (036cfdf)
- s3: Add DeployAction for codepipeline (#1596) (8f1a5e8)
- s3: export bucket websiteURL (#1521) (#1544) (4e46d3c)
- s3: imported bucket format option for website URL format (#1550) (28a423d)
- toolkit: disable colors if a terminal is not attached to stdout (#1641) (58b4685)
- aws-codepipeline: the
role
property in the CloudFormation Actions has been renamed todeploymentRole
. - aws-codepipeline: the
role
property in theapp-delivery
package has been renamed todeploymentRole
.
0.22.0 (2019-01-10)
This is a major release with multiple breaking changes in the core layers. Please consult the breaking changes section below for details.
We are focusing these days on finalizing the common patterns and APIs of the CDK framework and the AWS Construct Library, which is why you are seeing all these breaking changes. Expect a few more releases with changes of that nature as we stabilize these APIs, so you might want to hold off with upgrading. We will communicate when this foundational work is complete.
- core: automatic cross-stack refs for CFN resources (#1510) (ca5ee35)
- ecs: correct typo and other minor mistakes in ecs readme (#1448) (9c91b20)
- elbv2: unable to specify load balancer name (#1486) (5b24583), closes #973 #1481
- lambda: use IRole instead of Role to allow imports (#1509) (b909dcd)
- toolkit: fix typo in --rename option description (#1438) (1dd56d4)
- toolkit: support multiple toolkit stacks in the same environment (#1427) (095da14), closes #1416
- apigateway: add tracingEnabled property to APIGW Stage (#1482) (fefa764)
- assets: enable local tooling scenarios such as lambda debugging (#1433) (0d2b633), closes #1432
- aws-cdk: better stack dependency handling (#1511) (b4bbaf0), closes #1508 #1505
- aws-codepipeline: jenkins build and test actions (#1216) (471e8eb)
- aws-codepipeline: support notifications on the ManualApprovalAction (#1368) (068fa46), closes #1222
- aws-ecs: add support Amazon Linux 2 (#1484) (82ec0ff), closes #1483
- aws-kms: allow tagging kms keys (#1485) (f43b4d4)
- aws-lambda: add input and output artifacts to the CodePipeline action (#1390) (fbd7728), closes #1384
- cdk: transparently use constructs from another stack (d7371f0), closes #1324
- cli: allow specifying options using env vars (#1447) (7cd84a0)
- aws resource api linting (breaking changes) (#1434) (8c17ca7), closes #742 #1428
- core: cloudformation condition chaining (#1494) (2169015), closes #1457
- diff: better diff of arbitrary json objects (#1488) (607f997)
- route53: support cname records (#1487) (17eddd1), closes #1420
- step-functions: support parameters option (#1492) (935054a), closes #1480
- core: construct base class changes (breaking) (#1444) (fb22a32), closes #1431 #1441 #189 #1441 #1431
- core: idiomize cloudformation intrinsics functions (#1428) (04217a5), closes #202
- cloudformation: no more generated attribute types in CFN layer (L1) (#1489) (4d6d5ca), closes #1455 #1406
- cloudformation: stop generating legacy cloudformation resources (#1493) (81b4174)
- Cross-stack references: if you are using
export()
andimport()
to share constructs between stacks, you can stop doing that, instead ofFooImportProps
accept anIFoo
directly on the consuming stack, and use that object as usual. ArnUtils.fromComponents()
andArnUtils.parse()
have been moved ontoStack
.- All CloudFormation pseudo-parameter (such as
AWS::AccountId
etc) are now also accessible viaStack
, asstack.accountId
etc. - All CloudFormation intrinsic functions are now represented as static methods under the
Fn
class (e.g.Fn.join(...)
instead ofnew FnJoin(...).toString()
) resolve()
has been moved tothis.node.resolve()
.CloudFormationJSON.stringify()
has been moved tothis.node.stringifyJson()
.validate()
now should beprotected
.- The deprecated
cloudformation.XxxResource
classes have been removed. Use theCfnXxx
classes instead. - Any
CfnXxx
resource attributes that represented a list of strings are now typed asstring[]
s (via #1144). Attributes that represent strings, are still typed asstring
(#712) and all other attribute types are represented ascdk.Token
. - route53: The
route53.TXTRecord
class was renamed toroute53.TxtRecord
. - route53: record classes now require a
zone
when created (not assuming zone is the parent construct). - lambda: the static "metric" methods moved from
lambda.FunctionRef
tolambda.Function
. - Many AWS resource classes have been changed to conform to API guidelines:
XxxRef
abstract classes are nowIXxx
interfacesXxxRefProps
are nowXxxImportProps
XxxRef.import(...)
are nowXxx.import(...)
acceptXxxImportProps
and returnIXxx
export(): XxxImportProps
is now defined inIXxx
and implemented by imported resources
0.21.0 (2018-12-20)
- aws-cloudformation: change the type of Role in CodePipeline Actions to IRole. (#1364) (3d07e48), closes #1361
- codebuild: Rename includeBuildID property of S3BucketBuildArtifacts (#1354) (84eb7ad), closes #1347
- toolkit: scrutiny dialog should fail with no tty (#1382) (478a714), closes #1380
- aws-codebuild: change the API of GitHub and BitBucket Sources. (#1345) (9cebf0d)
- add "engines.node" key to all packages (#1358) (b595cf0), closes #1337
- deprecate "cloudformation" namespace in favor of "CfnXxx" (#1311) (d20938c), closes #878 awslabs/jsii#283 awslabs/jsii#270
- update CloudFormation resources v2.18.0 (#1407) (0f80b56), closes #1409
- aws-codebuild: allow setting Webhook for GitHub Sources. (#1387) (d5cae61)
- aws-ec2: can now use PrefixList in ingress rules (#1360) (c3cfcd5)
- aws-iam: configure ExternalId for Role (#1359) (3d200c9), closes #235
- aws-lambda: Add python 3.7 runtime (#1379) (8c733ef)
- cdk: add the CodeDeployLambdaAlias Update Policy. (#1346) (d648b58), closes #1177
- core: convert "/" in construct id to "--" and disallow tokens (#1375) (011aac0), closes #1351 #1374
- iam: CompositePrincipal and allow multiple principal types (#1377) (b942ae5), closes #1201
- aws-cloudformation: this changes the type of the
role
property in CFN CodePipeline Actions fromRole
toIRole
. This is needed to use imported Roles when creating Actions. - aws-codebuild: this changes the API of CodeBuild's GitHub and BitBucket Sources to take an owner/repo pair instead of an entire cloneUrl, to make it consistent with the GitHubSourceAction in the CodePipeline package. Also adds handling the reportBuildStatus and insecureSsl Source properties.
- codebuild: the
includeBuildID
property ofS3BucketBuildArtifacts
was renamed toincludeBuildId
(note the lower-case trailingd
).
0.20.0 (2018-12-13)
- assert: Adjust assertion behavior to be stricter (#1289) (0919bf4), closes awslabs/cdk-ops#186
- aws-cdk: fix profile use in non-'aws' partitions (#1283) (5478913), closes #1262 #1109
- upgrade jsii to v0.7.12 (#1328) (62b7941)
- aws-cdk: fix YAML line wrapping issue (#1334) (48b9bdd), closes #1309
- aws-codecommit: make the onCommit CloudWatch Event respect creating the branch as well. (#1320) (cb1aed9)
- aws-ecr: add the
addToPipeline
method to IRepository. (#1329) (c4a9b74) - aws-ecs: fix healthCheckGracePeriodSeconds (#1266) (3a89e21), closes #1265
- aws-ecs: set permissions for 'awslogs' log driver (#1291) (f5bc59b), closes #1279
- aws-lambda: code.asset now supports jar files, fixes #1294 (#1330) (3076070)
- aws-logs: set default log retention of LogGroup to 731 instead of 730 (#1344) (71dc09f), closes #1343
- aws-cdk: directory assets follow symlinks (#1318) (2dfd593), closes #731
- aws-s3: orphan buckets by default (#1273) (2eb47ad), closes #1269
- core: include jsii runtime version in analytics (#1288) (f06de18), closes awslabs/jsii#325 #1258 awslabs/cdk-ops#127
- core: only include cdk libs in version reporting (#1290) (6184423), closes awslabs/cdk-ops#172
- docs: add design process description & basic style guide (#1229) (5ffa7e2), closes awslabs/cdk-ops#177
- toolkit: include toolkit version in AWS::CDK::Metadata (#1287) (5004f50), closes #1286
- assert: the behavior change of
haveResource
can cause tests to fail. If allowing extension of the expected values is the intended behavior, you can switch to thehaveResourceLike
matcher instead, which exposes the previous behavior.
0.19.0 (2018-12-04)
- aws-cdk: add '-h' flag to bring up help (#1274) (47dafb0), closes #1259
- aws-cloudfront: Allow to disable IPv6 on cloudfront distribution (#1244) (10b7092), closes #1243
- aws-cloudtrail: correct S3 bucket policy and dependency chain (#1268) (0de2da8), closes #1172
- aws-ec2: fix code generation of IcmpPing (#1235) (6a13a18), closes #1231
- cdk: don't use instanceof in App (#1249) (a45c3bd), closes #1245
- cdk init: rename 'dotnet' to 'csharp' (#1210) (da6a799), closes #1123
- cdk init: update 'app' init template (#1209) (0287109), closes #1124 #1128 #1214
- aws-codebuild: allow using docker image assets as build images (#1233) (72413c1), closes #1232 #1219
- aws-codebuild: rename the Project methods for adding Actions to CodePipeline. (#1254) (825e448), closes #1211
- aws-ecr: add an ECR Repository source CodePipeline Action. (#1255) (01cc8a2)
- app-delivery: IAM policy for deploy stack (#1165) (edc9a21), closes #1165 #1151
- Update to CloudFormation spec v2.16.0 (#1280) (9df5c54)
- aws-codebuild:
ecr.RepositoryRef
has been replaced byecr.IRepository
, which means thatRepositoryRef.import
is nowRepository.import
. Futhermore, the CDK Toolkit must also be upgraded since the docker asset protocol was modified.IRepository.grantUseImage
was renamed toIRepository.grantPull
. - aws-codebuild:
addBuildToPipeline
was renamed toaddToPipeline
andaddTestToPipeline
was renamed toaddPipelineToTest
in order to align with naming conventions. CloudFormationCapabilities.IAM
renamed toCloudFormation.AnonymousIAM
andPipelineCloudFormationDeployActionProps.capabilities?: CloudFormationCapabilities[]
has been changed toPipelineCloudFormationDeployActionProps.capabilities?: CloudFormationCapabilities
no longer an array.PipelineCloudFormationDeployActionProps.fullPermissions?:
has been renamed toPipelineCloudFormationDeployActionProps.adminPermissions:
and is required instead of optional.
0.18.1 (2018-11-21)
- aws-autoscaling: Add hook ordering dependency (#1218) (7e6ad84), closes #1212
- aws-elasticloadbalancingv2: target group metrics (#1226) (de488df), closes #1213
0.18.0 (2018-11-19)
- aws-cdk: make bootstrapping not require --app (#1191) (c7b1004), closes #1188
- aws-ecs: don't emit DesiredCount in daemon mode (#1199) (7908de4), closes #1197
- aws-elasticloadbalancingv2: 'targetType' on groups (#1174) (b4293f2)
- aws-elasticloadbalancingv2: fix rule dependency (#1170) (aeb0f4f), closes #1160
- deps: upgrade jsii to 0.7.11 (#1202) (f3a5f12)
- docs: fix "getting started" documentation (#1045) (29b611f)
- toolkit: typo in
cdk bootstrap
output (#1176) (b83fe85)
- aws-autoscaling: add instance AutoScaling (#1134) (d397dd7), closes #1042 #1113
- aws-codebuild: add support for additional sources and artifact in Projects. (#1110) (d911b08)
- aws-ec2: add VPC context provider (#1168) (e8380fa), closes #1095
- aws-ecs: expose service and target group on the LoadBalancedFargateService (#1175) (e799699)
- aws-ecs: instance autoscaling and drain hook (#1192) (811462e), closes #1162
- aws-ecs: Support HTTPS in load balanced Fargate service (#1115) (76a5cc7)
- aws-ecs: TLS support for Fargate service applet (#1184) (18166ce)
- update to CloudFormation spec v2.13.0 (#1203) (c531c84)
- aws-elasticloadbalancingv2: add metrics (#1173) (68d481d), closes #853
- docs: getting started instructions for csharp (#1185) (2915ac1), closes #696
- toolkit: add 'cdk context' command (#1169) (2db536e), closes #311
- toolkit: by default hide AWS::CDK::Metadata from "cdk diff" (#1186) (ef0017a), closes #465
- toolkit: improve diff user interface (#1187) (9c3c5c7), closes #1121 #1120
- aws-codepipeline: switch to webhooks instead of polling by default for the GitHub (#1074)
- aws-codebuild: this changes the way CodeBuild Sources are constructed (we moved away from multiple parameters in the constructor, in favor of the more idiomatic property interface).
- aws-elasticloadbalancingv2:
targetGroup.listenerDependency()
has been renamed totargetGroup.loadBalancerDependency()
.
0.17.0 (2018-11-14)
- aws-ecs: remove DockerHub constructor class (#1153) (ed14638)
- aws-ec2: add dependency on gateway attachment for public routes (#1142) (15b255c), closes #1140
- s3-deployment: bundle modules correctly (#1154) (0cb1adf)
- aws-codedeploy: add an
addToPipeline
method to Deployment Group. (#1166) (bdbeb7c) - aws-codepipeline, aws-cloudformation: support cross-region CloudFormation pipeline action (#1152) (8e701ad)
- toolkit: print available templates when --language is omitted (#1159) (5726c45)
- aws-ec2: Method signature of VpcPublicSubnet.addDefaultIGWRouteEntry changed in order to add a dependency on gateway attachment completing before creating the public route to the gateway. Instead of passing a gateway ID string, pass in a cloudformation.InternetGatewayResource object and a cloudformation.VPCGatewayAttachmentResource object.
- If you were using
DockerHub.image()
to reference docker hub images, useContainerImage.fromDockerHub()
instead.
0.16.0 (2018-11-12)
- aws-elasticloadbalancingv2: listener dependency (#1146) (e9d3d93), closes #1139
- aws-elasticloadbalancingv2: unhealthy threshold (#1145) (a70a50d)
- aws-codedeploy: CodeDeploy Pipeline Action using the L2 DeploymentGroup Construct. (#1085) (ce999b6)
- aws-route53: route53 Alias record support (#1131) (72f0124)
- cdk: allow Tokens to be encoded as lists (#1144) (cd7947c), closes #744
- aws-codedeploy: this changes the API of the CodeDeploy Pipeline Action to take the DeploymentGroup AWS Construct as an argument instead of the names of the Application and Deployment Group.
0.15.2 (2018-11-08)
- correctly emit quoted YAML for account numbers (#1105) (b4d9155), closes #1100 #1098
- aws-ecs: fix use of published NPM package with TypeScript (#1117) (ebfb522)
0.15.1 (2018-11-06)
- Update peer dependencies to refer to correct version so NPM installs don't fail.
- Switch back to
js-yaml
asyaml
was emitting unquoted single colons as list elements.
0.15.0 (2018-11-06)
- aws-autoscaling: allow minSize to be set to 0 (#1015) (67f7fa1)
- aws-codebuild: correctly pass the timeout property to CFN when creating a Project. (#1071) (b1322bb)
- aws-codebuild: correctly set S3 path when using it as artifact. (#1072) (f32cba9)
- aws-kms: add output value when exporting an encryption key (#1036) (cb490be)
- Switch from
js-yaml
toyaml
(#1092) (0b132b5)
- don't upload the same asset multiple times (#1011) (35937b6), closes #989
- app-delivery: CI/CD for CDK Stacks (#1022) (f2fe4e9)
- add a new construct library for ECS (#1058) (ae03ddb)
- applets: integrate into toolkit (#1039) (fdabe95), closes #849 #342 #291
- aws-codecommit: use CloudWatch Events instead of polling by default in the CodePipeline Action. (#1026) (d09d30c)
- aws-dynamodb: allow specifying partition/sort keys in props (#1054) (ec87331), closes #1051
- aws-ec2: AmazonLinuxImage supports AL2 (#1081) (97b57a5), closes #1062
- aws-lambda: high level API for event sources (#1063) (1be3442)
- aws-sqs: improvements to IAM grants API (#1052) (6f2475e)
- codepipeline/cfn: Use fewer statements for pipeline permissions (#1009) (8f4c2ab)
- pkglint: Make sure .snk files are ignored (#1049) (53c8d76), closes #643
- toolkit: deployment ui improvements (#1067) (c832eaf)
- Update to CloudFormation resource specification v2.11.0
- The ec2.Connections object has been changed to be able to manage multiple security groups. The relevant property has been changed from
securityGroup
tosecurityGroups
(an array of security group objects). - aws-codecommit: this modifies the default behavior of the CodeCommit Action. It also changes the internal API contract between the aws-codepipeline-api module and the CodePipeline Actions in the service packages.
- applets: The applet schema has changed to allow Multiple applets can be define in one file by structuring the files like this:
- applets: The applet schema has changed to allow definition of multiple applets in the same file.
The schema now looks like this:
applets:
MyApplet:
type: ./my-applet-file
properties:
property1: value
...
By starting an applet specifier with npm://, applet modules can directly be referenced in NPM. You can include a version specifier (@1.2.3) to reference specific versions.
- aws-sqs:
queue.grantReceiveMessages
has been removed. It is unlikely that this would be sufficient to interact with a queue. Alternatively you can usequeue.grantConsumeMessages
orqueue.grant('sqs:ReceiveMessage')
if there's a need to only grant this action.
0.14.1 (2018-10-26)
0.14.0 (2018-10-26)
IMPORTANT NOTE: when upgrading to this version of the CDK framework, you must also upgrade your installation the CDK Toolkit to the matching version:
$ npm i -g aws-cdk
$ cdk --version
0.14.0 (build ...)
- remove CloudFormation property renames (#973) (3f86603), closes #852
- aws-ec2: fix retention of all egress traffic rule (#998) (b9d5b43), closes #987
- aws-s3-deployment: avoid deletion during update using physical ids (#1006) (bca99c6), closes #981 #981
- cloudformation-diff: ignore changes to DependsOn (#1005) (3605f9c), closes #274
- cloudformation-diff: track replacements (#1003) (a83ac5f), closes #1001
- docs: fix EC2 readme for "natgatway" configuration (#994) (0b1e7cc)
- docs: updates to contribution guide (#997) (b42e742)
- iam: Merge multiple principals correctly (#983) (3fc5c8c), closes #924 #916 #958
- add construct library for Application AutoScaling (#933) (7861c6f), closes #856 #861 #640 #644
- add HostedZone context provider (#823) (1626c37)
- assert: haveResource lists failing properties (#1016) (7f6f3fd)
- aws-cdk: add CDK app version negotiation (#988) (db4e718), closes #891
- aws-codebuild: Introduce a CodePipeline test Action. (#873) (770f9aa)
- aws-sqs: Add grantXxx() methods (#1004) (8c90350)
- core: Pre-concatenate Fn::Join (#967) (33c32a8), closes #916 #958
- DynamoDB AutoScaling: Instead of
addReadAutoScaling()
, callautoScaleReadCapacity()
, and similar for write scaling. - CloudFormation resource usage: If you use L1s, you may need to change some
XxxName
properties back intoName
. These will match the CloudFormation property names. - You must use the matching
aws-cdk
toolkit when upgrading to this version, or context providers will cease to work. All existing cached context values incdk.json
will be invalidated and refreshed.
0.13.0 (2018-10-19)
- A new construct library for AWS Step Functions (docs). The library provides rich APIs for modeling state machines by exposing a programmatic interface for Amazon State Language.
- A new construct library for Amazon S3 bucket deployments (docs). You can use now automatically populate an S3 Bucket from a .zip file or a local directory. This is a building block for end-to-end support for static websites in the AWS CDK.
- aws-apigateway: make LambdaRestApi proxy by default (#963) (a5f5e2c), closes #959
- aws-cdk: Allow use of assumed roles behind a proxy (#898) (f2b1048)
- aws-cdk: Auto-delete stacks that failed creating before new attempt (#917) (2af8309)
- aws-cloudfront: expose distributionId (#938) (f58d98c)
- aws-dynamodb: don't emit empty array properties (#909) (841975a)
- docs: use ..code to display file structure in "writing constructs" (#935) (b743362)
- assets: isZipArchive indicates if this is a zip asset (#944) (65190f9)
- aws-cdk: deploy supports CloudFormation Role (#940) (393be6f), closes #735
- aws-cloudformation: allow specifying custom resource type (#943) (9de3a84)
- aws-cloudformation: correctly handle the templateConfiguration property in the CreateUpdateStack Pipeline Action. (#923) (d251a46)
- aws-cloudfront: add support for "webAclId" (#969) (3ec9d76)
- aws-codedeploy: add auto rollback configuration to server Deployment Group. (#925) (7ee91cf)
- aws-codedeploy: add instance tag filter support for server Deployment Groups. (#824) (e6e8c51)
- aws-codedeploy: add support for setting CloudWatch alarms on a server Deployment Group. (#926) (27b26b1)
- add support for Step Functions (#827) (81b533c)
- aws-lambda: add grantInvoke() method (#962) (1ee8135), closes #961
- aws-lambda: improvements to the code and runtime APIs (#945) (36f29b6), closes #902 #188 #947 #947 #664
- aws-logs: extractMetric() returns Metric object (#939) (5558fff), closes #850
- aws-s3: initial support for website hosting (#946) (2d3661c)
- aws-s3-deployment: bucket deployments (#971) (84d6876), closes #952 #953 #954
- docs: added link to CloudFormation concepts (#934) (666bbba)
- aws-apigateway: specifying a path no longer works. If you used to provide a '/', remove it. Otherwise, you will have to supply
proxy: false
and construct more complex resource paths yourself. - aws-lambda: The construct
lambda.InlineJavaScriptLambda
is no longer supported. Uselambda.Code.inline
instead;lambda.Runtime.NodeJS43Edge
runtime is removed. CloudFront docs stipulate that you should use node6.10 or node8.10. It is always possible to use any value by instantiating alambda.Runtime
object.
0.12.0 (2018-10-12)
IMPORTANT NOTE: This release includes a fix for a bug that would make the toolkit unusable for multi-stack applications. In order to benefit from this fix, a globally installed CDK toolkit must also be updated:
$ npm i -g aws-cdk
$ cdk --version
0.12.0 (build ...)
Like always, you will also need to update your project's library versions:
Language | Update? |
---|---|
JavaScript/TypeScript (npm) | npx npm-check-updates -u |
Java (maven) | mvn versions:use-latest-versions |
.NET (NuGet) | nuget update |
- aws-codebuild: allow passing oauth token to GitHubEnterpriseSource (#908) (c23da91)
- toolkit: multi-stack apps cannot be synthesized or deployed (#911) (5511076), closes #868 #294 #910
- aws-cloudformation: add permission management to CreateUpdate and Delete Stack CodePipeline Actions. (#880) (8b3ae43)
- aws-codepipeline: make input and output artifact names optional when creating Actions. (#845) (3d91c93)
-
aws-codepipeline: this commit contains the following breaking changes:
- Rename 'artifactName' in Action construction properties to 'outputArtifactName'
- Rename the 'artifact' property of Actions to 'outputArtifact'
- No longer allow adding output artifacts to Actions by instantiating the Artifact class
- Rename Action#input/outputArtifacts properties to _input/_outputArtifacts
Previously, we always required customers to explicitly name the output artifacts the Actions used in the Pipeline, and to explicitly "wire together" the outputs of one Action as inputs to another. With this change, the CodePipeline Construct generates artifact names, if the customer didn't provide one explicitly, and tries to find the first available output artifact to use as input to a newly created Action that needs it, thus turning both the input and output artifacts from required to optional properties.
0.11.0 (2018-10-11)
IMPORTANT NOTE: This release includes a breaking change in the toolkit <=> app protocol. This means that in order to synthesize CDK apps that use this version, the globally installed CDK toolkit must also be updated:
$ npm i -g aws-cdk
$ cdk --version
0.11.0 (build ...)
Like always, you will also need to update your project's library versions:
Language | Update? |
---|---|
JavaScript/TypeScript (npm) | npx npm-check-updates -u |
Java (maven) | mvn versions:use-latest-versions |
.NET (NuGet) | nuget update |
- aws-apigateway: allow + in path parts (#769) (0c50d27), closes #768
- aws-cdk: continue after exceptions in stack monitor (#791) (b0f3298), closes #787
- aws-cloudfront: check for undefined and determining of the defaultRootObject prop is set or not (#801) (32a74c6)
- aws-cloudfront: properly support loggingConfig (#809) (5512f70), closes #721
- aws-codecommit: typo in README (#780) (0e79c2d)
- aws-ec2: Add Burstable Generation 3 Instances (#812) (d36ee6d)
- aws-ec2: fix capitalization of "VPCEndpointType" to "VpcEndpointType" (#789) (7a8ee2c), closes #765
- aws-ec2: fix typo in resource identifier (#818) (f529c80)
- aws-elbv2: fix load balancer registration (#890) (8cc9abe)
- aws-s3: properly export bucketDomainName (#844) (a65060d)
- aws-sqs: Queue.import() doesn't return a value (#885) (c592b7f), closes #879
- cdk: fix TagManager to evaluate to undefined if no tags are included (#882) (477c827)
- cdk: init templates were not upgraded to typescript ^3.0.0 (#904) (2cc7475)
- cdk: jsx support conflicts with React usage (#884) (76d8031), closes #830
- cfn2ts: expect Token instead of CloudFormationToken (#896) (6eee1d2)
- docs: fix issue #718 (Aurora DB example) (#783) (016f3a8)
- docs: update supported languages in README (#819, #450) (#820) (ffac98c)
- Correct heading level of CHANGELOG.md 0.10.0 (40d9ef0)
- Emit valid YAML-1.1 (#876) (ff857ea), closes #875
- toolkit: improve error message for large templates (#900) (a41f48f), closes #34
- aws-iam: move IAM classes cdk to aws-iam (#866) (d46a95b), closes #196
- util: remove @aws-cdk/util (#745) (10015cb), closes #709
- framework: remove app boilerplate and improvements to cx protocol (#868) (005beec), closes #216
- aws-apigateway: "LambdaRestApi" and "addProxy" routes (#867) (905a95d)
- aws-cdk: add maven wrapper to java template (#811) (72aa872)
- aws-cloudformation: rename the CFN CodePipeline Actions. (#771) (007e7b4)
- aws-cloudformation: update the ReadMe of the module to reflect the new Action names. (#775) (6c0e75b), closes #771
- aws-cloudfront: Support Security Policy (#804) (b39bf11), closes #795
- aws-codedeploy: Add the auto-scaling groups property to ServerDeploymentGroup. (#739) (0b28886)
- aws-codedeploy: Deployment Configuration Construct. (#653) (e6b67ad)
- aws-codedeploy: support setting a load balancer on a Deployment Group. (#786) (e7af9f5)
- aws-codepipeline: allow specifying the runOrder property when creating Actions. (#776) (d146c8d)
- aws-codepipeline, aws-codecommit, aws-s3: change the convention for naming the source Actions to XxxSourceAction. (#753) (9c3ce7f)
- aws-dynamodb: IAM grants support (#870) (c5a4200)
- aws-dynamodb: support Global Secondary Indexes (#760) (3601440)
- aws-dynamodb: tags support (#814) (924c84e)
- aws-dynamodB: support Local Secondary Indexes (#825) (3175af3)
- aws-ec2: add support for ICMP protocol's classification Types & Codes to SecurityGroupRule (#893) (85bd3c0)
- aws-ec2: allow configuring subnets for NAT gateway (#874) (8ec761c)
- aws-ec2: support UDP port ranges in SecurityGroups (#835) (b42ef90)
- aws-elasticloadbalancingv2: support for ALB/NLB (#750) (bd9ee01)
- aws-s3: support granting public access to objects (#886) (bdee191), closes #877
- cdk: Add support for UseOnlineResharding with UpdatePolicies (#881) (1f717e1)
- cdk: configurable default SSM context provider (#889) (353412b)
- core: resource overrides (escape hatch) (#784) (5054eef), closes #606
- aws-codepipeline: Manage IAM permissions for (some) CFN CodePipeline actions (#843) (4c69118)
- toolkit: Stop creating 'empty' stacks (#779) (1dddd8a)
- aws-autoscaling, aws-ec2: Tagging support for AutoScaling/SecurityGroup (#766) (3d48eb2)
-
framework: The
cdk.App
constructor doesn't accept any arguments, andapp.run()
does not return astring
anymore. All AWS CDK apps in all languages would need to be modified to adhere to the new API of thecdk.App
construct.Instead of:
const app = new App(process.argv); // ERROR // add stacks process.stdout.write(app.run()); // ERROR
The new usage is:
const app = new App(); // add stacks app.run();
-
framework: The CDK is no longer shipped with built-in support for JSX. You can still use JSX but you will have to manually configure it.
-
aws-iam:
PolicyDocument
,PolicyStatement
and allPolicyPrincipal
classes moved from the @aws-cdk/cdk module and into the @aws-cdk/aws-iam module. -
aws-codepipeline-api:
Artifact.subartifact
method of the CodePipeline API was renamed toArtifact.atPath
. -
constructor signature of
TagManager
has changed.initialTags
is now passed inside a props object. -
util: @aws-cdk/util is no longer available
-
aws-elasticloadbalancingv2: Adds classes for modeling Application and Network Load Balancers. AutoScalingGroups now implement the interface that makes constructs a load balancing target. The breaking change is that Security Group rule identifiers have been changed in order to make adding rules more reliable. No code changes are necessary but existing deployments may experience unexpected changes.
-
aws-cloudformation: this renames all CloudFormation Actions for CodePipeline to bring them in line with Actions defined in other service packages.
-
aws-codepipeline, aws-codecommit, aws-s3: change the names of the source Actions from XxxSource to XxxSourceAction. This is to align them with the other Actions, like Build. Also, CodeBuild has the concept of Sources, so it makes sense to strongly differentiate between the two.
0.10.0 (2018-09-27)
This release introduces a better way to "escape" L2 constructs in case of missing features by adding the ability to add arbitrary overrides for resource properties:
const bucket = new s3.Bucket(this, 'L2Bucket');
// access L1
const bucketResource = bucket.findChild('Resource') as s3.cloudformation.BucketResource;
// strongly-typed overrides
bucketResource.propertyOverrides.bucketName = 'NewBucketName';
// weakly-typed overrides
bucketResource.addPropertyOverride('BucketName', 'NewerBucketName');
- aws-codecommit: typo in README (#780) (0e79c2d)
- aws-ec2: fix capitalization of "VPCEndpointType" to "VpcEndpointType" (#789) (7a8ee2c), closes #765
- docs: fix issue #718 (Aurora DB example) (#783) (016f3a8)
- aws-cloudformation: rename the CodePipeline actions (#771) (007e7b4)
- aws-cloudformation: update the README of the module to reflect the new action names (#775) (6c0e75b), closes #771
- aws-codedeploy: add auto-scaling groups property to ServerDeploymentGroup (#739) (0b28886)
- aws-codedeploy: add deployment configuration construct (#653) (e6b67ad)
- aws-codepipeline, aws-codecommit, aws-s3: change the convention for naming the source Actions to XxxSourceAction (#753) (9c3ce7f)
- aws-elasticloadbalancingv2: support for ALB/NLB (#750) (bd9ee01)
- tagging support for AutoScaling/SecurityGroup (#766) (3d48eb2)
- core: resource overrides (escape hatch) (#784) (5054eef), closes #606
- toolkit: stop creating 'empty' stacks (#779) (1dddd8a)
- cdk: the constructor signature of
TagManager
has changed.initialTags
is now passed inside a props object. - util:
@aws-cdk/util
is no longer available - aws-elasticloadbalancingv2: adds classes for modeling Application and Network Load Balancers. AutoScalingGroups now implement the interface that makes constructs a load balancing target. The breaking change is that Security Group rule identifiers have been changed in order to make adding rules more reliable. No code changes are necessary but existing deployments may experience unexpected changes.
- aws-cloudformation: this renames all CloudFormation Actions for CodePipeline to bring them in line with Actions defined in other service packages.
- aws-codepipeline, aws-codecommit, aws-s3: change the names of the source Actions from XxxSource to XxxSourceAction. This is to align them with the other Actions, like Build. Also, CodeBuild has the concept of Sources, so it makes sense to strongly differentiate between the two.
-
@aws-cdk/cfnspec: Updated CloudFormation resource specification to
v2.8.0
(@RomainMuller in #767)-
New Construct Libraries
@aws-cdk/aws-amazonmq
@aws-cdk/aws-iot1click
-
New Resource Types
- AWS::IoT1Click::Device
- AWS::IoT1Click::Placement
- AWS::IoT1Click::Project
-
Attribute Changes
- AWS::EC2::VPCEndpoint CreationTimestamp (added)
- AWS::EC2::VPCEndpoint DnsEntries (added)
- AWS::EC2::VPCEndpoint NetworkInterfaceIds (added)
-
Property Changes
-
AWS::ApiGateway::Deployment DeploymentCanarySettings (added)
-
AWS::ApiGateway::Method AuthorizationScopes (added)
-
AWS::ApiGateway::Stage AccessLogSetting (added)
-
AWS::ApiGateway::Stage CanarySetting (added)
-
AWS::AutoScaling::AutoScalingGroup LaunchTemplate (added)
-
AWS::CodeBuild::Project LogsConfig (added)
-
AWS::CodeBuild::Project SecondaryArtifacts (added)
-
AWS::CodeBuild::Project SecondarySources (added)
-
AWS::CodeDeploy::DeploymentGroup Ec2TagSet (added)
-
AWS::CodeDeploy::DeploymentGroup OnPremisesTagSet (added)
-
AWS::EC2::FlowLog LogDestination (added)
-
AWS::EC2::FlowLog LogDestinationType (added)
-
AWS::EC2::FlowLog DeliverLogsPermissionArn.Required (changed)
- Old: true
- New: false
-
AWS::EC2::FlowLog LogGroupName.Required (changed)
- Old: true
- New: false
-
AWS::EC2::VPCEndpoint IsPrivateDnsEnabled (deleted)
-
AWS::EC2::VPCEndpoint PrivateDnsEnabled (added)
-
AWS::EC2::VPCEndpoint RouteTableIds.DuplicatesAllowed (added)
-
AWS::EC2::VPCEndpoint SecurityGroupIds.DuplicatesAllowed (added)
-
AWS::EC2::VPCEndpoint SubnetIds.DuplicatesAllowed (added)
-
AWS::EC2::VPCEndpoint VPCEndpointType.UpdateType (changed)
- Old: Mutable
- New: Immutable
-
AWS::ECS::Service SchedulingStrategy (added)
-
AWS::ECS::Service ServiceRegistries.UpdateType (changed)
- Old: Mutable
- New: Immutable
-
AWS::ElastiCache::ReplicationGroup NodeGroupConfiguration.UpdateType (changed)
- Old: Immutable
- New: Conditional
-
AWS::ElastiCache::ReplicationGroup NumNodeGroups.UpdateType (changed)
- Old: Immutable
- New: Conditional
-
AWS::RDS::DBCluster EngineMode (added)
-
AWS::RDS::DBCluster ScalingConfiguration (added)
-
AWS::SageMaker::NotebookInstance LifecycleConfigName.UpdateType (changed)
- Old: Immutable
- New: Mutable
-
-
Property Type Changes
-
AWS::ApiGateway::Deployment.AccessLogSetting (added)
-
AWS::ApiGateway::Deployment.CanarySetting (added)
-
AWS::ApiGateway::Deployment.DeploymentCanarySettings (added)
-
AWS::ApiGateway::Stage.AccessLogSetting (added)
-
AWS::ApiGateway::Stage.CanarySetting (added)
-
AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification (added)
-
AWS::CodeBuild::Project.CloudWatchLogsConfig (added)
-
AWS::CodeBuild::Project.LogsConfig (added)
-
AWS::CodeBuild::Project.S3LogsConfig (added)
-
AWS::CodeDeploy::DeploymentGroup.EC2TagSet (added)
-
AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject (added)
-
AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet (added)
-
AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject (added)
-
AWS::EC2::SpotFleet.ClassicLoadBalancer (added)
-
AWS::EC2::SpotFleet.ClassicLoadBalancersConfig (added)
-
AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification (added)
-
AWS::EC2::SpotFleet.LaunchTemplateConfig (added)
-
AWS::EC2::SpotFleet.LaunchTemplateOverrides (added)
-
AWS::EC2::SpotFleet.LoadBalancersConfig (added)
-
AWS::EC2::SpotFleet.TargetGroup (added)
-
AWS::EC2::SpotFleet.TargetGroupsConfig (added)
-
AWS::ECS::TaskDefinition.DockerVolumeConfiguration (added)
-
AWS::ECS::TaskDefinition.RepositoryCredentials (added)
-
AWS::ECS::TaskDefinition.Tmpfs (added)
-
AWS::Events::Rule.SqsParameters (added)
-
AWS::RDS::DBCluster.ScalingConfiguration (added)
-
AWS::ApiGateway::Deployment.StageDescription AccessLogSetting (added)
-
AWS::ApiGateway::Deployment.StageDescription CanarySetting (added)
-
AWS::ApiGateway::Method.Integration ConnectionId (added)
-
AWS::ApiGateway::Method.Integration ConnectionType (added)
-
AWS::ApiGateway::Method.Integration TimeoutInMillis (added)
-
AWS::ApiGateway::UsagePlan.ApiStage Throttle (added)
-
AWS::CodeBuild::Project.Artifacts ArtifactIdentifier (added)
-
AWS::CodeBuild::Project.Source SourceIdentifier (added)
-
AWS::CodeBuild::Project.VpcConfig SecurityGroupIds.Required (changed)
- Old: true
- New: false
-
AWS::CodeBuild::Project.VpcConfig Subnets.Required (changed)
- Old: true
- New: false
-
AWS::CodeBuild::Project.VpcConfig VpcId.Required (changed)
- Old: true
- New: false
-
AWS::CodeDeploy::DeploymentGroup.EC2TagFilter Key.Documentation (changed)
- Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilters.html#cfn-properties-codedeploy-deploymentgroup-ec2tagfilters-key
- New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html#cfn-codedeploy-deploymentgroup-ec2tagfilter-key
-
AWS::CodeDeploy::DeploymentGroup.EC2TagFilter Type.Documentation (changed)
- Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilters.html#cfn-properties-codedeploy-deploymentgroup-ec2tagfilters-type
- New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html#cfn-codedeploy-deploymentgroup-ec2tagfilter-type
-
AWS::CodeDeploy::DeploymentGroup.EC2TagFilter Value.Documentation (changed)
- Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilters.html#cfn-properties-codedeploy-deploymentgroup-ec2tagfilters-value
- New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html#cfn-codedeploy-deploymentgroup-ec2tagfilter-value
-
AWS::CodeDeploy::DeploymentGroup.TagFilter Key.Documentation (changed)
- Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisesinstancetagfilters.html#cfn-properties-codedeploy-deploymentgroup-onpremisesinstancetagfilters-key
- New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html#cfn-codedeploy-deploymentgroup-tagfilter-key
-
AWS::CodeDeploy::DeploymentGroup.TagFilter Type.Documentation (changed)
- Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisesinstancetagfilters.html#cfn-properties-codedeploy-deploymentgroup-onpremisesinstancetagfilters-type
- New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html#cfn-codedeploy-deploymentgroup-tagfilter-type
-
AWS::CodeDeploy::DeploymentGroup.TagFilter Value.Documentation (changed)
- Old: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisesinstancetagfilters.html#cfn-properties-codedeploy-deploymentgroup-onpremisesinstancetagfilters-value
- New: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html#cfn-codedeploy-deploymentgroup-tagfilter-value
-
AWS::EC2::SpotFleet.SpotFleetRequestConfigData InstanceInterruptionBehavior (added)
-
AWS::EC2::SpotFleet.SpotFleetRequestConfigData LaunchTemplateConfigs (added)
-
AWS::EC2::SpotFleet.SpotFleetRequestConfigData LoadBalancersConfig (added)
-
AWS::EC2::SpotFleet.SpotPlacement Tenancy (added)
-
AWS::ECS::Service.ServiceRegistry ContainerName (added)
-
AWS::ECS::Service.ServiceRegistry ContainerPort (added)
-
AWS::ECS::Service.ServiceRegistry Port.UpdateType (changed)
- Old: Mutable
- New: Immutable
-
AWS::ECS::Service.ServiceRegistry RegistryArn.UpdateType (changed)
- Old: Mutable
- New: Immutable
-
AWS::ECS::TaskDefinition.ContainerDefinition RepositoryCredentials (added)
-
AWS::ECS::TaskDefinition.LinuxParameters SharedMemorySize (added)
-
AWS::ECS::TaskDefinition.LinuxParameters Tmpfs (added)
-
AWS::ECS::TaskDefinition.Volume DockerVolumeConfiguration (added)
-
AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration NodeGroupId (added)
-
AWS::Events::Rule.Target SqsParameters (added)
-
AWS::RDS::OptionGroup.OptionConfiguration OptionSettings.DuplicatesAllowed (added)
-
AWS::RDS::OptionGroup.OptionConfiguration OptionSettings.ItemType (added)
-
AWS::RDS::OptionGroup.OptionConfiguration OptionSettings.Type (changed)
- Old: OptionSetting
- New: List
-
-
0.9.2 (2018-09-20)
NOTICE: This release includes a framework-wide breaking change which changes the type of all the string resource attributes across the framework. Instead of using strong-types that extend cdk.Token
(such as QueueArn
, TopicName
, etc), we now represent all these attributes as normal string
s, and codify the tokens into the string (using the feature introduced in #168).
Furthermore, the cdk.Arn
type has been removed. In order to format/parse ARNs, use the static methods on cdk.ArnUtils
.
See motivation and discussion in #695.
- cfn2ts: use stringified tokens for resource attributes instead of strong types (#712) (6508f78), closes #518 #695 #744
- aws-dynamodb: Attribute type for keys, changes the signature of the
addPartitionKey
andaddSortKey
methods to be consistent across the board. (#720) (e6cc189) - aws-codebuild: fix typo "priviledged" -> "privileged
- assets: can't use multiple assets in the same stack (#725) (bba2e5b), closes #706
- aws-codebuild: typo in BuildEnvironment "priviledged" -> "privileged (#734) (72fec36)
- aws-ecr: fix addToResourcePolicy (#737) (eadbda5)
- aws-events: ruleName can now be specified (#726) (a7bc5ee), closes #708
- aws-lambda: jsii use no long requires 'sourceAccount' (#728) (9e7d311), closes #714
- aws-s3: remove
policy
argument (#730) (a79190c), closes #672 - cdk: "cdk init" java template is broken (#732) (281c083), closes #711 awslabs/jsii#233
- aws-apigateway: new API Gateway Construct Library (#665) (b0f3857)
- aws-cdk: detect presence of EC2 credentials (#724) (8e8c295), closes #702 #130
- aws-codepipeline: make the Stage insertion API in CodePipeline more flexible (#460) (d182818)
- aws-codepipeline: new "Pipeline#addStage" convenience method (#647) (25c9fa0)
- aws-rds: add support for parameter groups (#729) (2541508), closes #719
- docs: add documentation for CDK toolkit plugings (#733) (965b918)
- dependencies: upgrade to jsii 0.7.6
0.9.1 (2018-09-13)
- aws-ec2 BREAKING: Move LoadBalancer to aws-elasticloadbalancing package (#705) (4bd1cf2)
- aws-serverless BREAKING: Rename @aws-cdk/aws-serverless to @aws-cdk/aws-sam (#704) (3a67d5d)
- aws-dynamodb: Support DynamoDB TTL (#691) (35b6206)
- aws-dynamodb: Support DynamoDB PITR (#701) (7a4d7b7)
- aws-ecr: Add support for ECR repositories (#697) (c6c09bf)
- aws-lambda: Add support for XRay Tracing (#675) (b4435cc)
- cfnspec: Add DeploymentPreference Patch for SAM Spec (#681) (#681) (f96c487)
The headliners of this release are .NET support, and a wealth of commits by external contributors who are stepping up to fix the CDK for their use cases! Thanks all for the effort put into this release!
- Add strongly-named .NET targets, and a
cdk init
template for C# projects (@mpiroc in #617, #643). - @aws-cdk/aws-autoscaling: Allow attaching additional security groups to Launch Configuration (@moofish32 in #636).
- @aws-cdk/aws-autoscaling: Support update and creation policies on AutoScalingGroups (@rix0rrr in #595).
- @aws-cdk/aws-codebuild: Add support for running script from an asset (@rix0rrr in #677).
- @aws-cdk/aws-codebuild: New method
addBuildToPipeline
on Project (@skinny85 in 783dcb3). - @aws-cdk/aws-codecommit: New method
addToPipeline
on Repository (@skinny85 in #616). - @aws-cdk/aws-codedeploy: Add initial support for CodeDeploy (@skinny85 in #593, #641).
- @aws-cdk/aws-dynamodb: Add support for DynamoDB autoscaling (@SeekerWing in #637).
- @aws-cdk/aws-dynamodb: Add support for DynamoDB streams (@rhboyd in #633).
- @aws-cdk/aws-dynamodb: Add support for server-side encryption (@jungseoklee in #684).
- @aws-cdk/aws-ec2 (BREAKING): SecurityGroup can now be used as a Connectable #582).
- @aws-cdk/aws-ec2: Add VPC tagging ([@moofish] in #538).
- @aws-cdk/aws-ec2: Add support for
InstanceSize.Nano
(@rix0rrr in #581) - @aws-cdk/aws-lambda: Add support for dead letter queues (@SeekerWing in #663).
- @aws-cdk/aws-lambda: Add support for placing a Lambda in a VPC (@rix0rrr in #598).
- @aws-cdk/aws-logs: Add
extractMetric()
helper function (@rix0rrr in #676). - @aws-cdk/aws-rds: Add support for Aurora PostreSQL/MySQL engines (@cookejames in #586)
- @aws-cdk/aws-s3: Additional grant methods for Buckets (@eladb in #591)
- @aws-cdk/aws-s3: New method
addToPipeline
on Bucket (@skinny85 in c8b7a49). - aws-cdk: Add support for HTTP proxies (@rix0rrr in #666).
- aws-cdk: Toolkit now shows failure reason if stack update fails (@rix0rrr in #609).
- cdk-build-tools: Add support for running experiment JSII versions (@RomainMuller in #649).
- BREAKING: Generate classes and types for the CloudFormation resource
.ref
attributes (@rix0rrr in #627). - BREAKING: Make types accepted in Policy-related classes narrower (from
any
toArn
, for example) to reduce typing mistakes (@rix0rrr in #629). - @aws-cdk/aws-codepipeline (BREAKING): Align the CodePipeline APIs (@skinny85 in #492, #568)
- @aws-cdk/aws-ec2 (BREAKING): Move Fleet/AutoScalingGroup to its own package (@rix0rrr in #608).
- aws-cdk: Simplify plugin protocol (@RomainMuller in #646).
- @aws-cdk/aws-cloudfront: Fix CloudFront behavior for ViewerProtocolPolicy (@mindstorms6 in #615).
- @aws-cdk/aws-ec2: VPC Placement now supports picking Isolated subnets (@rix0rrr in #610).
- @aws-cdk/aws-logs: Add
export()/import()
capabilities (@rix0rrr in #630). - @aws-cdk/aws-rds: Fix a bug where a cluster with 1 instance could not be created (@cookejames in #578)
- @aws-cdk/aws-s3: Bucket notifications can now add dependencies, fixing creation order (@eladb in #584).
- @aws-cdk/aws-s3: Remove useless bucket name validation (@rix0rrr in #628).
- @aws-cdk/aws-sqs: Make
QueueRef.encryptionMasterKey
readonly (@RomainMuller in #650). - assets: S3 read permissions are granted on a prefix to fix lost permissions during asset update (@rix0rrr in #510).
- aws-cdk: Remove bootstrapping error if multiple stacks are in the same environment (@RomainMuller in #625).
- aws-cdk: Report and continue if git throws errors during
cdk init
(@rix0rrr in #587).
-
@aws-cdk/cfnspec: Updated CloudFormation resource specification to
v2.6.0
(@RomainMuller in #594)-
New AWS Construct Library
@aws-cdk/aws-sagemaker
supports AWS::SageMaker resources
-
New Resource Types
- AWS::AmazonMQ::Broker
- AWS::AmazonMQ::Configuration
- AWS::CodePipeline::Webhook
- AWS::Config::AggregationAuthorization
- AWS::Config::ConfigurationAggregator
- AWS::EC2::VPCEndpointConnectionNotification
- AWS::EC2::VPCEndpointServicePermissions
- AWS::IAM::ServiceLinkedRole
- AWS::SSM::ResourceDataSync
- AWS::SageMaker::Endpoint
- AWS::SageMaker::EndpointConfig
- AWS::SageMaker::Model
- AWS::SageMaker::NotebookInstance
- AWS::SageMaker::NotebookInstanceLifecycleConfig
-
Attribute Changes
- AWS::CodePipeline::Pipeline Version (added)
-
Property Changes
-
AWS::AppSync::DataSource HttpConfig (added)
-
AWS::DAX::Cluster SSESpecification (added)
-
AWS::DynamoDB::Table Stream (added)
-
AWS::DynamoDB::Table AutoScalingSupport (added)
-
AWS::EC2::VPCEndpoint IsPrivateDnsEnabled (added)
-
AWS::EC2::VPCEndpoint SecurityGroupIds (added)
-
AWS::EC2::VPCEndpoint SubnetIds (added)
-
AWS::EC2::VPCEndpoint VPCEndpointType (added)
-
AWS::EC2::VPCEndpoint RouteTableIds.DuplicatesAllowed (deleted)
-
AWS::EC2::VPCPeeringConnection PeerRegion (added)
-
AWS::EFS::FileSystem ProvisionedThroughputInMibps (added)
-
AWS::EFS::FileSystem ThroughputMode (added)
-
AWS::EMR::Cluster KerberosAttributes (added)
-
AWS::Glue::Classifier JsonClassifier (added)
-
AWS::Glue::Classifier XMLClassifier (added)
-
AWS::Glue::Crawler Configuration (added)
-
AWS::Lambda::Lambda DLQConfigurationSupport (added)
-
AWS::Neptune::DBInstance DBSubnetGroupName.UpdateType (changed)
- Old: Mutable
- New: Immutable
-
AWS::SNS::Subscription DeliveryPolicy (added)
-
AWS::SNS::Subscription FilterPolicy (added)
-
AWS::SNS::Subscription RawMessageDelivery (added)
-
AWS::SNS::Subscription Region (added)
-
AWS::SQS::Queue Tags (added)
-
AWS::ServiceDiscovery::Service HealthCheckCustomConfig (added)
-
-
Property Type Changes
-
AWS::AppSync::DataSource.HttpConfig (added)
-
AWS::DAX::Cluster.SSESpecification (added)
-
AWS::EMR::Cluster.KerberosAttributes (added)
-
AWS::Glue::Classifier.JsonClassifier (added)
-
AWS::Glue::Classifier.XMLClassifier (added)
-
AWS::ServiceDiscovery::Service.HealthCheckCustomConfig (added)
-
AWS::CloudFront::Distribution.CacheBehavior FieldLevelEncryptionId (added)
-
AWS::CloudFront::Distribution.DefaultCacheBehavior FieldLevelEncryptionId (added)
-
AWS::CodeBuild::Project.Artifacts EncryptionDisabled (added)
-
AWS::CodeBuild::Project.Artifacts OverrideArtifactName (added)
-
AWS::CodeBuild::Project.Environment Certificate (added)
-
AWS::CodeBuild::Project.Source ReportBuildStatus (added)
-
AWS::ServiceDiscovery::Service.DnsConfig RoutingPolicy (added)
-
AWS::WAF::WebACL.ActivatedRule Action.Required (changed)
- Old: true
- New: false
-
-
-
@aws-cdk/cfnspec: Updated Serverless Application Model (SAM) Resource Specification (@RomainMuller in #594)
-
Property Changes
- AWS::Serverless::Api MethodSettings (added)
-
Property Type Changes
-
AWS::Serverless::Function.SQSEvent (added)
-
AWS::Serverless::Function.EventSource Properties.Types (changed)
- Added SQSEvent
-
-
- @aws-cdk/cdk: Tokens can now be transparently embedded into strings and encoded into JSON without losing their semantics. This makes it possible to treat late-bound (deploy-time) values as if they were regular strings (@rix0rrr in #518).
- @aws-cdk/aws-s3: add support for bucket notifications to Lambda, SNS, and SQS targets (@eladb in #201, #560, #561, #564)
- @aws-cdk/cdk: non-alphanumeric characters can now be used as construct identifiers (@eladb in #556)
- @aws-cdk/aws-iam: add support for
maxSessionDuration
for Roles (@eladb in #545).
- @aws-cdk/aws-lambda (BREAKING): most classes renamed to be shorter and more in line with official service naming (
Lambda
renamed toFunction
or ommitted) (@eladb in #550) - @aws-cdk/aws-codepipeline (BREAKING): move all CodePipeline actions from
@aws-cdk/aws-xxx-codepipeline
packages into the regular@aws-cdk/aws-xxx
service packages (@skinny85 in #459). - @aws-cdk/aws-custom-resources (BREAKING): package was removed, and the Custom Resource construct added to the @aws-cdk/aws-cloudformation package (@rix0rrr in #513)
- @aws-cdk/aws-lambda: Lambdas that are triggered by CloudWatch Events now show up in the console, and can only be triggered the indicated Event Rule. BREAKING for middleware writers (as this introduces an API change), but transparent to regular consumers (@eladb in #558)
- @aws-cdk/aws-codecommit: fix a bug where
pollForSourceChanges
could not be set tofalse
(@maciejwalkowiak in #534) - aws-cdk: don't fail if the
~/.aws/credentials
file is missing (@RomainMuller in #541) - @aws-cdk/aws-cloudformation: fix a bug in the CodePipeline actions to correctly support TemplateConfiguration (@mindstorms6 in #571).
- @aws-cdk/aws-cloudformation: fix a bug in the CodePipeline actions to correctly support ParameterOverrides (@mindstorms6 in #574).
cdk init
will try to init agit
repository and fail if no globaluser.name
anduser.email
have been configured.
- aws-cdk: Support
--profile
in command-line toolkit (@rix0rrr in #517) - @aws-cdk/cdk: Introduce
Default
construct id (@rix0rrr in #496) - @aws-cdk/aws-lambda: Add
LambdaRuntime.DotNetCore21
(@Mortifera in #507) - @aws-cdk/runtime-values (BREAKING): rename 'rtv' to 'runtime-values' (@rix0rrr in #494)
- @aws-cdk/aws-ec2: Combine
Connections
andDefaultConnections
classes (@rix0rrr in #453) - @aws-cdk/aws-codebuild: allow
buildSpec
parameter to take a filename (@rix0rrr in #470) - @aws-cdk/aws-cloudformation-codepipeline: add support for CloudFormation CodePipeline actions (@mindstorms6 and @rix0rrr in #525).
- docs: Improvements to Getting Started (@eladb in #462)
- docs: Updates to README (@Doug-AWS in #456)
- docs: Upgraded
jsii-pacmak
to0.6.4
, which includes "language-native" type names and package coordinates (@RomainMuller in awslabs/jsii#130)
- aws-cdk (toolkit): Fix java
cdk init
template (@RomainMuller in #490) - @aws-cdk/cdk (BREAKING): Align
FnJoin
signature to CloudFormation (@RomainMuller in #516) - @aws-cdk/aws-cloudfront: Fix origin error (@mindstorms6 in #514)
- @aws-cdk/aws-lambda: Invalid cast for inline LambdaRuntime members in Java (@eladb in #505)
- examples: Fixed java examples (@RomainMuller in #498)
This is the first public release of the AWS CDK!
- Change license to Apache-2.0 (@RomainMuller in #428)
- Multiple README updates, including animated gif screencast, as preparation for public release (@rix0rrr in #433, @eladb in #439)
- Multiple documentation updates for public release (@Doug-AWS in #420, @eladb in #436)
- Toolkit (bug fix): Correctly account for
CDK::Metadata
incdk diff
(@RomainMuller in #435) - AWS CodeBuild (BREAKING): Usability improvements for the CodeBuild library (@skinny85 in #412)
- A huge shout-out to our first external contributor, @moofish32, for many valuable improvements to the EC2 VPC construct (@moofish32 in #250).
- The
AWS::CDK::Metadata
resource is injected to templates to analyze usage and notify about deprecated modules to improve security. To opt-out, use the switch--no-version-reporting
or setversion-reporting
tofalse
in yourcdk.json
(@RomainMuller in [#221]). - Added capability for bundling local assets (files/directories) and referencing them in CDK constructs. This allows, for example, to define Lambda functions with runtime code in the same project and deploy them using the toolkit (@eladb in #371).
- Reorganization of CodePipeline actions into separate libraries (@skinny85 in #401 and #402).
- A new library for CloudWatch Logs (@rix0rrr in #307).
- BREAKING: All AWS libraries renamed from
@aws-cdk/xxx
to@aws-cdk/aws-xxx
in order to avoid conflicts with framework modules (@RomainMuller in #384). - BREAKING: The @aws-cdk/resources module has been removed. Low-level CloudFormation resources (e.g.
BucketResource
) are now integrated into their respective library under thecloudformation
namespace to improves discoverability and organization of the layers (@RomainMuller in #264).
- Introducing CDK Assets which are local files or directories that can be "bundled" into CDK constructs and apps. During deployment assets are packaged (i.e. zipped), uploaded to S3 and their deployed location can be referenced in CDK apps via the
s3BucketName
ands3ObjectKey
ands3Url
and read permissions can be granted viaasset.grantRead(principal)
(@eladb in #371) - Return dummy values instead of fail synthesis if environmental context (AZs, SSM parameters) doesn't exist in order to support unit tests. When synthesizing through the toolkit, an error will be displayed if the context cannot be found (@eladb in #227)
- Added
construct.addError(msg)
,addWarning(msg)
andaddInfo(msg)
which will emit messages during synthesis via the toolkit. Errors will fail synthesis (unless--ignore-errors
is used), warnings will be displayed and will fail synthesis if--strict
is used (@eladb in #227)
- The toolkit now injects a special CloudFormation resource
AWS::CDK::Metadata
to all synthesized templates which includes library versions used in the app. This allows the CDK team to analyze usage and notify users if they use deprecated versions (@RomainMuller in [#221]). - Bug fix: Fixed "unknown command: docs" (@RomainMuller in #256)
- Changed output of
cdk list
to just print stack names (scripting-compatible). Usecdk ls -l
to print full info (@eladb in #380)
- BREAKING: Add the ability customize subnet configurations. Subnet allocation was changed to improve IP space efficiency.
VpcNetwork
instances will need to be replaced (@moofish32 in #250) - BREAKING: Renamed
Fleet
toAutoScalingGroup
to align with service terminology (@RomainMuller in #318)
- Supports runtime code via local files or directories through assets (@eladb in #405)
- Support custom execution role in props (@rix0rrr in #205)
- Add static
metricAllConcurrentExecutions
andmetricAllUnreservedConcurrentExecutions
which returns account/region-level metrics for all functions (@rix0rrr in #379)
- Added
Metric.grantMetricPutData
which grants cloudwatch:PutData to IAM principals (@rix0rrr in #214) - Bug fix: Allow text included in dashboard widgets to include characters that require JSON-escaping (@eladb in #406).
- A new construct library for AWS CloudWatch Logs with support for log groups, metric filters, and subscription filters (@rix0rrr in #307).
- Add CloudWatch metrics to
BuildProject
(@eladb in [#407])
- BREAKING: Moved CodeCommit and CodeBuild and LambdaInvoke actions from the CodePipeline library to
@aws-cdk/aws-xxx-codepipline
modules (@skinny85 in #401 and #402). - Added attributes
pipelineName
andpipelineVersion
(@eladb in #408)
- fix: add instructions and fix Windows setup (@mpiroc in #320)
- fix: show emphasis of modified code in code snippets (@eladb in #396)
- Introducing Java support (see the Getting Started documentation topic for instructions on how to set up a Java project).
- Introduce a new programming model for CloudWatch metrics, alarms and dashboards (see the @aws-cdk/cloudwatch documentation).
- Multiple documentation improvements (open with
cdk docs
).
- Missing instructions for Windows Setup (#138)
cdk docs
works but a message Unknown command: docs is printed (#256)- Java: passing
null
behaves differently than no arguments. Workaround is to build an empty object (#157)
- Introduce Java support (@eladb in #229, #245, #148, #149)
- Changed the way the beta archive is structured to no longer bundle a pre-installed
node_modules
directory but rather only a local npm repository. This changes the setup instructions to requirey-npm i -g aws-cdk
to install the toolkit on the system, which is more inline with the setup experience post-beta (@RomainMuller in #161, #162 and awslabs/jsii#43). - CloudWatch (new): introduce a rich programming model for metrics, alarms and dashboards (@rix0rrr in #180, #194)
- S3 (feature): add support for SSE-S3 encryption (@rix0rrr in #257)
- Lambda (feature): add support for node.js 8.10 runtime (@RomainMuller in #187)
- Runtime Values (fix): use allowed characters in SSM parameter name when advertising a runtime value (@eladb in #208)
- SNS (docs): convert examples in README into compiled code (@rix0rrr in #107)
- Toolkit (feature): introduce
cdk doctor
to collect information for diagnostics (@RomainMuller in #177) - Toolkit (feature): align AWS credentials behavior to AWS CLI (@RomainMuller in #175)
- Toolkit (performance): cache default AWS account ID on disk (@eladb in #220)
- Docs: multiple updates (@Doug-AWS in #142)
- Docs: improve topic on logical IDs (@eladb in #209)
- Docs: add support for code snippets in multiple tabs (@eladb in #231)
- Docs: rewrote the "Getting Started" documentation topic to include step-by-step project setup details instead of using
cdk-init
. This is in order to improve understanding of how the CDK works when users get started (@eladb in #245) - Resource bundler: generate
.d.ts
(@rix0rrr in #172)
- Add: initial construct library for AWS Kinesis Data Streams (@sam-goodwin in #86)
- Update low-level resources from CloudFormation resource specification
- Update dependencies (@eladb in #119)
- Fix: Adopt SDK-standard behavior when no environment is specified (@RomainMuller in #128)
- Fix: Have cdk diff output render 'number' value changes (@RomainMuller in #136)
- Windows setup has not been vetted and might be broken - no workaround (#138)
- If region is not defined, error message is unclear - workaround: make sure to define
region
when runningaws configure
(#131) cdk docs
opens the index instead of the welcome page - workaround: click on "Welcome" in the sidebar (#129)- The runtime values library (@aws-cdk/rtv) is broken (#151)
- Two-way IAM policy statement additions have been removed for S3 and SNS, because those services treat resource and identity policies as additive. KMS grants are still added on both resource and identity because KMS requires permissions set from both sides.
cdk init
interface changed to accept the template name as a positional argument, and the language as an option. A--list
option was added to allow listing available templates.cdk-beta-npm
is a wrapper tonpm
that executes commands with a local registry that has the CDK packages available. It should be used instead ofnpm
for subcommands such asnpm install
.- CDK now respects
AWS_DEFAULT_REGION
environment variable if set.
- BREAKING: All CDK packages are non under the scope
@aws-cdk
(e.g.@aws-cdk/s3
). - BREAKING: The
jsii
compiler now configurestsconfig.json
to produce definition files (files with a .d.ts extension). This requires updating your existingpackage.json
filestypes
key to replace the .ts extension with a .d.ts extension. - Java bindings now include static methods and constants.
SecretParameter
can be used to load values from the SSM parameter store during deployment and use them asSecret
s.Stack
is locked for mutations during synthesis to protect against accidental changes in lazy values.- An overhaul of documentation updates, edits and improvements.
- Fix:
cloudFrontDefaultCertificate
is mutually exclusive withacmCertificateArn
.
- Added a new construct library for AWS CloudFront.
- Added support for specifying environment variables at the container and project levels.
- Fix: GitHub action "owner" changed to
ThirdParty
. - Removed all fluent APIs
- Use "master" as the default branch for Source actions
- BREAKING:
AmazonS3SourceProps
- renamedkey
tobucketKey
- BREAKING: Require that Lambda is referenced explicitly when defining a custom resource.
SingletonLambda
can be used to encapsulate the custom resource's lambda function but only have a single instance of it in the stack.
A new cross-stack programming model is introduced to support CloudWatch Events. Event sources implement onXxx
methods for various events that can emitted by that source and event targets implement IEventRuleTarget
, so they can be polymorphically added to rules.
const repo = new Repository(stack, 'MyRepo', { repositoryName: 'my-repo' });
const project = new BuildProject(stack, 'MyProject', { source: new CodeCommitSource(repo) });
const topic = new Topic(stack, 'MyTopic');
topic.subscribeEmail('Personal', 'myteam@mycompany.com');
project.onStateChange(topic);
Coverage to all event sources and target will be added in subsequent releases.
Supported targets:
codebuild.BuildProject
codepipline.Pipeline
sns.Topic
Supported sources:
- CodeBuild:
onStateChange
,onPhaseChange
,onBuildStarted
,onBuildFailed
,onBuildSucceeded
. - CodeCommit:
onEvent
,onStateChange
,onReferenceCreated
,onReferenceUpdated
,onReferenceDeleted
,onPullRequestStateChange
,onCommentOnPullRequest
,onCommentOnCommit
,onCommit
. - CodePipeline:
pipeline.onStateChange
,stage.onStateChange
,action.onStateChange
.
- Add
CanonicalUserPrincipal
- Add
statementCount
toPolicyDocumennt
. - Extended support for
FederatedPrincipal
.
- Add
initialPolicy
prop which allows specifying a set ofPolicyStatement
s upon definition.
- Added support for lifecycle rules
- Add
domainName
anddualstackDomainName
attributes
version
field ofFunctionResource
is now optional.
- BREAKING:
subscribeXxx
APIs now do not require a name when possible (for queue, Lambda). - Unique SID assigned to resource policy statements.
cdk docs
opens your browser with the bundled documentation content.cdk init
interface changed to specify--lang
and--type
separately.- Plug-in architecture improved.
The main theme for this release is the stabilization of our framework APIs and an initial set of AWS Construct Libraries.
Previously, CDK users would normally to program against the @aws-cdk/resources
library which included generated classes for all CloudFormation resources. For example, the sqs.QueueResource
defined the AWS::SQS::Queue CloudFormation resource.
Starting in 0.6, we recommend that users define their infrastructure using a new set of hand-crafted libraries we refer to as AWS Construct Libraries (we used to call these "Layer 2" or "L2"). These libraries include CDK constructs with rich and powerful object-oriented APIs for defining infrastructure.
For example:
const vpc = new VpcNetwork(this, 'MyVpc');
const fleet = new Fleet(this, 'MyFleet', {
vpc, instanceType: new InstanceTypePair(InstanceClass.M4, InstanceSize.XLarge),
machineImage: new AmazonLinuxImage()
});
const clb = new ClassicLoadBalancer(this, 'LB', {
vpc, internetFacing: true
});
clb.addListener({ externalPort: 80 });
clb.addTarget(fleet);
Synthesizing this stack to the us-east-1 region (which has 6 availability zones) will result in a CloudFormation template that contains 72 resources of 17 different resource types.
All constructs in a CDK stack must have a name unique amongst its siblings. Names are used to allocate stack-wide logical IDs for each CloudFormation resource. Prior to this release, the name of the class was implicitly used as a default name for the construct. As much as this was convenient, we realized it was misleading and potentially unsafe, since a change in a class name will result in changes to all logical IDs for all resources created within that tree, and changes to logical IDs result in resource replacement since CloudFormation cannot associate the existing resource with the new resource (this is the purpose of logical IDs in CloudFormation).
Therefore, we decided construct names deserve an explicit and prominent place in our programming model and starting from this release, they have been promoted to the 2nd argument of all initializers.
new MyConstruct(parent, name, props);
In order to ensure uniqueness of logical IDs within a stack, we need to reflect the resource's full CDK path within it's logical ID. Prior to this release, logical IDs were a simple concatenation of the path components leading up to the resource. However, this could potentially create unresolvable conflicts ("a/b/c" == "ab/c").
Since logical IDs may only use alphanumeric characters and also restricted in length, we are unable to simply use a delimited path as the logical ID. Instead IDs are allocated by concatenating a human-friendly rendition from the path (components, de-duplicate, trim) with a short MD5 hash of the delimited path:
VPCPrivateSubnet2RouteTable0A19E10E
<-----------human---------><-hash->
One exception to this scheme is resources which are direct children of the Stack
. Such resources will use their name as a logical ID (without the hash). This is done to support easier migration from existing CloudFormation templates.
If you have CDK stacks deployed with persistent resources such as S3 buckets or DynamoDB tables, you may want to explicitly "rename" the new logical IDs to match your existing resources.
First, make sure you compare the newly synthesized template with any deployed stacks. cdk diff
will tell you which resources will be destroyed if you deploy this update:
[-] Destroying MyTable (type: AWS::DynamoDB::Table)
[+] Creating MyTableCD117FA1 (type: AWS::DynamoDB::Table)
In order to avoid this, you can use stack.renameLogical(from, to)
as follows. Note that renameLogical
must be called before the resource is defined as logical IDs are allocated during initialization:
// must be before defining the table (this instanceof Stack)
this.renameLogical('MyTableCD117FA1', 'MyTable');
new dynamodb.Table(this, 'MyTable', { /* .. */ });
Now, cdk diff
should indicate no differences.
In order to improve the developer experience, we have changed the way we model construct "Props" and now they are defined as TypeScript interfaces. This has a few implications on how to use them:
In TypeScript, new XxxProps()
won't work, you will have to simply assign an object literal:
new Queue(this, 'MyQueue', { visibilityTimeoutSec: 300 });
In Java, you can create a concrete object using a builder:
new Queue(this, "MyQueue", QueueProps.builder()
.withVisibilityTimeout(300)
.build());
All AWS constructs implement a common pattern which allows treating resources defined within the current stack and existing resources to be treated via a common interface:
For example, when defining a Pipeline
, you can supply an artifacts bucket.
The bucket is defined within the same stack:
const bucket = new Bucket(this, 'MyArtifactsBucket');
new Pipeline(this, 'MyCoolPipeline', { artifactsBucket: bucket });
You can also import a bucket by just specifying its name:
const bucket = Bucket.import({ bucketName: new BucketName('my-bucket') });
new Pipeline(this, 'MyCoolPipeline', { artifactsBucket: bucket });
Or you can export the bucket from another stack and import it:
// some other stack:
const bucket = new Bucket(otherStack, 'MyBucket');
const externalBucket = bucket.export();
// bucketRef contains tokens that allow you to pass it into `import`.
// my stack:
const importedBucket = Bucket.import(this, 'OtherArtifactsBucket', externalBucket);
new Pipeline(this, 'MyCoolPipeline', { artifactsBucket: importedBucket });
The @aws-cdk/ec2 library exposes a new API for region-aware AMI discovery:
const ami = new AmazonLinuxImage({
edition: AmazonLinuxEdition.Standard, // default
virtualization: AmazonLinuxVirt.HVM, // default
storage: AmazonLinuxStorage.EBS // default is GeneralPurpose
});
new Fleet(this, 'MyAmazonLinuxFleet', { machineImage: ami, ... });
For Windows:
const ami = new WindowsImage(WindowsVersion.WindowsServer2016EnglishNanoBase);
new Fleet(this, 'MyWindowsFleet', { machineImage: ami, ... });
Or, a mapping utility:
const ami = new GenericLinuxImage({
'us-east-1': 'ami-62bda218',
'eu-west-1': 'ami-773acbcc'
});
new Fleet(this, 'MySuseFleet', { machineImage: ami, ... });
The @aws-cdk/codebuild, @aws-cdk/codecommit and @aws-cdk/codepipeline construct libraries include rich APIs for defining continuous integration pipelines and builds.
The following code defines a pipeline with a CodeCommit source and CodeBuild build step. The pipeline is created with an artifacts bucket and a role, and least-privilege policy documents are automatically generated.
// define a CodeCommit repository
const repo = new Repository(stack, 'MyRepo', { repositoryName: 'my-repo' });
// define a pipeline with two stages ("source" and "build")
const pipeline = new Pipeline(stack, 'Pipeline');
const sourceStage = new Stage(pipeline, 'source');
const buildStage = new Stage(pipeline, 'build');
// associate the source stage with the code commit repository
const source = new codecommit.PipelineSource(sourceStage, 'source', {
artifactName: 'SourceArtifact',
repository: repo,
});
// associate the build stage with code build project
new codebuild.PipelineBuildAction(buildStage, 'build', {
project: new BuildProject(stack, 'MyBuildProject', { source: new CodePipelineSource() },
source
});
The @aws-cdk/lambda library includes an InlineJavaScriptLambda
construct which makes it very easy to implement simple node.js Lambda functions with code inline in the CDK.
This CDK program defines an S3 Bucket and a Lambda function, and sets all the needed permissions. When the function is invoked, a file named 'myfile.txt' will be uploaded to the bucket with the text "Hello, world". The physical bucket name is passed through via the BUCKET_NAME
environment variable.
const bucket = new Bucket(this, 'MyBucket');
const lambda = new InlineJavaScriptLambda(this, 'MyLambda', {
environment: {
BUCKET_NAME: bucket.bucketName
},
handler: {
fn: (event: any, context: any, callback: any) => {
const s3 = new require('aws-sdk').S3();
const req = {
Bucket: process.env.BUCKET_NAME,
Key: 'myfile.txt',
Body: 'Hello, world'
};
return s3.upload(req, (err, data) => {
if (err) return callback(err);
console.log(data);
return callback();
});
}
}
});
// grant the Lambda execution role read/write permissions for the bucket
// this also adds a corresponding bucket resource policy
bucket.grantReadWrite(lambda.role);
All AWS constructs now expose APIs for naturally adding statements to their resource or role policies. Constructs may have addToRolePolicy(statement)
or addToResourcePolicy(statement)
methods, which can be used to mutate the policies associated with a resource.
The statement
is a PolicyStatement
object with a rich API for producing IAM statements. This is an excerpt from the implementation of topic.subscribeQueue
:
queue.addToResourcePolicy(new PolicyStatement()
.addResource(queue.queueArn)
.addAction('sqs:SendMessage')
.addServicePrincipal('sns.amazonaws.com')
.setCondition('ArnEquals', { 'aws:SourceArn': this.topicArn }));
The S3 bucket construct has a set of "grant" methods (grantRead
, grantReadWrite
) which accept a principal resource (user, role or group) and an optional key prefix pattern and will render reciprocal IAM permissions, both in the principal's policy and the bucket policy:
const reader = new User(this, 'Reader');
const bucket = new Bucket(this, 'MyBucket');
bucket.grantRead(reader);
Synthesizes to:
Resources:
ReaderF7BF189D:
Type: AWS::IAM::User
ReaderDefaultPolicy151F3818:
Type: AWS::IAM::Policy
Properties:
PolicyDocument:
Statement:
- Action: [ "s3:GetObject*", "s3:GetBucket*", "s3:List*" ]
Effect: Allow
Resource:
- { "Fn::GetAtt": [ "MyBucketF68F3FF0", "Arn" ] }
- { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "MyBucketF68F3FF0", "Arn" ] }, "/", "*" ] ] }
Version: '2012-10-17'
PolicyName: ReaderDefaultPolicy151F3818
Users: [ { "Ref": "ReaderF7BF189D" } ]
MyBucketF68F3FF0:
Type: AWS::S3::Bucket
MyBucketPolicyE7FBAC7B:
Type: AWS::S3::BucketPolicy
Properties:
Bucket: { "Ref": "MyBucketF68F3FF0" }
PolicyDocument:
Statement:
- Action: [ "s3:GetObject*", "s3:GetBucket*", "s3:List*" ]
Effect: Allow
Principal:
AWS: { "Fn::GetAtt": [ "ReaderF7BF189D", "Arn" ] }
Resource:
- { "Fn::GetAtt": [ "MyBucketF68F3FF0", "Arn" ] }]
- { "Fn::Join": [ "", [ { "Fn::GetAtt": [ "MyBucketF68F3FF0", "Arn" ] }, "/", "*" ] ] }
Version: '2012-10-17'
The @aws-cdk/ec2 library includes a rich framework for modeling security group connections between resources such as a fleet, load balancers and databases.
For example, these automatically create appropriate ingress and egress rules in both security groups:
// allow fleet1 top connect to fleet2 on port 80
fleet1.connections.allowTo(fleet2, new TcpPort(80), 'Allow between fleets');
// allow fleet3 to accept connections from a load balancer on ports 60000-65535
fleet3.connections.allowFrom(loadBalancer, new TcpPortRange(60000, 65535), 'Allow from load balancer');
- Remove the "Attribute" postfix from all generated attribute types. So now, it is
QueueArn
instead ofQueueArnAttribute
. "Attribute" postfix from attribute types - Simplify the initialization of
Token
objects (all attribute types are Tokens). They can now be either initialized with a simple value or a lazy function. This means, that now you can writenew QueueArn('foo')
. This is useful when importing external resources into the stack.
The toolkit now outputs YAML instead of JSON by default.
Added active progress reporting for stack updates.
The diff output has been dramatically improved and provides a structure-aware diff. For example:
[~] Updating TableCD117FA1 (type: AWS::DynamoDB::Table)
.ProvisionedThroughput:
.WriteCapacityUnits: 10
Creating MyQueueE6CA6235 (type: AWS::SQS::Queue)
The CDK is now shipped with a library called @aws-cdk/assert which aims to make it easy to write unit and integration tests for CDK libraries and apps. The library leverages the same powerful template diff mechanism used in the toolkit to print rich descriptions.
import { expect } from '@aws-cdk/assert';
const stack = new Stack();
new Queue(stack, 'MyQueue', { visibilityTimeout: 300 });
expect(stack).to(haveResource('AWS::SQS::Queue', { VisibilityTimeout: 300 }));
expect(stack).to(countResources('AWS::SQS::Queue', 1));
expect(stack).toMatch({
Resources: {
MyQueue: {
Type: 'AWS::SQS::Queue',
Properties: {
VisibilityTimeout: 300
}
}
}
});
An initial integration testing utility is now available to allow users to implement manually executed CDK integration tests and ensure they are kept up-to-date if the code changes. This is an initial approach until we have a great way to automatically execute them during CI/CD.
The APIs in the IAM policy library have been improved and now provide a richer and more strongly-typed experience.
A class hierarchy around PolicyPrincipal
was created to reflect the various principals available: AccountPrincipal
, ServicePrincipal
, ArnPrincipal
, AccountRootPrincipal
.
The Arn
type now has the ability to format and parse to/from its components:
Arn.fromComponents({
service: 'dynamodb',
resource: 'table',
account: '123456789012',
region: 'us-east-1',
partition: 'aws-cn',
resourceName: 'mytable/stream/label'
});
// and
const bucketArn = Arn.parse('arn:aws:s3:::my_corporate_bucket')
// bucketArn === { partition: 'aws', service: 's3', resource: 'my_corporate_bucket' }
The Permission
class was renamed to PolicyStatement
and enriched with more strongly typed APIs.
A library to facilitate the definition of custom CloudFormation resources and exposing them as regular CDK constructs is now shipped with the CDK.
- All CloudFormation resource constructs are now available from the @aws-cdk/resources package under their dedicated AWS service's namespace. we have been calling these resource constructs Layer 1 (or "L1 constructs").
- All resource constructs now have the Resource suffix (TableResource instead of
Table
). This helps differentiate them from the rich AWS constructs we are also introducing in this release. - The CloudFormation resource property "Name" is now called "xxxName" (where "xxx" is the name of the resource, like "queue") instead of "resourceName".
- Updated resources based on the latest CloudFormation resource specification.
Before:
import { Pipeline } from '@aws-cdk/codepipeline';
new Pipeline(this, {
resourceName: 'MyPipelineName'
});
After:
import { codepipeline } from '@aws-cdk/resources';
new codepipeline.PipelineResource(this, {
pipelineName: 'MyPipelineName'
});
- Introducing CDK Applets which allow instantiating specific CDK stacks using a declarative YAML syntax.
- As a first step to enable diagnostics features in the toolkit, record logical ID (and stack trace) in metadata for stack elements.
- Introduce a new scheme for generating CloudFormation logical IDs which adds a hash of the construct path to the generated ID to avoid ID collisions. To opt-in for the new scheme, set
hashedLogicalIDs
totrue
when creating a Stack. - Allow specifying explicit logicalID for stack elements like Resource Parameter and Output.
async exec()
changed torun()
andvalidate
was changed to be a synchronous method instead of async.- Merged @aws-cdk/core into aws-cdk, which now where the core classes of the CDK framework live.
- The Runtime Values library, which was under @aws-cdk/rtv is now @aws-cdk/rtv.
- Bugfix: Tags could not be used because they failed validation.
- Bugfix: Allow "-" in stack names.
- The toolkit is now called CDK Toolkit instead of "cx Toolkit". This means that the
cx
command-command line program is now calledcdk
. - Added support large CloudFormation templates using a "toolkit stack" which contains an S3 bucket. This approach may be extended to provide other environment-related facilities in the future and requires that users "bootstrap" the toolkit stack into their environments. The current behavior will not require this stack unless you are trying to deploy a large template.
- It is now possible to synthesize all stacks into a directory.
- Allow using globs in
cdk deploy
to select multiple stacks. - Default account ID lookup result is now cached.
- Better error messages.
- Improve deploy output.
- Bugfix: Better error message when the app has no stacks.
- Bugfix: Distinguish actual "stack missing" from "no credentials".
- Bugfix: Delete stack in unrecoverable state.
- Bugfix: Fix an issue where 'deploy' fails because subsequent invocations use the same argument array.
- Bugfix: prevent crash if ~/.aws/config doesn't exist.
- Implemented a few advanced examples These examples show how to use IAM policies, environmental context, template inclusion, nested stacks, resource references and using various CloudFormation semantics in the CDK
- Environments - this version extends the fidelity of a CDK deployment target from only region to region + account, also referred to as an environment. This allows modeling complete apps that span multiple accounts/regions. To preserve the current behavior, if region/account is not specified, the CDK will default to the AWS SDK region/credential provider chain (
~/.aws/config
). We will add support for AWS SDK Profiles in a future release. See the Environments section of the CDK README for details). - Environmental Context (such as availability zones and SSM parameters) - there are use-cases where CDK stacks need to consult with account and region-specific information when they are synthesized (we call this information "environmental context"). For example, the set of supported availability zones is specific to account and region; the specific ID of certain public AMIs (Amazon Machine Image IDs) as published to the SSM parameter store is specific to each region. See the Environmental Context section in the CDK README for details .
- Runtime Values - a new mechanism for advertising values such as resource attributes and constants from construction-time to runtime code via the SSM parameter store. See the Runtime Values section in the CDK README for details.
- Construct Validation - it is now possible to implement a method
validate(): string[]
for any construct at any layer. Validation methods are all executed before a stack is synthesized and provide an opportunity for constructs to implement validation logic. See the Construct Validation section in the CDK README for details. - User-specific cx.json - the toolkit will now incorporate settings from
~/.cx.json
. This allows users to supply user-specific settings. Note this file is applied before the project-specificcx.json
file is applied. - IAM Library Improvements - allow creating IAM documents with a base document, a new class
AssumeRolePolicyDocument
, allow specifying multiple actions when creating aPermission
ob object. stack.findResource(logicalId)
- allows retriving a resource object from a stack based on it's calculated logical ID.- Windows AMIs are read from SSM parameter store.
- cx Toolkit returns a non-zero exit code when an error occurs.
- Retain original names of CloudFormation properties instead of auto-capitalizing based on heuristics, which caused some unexpected behavior in certain scenarios.
- CAPABILITY_NAMED_IAM was added to "cx deploy" by default.
- Java support:
class HelloJavaStack extends Stack {
public HelloJavaStack(final Construct parent, final StackProps props) {
super(parent, props);
VpcNetwork vpc = new VpcNetwork(this);
new Fleet(this, new FleetProps()
.withVpcSubnetwork(vpc.getPrivateSubnetwork())
.withInstanceType(new InstanceType("t2.micro"))
.withMachineImage(new WindowsMachineImage(0)));
}
}
-
cx Toolkit now supports standard AWS credentials.
-
CloudFormation pseudo parameters and intrinsic functions are now implemented as normal classes (
AwsRegion
,AwsStackId
,FnConcat
) instead of static methods. We might introduce functional sugar at a later stage, but at the lower-level, we want to represent both intrinsic functions and pseudo parameters as classes so we can model their relationship more accurately. For example, all pseudo parameters extendPseudoParameter
, all functions extends theFn
, all condition functions extendFnCondition
, etc.
Before:
Fn.if_(Fn.equals(param.ref, 'True'), 'Encrypted', Pseudo.NO_VALUE)
After:
new FnIf(Fn.equals(param.ref, 'True'), 'Encrypted', new AwsNoValue())
- CloudFormation template options (
templateFormatVersion
,description
andtransform
) are now grouped underStack.templateOptions
instead of directly underStack
.
Before:
stack.description = 'This is my awesome template'
After:
stack.templateOptions.description = 'This is my awesome template'
- Stack names are limited to alphanumeric characters, so it won't be possible to set stack names to match existing deployed stacks. As a workaround you can use
cx --rename
to specify the actual stack name to use fordiff
ordeploy
. Thanks rmuller@ for reporting. - When synthesizing templates, we transform all JSON keys to pascal case to conform with CloudFormation standards, but this also affects JSON blobs that are not CloudFormation such as IAM documents or environment variables.
- Added support for CloudFormation Rules.
- Cloud Executable Interface (CXI): changed semantics from "construct" to "synthesize" (backwards compatible).
- Tokens: improve error reporting when unable to resolve tokens.
- The initializer signature for constructs has changed and is now:
new Construct(parent[, props])
, whereprops
is may include an optionalname
property ("id" is now called "name"). - If
name
is not specified, the type name is used as the name. This will only be allowed when there is a single construct of a certain type under a parent. - If a parent has more than a single child of the same type, all children must have an explicit names to avoid ambiguity when generating CloudFormation logical IDs.
- JSX support updated to use
name
instead ofid
when producing construct trees.
Before:
new BeautifulConstruct(this, 'MyBeautifulConstruct', { ...props })
After:
new BeautifulConstruct(this) // use defaults
new BeautifulConstruct(this, { ...props })
// or
new BeautifulConstruct(this, { name: 'MyBeautifulConstruct', ...props })
- CloudFormation resource attribute properties now return a specialized type per attribute. For example, the
sqs.queueArn
property returns aQueueArnAttribute
object instead of aToken
. - The
Attribute
andArnAttribute
classes extendToken
and used as base classes for attribute types. - Resource names are now added as a prefix to attribute properties (
queueArn
instead ofarn
). This is required for future support for duck-typing and polymorphic use of resources of multiple types via a single container.
Before:
const t = new aws.dynamodb.Table(this);
assert(t.arn instanceof Token);
After:
const t = new aws.dynamodb.Table(this);
assert(t.tableArn instanceOf TableArnAttribute);
assert(t.tableArn instanceOf ArnAttribute);
assert(t.tableArn instanceOf Token);
- Constructs can now have metadata entries attached to them via
addMetadata(type,data)
. - Each entry will also include the stack trace from which the entry was added, which will later be used to improve the diagnosability of deployment errors.
- Stack metadata can be obtained using cx-Toolkit via
cx metadata
. construct.addWarning(msg)
attaches a "warning" metadata entry to a construct, which is displayed as a warning when synthesizing or deploying the stack.- cx-Toolkit will show warnings upon synthesis also supports
--strict
mode which will refuse to deploy stacks with warnings.
Example:
const c = new Construct(this);
c.addWarning('this is a warning');
c.addMetadata('type', 'data');
$ cx metadata
{
"/Stack/Construct": [
{
"type": "type",
"data": "data",
"trace": [ ... ]
},
{
"type": "warning",
"data": "this is a warning",
"trace": [ ... ]
}
]
}
$ cx synth
Warning: this is a warning (at /Stack/Construct)
...
- Replaced
topic.subscribeToXxx
withtopic.subscribe(target)
wheretarget
is anything that adheres to theSubscriptionTarget
interface (technically it's an abstract class because jsii doesn't support interfaces yet). - Removed
function.addExecutionRole()
- an execution role is automatically created when invokingfunction.addPermission(p)
.
- The
evaluate
method is now calledresolve
.
- If an app contains a single stack, no need to specify the stack name.
synth --interactive
(orsynth --interactive --verbose
) now displays real-time updates of a template's contents. Really nice for fast iteration;- The toolkit now reads
cx.json
for default arguments. Very useful, for example, to remove the need to specify--app
in every invocation.