github hashicorp/terraform-cdk v0.8.0

latest releases: v0.21.0-pre.126, v0.21.0-pre.125, v0.21.0-pre.124...
2 years ago

Breaking Changes

Namespaced AWS Provider Resources #1248

We iterated on the namespacing for the AWS provider which got introduced in #1101. Our goal was, to enable custom L2 / L3 abstractions being built with jsii, improve the general jsii support for the namespacing and last but not least to allow both namespace and barrel imports in Typescript. A welcome side effect is a 5x performance gain when building packages via jsii for Python (from ~ 16 minutes to ~ 3 minutes) and likely other targets such as Java or C#

As a result, there are a few minor breaking changes:

  • Namespaces are all lowercased now, without a separating character
  • Namespaces are all a single word now (e.g. DynamoDb used to be dynamo_db in Python - it's now just dynamodb)
  • CloudwatchEventBridge namespace got renamed to eventbridge

Typescript Example

Before

This was pretty much the only way to use the namespaced provider classes.

import { CloudFront } from "@cdktf/provider-aws";

new CloudFront.CloudfrontDistribution(this, "cloudfront", {});
After

Now it's possible to either import the entire namespace, or a resource class directly.

// Similar to before, but namespace is lowercased
import { cloudfront } from "@cdktf/provider-aws";

new cloudfront.CloudfrontDistribution(this, "cloudfront", {});

// new option
import { CloudfrontDistribution } from "@cdktf/provider-aws/lib/cloudfront";

new CloudfrontDistribution(this, "cloudfront", {});

See this Pull Request for more details.

Other Changes

fix

  • fix(provider-generator): Fix private registry module generation #1361
  • fix(lib): Fix incorrect parseInt casing #1359
  • fix(lib): fix documentation link for lookup #1347
  • fix(provider-generator): Mutating complex objects #1331
  • fix(provider-generator): attributes on resources should not be undefined #1310
  • fix(examples): Make sure we're using pipenv #1272
  • fix(lib): Increased --max-old-space-size value #1265
  • fix(examples): temporarily set fixed AWS provider version for Java #1261
  • fix(cli): fix bug that required cdktf.json in parent directory when running convert #1256
  • fix(provider-generator): escape hyphens in provider names for Go package identifiers #1252
  • fix(lib): Rework AWS Provider Namespacing #1248
  • fix(lib): escape newlines in terraform functions #1233
  • fix(lib): Also separate Token Map and symbols for interoperability with AWS CDK Tokens #1176
  • fix(release): only include prs since last version in the changelog #1171

chore

  • chore(docs): Fix broken anchor links #1345
  • chore(docs): link and layout fixes #1344
  • chore(docs): document list escape hatches #1342
  • chore(tests): remove jsii version from snapshot #1341
  • chore(docs): Add constructs documentation to website #1338
  • chore(deps): upgrade jsii versions and unpin AWS TF provider version for Java example #1336
  • chore(docs): Move examples up in sidebar, list out tutorials #1291
  • chore(deps): yarn upgrade #1283
  • chore(cli): upgrade React version #1259
  • chore(release): Pre-releases should use next version #1257
  • chore(docs): Fix docs nits like images, headings, and contractions #1245
  • chore(deps): remove obsolete dependency json-schema-to-typescript #1232
  • chore(deps): fix dependabot config #1220
  • chore(deps): re-enable dependabot #1219
  • chore(docs): document escape hatch for dynamic blocks #1215
  • chore(docs): copy over aspects #1214
  • chore(docs): revert link change #1177
  • chore(docs): Laura fix docs nits #1172
  • chore(examples): Use AWS provider 3.0 #1155

Other

  • chore: add website release automation #1255
  • fix: Fix EC2 Instance creation example #1254
  • fix: Minor typo in error message about missing providers #1240

feat

  • feat(cli): use ts-node to compile main.ts #1253
  • feat(docs): add link to new deploy apps tutorial #1236
  • feat(lib): Add staticId option to TerraformOutput (uses construct id as synthesized output name)" #1213
  • feat(lib): throw error when a token is used in a construct name #1181
  • feat(hcl2cdk): document providers with missing type information #1174
  • feat(lib): Expand Output value types #1145

test

  • test(cli): test generated providers #1235
  • test(lib): ensure assets dont redeploy without FS changes #1178

Don't miss a new terraform-cdk release

NewReleases is sending notifications on new releases.