redact-secret · Report · Detector
Terraform Cloud tokens
Format evidence
- Provider documentation HCP Terraform/Enterprise 14+67-byte API token · observed 2026-09-21 · three independent HCP Terraform API-reference pages (user-tokens, organization-tokens, team-tokens) each publish a full example token; every one of the three is exactly 14 bytes before the literal .atlasv1. marker and exactly 67 bytes after it, and the mirrored Terraform Enterprise organization-tokens page publishes the identical shape and example, confirming Cloud and Enterprise are one grammar rather than two. Neither page documents a checksum or any marker beyond the literal .atlasv1. tag
- trufflehog 3.97.4
- gitleaks 8.30.1
Two independently maintained tools recognize the family without agreeing with each other on the exact width: gitleaks 8.30.1's hashicorp-tf-api-token/hashicorp-tf-password rules use a looser 60-70-byte range over a wider [A-Za-z0-9_=-] tail alphabet, while trufflehog 3.97.4's terraformcloudpersonaltoken detector matches all three official examples exactly at the 14/67 width. This contract freezes the tighter, provider-confirmed exact width (matching trufflehog, not gitleaks' looser range) over the looser single-tool range, per the precedent already set for provider-backed exact-width contracts. HashiCorp's own documentation shows one identical grammar for user, organization, team, agent-pool and self-hosted Enterprise tokens, so one shape covers the full family with no branching logic. A malformed marker, a one-byte-short segment, or the documentation's own doc-style placeholder (xxxxxx.atlasv1.zzzzzzzzzzzzz, itself far short of the documented 14/67 widths) is a documented false negative rather than a fuzzy match.
What the run recorded, by group
| Group | Fixtures | Leaked or false alarms | Near-twins | Outcomes | Other scanners, same cell |
|---|---|---|---|---|---|
| Must not flag · Tool-corroborated | 11 | False alarmsat most 25.9%0 of 11 controls flagged | 11 quiet · 0 flagged |
| |
| Must not flag · Project policy | 3 | False alarmsinsufficient-evidence0 of 3 controls flagged | 3 quiet · 0 flagged |
| |
| Must redact · Provider-documented | 12 | Secret spans left readableat most 24.3%0 of 12 spans | Near-twins told apartat least 61.0%6 of 6 pairs | 12 redacted · 0 too much · 0 partly exposed · 0 missed |
|
- Fixtures
- 26
- Left readable
- 0
- Redacted too much
- 0
- False alarms
- 0
Fixtures for this detector
| Fixture | Kind and evidence | redact-secret |
|---|---|---|
terraform-cloud-token-credentials-tfrc-jsonhashicorp-terraform · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
terraform-cloud-token-env-tf-token-hosthashicorp-terraform · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
terraform-cloud-token-organization-shape-barehashicorp-terraform · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
terraform-cloud-token-organization-shape-quotedhashicorp-terraform · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
terraform-cloud-token-organization-shape-unicode-crlfhashicorp-terraform · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
terraform-cloud-token-team-shape-barehashicorp-terraform · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
terraform-cloud-token-team-shape-quotedhashicorp-terraform · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
terraform-cloud-token-team-shape-unicode-crlfhashicorp-terraform · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
terraform-cloud-token-user-shape-barehashicorp-terraform · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
terraform-cloud-token-user-shape-bare-twinhashicorp-terraform · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
terraform-cloud-token-user-shape-quotedhashicorp-terraform · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
terraform-cloud-token-user-shape-quoted-twinhashicorp-terraform · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
terraform-cloud-token-user-shape-unicode-crlfhashicorp-terraform · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
terraform-cloud-token-user-shape-unicode-crlf-twinhashicorp-terraform · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
terraform-cloud-token-api-v2-bearerhashicorp-terraform · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
terraform-cloud-token-invalid-alphabethashicorp-terraform · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
terraform-cloud-token-maskhashicorp-terraform · benign-lookalike | Must not flagT3 · Project policy | Quiet |
terraform-cloud-token-missing-markerhashicorp-terraform · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
terraform-cloud-token-organization-shape-bare-twinhashicorp-terraform · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
terraform-cloud-token-organization-shape-quoted-twinhashicorp-terraform · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
terraform-cloud-token-organization-shape-unicode-crlf-twinhashicorp-terraform · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
terraform-cloud-token-referencehashicorp-terraform · benign-lookalike | Must not flagT3 · Project policy | Quiet |
terraform-cloud-token-short-bodyhashicorp-terraform · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
terraform-cloud-token-short-suffixhashicorp-terraform · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
terraform-cloud-token-token-kinds-note-prosehashicorp-terraform · prose-mention | Must not flagT3 · Project policy | Quiet |
terraform-cloud-token-workspace-and-run-ids-public-idhashicorp-terraform · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |