v1.15.0
📦 terraformView on GitHub →
✨ 6 features🐛 16 fixes🔧 27 symbols
Summary
This release introduces the `convert` function, support for variables in module sources, and new validation checks for backend blocks. It also includes numerous bug fixes across CLI, state management, and provider initialization.
Migration Steps
- If using `AWS_USE_FIPS_ENDPOINT` or `AWS_USE_DUALSTACK_ENDPOINT` environment variables for the S3 backend, ensure they are set strictly to `"true"` or `"false"` instead of relying on any non-empty value being treated as true.
✨ New Features
- Produce builds for Windows ARM64.
- Support setting a `deprecated` attribute on variable and output blocks to produce warnings.
- backend/s3: Support authentication via `aws login`.
- The `validate` command now checks the `backend` block for type existence, required attributes, and backend validation logic.
- Introduce the `convert` function for precise inline type conversions.
- Terraform now supports variables and locals in module source and version attributes.
🐛 Bug Fixes
- File-level error diagnostics are now included in JUnit XML skipped test elements during testing.
- Fixed refresh-only plan resulting in a non-zero exit code with no changes.
- Fixed crash in `terraform show -json` when plan contains ephemeral resources with preconditions or postconditions.
- Fixed `terraform init -json` to properly format all backend configuration messages as
- The `state show` command will now explicitly fail (return code 1) when it fails to render the named resources state.
- Terraform raises an explicit error if a plan file intended for one workspace is applied against another workspace.
- Fixed `replace_triggered_by` reporting an error when given an invalid attribute reference that does not exist in the target resource.
- Fixed nil pointer dereference crash during `terraform init` when the destination backend returns an error.
- Stacks now send progress events if the plan fails for better UI integration.
- Stacks component instances now report no-op plan/apply, solving a UI inconsistency with convergence destroy plans.
- backend/http: Return conflicting lock info from HTTP backend instead of the lock that failed to be taken.
- Fixed a bug causing Terraform to be unable to identify when two states had different output values (affecting backend migrations).
- Cloud/registry discovery network requests are now more resilient to temporary network or service errors.
- Enable formatting of `.tfquery.hcl` files by `terraform fmt`.
- Fix `validate` not returning JSON for some early diagnostics.
- Fix Terraform Stacks plugin installation error.
Affected Symbols
backend/s3validate commandconvert functionmodule source attributemodule version attributeoutput blocksssh-based provisioner (file + remote-exec)terraform init loginit commandterraform test mock blocksresource attributes / blockslist_start JSON logsStacks input variable validationcontainer value comparison to nullterraform show -jsonterraform init -jsonstate show commandapply commandworkspace managementlifecycle replace_triggered_bybackend initializationbackend/httpstates output comparisonterraform cloud discoveryterraform registry discoveryterraform fmt.tfquery.hcl