Skip to main content

Terraform Lockfile Insights

terraform-lockfile-insights is a utility designed to surface information about the Terraform providers used within a project. It recursively crawls a specified directory, parsing each Terraform lockfile using tree-sitter, and provides a report showing which providers and versions are used in each file.

Building this tool helped me get hands-on experience with both Golang and tree-sitter. I often work with repositories containing numerous Terraform modules, where managing provider versions and keeping the dependency scope small is crucial. Since terraform-lockfile-insights outputs its findings as JSON to stdout, it’s well-suited for CI environments where teams might want to enforce policies around consistent provider versioning across a repository.

Example output (using --pretty):

{
  "registry.opentofu.org/cloudflare/cloudflare": {
    "versions": {
      "4.19.0": [
        "infrastructure/terraform/foo/.terraform.lock.hcl",
        "infrastructure/terraform/bar/.terraform.lock.hcl",
        "infrastructure/terraform/baz/.terraform.lock.hcl"
      ]
    }
  }
}