Skip to content

Latest commit

 

History

History
2204 lines (1471 loc) · 149 KB

CHANGELOG.md

File metadata and controls

2204 lines (1471 loc) · 149 KB

See https://github.com/terraform-linters/tflint/releases for later releases.

0.47.0 (2023-06-18)

This release introduces autofix feature. Running tflint --fix will automatically fix issues as possible. Note that not all rules support autofix. In order to support autofix, plugins must be built with SDK v0.17+ and implement autofix.

The bundled Terraform ruleset has been updated to v0.4.0 with autofix support. In other words, for Terraform rules, you can use autofix as it is. See the tflint-ruleset-terraform v0.4.0 changelog for details.

Breaking Changes

  • #1749: plugin: Drop support for plugin SDK v0.12/v0.13 (@wata727)
    • Plugins built using SDKs v0.12/v0.13 are no longer supported. If you get "SDK version is incompatible" error, you need to update the plugin to use SDK v0.14+.
  • #1750 #1781: Bump tflint-plugin-sdk and bundled terraform plugin
    • The SDK has been updated to v0.17.0 and the bundled Terraform plugin to v0.4.0. Terraform ruleset v0.3.0 contains breaking changes. Check the changelog for details.
  • #1779: cmd: Drop support for CLI arguments (@wata727)
    • Argument support has been removed based on the deprecation warning added in v0.46. As of v0.47, it returns an error instead of a warning. See #1687 for details.

Enhancements

  • #1751: plugin: support GitHub Enterprise Server as plugin source (@bendrucker)
  • #1755: Introduce autofix (@wata727)
  • #1773: build(deps): Bump github.com/hashicorp/hcl/v2 from 2.16.2 to 2.17.0
    • TFLint v0.47 host server return cty.Value now supports refinemnet. This is a change that only affects plugin developers. See HCL v2.17.0 changelog for details.
  • #1780: terraform: Add support for Terraform v1.5 (@wata727)
    • Added support for the planttimestamp and strcontains functions.

Chores

  • #1754 #1766: build(deps): Bump sigstore/cosign-installer from 3.0.2 to 3.0.5
  • #1759: build(deps): Bump google.golang.org/grpc from 1.54.0 to 1.55.0
  • #1762: build(deps): Bump alpine from 3.17.3 to 3.18.0
  • #1763: build(deps): Bump golang.org/x/oauth2 from 0.7.0 to 0.8.0
  • #1764: build(deps): Bump golang.org/x/crypto from 0.8.0 to 0.9.0
  • #1767: build(deps): Bump github.com/zclconf/go-cty from 1.13.1 to 1.13.2
  • #1771: fix(install_linux): Update unzip arguments (@alexjurkiewicz)
  • #1772 #1775: build(deps): Bump golangci/golangci-lint-action from 3.4.0 to 3.6.0
  • #1774: build(deps): Bump github.com/hashicorp/go-plugin from 1.4.9 to 1.4.10
  • #1776: build(deps): Bump golang.org/x/text from 0.9.0 to 0.10.0

0.46.1 (2023-04-22)

BugFixes

Chores

  • #1738: build(deps): Bump sigstore/cosign-installer from 3.0.1 to 3.0.2
  • #1739: build(deps): Bump golang.org/x/crypto from 0.7.0 to 0.8.0
  • #1741: build(deps): Bump golang.org/x/oauth2 from 0.6.0 to 0.7.0
  • #1743: build(deps): Bump github.com/terraform-linters/tflint-plugin-sdk from 0.16.0 to 0.16.1

0.46.0 (2023-04-09)

This release adds deprecation warnings for future breaking changes. Warn when using command line arguments like tflint dir and tflint main.tf. The former can be replaced with tflint --chdir=dir and the latter with tflint --filter=main.tf. See #1687 for details.

The GPG key signed signature attached to TFLint releases has been deprecated. This signature will not be added to releases after May 1, 2023. Please migrate to verification with Cosign.

Enhancements

Changes

BugFixes

  • #1686: sarif: add tool version, exclude empty range/position, slash paths (@bendrucker)

Chores

  • #1587: Deprecate GPG key signed signature (@wata727)
  • #1662: deps: bump to go1.20 (@chenrui333 @bendrucker)
  • #1681: docs: Update usage output (@wata727)
  • #1682 #1733: build(deps): Bump alpine from 3.17.1 to 3.17.3
  • #1683: build(deps): Bump golang.org/x/text from 0.6.0 to 0.7.0
  • #1684: build(deps): Bump github.com/hashicorp/hcl/v2 from 2.16.0 to 2.16.1
  • #1685 #1729: build(deps): Bump google.golang.org/grpc from 1.52.3 to 1.54.0
  • #1691: build(deps): Bump github.com/hashicorp/go-getter from 1.6.2 to 1.7.0
  • #1692: build(deps): Bump golang.org/x/net from 0.5.0 to 0.7.0
  • #1695 #1714: build(deps): Bump golang.org/x/oauth2 from 0.4.0 to 0.6.0
  • #1701: build(deps): Bump github.com/sourcegraph/jsonrpc2 from 0.1.0 to 0.2.0
  • #1702 #1712: build(deps): Bump github.com/spf13/afero from 1.9.3 to 1.9.5
  • #1704 #1711: build(deps): Bump golang.org/x/crypto from 0.0.0-20220517005047-85d78b3ac167 to 0.7.0
  • #1708: docs: revise plugin rate limiting guide (@bendrucker)
  • #1710: build(deps): Bump sigstore/cosign-installer from 2.8.1 to 3.0.1
  • #1715: build(deps): Bump github.com/hashicorp/go-plugin from 1.4.8 to 1.4.9
  • #1717: build(deps): Bump github.com/fatih/color from 1.14.1 to 1.15.0
  • #1723: build(deps): Bump actions/setup-go from 3 to 4
  • #1724: build(deps): Bump github.com/zclconf/go-cty from 1.12.1 to 1.13.1
  • #1736: Fix GoReleaser config for Cosign v2 (@wata727)

0.45.0 (2023-02-13)

This release adds support for some CLI flags. File arguments (e.g. tflint main.tf) have been deprecated by the new --filter flag. It works in v0.45 but will be removed in a future version. We recommend migrating to tflint --filter=main.tf.

All arguments are deprecated from this release. If you're using arguments, you'll need to migrate to the --chdir or --filter flags.

This release updates the expiration date of the built-in GPG public key. Existing keys will expire on 2023-05-01, so you are encouraged to update by then.

Enhancements

BugFixes

  • #1664: plugin: Fix panic when plugin path could not be loaded (@wata727)
  • #1678: cmd: Reject all directory arguments with --chdir/--recursive (@wata727)

Chores

  • #1642: build(deps): Bump golang.org/x/text from 0.5.0 to 0.6.0
  • #1651: build(deps): Bump golangci/golangci-lint-action from 3.3.1 to 3.4.0
  • #1652: build(deps): Bump github.com/fatih/color from 1.13.0 to 1.14.1
  • #1653: build(deps): Bump alpine from 3.17.0 to 3.17.1
  • #1658: docs: Fix typo in architecture guide (@Ankushpandey-ti)
  • #1659: build(deps): Bump github.com/hashicorp/hcl/v2 from 2.15.0 to 2.16.0
  • #1660: build(deps): Bump google.golang.org/grpc from 1.51.0 to 1.52.3
  • #1661: docs: Mention OPA ruleset (@wata727)
  • #1666: docs: Add Environment Variables documentation (@wata727)
  • #1667: docs: Mention Renovate TFLint plugins support (@wata727)
  • #1670: tflint: Allow config to be merged even with initial values (@wata727)
  • #1673: build(deps): Bump docker/build-push-action from 3 to 4
  • #1674: build(deps): Bump golang from 1.19-alpine3.16 to 1.20-alpine3.16

0.44.1 (2022-12-30)

BugFixes

  • #1635: terraform: Fix path.module when using --chdir/--recursive (@wata727)
  • #1636: cmd: Fix file arguments handling when using --chdir (@wata727)

0.44.0 (2022-12-26)

This release added support for --chdir and --recursive flags. Mostly loader related improvements, including some refactorings.

The directory argument (e.g. tflint dir) has been deprecated. It works in v0.44 but will be removed in a future version. We recommend migrating to tflint --chdir=dir.

The --recursive flag is an experimental feature. It may not suit all workflows. We may change behavior frequently to keep improving.

Enhancements

  • #1612: cmd: Add --chdir option (@wata727)
    • This change deprecates the directory argument. If you are using tflint dir, you should migrate to tflint --chdir=dir. In most cases the directory argument can be replaced with --chdir.
    • The directory argument works in v0.44 but will be removed in a future version.
  • #1622 #1629: cmd: Add --recursive option (@wata727 @bendrucker)
    • The --recursive option is an experimental feature. Behavior may change in future versions.
  • #1626: plugin: Add support for GetOriginalwd API (@wata727)
    • GetOriginalwd() is available from SDK v0.15.
  • #1630: Bump tflint-plugin-sdk to v0.15.0 (@wata727)
  • #1631: Bump bundled terraform ruleset to v0.2.2 (@wata727)

Changes

  • #1610: terraform: Move loader to under the terraform package (@wata727)
    • Changed the directory for autoloading value files when using a directory argument. Previously, terraform.tfvars and *.auto.tfvars in the current directory were loaded, but since v0.44, value files in the argument directory are loaded.
    • In any case, the directory argument is deprecated and we recommend migrating to --chdir.

Chores

  • #1602: build(deps): Bump github.com/spf13/afero from 1.9.2 to 1.9.3
  • #1603: build(deps): Bump google.golang.org/grpc from 1.50.1 to 1.51.0
  • #1607: docs: Revise developer guide (@wata727)
  • #1611: build(deps): Bump alpine from 3.16.3 to 3.17.0
  • #1614: build(deps): Bump golang.org/x/text from 0.4.0 to 0.5.0
  • #1615: tests: pass $GITHUB_TOKEN (@bendrucker)
  • #1620: build(deps): Bump github.com/go-test/deep from 1.0.8 to 1.1.0
  • #1621: build(deps): Bump github.com/hashicorp/go-plugin from 1.4.6 to 1.4.8
  • #1623: build(deps): Bump goreleaser/goreleaser-action from 3 to 4
  • #1627 #1628: chores: Fix flaky CI (@wata727)

0.43.0 (2022-11-19)

This release adds support for dynamic blocks, including block expansion and iterator evaluation. Previously, dynamic blocks were always treated as a single block.

Plugin developers should be careful with dynamic blocks after this version. If you set ExpandModeNone (or IncludeNotCreated), dynamic blocks will not be fully expanded. Instead, dynamic blocks can be retrieved as-is via the GetModuleContent API.

Enhancements

BugFixes

  • #1579 #1591: build(deps): Bump github.com/zclconf/go-cty from 1.11.1 to 1.12.1
  • #1582: terraform: Convert variable types before applying defaults (@wata727)
  • #1592: build(deps): Bump github.com/hashicorp/hcl/v2 from 2.14.1 to 2.15.0
  • #1598: Fix panic when file read fails (@wata727)

Chores

  • #1546: Convert bug report issue template to form (@bendrucker)
  • #1584: build(deps): Bump github.com/zclconf/go-cty-yaml from 1.0.2 to 1.0.3
  • #1585: Set up a security policy (@wata727)
  • #1586: Follow up of upstream LICENSE updates (@wata727)
  • #1588: Add COSIGN_EXPERIMENTAL=1 flag to the verification example (@wata727)
  • #1589: Bump up GoReleaser version (@wata727)
  • #1590: build(deps): Bump golangci/golangci-lint-action from 3.3.0 to 3.3.1
  • #1593: build(deps): Bump github.com/hashicorp/go-plugin from 1.4.5 to 1.4.6
  • #1594: build(deps): Bump alpine from 3.16.2 to 3.16.3

0.42.2 (2022-10-26)

BugFixes

Chores

  • #1568: build(deps): Bump golangci/golangci-lint-action from 3.2.0 to 3.3.0
  • #1569: build(deps): Bump sigstore/cosign-installer from 2.8.0 to 2.8.1

0.42.1 (2022-10-25)

BugFixes

  • #1566: terraform: Fix incorrect circular reference detection (@wata727)

0.42.0 (2022-10-23)

This release adds support for evaluating local.*, each.key, each.value, and count.index. Support for each.* and count.index requires plugins built with SDK v0.14+.

Starting with this release, resources/modules with count or for_each set will be expanded. Previously it was only expanded if count = 0 or for_each = {}, but it is now always expanded and multiple resources/modules are passed to plugins.

Enhancements

BugFixes

  • #1557: plugin: Fix crash when evaluating nested sensitive values (@wata727)

Chores

  • #1526: Move block expanding to under the terraform package (@wata727)
  • #1527: docs: Update compatibility guide (@wata727)
  • #1528 #1539: build(deps): Bump sigstore/cosign-installer from 2.6.0 to 2.8.0
  • #1529: workflow(docker): Improve multi-arch image build (@wata727)
  • #1534: docs: Add notice about Chocolatey package (@wata727)
  • #1538: build(deps): Bump google.golang.org/grpc from 1.49.0 to 1.50.0
  • #1550: build(deps): Bump github.com/zclconf/go-cty from 1.11.0 to 1.11.1
  • #1558: docs: Add API compatibility note (@wata727)
  • #1559: Add test when the count is string (@wata727)
  • #1561: build(deps): Bump golang.org/x/text from 0.3.7 to 0.4.0

0.41.0 (2022-09-24)

Enhancements

Chores

0.40.1 (2022-09-17)

BugFixes

  • #1514: Ignore default preset by disabled_by_default
  • #1516: Prefer --only option over other rules config (@wata727)

Chores

  • #1509: Remove unused functions (@wata727)
  • #1511: build(deps): Bump github.com/google/go-cmp from 0.5.8 to 0.5.9
  • #1512: build(deps): Bump sigstore/cosign-installer from 2.5.1 to 2.6.0

0.40.0 (2022-09-08)

This release contains major changes to the plugin system. All plugins must be built with tflint-plugin-sdk v0.12.0+ to support this version. See also https://github.com/terraform-linters/tflint-plugin-sdk/releases/tag/v0.12.0

Starting with this version, the built-in rules for the Terraform Language have been cut out into the tflint-ruleset-terraform plugin. Since the plugin is bundled with the TFLint binary, you will still be able to use the rules as before. However, be aware that some default behavior has changed.

Breaking Changes

  • #1470: Remove --loglevel CLI flag (@wata727)
  • #1496: plugin: Switch internal Terraform rules to the bundled plugin (@wata727)
    • Rules for the Terraform Language have been cut out into a plugin, allowing you to enable or disable rules in bulk. Just declare the plugin block in .tflint.hcl like any other plugin.
    • The following rules are newly enabled by default. To keep the same behavior as before, these rules should be disabled.
      • terraform_deprecated_index
      • terraform_required_providers
      • terraform_required_version
      • terraform_typed_variables
      • terraform_unused_declarations
    • See also tflint-ruleset-terraform documentation for plugin configuration.

Enhancements

  • #1480: plugin: Add support for GetModulePath API (@wata727)
  • #1481: plugin: Make GetRuleConfigContent doesn't return an error even if config not found (@wata727)
  • #1482: formatter(compact): print hcl.Diagnostics errors in compact format (@bendrucker)
  • #1492: annotations: allow ignoring multiple rules (@bendrucker)

BugFixes

  • #1501: plugin: Fix an error when evaluating sensitive values (@wata727)

Chores

  • #1483: build(deps): Bump github.com/mattn/go-colorable from 0.1.12 to 0.1.13
  • #1484: build(deps): Bump alpine from 3.16.1 to 3.16.2
  • #1485: build: Improve Go workflows (@wata727)
  • #1487: Revert "Add a notice about verification of keyless signing" (@wata727)
  • #1489: build(deps): Bump github.com/zclconf/go-cty from 1.10.0 to 1.11.0
  • #1490: build(deps): Bump github.com/hashicorp/go-plugin from 1.4.4 to 1.4.5
  • #1491: build(deps): Bump sigstore/cosign-installer from 2.5.0 to 2.5.1
  • #1499: use mktemp when installing tflint (@dawez)
  • #1500: Move cli_test.go to integration test (@wata727)
  • #1504: build: Use default cosign version (@wata727)

0.39.3 (2022-08-12)

Enhancements

BugFixes

  • #1478: terraformrules: Ignore invalid references in referencesInExpr (@wata727)

Chores

0.39.2 (2022-08-05)

BugFixes

Chores

0.39.1 (2022-07-29)

BugFixes

  • #1452: terraform_required_version: fix regression with multiple blocks (@bendrucker)
  • #1454: terraform_required_providers: fix regression with configuration_aliases (@bendrucker)
  • #1456: Fix panic that occurs when using sensitive count (@wata727)
  • #1458: terraformrules: Get module contents with IncludeNotCreated: true (@wata727)

Chores

  • #1449: Update verification steps for the latest Cosign (@wata727)

0.39.0 (2022-07-28)

In this release, the dependencies on Terraform's internal API have been significantly changed. Normally, you should be unlikely to be directly affected by this change, but you may get different results in small details, such as error messages. See the Changes section for more details.

Changes

  • #1428: Replace config loader with a new loader (@wata727)
  • #1433: terraformrules: Remove dependencies on Terraform internal packages from rules (@wata727)

Enhancements

  • #1432: terraformrules: Walk map/list expressions deeply (@wata727)

BugFixes

  • #1445: terraform: Finalize variable values in Evaluator (@wata727)

Chores

  • #1421: build(deps): Bump github.com/hashicorp/go-getter from 1.6.1 to 1.6.2
  • #1425: build(deps): Bump github.com/hashicorp/hcl/v2 from 2.12.0 to 2.13.0
  • #1429: build(deps): Bump github.com/hashicorp/go-version from 1.5.0 to 1.6.0
  • #1430 #1433: build(deps): Bump sigstore/cosign-installer from 2.4.0 to 2.5.0
  • #1431: Installing on mac m1 (@caruccio)
  • #1438 #1442: build(deps): Bump github.com/spf13/afero from 1.8.2 to 1.9.2
  • #1439: build(deps): Bump golang from 1.18.3-alpine3.15 to 1.18.4-alpine3.15
  • #1444: build(deps): Bump alpine from 3.16.0 to 3.16.1
  • #1446: Bump cosign to v1.10.0 (@wata727)

0.38.1 (2022-06-21)

0.38.0 (2022-06-21)

Enhancements

BugFixes

  • #1415: tflint: Skip evaluation of module arguments if the module call is not evaluated (@wata727)
  • #1416: cmd: Lookup issues by normalized path (@wata727)

Chores

  • #1405: build(deps): Bump alpine from 3.15.4 to 3.16.0
  • #1410: build(deps): Bump golang from 1.18.2-alpine3.15 to 1.18.3-alpine3.15
  • #1414: build(deps): Bump sigstore/cosign-installer from 2.3.0 to 2.4.0
  • #1419: Tweak issue templates (@wata727)

0.37.0 (2022-05-30)

Enhancements

Chores

  • #1378: build(deps): Bump github.com/hashicorp/go-plugin from 1.4.3 to 1.4.4
  • #1379: build(deps): Bump docker/metadata-action from 3 to 4
  • #1380: build(deps): Bump docker/login-action from 1 to 2
  • #1381: build(deps): Bump docker/setup-buildx-action from 1 to 2
  • #1382: build(deps): Bump docker/build-push-action from 2 to 3
  • #1383: build(deps): Bump docker/setup-qemu-action from 1 to 2
  • #1385: Remove a redundant log message (@alexjurkiewicz)
  • #1386: build(deps): Bump golangci/golangci-lint-action from 3.1.0 to 3.2.0
  • #1387: build(deps): Bump golang from 1.18.1-alpine3.15 to 1.18.2-alpine3.15
  • #1389: build(deps): Bump github.com/hashicorp/go-version from 1.4.0 to 1.5.0
  • #1390: build(deps): Bump github.com/hashicorp/go-getter from 1.5.11 to 1.6.1
  • #1391: build(deps): Bump goreleaser/goreleaser-action from 2 to 3
  • #1404: Remove testify (@wata727)

0.36.2 (2022-05-06)

BugFixes

  • #1376: Fix unintended errors when enabling Terraform rules by CLI (@wata727)
  • #1377: Fix panic when enabling plugins by CLI (@wata727)

0.36.1 (2022-05-05)

BugFixes

  • #1373: Fix panic when enabling Terraform rules by CLI (@wata727)

0.36.0 (2022-05-05)

Enhancements

Plugin API Changes

Chores

  • #1336: build: Go 1.18 (@wata727)
  • #1339 #1347 #1350: build(deps): Bump alpine from 3.15.1 to 3.15.4
  • #1344: build: CI only checks docker build for linux/amd64 (@wata727)
  • #1346 #1371: build(deps): Bump github.com/terraform-linters/tflint-plugin-sdk from 0.10.0 to 0.11.0
  • #1348: discovery: reword message on protocol version err (@bendrucker)
  • #1349: build(deps): Bump github.com/hashicorp/go-uuid from 1.0.2 to 1.0.3
  • #1360: build(deps): Bump golang from 1.18.0-alpine3.15 to 1.18.1-alpine3.15
  • #1361: Add signatures for keyless signing (@wata727)
  • #1364: build(deps): Bump github.com/hashicorp/hcl/v2 from 2.11.1 to 2.12.0
  • #1366: build(deps): Bump github.com/google/go-cmp from 0.5.7 to 0.5.8
  • #1367: build(deps): Bump sigstore/cosign-installer from 2.2.1 to 2.3.0

0.35.0 (2022-03-27)

This release contains major changes to the plugin system. All plugins must be built with tflint-plugin-sdk v0.10.0+ to support this version. See also https://github.com/terraform-linters/tflint-plugin-sdk/releases/tag/v0.10.0

Another important change is the end support of bundled plugins. Users who use the AWS provider should follow this change.

Breaking Changes

  • #1286: plugin: Drop support for bundled plugins (@wata727)
    • Previously, you have been able to use rules for AWS resources, including aws_instance_invalid_type, without installing tflint-ruleset-aws explicitly. However, after this release, you will need to explicitly install the plugin.
    • Please note that even if you are affected by this change, you will not see any warnings in this release. Before updating, it is recommended to check if there is a warning that bundled plugin is enabled in the previous version (v0.31.0+). See also #1160
  • #1292 #1312 #1333 #1334 #1335: Add support for gRPC server for the new plugin system (@wata727)
    • This change is not important to end-users, but it is important to plugin developers. See the tflint-plugin-sdk's CHANGELOG for detailed changes.

Enhancements

  • #1297: formatter(json,sarif): print structured error data (@sxlijin)
    • Add summary, severity, and range fields to errors in JSON formatter
    • Add tflint-errors driver in SARIF formatter

BugFixes

Chores

  • #1206: Build Docker image for linux/aarch64 (@ivy)
  • #1287 #1316 #1320: build(deps): Bump actions/setup-go from 2.1.4 to 3
  • #1288 #1293 #1295 #1308 #1327: build(deps): Bump github.com/spf13/afero from 1.6.0 to 1.8.2
  • #1289: build(deps): Bump github.com/hashicorp/go-getter from 1.5.9 to 1.5.10
  • #1294 #1305: build(deps): Bump github.com/terraform-linters/tflint-ruleset-aws from 0.10.1 to 0.12.0
    • But this dependency was removed in this release finally.
  • #1296: build(deps): Bump github.com/hashicorp/go-version from 1.3.0 to 1.4.0
  • #1298: build(deps): Bump github.com/hashicorp/go-getter from 1.5.10 to 1.5.11
  • #1301: build(deps): Bump github.com/google/go-cmp from 0.5.6 to 0.5.7
  • #1313: Add missing E2E test cases (@wata727)
  • #1318: build(deps): Bump github.com/jstemmer/go-junit-report from 0.9.1 to 1.0.0
  • #1319: build(deps): Bump golangci/golangci-lint-action from 2 to 3.1.0
  • #1321: feat: get architecture for install (@techsolx)
  • #1324: build(deps): Bump actions/checkout from 2 to 3
  • #1329: build(deps): Bump github.com/stretchr/testify from 1.7.0 to 1.7.1
  • #1330: build(deps): Bump actions/cache from 2.1.7 to 3
  • #1331: build(deps): Bump golang from 1.17-alpine3.15 to 1.18.0-alpine3.15
  • #1332: build(deps): Bump alpine from 3.15.0 to 3.15.1

0.34.1 (2021-12-25)

BugFixes

Chores

  • #1277: docs: Update Compatibility guide (@wata727)
  • #1278: build(deps): Bump github.com/terraform-linters/tflint-ruleset-aws from 0.10.0 to 0.10.1
  • #1279: build(deps): Bump github.com/owenrumney/go-sarif from 1.0.12 to 1.1.1
  • #1284: docs: linking terraform_module_version rule docs (@PatMyron)

0.34.0 (2021-12-13)

Breaking Changes

  • #1276: terraform: Add support for Terraform v1.1 syntax (@wata727)

0.33.2 (2021-12-07)

Chores

  • #1244: build(deps): Bump github.com/owenrumney/go-sarif from 1.0.11 to 1.0.12
  • #1247: remove precommit hooks (@bendrucker)
  • #1251 #1272: build(deps): Bump github.com/terraform-linters/tflint-ruleset-aws from 0.8.0 to 0.10.0
  • #1252: build(deps): Bump github.com/zclconf/go-cty from 1.9.1 to 1.10.0
  • #1253: refactor: move from io/ioutil to io and os packages (@Juneezee)
  • #1261: add missing rule to index, alphabetize (@nmarchini)
  • #1264: build(deps): Bump actions/cache from 2.1.6 to 2.1.7
  • #1265 #1273: build(deps): Bump alpine from 3.14.2 to 3.15.0
  • #1266: build(deps): Bump github.com/mattn/go-colorable from 0.1.11 to 0.1.12
  • #1269: plugin: log when GITHUB_TOKEN is set (@bendrucker)
  • #1271: build(deps): Bump github.com/hashicorp/hcl/v2 from 2.10.1 to 2.11.1

0.33.1 (2021-11-01)

BugFixes

  • #1240: formatter: Fix an edge case for SARIF format (@kadrach)
  • #1243: tflint: Inherit config when plugins are enabled from CLI (@wata727)

0.33.0 (2021-10-14)

Breaking Changes

  • #1220: build: Remove some os/arch build targets (@wata727)
    • End of support for pre-built binaries for the following os/arch
      • All arch for FreeBSD/OpenBSD/NetBSD
      • windows/arm and windows/arm64
      • darwin/386

Enhancements

  • #1228: Adds SARIF as a supported output format (@kadrach)
  • #1229 #1237: build(deps): Bump github.com/terraform-linters/tflint-ruleset-aws from 0.7.1 to 0.8.0
  • #1235: config: Add plugin_dir config (@wata727)

BugFixes

  • #1225: terraform_unused_required_providers: handle module provider overrides (@bendrucker)
  • #1226: terraform_module_pinned_source: do not assume gitlab URLs are git protocol (@bendrucker)

Chores

  • #1222 #1236: build(deps): Bump github.com/hashicorp/go-getter from 1.5.7 to 1.5.9
  • #1223: fix incorrect documentation (@darrenjones24)
  • #1224 #1230 #1234: build(deps): Bump github.com/mattn/go-colorable from 0.1.8 to 0.1.11
  • #1231: build(deps): Bump github.com/fatih/color from 1.12.0 to 1.13.0

0.32.1 (2021-09-12)

BugFixes

  • #1218: build: Update GoReleaser version (@wata727)
    • v0.32.0 release doesn't include darwin/arm64 build. This change fixes the issue.

0.32.0 (2021-09-11)

Breaking Changes

  • #1191: cmd: Change exit status (@wata727)
    • Previously, TFLint returned 2 when an internal error occurred and 3 when an issue was found. From this version, it returns 1 in the former case and 2 in the latter case.

Enhancements

  • #1182: add rule: terraform_module_version (@bendrucker)
  • #1197: terraform_module_pinned_source: detect invalid URLs (@bendrucker)
  • #1201 #1212: build(deps): Bump github.com/terraform-linters/tflint-ruleset-aws from 0.6.0 to 0.7.1

Chores

0.31.0 (2021-08-08)

Enhancements

Changes

BugFixes

Chores

  • #1156: grammar fix on installation script (@radius314)
  • #1158: terraform: Remove unused internal packages impl (@wata727)
  • #1161: build(deps): Bump github.com/zclconf/go-cty from 1.8.4 to 1.9.0
  • #1164: Update README about Docker images (@wata727)
  • #1166: build(deps): Bump github.com/terraform-linters/tflint-plugin-sdk from 0.9.0 to 0.9.1
  • #1167: build(deps): Bump github.com/google/uuid from 1.2.0 to 1.3.0
  • #1172: build(deps): Bump github.com/hashicorp/hcl/v2 from 2.10.0 to 2.10.1
  • #1174: Bump github.com/sourcegraph/jsonrpc2 to v0.1.0 (@wata727)
  • #1175: build(deps): Bump github.com/hashicorp/go-getter from 1.5.5 to 1.5.6

0.30.0 (2021-07-04)

This release follows the package internalization of Terraform v1.0, and copied some packages as part of TFLint. As a result, the hashicorp/terraform dependency has remove from go.mod, but the copied packages are still included. Therefore, it does not have a significant impact on users. See #937 for more information.

Also, this release adds a new API for the plugin system. For this update, plugins must be built with tflint-plugin-sdk v0.9.0 to work with TFLint v0.30.0. For details, please see the CHANGELOG of tflint-plugin-sdk.

Finally, the Docker image was previously hosted under wata727/tflint, but has been moved to the GitHub Container Registry. If you are using this image, please migrate to ghcr.io/terraform-linters/tflint.

Enhancements

Chores

  • #1137: build(deps): Bump alpine from 3.13 to 3.14.0
  • #1141: Copy internal packages from Terraform v1.0 (@wata727)
  • #1144: build(deps): Bump golang.org/x/text from 0.3.5 to 0.3.6
  • #1145: build(deps): Bump github.com/bmatcuk/doublestar from 1.1.5 to 1.3.4
  • #1146: build(deps): Bump github.com/zclconf/go-cty from 1.8.3 to 1.8.4
  • #1147: build(deps): Bump github.com/fatih/color from 1.10.0 to 1.12.0
  • #1149: build(deps): Bump github.com/agext/levenshtein from 1.2.2 to 1.2.3
  • #1150: build(deps): Bump github.com/golang/mock from 1.5.0 to 1.6.0
  • #1151: build(deps): Bump github.com/google/go-github/v35 from 35.2.0 to 35.3.0
  • #1152: build(deps): Bump github.com/hashicorp/go-uuid from 1.0.1 to 1.0.2
  • #1153: build(deps): Bump github.com/hashicorp/go-getter from 1.5.3 to 1.5.5
  • #1155: docker: Migrate to GitHub Container Registry (@wata727)

0.29.1 (2021-06-12)

Chores

0.29.0 (2021-06-05)

This release introduces the --init option for installing plugins automatically. This makes it easy to install plugin binaries published on GitHub Release that meet conventions. See Configuring Plugins for details.

Enhancements

  • #1119: cmd: Add --init for installing plugins automatically (@wata727)
  • #1126: terraform_module_pinned_source: support additional default_branches (@bendrucker)
  • #1130: Bump bundled AWS ruleset plugin (@wata727)

Chores

  • #1120: build(deps): Bump github.com/hashicorp/terraform from 0.15.1 to 0.15.3
  • #1121: build(deps): Bump github.com/zclconf/go-cty from 1.8.2 to 1.8.3
  • #1124: Refactor terraform_module_pinned_source rule (@bendrucker)
  • #1127: install: handle running as root (without sudo) (@bendrucker)
  • #1128: build(deps): Bump actions/cache from 2.1.5 to 2.1.6

0.28.1 (2021-05-05)

BugFixes

Chores

  • #1108: build(deps): Bump github.com/hashicorp/hcl/v2 from 2.9.1 to 2.10.0
  • #1109: build(deps): Bump github.com/zclconf/go-cty from 1.8.1 to 1.8.2
  • #1110: build(deps): Bump github.com/hashicorp/go-plugin from 1.4.0 to 1.4.1
  • #1113: Log at INFO level when TFLint cannot statically evaluate an expression (@bendrucker)
  • #1115: Set the GPG key expiration to 2023-05-01 (@wata727)
  • #1116: build(deps): Bump github.com/hashicorp/terraform from 0.15.0 to 0.15.1

0.28.0 (2021-04-25)

Enhancements

BugFixes

  • #1105: Fix crash when passed --enable-rule with a configured rule (@wata727)
  • #1106: Fix crash when passed --only with a configured rule (@wata727)

Chores

  • #1100: build(deps): Bump actions/cache from v2.1.4 to v2.1.5
  • #1104: add integration test for map[string]string attr (@bendrucker)

0.27.0 (2021-04-18)

This release adds support for Terraform v0.15. We strongly recommend that you update to Terraform v0.15 before updating TFLint to this version. See the upgrade guide for details.

Breaking Changes

  • #1096 #1099: build(deps): Bump github.com/hashicorp/terraform from 0.14.9 to 0.15.0

Chores

0.26.0 (2021-04-04)

Enhancements

BugFixes

Chores

  • #1077: build(deps): Bump github.com/google/go-cmp from 0.5.4 to 0.5.5
  • #1081 #1091: build(deps): Bump github.com/hashicorp/terraform from 0.14.7 to 0.14.9
  • #1082: build(deps): Bump github.com/hashicorp/hcl/v2 from 2.9.0 to 2.9.1
  • #1086: update dockerfile to use alpine 3.13 (@chenrui333)
  • #1087: update dependabot to manage docker deps (@chenrui333)
  • #1088: build(deps): Bump github.com/zclconf/go-cty from 1.8.0 to 1.8.1
  • #1089: build(deps): Bump github.com/jessevdk/go-flags from 1.4.0 to 1.5.0

0.25.0 (2021-03-06)

Enhancements

BugFixes

Chores

  • #1057: add stargazers chart (@chenrui333)
  • #1058 #1064: build(deps): Bump github.com/hashicorp/terraform from 0.14.5 to 0.14.7
  • #1059: build(deps): Bump actions/cache from v2.1.3 to v2.1.4
  • #1060: docker: remove unused build tools (@pujan14)
  • #1062 #1073: chore: update go to v1.16 (@chenrui333)
  • #1065: build(deps): Bump github.com/golang/mock from 1.4.4 to 1.5.0
  • #1071: terraform_naming_convention: test with count = 0 (@bendrucker)
  • #1074: build(deps): Bump github.com/hashicorp/hcl/v2 from 2.8.2 to 2.9.0
  • #1075: build(deps): Bump github.com/zclconf/go-cty from 1.7.1 to 1.8.0

0.24.1 (2021-02-02)

BugFixes

0.24.0 (2021-01-31)

This release fixes some bugs about the plugin system. For this update, the plugin must be built with tflint-plugin-sdk v0.8.0 to work with TFLint v0.24.0. For details, please see the CHANGELOG of tflint-plugin-sdk.

Breaking Changes

  • #1052: Bump tflint-plugin-sdk and bundled plugins (@wata727)
    • This change breaks plugin API backward compatibility. In order for plugins to work against v0.24.0, you need to build with tflint-plugin-sdk v0.8.0.

Changes

BugFixes

Chores

  • #1034: build(deps): Bump github.com/hashicorp/hcl/v2 from 2.8.1 to 2.8.2
  • #1035 #1044: build(deps): Bump github.com/hashicorp/terraform from 0.14.3 to 0.14.5
  • #1046: go: cache builds (@bendrucker)
  • #1047: add module/build caching to e2e + gen (@bendrucker)

0.23.1 (2021-01-11)

BugFixes

0.23.0 (2021-01-03)

This release changes the AWS rules implementation into the AWS ruleset plugin. As a result, there are breaking changes to the config for deep checking. If you are using this feature, please declare the plugin settings in .tflint.hcl as follows. See the tflint-ruleset-aws plugin configurations for details.

plugin "aws" {
  enabled = true
  deep_check = true

  // Write credentials here...
}

For backward compatibility, The AWS ruleset plugin is bundled with the binary. So you can still use AWS rules without installing the plugin separetely. The plugin is automatically enabled if there are AWS resources in your Terraform configuration, but it can also be turned on explicitly. See #1009 for details.

Breaking Changes

  • #1009: Switch AWS rules implementation to the tflint-ruleset-aws plugin (@wata727)
  • #1023: Remove global deep checking options (@wata727)
    • Remove --deep, --aws-access-key, --aws-secret-key, --aws-profile, --aws-creds-file, and --aws-region CLI flags. Please configure these via .tflint.hcl file.
    • Remove global deep_check and aws_credentials configs from .tflint.hcl. Please configure these in plugin blocks.
  • #1026: Bump tflint-plugin-sdk and bundled plugins (@wata727)
    • This change breaks plugin API backward compatibility. In order for plugins to work against v0.23.0, you need to build with tflint-plugin-sdk v0.7.0.

Enhancements

BugFixes

  • #1019: tflint: Add workaround to get the range of configs.mergeBody (@wata727)
  • #1020: tflint: Skip walking expressions of merged bodies (@wata727)

Chores

  • #1010: build(deps): Bump github.com/hashicorp/hcl/v2 from 2.8.0 to 2.8.1
  • #1011: build(deps): Bump github.com/zclconf/go-cty from 1.7.0 to 1.7.1
  • #1013: build(deps): Bump github.com/hashicorp/terraform from 0.14.2 to 0.14.3
  • #1015: docs: add homebrew badge (@chenrui333)
  • #1018: Tweaks E2E testing (@wata727)
  • #1021: deps: match afero version to terraform (@bendrucker)
  • #1024: Cleanup AWS relevant implementations (@wata727)
  • #1025: Revise documentation (@wata727)

0.22.0 (2020-12-09)

This release updates to Terraform 0.14! This adds support for parsing configuration that uses features introduced in Terraform 0.14. See Terraform's changelog for further details.

Enhancements

BugFixes

  • #998: terraform_required_providers: emit error when only source is specified (@bendrucker)
  • #999: runner: clean Terraform source path for comparison

Chores

  • #988: bump github.com/google/go-cmp from 0.5.3 to 0.5.4
  • #993 #993: Bump github.com/aws/aws-sdk-go from 1.35.35 to 1.36.2
  • #996: bump aws sdk submodule to 1.36.3 (@bmbferreira)
  • #994: Bump github.com/hashicorp/hcl/v2 from 2.7.1 to 2.7.2

0.21.0 (2020-11-23)

This release adds support for JSON configuration syntax in plugins. For this update, the plugin must be built with tflint-plugin-sdk v0.6.0 to work with TFLint v0.21.0. For details, please see the CHANGELOG of tflint-plugin-sdk.

Breaking Changes

  • #982: Bump tflint-plugin-sdk to v0.6.0 (@wata727)
    • This change breaks plugin API backward compatibility. In order for plugins to work against v0.21.0, you need to build with tflint-plugin-sdk v0.6.0.

Enhancements

BugFixes

Chores

  • #955 #979: Bump github.com/hashicorp/hcl/v2 from 2.6.0 to 2.7.1
  • #956 #962 #965 #969 #973 #974 #980: Bump github.com/aws/aws-sdk-go from 1.35.7 to 1.35.33
  • #960: Bump github.com/zclconf/go-cty from 1.6.1 to 1.7.0
  • #961: Bump github.com/hashicorp/terraform from 0.13.4 to 0.13.5
  • #964: Bump github.com/fatih/color from 1.9.0 to 1.10.0
  • #966 #970 #978: Bump github.com/hashicorp/terraform-plugin-sdk/v2 from 2.0.4 to 2.3.0
  • #968: Bump github.com/hashicorp/go-plugin from 1.3.0 to 1.4.0
  • #971: Bump actions/cache from v2.1.2 to v2.1.3
  • #972: Bump github.com/google/go-cmp from 0.5.2 to 0.5.3
  • #977: chore: Allow "latest" as TFLINT_VERSION in the installation script (@wata727)

0.20.3 (2020-10-18)

Enhancements

BugFixes

  • #951: missing_tags_rule: Suppress false positives when using dynamic blocks (@wata727)

Chores

  • #932 #940 #945: Bump github.com/aws/aws-sdk-go from 1.34.27 to 1.35.7
  • #938: Bump github.com/mattn/go-colorable from 0.1.7 to 0.1.8
  • #939: Bump github.com/hashicorp/terraform from 0.13.3 to 0.13.4
  • #941: Bump actions/setup-go from v2.1.2 to v2.1.3
  • #944: Bump github.com/hashicorp/terraform-plugin-sdk/v2 from 2.0.3 to 2.0.4
  • #946: Bump github.com/hashicorp/aws-sdk-go-base from 0.6.0 to 0.7.0
  • #947: Bump github.com/spf13/afero from 1.4.0 to 1.4.1
  • #948: Bump actions/cache from v2.1.1 to v2.1.2

0.20.2 (2020-09-22)

Enhancements

BugFixes

  • #920: terraform_required_providers: ignore terraform provider (@bendrucker)

Chores

  • #915 #922: Bump github.com/aws/aws-sdk-go from 1.34.18 to 1.34.27
  • #916 #921: Bump github.com/hashicorp/terraform-plugin-sdk/v2 from 2.0.1 to 2.0.3
  • #918: Bump tf to v0.13.3 (@chenrui333)
  • #923: Bump github.com/spf13/afero from 1.3.5 to 1.4.0
  • #925: GCP support status is now experimental (@wata727)

0.20.1 (2020-09-13)

Chores

0.20.0 (2020-09-13)

This release introduces a new CLI flag --only. This allows you to run the analysis with only certain rules enabled.

Also, this release is built with Go v1.15. As a result, darwin/386 build will no longer available from the release. Due to a release process issue, this release does not include pre-built binaries, so please check v0.20.1.

Breaking Changes

  • #913: Bump tflint-plugin-sdk to v0.5.0 (@wata727)
    • This change breaks plugin API backward compatibility. In order for plugins to work against v0.20.0, you need to build with tflint-plugin-sdk v0.5.0.

Enhancements

Chores

  • #871: chore(deps): bump go to v1.15 (@chenrui333 @bendrucker)
  • #887 #897 #899 #905: Bump github.com/aws/aws-sdk-go from 1.34.5 to 1.34.18
  • #891 #902: chore(deps): terraform 0.13.2 (@chenrui333)
  • #892: update dependabot to include github action dep support (@chenrui333)
  • #893: Bump actions/cache from v1 to v2.1.1
  • #894: Bump actions/setup-go from v1 to v2.1.2
  • #895: Bump github.com/google/go-cmp from 0.5.1 to 0.5.2
  • #900 #906: Bump github.com/zclconf/go-cty from 1.5.1 to 1.6.1
  • #903: Updated comments to reflect true intent of three methods (@ritesh-modi)
  • #907: Bump github.com/spf13/afero from 1.3.4 to 1.3.5
  • #908: Remove replace directive (@jpreese)

0.19.1 (2020-08-23)

Enhancements

  • #870: Support custom formats in terraform_naming_convention rule (@angelyan)
  • #885: plugin: Clarify plugin's incompatible API version errors (@wata727)

BugFixes

  • #884: terraform_rules: Add workaround for skipping child modules inspection (@wata727)

0.19.0 (2020-08-17)

TFLint v0.19 relies on and is compatible with Terraform v0.13! 🎉

This version is also compatible with most Terraform v0.12 configurations without an immediate update to Terraform v0.13. Custom variable validation was officially added in v0.13. Any modules that enabled this featue during the experiment phase must remove the experiment setting to be compatible with Terraform v0.13. Consult the Terraform 0.13.0 changelog for a full list of breaking changes. We recommend all users update when possible.

Breaking Changes

  • #874: Bump tflint-plugin-sdk to v0.4.0 (@wata727)
    • This change breaks plugin API backward compatibility. In order for plugins to work against v0.19.0, you need to build with tflint-plugin-sdk v0.4.0.

Enhancements

BugFixes

  • #859: standard_module_structure: fix false positives when passing a directory (@bendrucker)

Chores

  • #854 #864 #865 #876: Bump github.com/aws/aws-sdk-go from 1.33.7 to 1.34.5
  • #855: Bump github.com/google/go-cmp from 0.5.0 to 0.5.1
  • #856 #861 #866: Bump github.com/spf13/afero from 1.3.1 to 1.3.4
  • #862: Bump github.com/golang/mock from 1.4.3 to 1.4.4
  • #870: test installation on hashicorp/terraform docker image (@bendrucker)

0.18.0 (2020-07-19)

This release adds Backend() API for accessing the Terraform backend configuration. If you want to use the API, the plugin must be built with tflint-plugin-sdk v0.3.0. For details, please see the CHANGELOG of tflint-plugin-sdk.

Breaking Changes

  • #845: Bump tflint-plugin-sdk to v0.3.0 (@wata727)
    • This change breaks plugin API backward compatibility. In order for plugins to work against v0.18.0, you need to build with tflint-plugin-sdk v0.3.0.

Enhancements

  • #838: plugin: Add Backend() to plugin server (@pd)
  • #844: Add --loglevel option (@wata727)
  • #846: Bump terraform-provider-aws to v2.70.0 from v2.68.0 (@wata727)

BugFixes

  • #840: tflint: Fix module resolution when terraform init is invoked from another directory (@mkielar)

Chores

  • #830: Bump github.com/spf13/afero from 1.3.0 to 1.3.1
  • #847: Bump github.com/aws/aws-sdk-go from 1.32.12 to 1.33.7

0.17.0 (2020-06-28)

This release contains several improvements for plugins. In order to take advantage of the improved features, the plugin must be built with tflint-plugin-sdk v0.2.0. For details, please see the CHANGELOG of tflint-plugin-sdk.

Breaking Changes

  • #823: Bump tflint-plugin-sdk to v0.2.0 (@wata727)
    • This change breaks plugin API backward compatibility. In order for plugins to work against v0.17.0, you need to build with tflint-plugin-sdk v0.2.0.

Enhancements

Changes

  • #775: plugin: Support text-based expression sending and receiving on the server (@wata727)
  • #785: tflint: Do not walk resource attributes if the resource is not created (@wata727)
  • #797: plugin: Allow to omit metadata expr on EmitIssue (@wata727)

Chores

  • #792: Bump github.com/hashicorp/hcl/v2 from 2.5.1 to 2.6.0
  • #793: Bump github.com/hashicorp/aws-sdk-go-base from 0.4.0 to 0.5.0
  • #794: Bump github.com/hashicorp/hcl/v2 from 2.5.1 to 2.6.0 in /tools
  • #799: Bump github.com/zclconf/go-cty from 1.4.2 to 1.5.0
  • #803 #809: awsrules: add tags package with generator (@bendrucker)
  • #805 #818 #825: Bump github.com/aws/aws-sdk-go from 1.31.7 to 1.32.11
  • #806: Replacing loadConfigFromFile return func by cfg variable (@cedarkuo)
  • #811: Bump github.com/hashicorp/terraform-plugin-sdk from 1.13.1 to 1.14.0 in /tools
  • #812: Bump github.com/google/go-cmp from 0.4.1 to 0.5.0
  • #813: Bump github.com/hashicorp/go-version from 1.2.0 to 1.2.1
  • #815: Bump github.com/spf13/afero from 1.2.2 to 1.3.0
  • #819: Move tools packages into packages they are responsible for generating (@bendrucker)
  • #820: readme: replace wget w/ curl in macOS install example (@bendrucker)
  • #821 #822: chore(deps): bump terraform to v0.12.28 (@chenrui333)
  • #824: Create Dependabot config file
  • #826: Bump github.com/mattn/go-colorable from 0.1.6 to 0.1.7

0.16.2 (2020-06-06)

Enhancements

  • #784: add terraform_deprecated_index (disallows foo.0) (@bendrucker)
  • #787: Change the plugins dir with TFLINT_PLUGIN_DIR environment variable (@wata727)
  • #789: Allow no extensions on windows (@jpreese)
  • #790: Bump terraform-provider-aws to v2.65.0 from v2.62.0 (@wata727)

Chores

  • #767: terraform_workspace_remote: document disabling with local execution (@bendrucker)
  • #772: Bump tflint-plugin-sdk to v0.1.1 from v0.1.0 (@wata727)
  • #773: Bump github.com/hashicorp/terraform-plugin-sdk from 1.12.0 to 1.13.0 in /tools
  • #774: Bump github.com/aws/aws-sdk-go from 1.30.29 to 1.31.4
  • #776: Bump tf to v0.12.26 (@chenrui333)
  • #777: Update install linux script (@cedarkuo)
  • #779: Bump github.com/aws/aws-sdk-go from 1.31.4 to 1.31.7
  • #780: Bump github.com/zclconf/go-cty from 1.4.1 to 1.4.2
  • #782: Update extend.md (@jpreese)

0.16.1 (2020-05-21)

Enhancements

BugFixes

Chores

  • #753: Bump go to 1.14.3 and alpine to 3.11 (@chenrui333)
  • #754: Add support TFLINT_VERSION environment variable to installation script (@wata727)
  • #755: Mention about other providers support (@wata727)
  • #756: Bump github.com/google/go-cmp from 0.4.0 to 0.4.1
  • #757: Bump github.com/hashicorp/hcl/v2 from 2.5.0 to 2.5.1
  • #758: Bump github.com/aws/aws-sdk-go from 1.30.24 to 1.30.29

0.16.0 (2020-05-16)

In this release, some great Terraform rules are added by great contributors! Please note that many rules are not enabled by default. You need to set it appropriately according to your policy.

The naming convention rules have been merged into the terraform_naming_convetion rule, so if you are using the terraform_dash_in_* rules you will need to change your configuration. See the documentation for details.

Breaking Changes

  • #737: Remove terraform_dash_in_* rules (@wata727)
    • The terraform_dash_in_data_source_name, terraform_dash_in_module_name, terraform_dash_in_output_name, and terraform_dash_in_resource_name rules have been removed. Use the terraform_naming_convention rule instead.

Enhancements

BugFixes

Chores

  • #732: Copy edits for rules docs (@bendrucker)
  • #740: testing: compare Rule types and ignore struct fields (@bendrucker)
  • #743: Split runner file into multiple files (@wata727)
  • #746: Bump github.com/aws/aws-sdk-go from 1.30.14 to 1.30.24
  • #747: Bump github.com/hashicorp/hcl/v2 from 2.3.0 to 2.5.0
  • #749: Bump github.com/hashicorp/terraform-plugin-sdk from 1.10.0 to 1.12.0 in /tools
  • #750: Bump tf to v0.12.25 (@chenrui333)
  • #751: Bump github.com/hashicorp/hcl/v2 from 2.3.0 to 2.5.1 in /tools

0.15.5 (2020-04-25)

Enhancements

  • #721: Add a rule to enforce Terraform types for variables (@mveitas)
  • #725: Adding rule for terraform_required_version (@mveitas)
  • #729: Bump terraform-provider-aws to v2.59.0 from v2.56.0 (@wata727)

BugFixes

  • #728: Allow empty string as a valid value of dynamodb table stream view type (@wata727)

Chores

  • #707: Bump github.com/hashicorp/go-plugin from 1.2.0 to 1.2.2
  • #727: Bump github.com/hashicorp/terraform-plugin-sdk from 1.9.0 to 1.10.0 in /tools
  • #730: Bump github.com/aws/aws-sdk-go from 1.30.3 to 1.30.14

0.15.4 (2020-04-04)

Enhancements

  • #685: Add dash checks for data sources and modules (@gkze)
  • #702: Bump terraform-aws-provider to v2.56.0 from v2.54.0 (@wata727)

BugFixes

Chores

  • #684: Automate homebrew formula upgrade process (@chenrui333)
  • #686: Fixes the example of excluding resource types (@bwhaley)
  • #690: Bump github.com/hashicorp/terraform-plugin-sdk from 1.8.0 to 1.9.0 in /tools
  • #699: Bump github.com/aws/aws-sdk-go from 1.29.29 to 1.30.3

0.15.3 (2020-03-21)

Enhancements

  • #676: Bump terraform to v0.12.24 (@chenrui333)
  • #681: Bump terraform-provider-aws to v2.54.0 from v2.53.0 (@wata727)
  • #682: Bump github.com/aws/aws-sdk-go from 1.29.24 to 1.29.29

BugFixes

  • #670: Adds support for aws_autoscaling_group tag blocks and tags attributes (@bwhaley)
  • #679: Add bucket-owner-full-control to allowed S3 ACLs (@sds)
  • #680: Add bucket-owner-read to allowed S3 ACLs (@wata727)

Chores

  • #664: Use checkout action v2 (@chenrui333)
  • #671: Bump github.com/golang/mock from 1.4.1 to 1.4.3
  • #675: Bump github.com/hashicorp/go-plugin from 1.1.0 to 1.2.0

0.15.2 (2020-03-14)

Enhancements

  • #650: Bump github.com/zclconf/go-cty from 1.3.0 to 1.3.1
  • #653: Bump terraform to v0.12.23 (@chenrui333)
  • #665: Bump github.com/aws/aws-sdk-go from 1.28.9 to 1.29.24
  • #667: Bump terraform-provider-aws to v2.53.0 from v2.50.0 (@wata727)

Chores

  • #647: Bump github.com/hashicorp/go-plugin from 1.0.1 to 1.1.0
  • #649: Bump golang to v1.14 (@chenrui333)
  • #657: Run linters in GitHub Actions (@wata727)
  • #660: Bump github.com/hashicorp/terraform-plugin-sdk from 1.7.0 to 1.8.0 in /tools
  • #666: Add install guide for Windows (choco install) (@aaronsteers)

0.15.1 (2020-03-02)

BugFixes

  • #645: Emit an issue when there is no tags definition (@wata727)

Chores

  • #630: Bump github.com/zclconf/go-cty from 1.2.1 to 1.3.0
  • #640: Bump github.com/golang/mock from 1.4.0 to 1.4.1
  • #641: Bump github.com/mattn/go-colorable from 0.1.4 to 0.1.6

0.15.0 (2020-02-25)

This release introduces advanced rule configuration syntax. This allows you to customize each rule with its own options. At the moment, only the terraform_module_pinned_source rule has its own options. See documentation for details.

Breaking Changes

  • #624: Merge terraform_module_semver_source into terraform_module_pinned_source (@wata727)
    • The terraform_module_semver_source rule has been removed. Instead, use the terraform_module_pinned_source rule with semver style option.

Enhancements

Chores

0.14.0 (2020-01-31)

This release ships an experimental plugin system again! The new plugin system supports all operating systems and works perfectly correctly. See the documentation about how to use and create plugins.

Enhancements

  • #568: Add new rule: terraform_dash_in_output_name (@osulli)
  • #578: Bump github.com/fatih/color from 1.7.0 to 1.9.0
  • #579 #597: Bump terraform to v0.12.20 (@chenrui333)
  • #585: Introduce go-plugin based plugin system (@wata727)
  • #601: Bump github.com/aws/aws-sdk-go from 1.26.8 to 1.28.9
  • #605: Bump terraform-provider-aws to v2.46.0 from v2.43.0 (@wata727)

BugFixes

  • #604: Prefer "ActiveMQ" over "ACTIVEMQ" as engine type (@wata727)

Chores

  • #519: Set up cache and artifact action (@wata727)
  • #573: Bump github.com/hashicorp/hcl/v2 from 2.0.0 to 2.3.0 in /tools
  • #576: Bump github.com/google/go-cmp from 0.3.1 to 0.4.0
  • #583: Bump golang to v1.13.6 for Docker image (@chenrui333)
  • #594: Bump github.com/golang/mock from 1.3.1 to 1.4.0
  • #603: Bump github.com/hashicorp/terraform-plugin-sdk from 1.4.1 to 1.6.0 in /tools

0.13.4 (2019-12-27)

Enhancements

  • #563: Add elasticache support for t3 family (@BrunoChauvet)
  • #564: Bump github.com/aws/aws-sdk-go from 1.25.48 to 1.26.8
  • #565: Bump terraform-provider-aws to v2.43.0 from v2.41.0 (@wata727)

Chores

0.13.3 (2019-12-18)

Enhancements

BugFixes

  • #555: Parse absolute paths in TF_DATA_DIR correctly (@madddi)

Chores

0.13.2 (2019-12-07)

Enhancements

  • #526 #532: Bump terraform to v0.12.17 from v0.12.15 (@chenrui333)
  • #537: Bump github.com/aws/aws-sdk-go from 1.25.31 to 1.25.48
  • #541: Bump terraform-provider-aws to v2.41.0 from v2.36.0 (@wata727)

Chores

0.13.1 (2019-11-16)

0.13.0 (2019-11-16)

This is the first release in the terraform-linters organization. This release includes an experimental plugin system. You can easily add custom rules using the Go plugin system. Please see here for the detail.

Breaking Changes

Enhancements

BugFixes

  • #517: When checking if a source is pinned, allow for Mercurial/Bitbucket (@alexwlchan)

Chores

0.12.1 (2019-10-12)

Enhancements

Chores

0.12.0 (2019-09-29)

This release includes an experimental Language Server Procotol support. Using LSP makes it easy to integrate TFLint with your favorite editor. Currently, only diagnostics are provided.

Breaking Changes

  • #454: Remove deprecated ignore-rule option
    • --ignore-rule CLI flag and config attribute are removed. Please use --disable-rule, or define a rule block with enabled = false in your TFLint config file.
    • Note that --disable-rule behaves differently than --ignore-rule. Since --ignore-rule is deprecated, it was overridden by the value defined in rule blocks, but --disable-rule always takes precedence.

Enhancements

  • #439: Experimental language server support
    • tflint --langserver launches a Language Server which speaks LSP v3.14.0.
  • #455: Add --enable-rule and --disable-rule options
  • #456: Allow specifying multiple --ignore-module and --var-file flags
    • You can use these flags multiple times. The previous style is still valid for backward compatibility.
  • #459: rule: Add m5, r5, and z1d RDS instance families and m3 and r3 families will be previous generations
  • #460: rule: Add m3 and r3 ElastiCache node types as previous generations
  • #461: rule: Add m3, c3, g2, r3, and i2 EC2 instance families as previous generations
  • #462: rule: Add aws-exec-read bucket ACL as a valid value
  • #463: Bump terraform-provider-aws from v2.28.1 to v2.30.0
    • Add g4dn instance family
    • The limit of length for config rule name will be changed 128 characters from 64
    • Add regexp validation for config rule name

Chores

  • #449: docs: Add annotations page
  • #450: Add issue templates
  • #451: docs: Assume role is supported
  • #457: Tweak log levels
  • #458: Remove project package

0.11.2 (2019-09-19)

Enhancements

BugFixes

  • #442: aws_s3_bucket_invalid_region_rule: Fix false positives
  • #443: config: Fix panic when the expression includes invalid references

Chores

0.11.1 (2019-09-11)

Chores

0.11.0 (2019-09-08)

This release includes major changes to the output format. In particular, third-party tool developers should be aware of changes to the JSON output format. Please see the "Breaking Changes" section for details.

Breaking Changes

  • #396: Emit issues to the root module instead of each module
    • Previously issues found inside a module were reported along with the line number for that module, but it now reports on root module arguments that caused issues with the module.
  • #407: formatter: Multiple errors and context-rich pretty print
    • The output format of default and JSON has been changed. See the pull request for details.
  • #413: Remove --quiet option
    • This behavior is the default for new output formats.

Enhancements

  • #395: config: Add support for path.* named values
  • #415: Add --no-color option
  • #421: Add mappings for new resources
    • 44 rules have been added.
  • #424: TFLint is now compatible with Terraform v0.12.8
  • #426: Bump terraform-provider-aws from v2.25.0 to v2.27.0
    • aws_cur_report_definition_invalid_s3_region rule now allows ap-east-1 as a valid value.
    • aws_instance_invalid_type, aws_launch_configuration_invalid_type and aws_launch_template_invalid_instance_type rules now allow i3en.metal as a valid value.
    • aws_ssm_parameter_invalid_tier rule now allows Intelligent-Tiering as a valid value.
  • #423: client: Add support for role assumption
    • The assume_role block in the provider block is now taken into account.

Chores

  • #410: Automatically generate API-based rules
  • #411: Add tools task to Makefile and clean up
  • #412: docs: Tweak documentations
  • #414: docs: Fix exit status
  • #417: Refactoring tests
  • #419: Bump github.com/spf13/afero from 1.2.1 to 1.2.2
  • #428: Correct ineffassign (@gliptak)

0.10.3 (2019-08-24)

Chores

  • #406: Remove GoReleaser before hooks

0.10.2 (2019-08-24)

Enhancements

BugFixes

  • #400: rule: Fix values for excess_capacity_termination_policy. (@alzabo)

Chores

  • #394: Remove image task from Makefile
  • #397: Bump github.com/hashicorp/terraform from 0.12.6 to 0.12.7 in /tools
  • #399: Release via GitHub Actions
  • #401: Manually maintain updated SDK-based validation rules

0.10.1 (2019-08-21)

BugFixes

  • #393: Eval provider attributes
    • There is a bug that returned an error when using a variable in the provider block attributes.

0.10.0 (2019-08-17)

Breaking Changes

  • #361: Get an AWS session in the same way as Terraform
    • It will take a region and access keys in the provider block written in configuration files into account.
    • Added support for ECS/CodeBuild task roles and EC2 roles.
    • There are breaking changes to credential priorities. It affects under the following cases:
      • If you have a region or access keys in the provider block, it prefers them over environment variables and shared credentials.
      • If there are environment variables and shared credentials, it prefers the environment variables. Previously, it prefers shared credentials.

Changes

  • #378: Remove aws_instance_default_standard_volume rule
  • #379: Remove aws_db_instance_readable_password rule

Enhancements

  • #384: Add terraform_dash_in_resource_name rule (@kulinacs)
    • This rule is disabled by default.
  • #388: Bump terraform-provider-aws from v2.20.0 to v2.24.0
    • Added me-south-1 as a valid region in aws_route53_health_check_invalid_cloudwatch_alarm_region rule and aws_route53_zone_association_invalid_vpc_region rule.
    • Added capacityOptimized as a valid strategy in aws_spot_fleet_request_invalid_allocation_strategy rule.

Chores

  • #387: Bump github.com/google/go-cmp from 0.3.0 to 0.3.1
  • #389: Add Terraform compatibility badge
  • #390: Remove legacy module walkers

0.9.3 (2019-08-02)

Enhancements

  • #375: Update dependencies to Terraform 0.12.6 (@lawliet89)
  • #377: Bump terraform-provider-aws from v2.20.0 to v2.22.0
    • aws_secretsmanager_secret_invalid_policy rule now allows up to 20480.
    • aws_secretsmanager_secret_version_invalid_secret_string rule now allows up to 10240.
    • aws_ssm_maintenance_window_target_invalid_resource_type rule now allows RESOURCE_GROUP as a valid type.

Chores

  • #368: Update brew instructions (@arbourd)
    • TFLint's formula is now hosted by homebrew/core 🎉
  • #373: Bump github.com/hashicorp/terraform from 0.12.5 to 0.12.6 in /tools

0.9.2 (2019-07-20)

Enhancements

0.9.1 (2019-07-09)

Enhancements

  • #348: Update launch configuration instance types
  • #350: Add terraform_documented_variables/outputs rules
  • #356: Bump terraform-aws-provider from v2.16.0 to v2.18.0

BugFixes

  • #355: Fix a false positive for log-delivery-write ACL

Chores

  • #346: Docs: Limitations -> Compatibility with Terraform
  • #347: Fix rule generator

0.9.0 (2019-06-29)

This release includes breaking changes due to the removal of some CLI flags and options. Please see the "Breaking Changes" section for details.

As a major improvement, added 700+ rules in this release. These rules are automatically generated from aws-sdk validations and can be used without deep checking. For example, you can check whether a resource name matches the regular expression, whether it satisfies length constraints, whether it is included in the list of valid values, etc. before running terraform plan or terraform apply.

Breaking Changes

  • #310: Remove --fast option
    • It disables only aws_instance_invalid_ami when passed this flag. But the rule is already faster in v0.8.2. Therefore, this flag is not necessary.
  • #311: Remove terraform_version option
    • terraform_version option is no longer used.
  • #313: Make non-zero exit status default if issues found
    • Previously, it has return 0 as exit status even if an issue was found, but now it will return 2.
    • If you would like to keep the previous behavior, you can use --force option.
  • #329: Disable module inspection by default
    • You no longer need to run terraform init just to run tflint.
    • If you also want to check module calls, pass the --module option. In that case, you need to run terraform init as before.

Changes

  • #340: Replace aws_cloudwatch_metric_alarm_invalid_init with auto-generated
    • The output message has changed, but there has been no other change.

Enhancements

BugFixes

  • #341: Fix false negatives in the S3 invalid ACL rule

Chores

  • #326: Set up CI with Azure Pipelines
  • #337: Check mapping attribute types
  • #339: Remove appveyor.yml
  • #338: Mappings are checked based on Terraform v0.12.3 schema
  • #345: Revise documentations

0.8.3 (2019-06-09)

Enhancements

BugFixes

  • #320: Avoid InvalidAMIID errors.

Others

  • #319: Added pre-commit hooks. (@krzyzakp)
  • #323: Bump github.com/aws/aws-sdk-go from 1.19.41 to 1.19.46

0.8.2 (2019-06-03)

Enhancements

  • #308: Make aws_instance_invalid_ami rule faster.
    • The --fast option to disable this rule will be removed in v0.9.
  • #309: Accept a directory as an argument.

Others

  • #298: Revise docker image.
  • #300: Bump github.com/mattn/go-colorable from 0.1.1 to 0.1.2.
  • #301: Bump github.com/mitchellh/go-homedir from 1.0.0 to 1.1.0.
  • #302: Bump github.com/aws/aws-sdk-go from 1.19.18 to 1.19.41.
  • #303: Bump github.com/k0kubun/pp from 2.3.0+incompatible to 2.4.0+incompatible.
  • #304: Bump github.com/hashicorp/go-version from 1.1.0 to 1.2.0.
  • #305: Bump github.com/golang/mock from 1.2.0 to 1.3.1.
  • #306: Bump github.com/google/go-cmp from 0.2.0 to 0.3.0.
  • #307: Remove mock package.

0.8.1 (2019-05-30)

Enhancements

  • #277: Ignore annotation support.
    • tflint-ignore: rule_name annotation is now availble. See README.md.

BugFixes

  • #293: Fix false negatives when aws_instance_default_standard_volume rule checks dynamic blocks.
  • #297: Fix panic when checking whether an expression is null.

Others

  • #292: Migrating to Go Modules.

0.8.0 (2019-05-25)

This release includes major changes due to being dependent on Terraform v0.12 internal API. While we try to keep backward compatibility as much as possible, it does include some breaking changes.

We strongly recommend upgrading to Terraform v0.12 before trying TFLint v0.8. terraform 0.12upgrade is helpful to upgrade your configuration files.

Breaking Changes

  • Always return an error when failed to evaluate an expression.
    • Until now, except for module arguments, even if an error occurred, it was ignored.
    • Expressions including unsupported named values (such as ${module.foo}) are not evaluated, so no error occurs.
  • Drop support for ${terraform.env}.
    • Previously ${terraform.env} was a valid expression that returned the same as ${terraform.workspace}.
    • This is because Terraform v0.12 doesn't support ${terraform.env}.
  • The file name of a module includes module ID instead of the source attribute.
    • Up to now it was output like github.com/terraform-linters/example-module/instance.tf, but it will be changed like module_id/instance.tf.
  • Always parse all configuration files under the current directory.
    • When passing a file name as an argument, TFLint only parsed that file so far, but it now parses all configuration files under the current directory.
    • Also, file arguments are only used to filter the issues obtained. Therefore, you cannot pass files other than under the current directory.
    • As a known issue, If file arguments are passed, module's issues are not reported. This will be improved by changing handling of module's issues in the future.
    • These behaviors have been changed as it depends on Terraform's configload package.
    • In addition, modules are always loaded regardless of ignore_module.
  • Raise an error when using invalid syntax as a Terraform configuration.
    • For example, it didn't raise an error when using resources(not resource) block because it is valid as HCL syntax in previous versions.
  • Remove --debug option.
    • Please use TFLINT_LOG environment variables instead.
  • Raise an error when a file passed by --config does not exist.
    • Previously the error was ignored and the default config was referenced.
  • Remove duplicate resource rules.
    • This is due to technical difficulty and user experience.

Enhancements

  • HCL2 support
  • Built-in Functions support
    • Until now, if an expression includes function calls, it was ignored.
  • TF_DATA_DIR and TF_WORKSPACE environment variables are now available.
    • Until now, these variables are ignored.
  • It is now possible to handle values doesn't have a default without raising errors.
    • In the past, an error occurred when there was a reference to a variable that had no default value in an attribute of a module. See #205
  • Terraform v0.11 module support
    • Until now, it is failed to properly load a part of Terraform v0.11 module. See also #167
  • Support for automatic loading *.auto.tfvars files.
    • Previously it was not loaded automatically.

BugFixes

  • Improve expression checks
    • Since it used to be checked by a regular expression, there were many bugs, but it was greatly improved by using the terraform/lang package. See #204 #160
  • Stop overwriting the config under the current directory by the config under the homedir.
    • Fixed the problem that overwrites the config under the current directory by homedir config.
  • Improve to check for aws_db_instance_readable_password.
    • Previously, false positive occurred when setting values files or environment variables, but this problem has been fixed.
  • Make transit_gateway_id as a valid target on aws_route_specified_multiple_targets

Project Changes

  • Change license: MIT -> MPL 2.0
  • Update documentations

0.7.6 (2019-05-17)

BugFixes

0.7.5 (2019-04-03)

Enhancements

  • Update RDS DB size list (#269)
  • Add M5 and R5 families to ElastiCache (#270)

Others

  • Add go report card (#261)
  • automate the installation of tflint on linux (#267)

0.7.4 (2019-02-09)

Enhancements

  • Add support for db.m5 series db types (#258)

0.7.3 (2018-12-28)

Enhancements

  • Update ec2-instances-info dependency (#257)

Others

  • Add "features" word to docs for people explicitly looking (#237)

0.7.2 (2018-08-26)

Enhancements

  • Update valid instance list (#226)

0.7.1 (2018-07-19)

Bugfix

  • Add missing db instances as valid types (#214)
  • Update valid instance types (#215)

Others

  • Migrate to dep from Glide (#208)
  • Add rule section in README (#213)

0.7.0 (2018-06-04)

Enhancements

  • Add new rule configuration syntax (#197)

Others

  • Recommend rule syntax instead of ignore_rules in README (#200)

0.6.0 (2018-05-18)

Enhancements

  • Support terraform.workspace variable (#181)
  • Accept glob and multiple input (#183)
  • Fallback to config under the home directory (#186)
  • Add new --quiet option (#190)

Changes

  • Remove aws_instance_not_specified_iam_profile (#180)

Bugfix

  • Handle color for Windows (#184)
  • Fix interpolation checking (#189)
  • Detect pinned sources using regular expressions (#194)

Others

  • AppVeyor 🚀 (#185)
  • Add note for installation (#196)

0.5.4 (2018-01-07)

Bugfix

  • Handle empty config file (#166)

0.5.3 (2017-12-09)

Enhancements

  • Support module path for v0.11.0 (#161)
  • Ignore module initialization when settings ignore_module (#163)

0.5.2 (2017-11-12)

Enhancements

  • Use cristim/ec2-instances-info instead of hard-coded list (#159)

BugFix

  • Use strings.Trim instead of strings.Replace (#158)

Others

  • Set Docker container default workdir to /data (#152)
  • Add ca-certificates to Docker image for TLS requests to AWS (#155)

0.5.1 (2017-10-18)

Re-release due to #151
There is no change in the code from v0.5.0

0.5.0 (2017-10-14)

Minor version update. This release includes environment variable support.

Enhancements

  • Support variables from environment variables (#147)
  • Support moudle path for v0.10.7 (#149)

Others

  • Add Makefile target for creating docker image (#145)
  • Update Go version (#146)

0.4.3 (2017-09-30)

Patch version update. This release includes Terraform v0.10.6 supports.

Enhancements

  • Add G3 instances support (#139)
  • Support new digest module path (#144)

Others

  • Fix unclear error messages (#137)

0.4.2 (2017-08-03)

Patch version update. This release includes a hotfix.

BugFix

  • Fix panic for integer variables interpolation (#131)

0.4.1 (2017-07-29)

Patch version update. This release includes terraform meta information interpolation syntax support.

NewDetectors

  • Add AwsECSClusterDuplicateNameDetector (#128)

Enhancements

  • Support "${terraform.env}" syntax (#126)
  • Environment state handling (#127)

Others

  • Update deps (#130)

0.4.0 (2017-07-09)

Minor version update. This release includes big core API changes.

Enhancements

  • Overrides module (#118)
  • Add document link and detector name on output (#122)
  • Add Terraform version options (#123)
  • Report aws_instance_not_specified_iam_profile only when terraform_version is less than 0.8.8 (#124)

Others

  • Provide abstract HCL access (#112)
  • Fix override logic (#117)
  • Fix some output messages and documentation (#125)

0.3.6 (2017-06-05)

Patch version update. This release includes hotfix for module evaluation.

BugFix

  • DO NOT USE Evaluator 🙇 (#114)

Others

  • Add HCL syntax highlighting in README (#110)
  • Update README.md (#111)

0.3.5 (2017-04-23)

Patch version update. This release includes new detectors and bugfix for module.

NewDetectors

  • Module source pinned ref check (#100)
  • Add AwsCloudWatchMetricAlarmInvalidUnitDetector (#108)

Enhancements

  • Support F1 instances (#107)

BugFix

  • Interpolate module attributes (#105)

Others

  • Improve CLI (#102)
  • Add integration test (#106)

0.3.4 (2017-04-10)

Patch version update. This release includes new detectors for aws_route

NewDetectors

  • Add AwsRouteInvalidRouteTableDetector (#90)
  • Add AwsRouteNotSpecifiedTargetDetector (#91)
  • Add AwsRouteSpecifiedMultipleTargetsDetector (#92)
  • Add AwsRouteInvalidGatewayDetector (#93)
  • Add AwsRouteInvalidEgressOnlyGatewayDetector (#94)
  • Add AwsRouteInvalidNatGatewayDetector (#95)
  • Add AwsRouteInvalidVpcPeeringConnectionDetector (#96)
  • Add AwsRouteInvalidInstanceDetector (#97)
  • Add AwsRouteInvalidNetworkInterfaceDetector (#98)

BugFix

  • Fix panic when security groups are on EC2-Classic (#89)

Others

  • Transfer from hakamadare/tflint to terraform-linters/tflint (#84)

0.3.3 (2017-04-02)

Patch version update. This release includes support for shared credentials.

Enhancements

  • Support shared credentials (#79)
  • Add checkstyle format (#82)

Others

  • Add NOTE to aws_instance_not_specified_iam_profile (#81)
  • Refactoring for default printer (#83)

0.3.2 (2017-03-25)

Patch version update. This release includes hotfix.

BugFix

  • Fix panic when parsing empty list (#78)

Others

  • Fix unstable test (#74)
  • Update README to reference Homebrew tap (#75)

0.3.1 (2017-03-12)

Patch version update. This release includes support for tfvars.

Enhancements

  • Support I3 instance types (#66)
  • Support TFVars (#67)

Others

  • Add Dockerfile (#59)
  • Fix link (#60)
  • Update help message (#61)
  • Move cache from detector to awsclient (#62)
  • Refactoring detector (#65)
  • glide up (#68)
  • Update go version (#69)

0.3.0 (2017-02-12)

Minor version update. This release includes core enhancements for terraform state file.

NewDetectors

  • Add RDS readable password detector (#46)
  • Add duplicate security group name detector (#49)
  • Add duplicate ALB name detector (#52)
  • Add duplicate ELB name detector (#54)
  • Add duplicate DB Instance Identifier Detector (#55)
  • Add duplicate ElastiCache Cluster ID detector (#56)

Enhancements

  • Interpret TFState (#48)
  • Add --fast option (#58)

BugFix

  • r4.xlarge is valid type (#43)

Others

  • Add sideci.yml (#42)
  • Update README (#50)
  • SideCI Settings (#57)

0.2.1 (2017-01-10)

Patch version update. This release includes new argument options.

NewDetectors

  • add db instance invalid type detector (#32)
  • add rds previous type detector (#33)
  • add invalid type detector for elasticache (#34)
  • add previous type detector for elasticache (#35)

Enhancements

  • Return error code when issue exists (#31)

Others

  • fix install version (#30)
  • CLI Test By Interface (#36)
  • Fix --error-with-issues description (#37)
  • glide up (#38)

0.2.0 (2016-12-24)

Minor version update. This release includes enhancements and several fixes

New Detectors

  • add AWS Instance Invalid AMI deep detector (#7)
  • add invalid key name deep detector (#11)
  • add invalid subnet deep detector (#12)
  • add invalid vpc security group deep detector (#13)
  • add invalid security group detector for ELB (#16)
  • add invalid subnet detector for ELB (#17)
  • add invalid instance detector for ELB (#18)
  • add invalid security group detector for ALB (#20)
  • add invalid subnet detector for ALB (#21)
  • add invalid security group detector for RDS (#22)
  • add invalid DB subnet group detector for RDS (#23)
  • add invalid parameter group detector for RDS (#24)
  • add invalid option group detector for RDS (#25)
  • add invalid parameter group detector for ElastiCache (#27)
  • add invalid subnet group detector for ElastiCache (#28)
  • add invalid security group detector for ElastiCache (#29)

Enhancements

  • Support t2 and r4 types (#5)
  • Improve ineffecient module detector method (#10)
  • do not call API when target resources are not found (#15)
  • support list type variables evaluation (#19)

Bug Fixes

  • Fix panic deep detecting with module (#8)

Others

  • Fix Fatalf format in test (#3)
  • Remove Zero width space in README.md (#4)
  • Fix typos (#6)
  • documentation (#26)

0.1.0 (2016-11-27)

Initial release

Added

  • Add Fundamental features

Deprecated

  • Nothing

Removed

  • Nothing

Fixed

  • Nothing