redact-secret · Report
API key
PMAK-prefixed API key: 24 hex bytes, a literal "-", then 34 hex bytes (59-byte body); sent in the X-API-Key header.
Research record
3 events in the review history: 2 observed, 1 reviewed. Latest: observed on 2026-09-25 by automation, project maintainer. Project-maintained review is not independent validation. The family record at this release.
Format
What it looks like
- Descriptive pattern
^PMAK-[0-9a-fA-F]{24}-[0-9a-fA-F]{34}$
Parts are shown as recorded. Evidence classes belong to the facts below; no class is assigned to a part.
Format facts
Tool corroborated ·
tool-corroboration· current · observed 2026-09-25Pinned 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/postman/postman.goscanner-rule-source · last read 2026-09-25 · latest outcome read · supports trufflehog 3.97.4: postman/postman
Unresolved ·
dossier-research· current · observed 2026-09-25Legacy dossier research (verdict ready, tier T2) cited 2 sources; the dossier does not attribute sources to individual properties.
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/582/README.mdproject-research-note · last read 2026-09-25 · latest outcome read · supports Final research evidence recorded by the legacy dossier
- learning.postman.com/docs/developer/postman-api/authentication/provider-documentation · last read 2026-09-25 · latest outcome read · supports Cited by the legacy dossier research for this family
Unresolved ·
taxonomy-sources· current · observed 2026-09-25The legacy taxonomy lists 1 source for this family. The taxonomy records no date; the dossier researchedAt is used as the observed-at date.
- learning.postman.com/docs/developer/postman-api/authentication/provider-documentation · last read 2026-09-25 · 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
- Shape
PMAK-, 24 lowercase hex characters, a literal-, then 34 lowercase hex characters (59-character body, 64 in all).- Basis
- T2. gitleaks (
PMAK-+ 24 hex +-+ 34 hex) and Nosey Parker agree on the structure; trufflehog corroborates only the prefix and a 59-character body. Postman's own Insights Agent redaction config fixes the same structure, which is provider-owned code but not documentation. 31 of 33 public-code candidates matched and none had a 35 to 36 character second segment; one unsourced proposal says 34 to 36. Uppercase hex is outside the benchmark claim. - Issuance
- Postman account settings; expiry is set when the key is created. Not attempted.
- Contract in core
- detector-families.md (
postman_api_key, always redacted).
In this benchmark
- Fixtures
- 46
- Left readable
- 0
- Redacted too much
- 0
- False alarms
- 0
46 fixtures: 18 expect a redaction, 28 must stay quiet. See every row
| Evidence level | Fixtures | Left readable | Too much | False alarms |
|---|---|---|---|---|
| T1Provider-documented | 2 | 0 | 0 | 0 |
| T2Tool-corroborated | 35 | 0 | 0 | 0 |
| T3Project policy | 9 | 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 | 46 | 0 | 0 | 0 |
| gitleaksRepository scanner · 8.30.1 · Directory scan · default rules1 rule targets it | 46 | 0 | 0 | 0 |
| redact-secretProduct measured here · 0.1.0-beta.14 · Published npm package · default detectors1 detector mapped | 46 | 0 | 0 | 0 |
| trufflehogRepository scanner · 3.97.4 · Filesystem scan · verification disabled1 rule targets it | 46 | 0 | 0 | 6 |
Benchmark dossier questions
- Open caveat
- Postman's docs state no PMAK- grammar (only the header). The 24 + 34 hex structure comes from scanners and Postman's own redaction config; no issued key has been measured.
Looks like it, but isn't
- Collisions
- the Insights Agent config also scrubs a bare
PMAK-+ 24 hex, which is the id part of every full key, so the benchmark keeps that fragment as a near miss and not a credential.PMAT-is a separate credential.
Scanner rules for this family
| Scanner | Rule | What the rule matches |
|---|---|---|
| flare-redact · rules 1.6.1 | postman_key | PMAK- + 24 hex + - + 34 hex |
| gitleaks · rules 8.30.1 | postman-api-token | PMAK- + 24 hex + - + 34 hex |
| trufflehog · rules 3.97.4 | postman | PMAK- + 59 characters |
No rule maps to this family in openredaction.
Fixtures in this family
| Fixture | Kind and evidence | redact-secret |
|---|---|---|
postman-api-key-structured-shape-alphabet-bare-twinpostman · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
postman-api-key-structured-shape-alphabet-quoted-twinpostman · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
postman-api-key-structured-shape-alphabet-unicode-crlf-twinpostman · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
postman-api-key-structured-shape-separator-bare-twinpostman · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
postman-api-key-structured-shape-separator-quoted-twinpostman · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
postman-api-key-structured-shape-separator-unicode-crlf-twinpostman · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
postman-api-key-actions-envpostman · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
postman-api-key-actions-secret-referencepostman · templated-reference | Must not flagT3 · Project policy | Quiet |
postman-api-key-apikey-querypostman · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
postman-api-key-axios-clientpostman · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
postman-api-key-collection-and-workspace-public-idpostman · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
postman-api-key-compose-envpostman · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
postman-api-key-debug-logpostman · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
postman-api-key-docs-template-placeholderpostman · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
postman-api-key-envpostman · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
postman-api-key-identifier-near-misspostman · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
postman-api-key-label-prosepostman · benign-lookalike | Must not flagT3 · Project policy | Quiet |
postman-api-key-maskpostman · benign-lookalike | Must not flagT3 · Project policy | Quiet |
postman-api-key-masked-settings-placeholderpostman · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
postman-api-key-newman-env-jsonpostman · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
postman-api-key-package-checksum-encoded-valuepostman · benign-encoded-value | Must not flagT2 · Tool-corroborated | Quiet |
postman-api-key-postman-loginpostman · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
postman-api-key-postman-variable-referencepostman · templated-reference | Must not flagT3 · Project policy | Quiet |
postman-api-key-prefix-onlypostman · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
postman-api-key-public-idpostman · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
postman-api-key-raw-requestpostman · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
postman-api-key-referencepostman · benign-lookalike | Must not flagT3 · Project policy | Quiet |
postman-api-key-run-summary-public-idpostman · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
postman-api-key-settings-jsonpostman · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
postman-api-key-shell-exportpostman · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
postman-api-key-shell-lookup-referencepostman · templated-reference | Must not flagT3 · Project policy | Quiet |
postman-api-key-short-bodypostman · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
postman-api-key-short-tail-in-prose-near-misspostman · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
postman-api-key-structured-shape-barepostman · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
postman-api-key-structured-shape-bare-twinpostman · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
postman-api-key-structured-shape-quotedpostman · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
postman-api-key-structured-shape-quoted-twinpostman · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
postman-api-key-structured-shape-unicode-crlfpostman · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
postman-api-key-structured-shape-unicode-crlf-twinpostman · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
postman-api-key-vault-note-prosepostman · prose-mention | Must not flagT3 · Project policy | Quiet |
collection-apikey-auth-literalpostman-authored · postman-collection-auth-value-attribute-holding-literal-credential | Must redactT2 · Tool-corroborated | Redacted |
collection-apikey-auth-referencepostman-authored · postman-collection-auth-value-attribute-holding-variable-reference | Must not flagT1 · Provider-documented · twin | Quiet |
collection-scope-literal-with-referencepostman-authored · postman-same-variable-name-in-collection-and-environment-scopes | Must redactT2 · Tool-corroborated | Redacted |
environment-scope-literalpostman-authored · postman-same-variable-name-in-collection-and-environment-scopes | Must redactT2 · Tool-corroborated | Redacted |
environment-secret-empty-value-source-objectpostman-authored · postman-environment-secret-variable-without-value-resolved-from-source | Must not flagT1 · Provider-documented | Quiet |
environment-secret-typed-literalpostman-authored · postman-environment-variable-typed-secret-holding-literal-value | Must redactT2 · Tool-corroborated | Redacted |
Sources
Documentation and code
- learning.postman.com/docs/developer/postman-api/authentication/
Research log
- redact-secret/redact-secret#582Research issue
- redact-secret/redact-secret#700Research issue
- Final evidence, pinned to a commit/redact-secret/redact-secret/blob/8b6a5fde52ecb4dfce13f09c7a947062d21483c7/docs/audits/evidence/582/README.md