redact-secret · Report
Legacy personal access token
Legacy-format PAT, prefixed glpat- with a 20-character body.
Research record
4 events in the review history: 3 observed, 1 reviewed. Latest: observed on 2026-10-03 by automation, project maintainer. Project-maintained review is not independent validation. The family record at this release.
Format
What it looks like
- Descriptive pattern
^glpat-[A-Za-z0-9_-]{20}$
Parts are shown as recorded. Evidence classes belong to the facts below; no class is assigned to a part.
Format facts
Provider documented ·
provider-source· current · observed 2026-09-17token prefix table: glpat- prefix; 20-character legacy body is tool-corroborated, routable tokens are not covered
- docs.gitlab.com/security/tokens/provider-documentation · last read 2026-10-03 · latest outcome read · supports glpat- prefix; 20-character legacy body is tool-corroborated, routable tokens are not covered
Tool corroborated ·
tool-corroboration· current · observed 2026-09-17Pinned scanner rules are consistent with the contract grammar (2 artifacts: gitleaks 8.30.1; trufflehog 3.97.4).
- 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/gitlab/v2/gitlab_v2.goscanner-rule-source · last read 2026-09-17 · latest outcome read · supports trufflehog 3.97.4: gitlab/v2/gitlab_v2
Provider documented ·
dossier-research· current · observed 2026-09-20Legacy dossier research (verdict ready, tier T1) cited 2 sources; the dossier does not attribute sources to individual properties.
- docs.gitlab.com/security/tokens/provider-documentation · last read 2026-10-03 · latest outcome read · supports Cited by the legacy dossier research for this family
- redact-secret/redact-secret @ 54c9ab35cb693e0cd3aedc8f858ca19ab77e4363: docs/decisions/2026-09-20-inventory-gitlab-token-families.mdproject-research-note · last read 2026-09-20 · latest outcome read · supports Final research evidence recorded by the legacy dossier
Provider documented ·
taxonomy-sources· current · observed 2026-09-20The legacy taxonomy lists 1 source for this family. The taxonomy records no date; the dossier researchedAt is used as the observed-at date.
- docs.gitlab.com/security/tokens/provider-documentation · last read 2026-10-03 · latest outcome read · supports Listed as a source for this family in the legacy taxonomy
Open questions
No open question is recorded for this revision.
Benchmark dossier notes
- Basis
- T1 for the
glpat-prefix (token overview, observed 2026-09-20). The prefix also covers impersonation, project and group access tokens. Inventoried per family in #518, whose decision records the administrator-customized prefix as unsupported (T3 policy).
In this benchmark
- Fixtures
- 56
- Left readable
- 0
- Redacted too much
- 0
- False alarms
- 0
56 fixtures: 11 expect a redaction, 14 must stay quiet, 31 record project policy. See every row
| Evidence level | Fixtures | Left readable | Too much | False alarms |
|---|---|---|---|---|
| T1Provider-documented | 11 | 0 | 0 | 0 |
| T2Tool-corroborated | 11 | 0 | 0 | 0 |
| T3Project policy | 34 | 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 engine1 rule targets it | 56 | 0 | 1 | 0 |
| gitleaksRepository scanner · 8.30.1 · Directory scan · default rules1 rule targets it | 56 | 0 | 0 | 0 |
| redact-secretProduct measured here · 0.1.0-beta.14 · Published npm package · default detectors1 detector mapped | 56 | 0 | 0 | 0 |
| trufflehogRepository scanner · 3.97.4 · Filesystem scan · verification disabled1 rule targets it | 56 | 31 | 0 | 0 |
Benchmark dossier questions
- Open caveat
- Only the glpat- prefix is provider-documented (T1); the 20-character body is tool-corroborated, and an administrator-configured personal access token prefix is unsupported.
Scanner rules for this family
| Scanner | Rule | What the rule matches |
|---|---|---|
| flare-redact · rules 1.6.1 | gitlab_token | glpat- + 20 characters |
| gitleaks · rules 8.30.1 | gitlab-pat | glpat- + 20 characters |
| trufflehog · rules 3.97.4 | gitlab/v2 | glpat- + 20-22 characters |
No rule maps to this family in openredaction.
Fixtures in this family
| Fixture | Kind and evidence | redact-secret |
|---|---|---|
gitlab-legacy-pat-base-acontext-and-large-input-bases-authored · environment-assignment | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-base-bcontext-and-large-input-bases-authored · environment-assignment | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-bare-valuecontext-carrier-projections-generated · value-at-input-edges | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-bearer-headercontext-carrier-projections-generated · partial-span-leakage | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-bom-prefixcontext-carrier-projections-generated · multibyte-text-offsets | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-crlf-linescontext-carrier-projections-generated · crlf-line-endings | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-emoji-prefixcontext-carrier-projections-generated · multibyte-text-offsets | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-json-fieldcontext-carrier-projections-generated · structured-text-value | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-korean-text-prefixcontext-carrier-projections-generated · multibyte-text-offsets | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-log-linecontext-carrier-projections-generated · environment-assignment | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-markdown-code-spancontext-carrier-projections-generated · markdown-and-comment-value | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-nbsp-before-valuecontext-carrier-projections-generated · multibyte-text-offsets | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-shell-export-quotedcontext-carrier-projections-generated · quoted-value-extent | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-url-querycontext-carrier-projections-generated · partial-span-leakage | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-xml-elementcontext-carrier-projections-generated · structured-text-value | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-yaml-scalarcontext-carrier-projections-generated · structured-text-value | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-head-of-1miblarge-and-repeated-input-projections-generated · credential-after-long-input | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-head-of-256kiblarge-and-repeated-input-projections-generated · credential-after-long-input | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-head-of-64kiblarge-and-repeated-input-projections-generated · credential-after-long-input | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-middle-of-1miblarge-and-repeated-input-projections-generated · credential-after-long-input | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-middle-of-256kiblarge-and-repeated-input-projections-generated · credential-after-long-input | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-middle-of-64kiblarge-and-repeated-input-projections-generated · credential-after-long-input | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-tail-of-1miblarge-and-repeated-input-projections-generated · credential-after-long-input | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-tail-of-256kiblarge-and-repeated-input-projections-generated · credential-after-long-input | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-tail-of-64kiblarge-and-repeated-input-projections-generated · credential-after-long-input | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-three-occurrences-in-1miblarge-and-repeated-input-projections-generated · multiple-credentials-per-input | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-three-occurrences-in-256kiblarge-and-repeated-input-projections-generated · multiple-credentials-per-input | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-three-occurrences-in-64kiblarge-and-repeated-input-projections-generated · multiple-credentials-per-input | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-two-distinct-keys-in-1miblarge-and-repeated-input-projections-generated · multiple-credentials-per-input | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-two-distinct-keys-in-256kiblarge-and-repeated-input-projections-generated · multiple-credentials-per-input | Project policyT3 · Project policy | Redacted |
gitlab-legacy-pat-two-distinct-keys-in-64kiblarge-and-repeated-input-projections-generated · multiple-credentials-per-input | Project policyT3 · Project policy | Redacted |
gitlab-1gitlab · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
gitlab-1-twingitlab · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
gitlab-2gitlab · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
gitlab-2-twingitlab · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
gitlab-3gitlab · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
gitlab-3-twingitlab · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
gitlab-token-ci-predefined-ids-public-idgitlab · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
gitlab-token-expiry-note-prosegitlab · prose-mention | Must not flagT3 · Project policy | Quiet |
gitlab-token-glab-auth-logingitlab · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
gitlab-token-maskgitlab · benign-lookalike | Must not flagT3 · Project policy | Quiet |
gitlab-token-pat-plaingitlab · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
gitlab-token-pat-plain-twingitlab · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
gitlab-token-pat-prefix-plain-twingitlab · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
gitlab-token-pat-prefix-unicode-crlf-twingitlab · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
gitlab-token-pat-unicode-crlfgitlab · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
gitlab-token-pat-unicode-crlf-twingitlab · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
gitlab-token-prefix-onlygitlab · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
gitlab-token-private-token-headergitlab · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
gitlab-token-private-token-querygitlab · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
Sources
Documentation and code
- docs.gitlab.com/security/tokens/
Research log
- redact-secret/redact-secret#518Research issue
- Final evidence, pinned to a commit/redact-secret/redact-secret/blob/54c9ab35cb693e0cd3aedc8f858ca19ab77e4363/docs/decisions/2026-09-20-inventory-gitlab-token-families.md