redact-secret · Report
Personal access token
Personal access token, prefixed dop_v1_.
Research record
2 events in the review history: 1 observed, 1 reviewed. Latest: observed on 2026-09-17 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-172022-03-29 token prefixes: dop_v1_/doo_v1_/dor_v1_ prefixes; 64-hex body is tool-corroborated [Legacy contract 'digitalocean-token' is shared by 3 families; this statement is not specific to one of them.]
- docs.digitalocean.com/release-notes/api/provider-documentation · last read 2026-09-17 · latest outcome read · supports dop_v1_/doo_v1_/dor_v1_ prefixes; 64-hex body is tool-corroborated
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). [Legacy contract 'digitalocean-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/digitaloceanv2/digitaloceanv2.goscanner-rule-source · last read 2026-09-17 · latest outcome read · supports trufflehog 3.97.4: digitaloceanv2/digitaloceanv2
Provider documented ·
dossier-research· current · observed 2026-09-17Legacy dossier research (verdict ready, tier T1) cited 3 sources; the dossier does not attribute sources to individual properties.
- docs.digitalocean.com/release-notes/api/provider-documentation · last read 2026-09-17 · latest outcome read · supports Cited by the legacy dossier research for this family
- docs.digitalocean.com/reference/api/oauth/provider-documentation · last read 2026-09-17 · latest outcome read · supports Cited by the legacy dossier research for this family
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/367/README.mdproject-research-note · last read 2026-09-17 · 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
- prefix
dop_v1_followed by 64 lowercase hexadecimal characters. - Basis
- T1 for the prefix, from the API release notes. The OAuth reference examples show 64-character bodies and establish the length, but the example bodies contain non-hex placeholder text, so they do not establish the alphabet. Lowercase hex comes from gitleaks 8.30.1 and trufflehog 3.97.4 (one combined
(dop|doo|dor)_v1_rule). - Contract in core
- detector-families.md.
In this benchmark
- Fixtures
- 18
- Left readable
- 0
- Redacted too much
- 0
- False alarms
- 0
18 fixtures: 10 expect a redaction, 8 must stay quiet. See every row
| Evidence level | Fixtures | Left readable | Too much | False alarms |
|---|---|---|---|---|
| T1Provider-documented | 10 | 0 | 0 | 0 |
| T2Tool-corroborated | 8 | 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 | 18 | 0 | 0 | 1 |
| gitleaksRepository scanner · 8.30.1 · Directory scan · default rules1 rule targets it | 18 | 2 | 0 | 0 |
| redact-secretProduct measured here · 0.1.0-beta.14 · Published npm package · default detectors1 detector mapped | 18 | 0 | 0 | 0 |
| trufflehogRepository scanner · 3.97.4 · Filesystem scan · verification disabled1 rule targets it | 18 | 1 | 0 | 1 |
Benchmark dossier questions
- Open caveat
- The lowercase-hex body alphabet is tool-corroborated only; DigitalOcean's examples are placeholders that establish the 64-character length.
Looks like it, but isn't
- Collisions
- the sibling prefixes below differ only in the three letters. Uppercase or mixed-case bodies are intentionally outside the grammar.
Scanner rules for this family
| Scanner | Rule | What the rule matches |
|---|---|---|
| flare-redact · rules 1.6.1 | digitalocean_token | dop_v1_ + 64 hex |
| gitleaks · rules 8.30.1 | digitalocean-pat | dop_v1_ + 64 hex |
| trufflehog · rules 3.97.4 | digitaloceanv2 | dop_v1_, doo_v1_ or dor_v1_ + 64 hex |
No rule maps to this family in openredaction.
Fixtures in this family
| Fixture | Kind and evidence | redact-secret |
|---|---|---|
digitalocean-token-dash-identifier-embeddingdigitalocean · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
digitalocean-token-punctuation-boundarydigitalocean · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
digitalocean-token-query-boundarydigitalocean · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
digitalocean-token-repeateddigitalocean · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
digitalocean-token-doctl-auth-initdigitalocean · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
digitalocean-token-dop-plaindigitalocean · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
digitalocean-token-dop-plain-twindigitalocean · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
digitalocean-token-dop-prefix-plain-twindigitalocean · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
digitalocean-token-dop-prefix-unicode-crlf-twindigitalocean · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
digitalocean-token-dop-unicode-crlfdigitalocean · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
digitalocean-token-dop-unicode-crlf-twindigitalocean · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
digitalocean-token-env-access-tokendigitalocean · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
digitalocean-token-invalid-alphabetdigitalocean · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
digitalocean-token-leading-identifier-embeddingdigitalocean · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
digitalocean-token-shape-1-baredigitalocean · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
digitalocean-token-shape-1-quoteddigitalocean · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
digitalocean-token-shape-1-unicode-crlfdigitalocean · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
digitalocean-token-trailing-identifier-embeddingdigitalocean · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
Sources
Documentation and code
- docs.digitalocean.com/release-notes/api/
- docs.digitalocean.com/reference/api/oauth/
Research log
- redact-secret/redact-secret#367Research issue
- redact-secret/redact-secret#369Research issue
- Final evidence, pinned to a commit/redact-secret/redact-secret/blob/8b6a5fde52ecb4dfce13f09c7a947062d21483c7/docs/audits/evidence/367/README.md