redact-secret · Report
User token
HCP Terraform/Enterprise user API token, 14 alphanumeric bytes, the literal .atlasv1. marker, then 67 alphanumeric bytes.
Research record
2 events in the review history: 1 observed, 1 reviewed. Latest: observed on 2026-09-21 by automation, project maintainer. Project-maintained review is not independent validation. The family record at this release.
Format
What it looks like
Shape not recorded.
Format facts
Provider documented ·
provider-source· current · observed 2026-09-21HCP Terraform/Enterprise 14+67-byte API token: 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 [Legacy contract 'terraform-cloud-token' is shared by 3 families; this statement is not specific to one of them.]
- developer.hashicorp.com/terraform/cloud-docs/api-docs/user-tokensprovider-documentation · last read 2026-09-21 · latest outcome read · supports 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
Tool corroborated ·
tool-corroboration· current · observed 2026-09-21Pinned scanner rules are consistent with the contract grammar (2 artifacts: gitleaks 8.30.1; trufflehog 3.97.4). [Legacy contract 'terraform-cloud-token' is shared by 3 families; this statement is not specific to one of them.]
- gitleaks/gitleaks @ v8.30.1: config/gitleaks.tomlscanner-rule-source · last read 2026-10-04 · latest outcome read · supports gitleaks 8.30.1: gitleaks.toml
- trufflesecurity/trufflehog @ v3.97.4: pkg/detectors/terraformcloudpersonaltoken/terraformcloudpersonaltoken.goscanner-rule-source · last read 2026-09-21 · latest outcome read · supports trufflehog 3.97.4: terraformcloudpersonaltoken/terraformcloudpersonaltoken
Provider documented ·
dossier-research· current · observed 2026-09-21Legacy dossier research (verdict ready, tier T1) cited 2 sources; the dossier does not attribute sources to individual properties.
- developer.hashicorp.com/terraform/cloud-docs/api-docs/user-tokensprovider-documentation · last read 2026-09-21 · latest outcome read · supports Cited by the legacy dossier research for this family
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/521/README.mdproject-research-note · last read 2026-09-21 · latest outcome read · supports Final research evidence recorded by the legacy dossier
Open questions
No open question is recorded for this revision.
Benchmark dossier notes
- Shape
- 14 alphanumeric characters, the literal marker
.atlasv1., then 67 alphanumeric characters (90 in all). No checksum or other marker is documented beyond the.atlasv1.version tag. - Basis
- T1. The
user-tokensAPI page publishes a full example whose segments measure exactly 14 and 67. Two tools corroborate the family but disagree on width: gitleaks 8.30.1 uses a looser 60 to 70 character tail over a wider alphabet, trufflehog 3.97.4 uses the exact 14/67 widths (#521 evidence, observed 2026-09-21). - Contract in core
- detector-families.md.
In this benchmark
- Fixtures
- 6
- Left readable
- 0
- Redacted too much
- 0
- False alarms
- 0
6 fixtures: 3 expect a redaction, 3 must stay quiet. See every row
| Evidence level | Fixtures | Left readable | Too much | False alarms |
|---|---|---|---|---|
| T1Provider-documented | 3 | 0 | 0 | 0 |
| T2Tool-corroborated | 3 | 0 | 0 | 0 |
Every scanner on the same fixtures
In run order. Counts are what each scanner recorded on this family's fixtures, whichever rules it has; a scanner with no rule for the family has nothing to report on it.
| Scanner | Fixtures | Left readable | Too much | False alarms |
|---|---|---|---|---|
| flare-redactRuntime library · 1.6.1 · Published npm package · secrets-only (pii, generic_assignment disabled) · JavaScript engineNo rule maps to it | 6 | 3 | 0 | 0 |
| gitleaksRepository scanner · 8.30.1 · Directory scan · default rules1 rule targets it | 6 | 0 | 0 | 3 |
| redact-secretProduct measured here · 0.1.0-beta.14 · Published npm package · default detectors1 detector mapped | 6 | 0 | 0 | 0 |
| trufflehogRepository scanner · 3.97.4 · Filesystem scan · verification disabled1 rule targets it | 6 | 0 | 0 | 0 |
Looks like it, but isn't
- Collisions
- a tail of 60 to 66 bytes is accepted by gitleaks and not by the exact width, so a peer disagreement there is expected. HashiCorp's CLI documentation uses a short placeholder of the same overall form.
Scanner rules for this family
| Scanner | Rule | What the rule matches |
|---|---|---|
| gitleaks · rules 8.30.1 | hashicorp-tf-api-token | 14 characters + .atlasv1. + 60-70 characters |
| trufflehog · rules 3.97.4 | terraformcloudpersonaltoken | 14 characters + .atlasv1. + 67 characters |
No rule maps to this family in flare-redact, openredaction.
Fixtures in this family
| Fixture | Kind and evidence | redact-secret |
|---|---|---|
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 |
Sources
Documentation and code
- developer.hashicorp.com/terraform/cloud-docs/api-docs/user-tokens
Research log
- redact-secret/redact-secret#521Research issue
- redact-secret/redact-secret-benchmarks#67Research issue
- Final evidence, pinned to a commit/redact-secret/redact-secret/blob/8b6a5fde52ecb4dfce13f09c7a947062d21483c7/docs/audits/evidence/521/README.md