New Features
Documentation
- chore(docs): link docker integration example #789
- chore(docs): add google cloud kubernetes example #742
- chore(docs): python example for gcp cloud function #776
- chore(docs): Add serverless application guide #786
- chore(docs): link to serverless e2e example #795
- chore(docs): add examples for ucloud provider (ts/python/java/c#/go) #790
- chore(docs): add azure python link #773
- chore(docs): Enhance readme with Terraform Platform Illustration #778
- chore(docs): Add Project Maturity section to README #797
- chore(docs): Add callouts to Learn tutorials #767
- chore(docs): Create BUGPROCESS.md #815
- refactor(docs): clarify that we support all providers and modules #783
- fix(docs): remove Csharp readme in Python for #745 #820
- fix(docs): add mandatory cdktf get step #784
- fix(docs): document module generation #848
Fixed Bugs
- fix(cli): throw explicit error when commands are invoked outside of a cdktf project #854
- fix(cli): dont compile cdktf output directory #754
- fix(cli): dont upload .terraform folders #758
- fix(cli): polish user interaction by switching libraries #850
- fix(cli): update hint for tfstate file #756
- fix(cli): parse JSON output #774
- fix(hcl2cdk): exclude non-registry modules from the cdktf.json #847
- fix(hcl2cdk): adjust link for label renaming #852
- fix(hcl2cdk): only run get conditionally #846
- fix(hcl2cdk): camelCase backend properties #862
- fix(hcl2cdk): suffix variables and locals #845
- fix(tests): make less assumptions about environment in config.test.ts #832
- fix(lib): Add in new optional AWS route attributes #821
Chores
- chore(deps): use nodejs v14 version of aws jsii/superchain image #843
- chore(deps): add gcc and gcc-c++ to Dockerfile required for node-gyp #849
- chore(deps): Upgrade eslint to v7 #819
- chore(deps): bump ws from 7.4.2 to 7.4.6 #747
- chore(deps): bump y18n from 4.0.0 to 4.0.3 #777
- chore(cli): send telemetry on errors #829
- chore(cli): lint tsx files and clean up React Hooks code #818
- chore(cli): add prettier #793
- chore(lib): track overrides and backend types in stack #830
- chore(tests): Provide global PR workflow status #781
Fixed Bugs
- Fix
cdktf destroy
- Make sure output parses only relevant parts #761 - Dont error on init when log has been written #759
Implemented enhancements
- Experimental Go Support #686
- Add Asset Construct #698
- Support sensitive variables #701
- Update python templates to use RemoteBackend construct #644 & #669
- UX: Explain how to specify a stack in the error message #689
- Terraform Cloud: Output uses attribute name instead of id #717
- Terraform Cloud: Stream resource updates #712
- Add JSDoc links to Terraform Registry docs when generating providers #576
Fixed Bugs
- Return non-zero exit code on unknown command and allow terraform-like command names #680
- Add cdktf.log to .gitignore of built-in templates #662
- Fix elasticsearch index resource #681
- Fix gitignore after init #691
- Deploy changes on TF output changes #687
- Fix: Unable to use resources containing an argument named 'stack' #716
- OCI Synth issues: "module has already exported a member" #713
- Adapt to changed output format in Terraform 0.15.4 #736
Breaking Changes
We're now supporting multiple Stacks! - existing Terraform state files from local Terraform workflows have to be renamed to match the stack name.
Up until CDK for Terraform version 0.2
only a single stack was supported. For local state handling, a terraform.tfstate
file in the project root folder was used. With version 0.3.0
the local state file reflects the stack name it belongs to in its file name. When a terraform.tfstate
file is still present in the project root folder, it has to be renamed to match the schema terraform.<stack-name>.tfstate
manually.
Implemented enhancements
Fixed Bugs
- Wait for ConfigurationVersion to be ready when using Terraform Cloud #655
- Fix module variables without type #630
- Fix module without newline #633
- Rename instance variable to a more specific name to avoid name collisions #640
- Fix multiple modules with same end name #637
Fixed Bugs
- Resources containing hyphens in resource ids did not correctly display their apply status #614
- Add missing handling for resource status lines #619
- Print more descriptive error messages if requests to Terraform Cloud fail #623, #626, #488, #400
Fixed Bugs
- Allow for module without outputs #599
- Fix Python template #604
- Don't treat warning lines as resources #585
- Handle malformed code blocks in provider schema descriptions #605
Breaking Changes
- Generated classes for modules from the registry will change - see this comment for more details
- Phased out testing and support for Terraform
0.12
. It's likely to still work for now, but it's not guaranteed anymore #592
Implemented enhancements:
- Improve Module Support #584
- Release packages to Maven Central #556
- Release packages to Nuget.org #528
- TerraformHclModule outputs use tokens #512
- Improve C# init behaviour for Github Package Registry #497
- Support for dynamic attribute type #565
- Upgrade to ink v3 #559
Fixed bugs:
- Correct depends on casing for modules #508
- Python pip template adjustments for windows #535
- Checkpoint Error Handling / Timeout #552
- Inject defaults for certain attributes #479
- Python-pip template fix/improvements #541
- Quote cdktf path in init templates #511
- Include feature flags in java template and test #471
- Update jsii-srcmak to remove symlink #580
- Rename null provider for java & c# #589
Chores:
Implemented enhancements:
Fixed bugs:
- Include feature flags in java template and test #471
Security Updates:
Fixed bugs:
- Depends on expansion #442
- Make sure tokens resolved before converting to json #439
- Alter reset and input names when they conflict #429
- Fix complex map attribute data source reference #441
- Remap 'equals' to 'equalTo' to work around jsii limitation #428
- Generated custom mappings #395
Fixed bugs:
- Update jsii with python docs fix #418
- Maintain dependencies between required construct properties #310
Implemented enhancements:
- Java support #360
- Simple Terraform Locals #357
- allow to use TERRAFORM_BINARY_NAME env to set terraform binary #366
- Default to NPM in templates #359
- Terraform version check #378
- Terraform Variables #277
- Terraform hcl module #375
- Support for matching existing Terraform names #329
Fixed bugs:
- Fix Orcale Provider #341
- Run Terraform commands with
input=false
flag #343 - Use default provider caching of Terraform, rather than creating error prone symlinks #344
Implemented enhancements:
- Streamline CLI workflows for prebuilt providers #331
- CLI installable via Homebrew #342
- Support Terraform provider caching by default #189, #222, #349
Fixed bugs:
- Fix TerraformProvider alias definition #332
Implemented enhancements:
- Checkpoint telemetry integration #326
- Adding cdktf version to the terraform user agent #321
- Migrate to jsii-srcmak #276
Fixed bugs:
- Terraform 0.13 Compatibility for 3rd Party Providers (e.g. Docker) in Python #309
- Fix Naming Collision with Config interfaces #300
Implemented enhancements:
- Use remote backend class for typescript template #313
Implemented enhancements:
- Terraform 0.13 Compatibility #285
Security Updates:
- Fix dot-prop security dependency bot alert #296
Fixed bugs:
- Fix interpolation bug in complex computed list of data sources #215
- Avoid conflicts with resource attributes called "node" #230
- Python: setup imports dir as a package #262
Implemented enhancements:
- Add support for List of Maps in schema generator #229
- Add Lists of Maps #229
- Bump and align Typescript / @node/types Dependencies - Upgrade lodash #252
- Terraform backend config #224
- Terraform data remote state #241
Fixed bugs:
cdktf init
was broken on Windows #198
Implemented enhancements:
- Defaults are opposite of Terraform but should default to being non-destructive #155
- Version check for new cdktf cli #130
- Set NODE_ENV for CLI #129
- Make local state persistent #116
- Improved resource name structure in Diff / Deploy / Destroy #135
Fixed bugs:
- cdktf destroy errors saying stale plan #182
- Migrating from local state to remote state doesn't work #168
- Display Typescript Errors for Synth #161
- cdktf init is broken #157
- Handle stale stacks in cdktf #150
- cdktf init Terraform Cloud workspace creation doesn't work #144
- Case sensitive tags are incorrectly downcased #75
- Bug when creating Terraform Cloud workspace via
cdktf init
(#144)
- Fix
cdktf init
issue (#139)
Minor bug fixes and documentation for getting started guides.
- Support for
cdktf diff
(#90) - Support for
cdktf deploy
(#92) - Support for
cdktf destroy
(#111) - Support for Terraform Cloud via
cdktf login
(#96) - Support for logging across the project (#100)
- New UI for
cdktf synth
andcdktf get
(#103) - Basic error handling support (#110)
There are other minor bug fixes included in the release. (#109, #122, #128).
- Typescript examples and template defaults for synthesize commands to compile application (#63)
- Terraform Output doesn't handle Optional Types (#83)
- Document Terraform outputs and remote backend (#64)
- Fix providers file workflow (#66)
- Stack escape hatch (#81)
- Getting started guide for Python (#73)
- Change output directory to
cdktf.out
for Terraform configuration (#70) - Fix output directory argument for
cdktf synth
(#62)
Enable synthesis to Python
Minor output changes and updated README.md example.
Alpha release for Github and NPM
Initial release to GitHub and NPM.
Initial release of cdktf-cli
and cdktf
to Github and NPM registry.