redact-secret · Report
API key (nvapi-)
nvapi- + at least 60 [A-Za-z0-9_-], open-ended (provider-authored floor, R2); the 128-byte cap is product policy. NGC Personal, NGC Service and build.nvidia.com keys share the prefix.
Research record
3 events in the review history: 2 observed, 1 reviewed. Latest: observed on 2026-09-28 by automation, project maintainer. Project-maintained review is not independent validation. The family record at this release.
Format
What it looks like
- Descriptive pattern
^nvapi-[A-Za-z0-9_-]{60,}$
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-29NVIDIA-NeMo/nemo-helix pii_scan.py (added 2026-05-21): \bnvapi-[A-Za-z0-9_\-]{60,}\b, a provider-authored rule (R2); NVIDIA/SkillEvaluator secrets.py nvapi-[A-Za-z0-9_-]{40,}; the ngcsdk constant SCOPED_KEY_PREFIX = "nvapi-" with an executing startswith (R1, R6); re-checked 2026-09-28: nvapi- + at least 60 [A-Za-z0-9_-], open-ended; NGC Personal, NGC Service and build.nvidia.com keys share the prefix; no separator or checksum
- NVIDIA-NeMo/nemo-helix @ 689f7852611b0151cee2748ca2b68e8e163e3b65: plugins/nemo-agents/src/nemo_agents_plugin/skills/agents-secure/resources/pii_scan.pyprovider-documentation · last read 2026-09-29 · latest outcome read · supports nvapi- + at least 60 [A-Za-z0-9_-], open-ended; NGC Personal, NGC Service and build.nvidia.com keys share the prefix; no separator or checksum · #L229-L232
Tool corroborated ·
tool-corroboration· current · observed 2026-09-29Pinned scanner rules are consistent with the contract grammar (2 artifacts: betterleaks (unpinned); trufflehog 3.97.4).
- github.com/betterleaks/betterleaksscanner-rule-source · last read 2026-09-29 · latest outcome read · supports betterleaks (unpinned): nvapi- + {60,70} (tool-only, T2)
- trufflesecurity/trufflehog @ v3.97.4: pkg/detectors/nvapi/nvapi.goscanner-rule-source · last read 2026-09-29 · latest outcome read · supports trufflehog 3.97.4: NVAPI: \b(nvapi-[a-zA-Z0-9_-]{64})\b, exact 64 (tool-only, T2)
Provider documented ·
field-prefix· current · observed 2026-09-29prefix: nvapi-
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/issuance-research/nvidia.mdprovider-sdk-source · last read 2026-09-29 · latest outcome read · supports ngcsdk SCOPED_KEY_PREFIX = "nvapi-", executing startswith (R1, R6)
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/nvidia.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports NVIDIA docs: "typically start with nvapi-"
Provider documented ·
field-alphabet· current · observed 2026-09-29alphabet: [A-Za-z0-9_-]
- NVIDIA-NeMo/nemo-helix @ 689f7852611b0151cee2748ca2b68e8e163e3b65: plugins/nemo-agents/src/nemo_agents_plugin/skills/agents-secure/resources/pii_scan.pyprovider-documentation · last read 2026-09-29 · latest outcome read · supports provider-authored rule, R2 · #L229-L232
- NVIDIA/SkillEvaluator @ a2636b2f886235f974ed4329029f923a12d0328b: src/skillevaluator/validators/secrets.pyprovider-sdk-source · last read 2026-09-29 · latest outcome read · supports the same class, floor 40 · #L57-L60
Provider documented ·
field-floor· current · observed 2026-09-29floor: at least 60 body bytes, open-ended (Provider-authored (R2), not the tool width: the SkillEvaluator rule's lower 40 is below it and contradicts nothing.)
- NVIDIA-NeMo/nemo-helix @ 689f7852611b0151cee2748ca2b68e8e163e3b65: plugins/nemo-agents/src/nemo_agents_plugin/skills/agents-secure/resources/pii_scan.pyprovider-documentation · last read 2026-09-29 · latest outcome read · supports {60,} · #L229-L232
- github.com/redact-secret/redact-secret/issues/860issue-or-discussion · last read 2026-09-29 · latest outcome read · supports R2 · #issuecomment-5871306275
Unresolved ·
field-policy-upper-bound· current · observed 2026-09-29policy-upper-bound: POLICY, not T1: the product caps the run at 128 bytes; an over-cap run is rejected whole, never truncated (Not a provider fact, and the provider rule is open-ended: positives reach 128 and no fixture asserts silence on 129.)
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/nvidia.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports supported shape: project policy, the Apify precedent; the tool-verified width is 64
Unresolved ·
field-observed-width· current · observed 2026-09-29observed-width: the tool-verified width is 64 (Default positives carry 64; the 60, 70 and 128 positives exercise the provider floor and the policy cap.)
- trufflesecurity/trufflehog @ v3.97.4: pkg/detectors/nvapi/nvapi.goscanner-rule-source · last read 2026-09-29 · latest outcome read · supports exact 64
Provider documented ·
field-dot-in-body· current · observed 2026-09-29dot-in-body: a body containing . is not claimed: only one looser NVIDIA redaction rule admits it (The dot twin puts the dot early so no run reaches the 60 floor, so it holds under the provider rule too.)
- NVIDIA-NeMo/labs-OO-Agents @ 3374ceae9f1ba13ddbaceca752d8886d1d9dff3b: src/nooa/tracing/_secret_scrubber.pyprovider-sdk-source · last read 2026-09-29 · latest outcome read · supports the looser redaction superset · #L118
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/issuance-research/nvidia.mdprovider-sdk-source · last read 2026-09-29 · latest outcome read · supports the alphabet table
Unresolved ·
field-legacy-ngc-key· current · observed 2026-09-29legacy-ngc-key: the legacy NGC key is 84 non-space characters with no prefix, used as the $oauthtoken registry password; its structure is tool-inferred (Context-anchored only; generic context covers NGC_API_KEY=. Nothing is authored for it either way.)
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/nvidia.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports excluded shapes
Unresolved ·
field-boundary· current · observed 2026-09-29boundary: a key glued to an identifier before the prefix ([A-Za-z0-9_-]) is not claimed (Handoff boundary decision, not a provider statement. The body class already contains _ and -, so a trailing byte extends the run and no trailing-glue twin exists.)
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/nvidia.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports implementation notes
Provider documented ·
field-transport· current · observed 2026-09-29transport: NVIDIA_API_KEY and NGC_API_KEY, sent as Authorization: Bearer to integrate.api.nvidia.com; ChatNVIDIA(api_key=...)
- NVIDIA/NemoClaw @ 6721c275ba9c30ea99c404872379110dfba5a99a: src/lib/validation.tsprovider-documentation · last read 2026-09-29 · latest outcome read · supports validation of the scoped key · #L255-L271
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/nvidia.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports test axes
Tool corroborated ·
field-peer-lag· current · observed 2026-09-29peer-lag: trufflehog 3.97.4 NVAPI is an exact 64 (lags the 60-63 and 65-128 positives); gitleaks 8.30.1 has no NVIDIA rule; betterleaks (unpinned, not measured here) uses {60,70}
- github.com/betterleaks/betterleaksscanner-rule-source · last read 2026-09-29 · latest outcome read · supports observed 2026-09-28 in the handoff research; unpinned
- gitleaks/gitleaks @ v8.30.1: config/gitleaks.tomlscanner-rule-source · last read 2026-10-04 · latest outcome read · supports no nvapi rule
- trufflesecurity/trufflehog @ v3.97.4: pkg/detectors/nvapi/nvapi.goscanner-rule-source · last read 2026-09-29 · latest outcome read · supports exact 64
Unresolved ·
listed-references· current · observed 2026-09-29The legacy contract lists 13 references without stating which property each supports.
- NVIDIA-NeMo/labs-OO-Agents @ 3374ceae9f1ba13ddbaceca752d8886d1d9dff3b: src/nooa/tracing/_secret_scrubber.pyprovider-sdk-source · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract · #L118
- NVIDIA-NeMo/nemo-helix @ 689f7852611b0151cee2748ca2b68e8e163e3b65: plugins/nemo-agents/src/nemo_agents_plugin/skills/agents-secure/resources/pii_scan.pyprovider-documentation · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract · #L229-L232
- NVIDIA/NemoClaw @ 6721c275ba9c30ea99c404872379110dfba5a99a: src/lib/validation.tsprovider-documentation · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract · #L255-L271
- NVIDIA/SkillEvaluator @ a2636b2f886235f974ed4329029f923a12d0328b: src/skillevaluator/validators/secrets.pyprovider-sdk-source · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract · #L57-L60
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/issuance-research/nvidia.mdprovider-sdk-source · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/README.mdproject-research-note · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/nvidia.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract
- github.com/redact-secret/redact-secret/issues/860issue-or-discussion · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract · #issuecomment-5871306275
- github.com/redact-secret/redact-secret/issues/860issue-or-discussion · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract · #issuecomment-5880547337
- github.com/redact-secret/redact-secret/issues/860issue-or-discussion · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract
- github.com/redact-secret/redact-secret-benchmarks/issues/464issue-or-discussion · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract
- github.com/redact-secret/redact-secret/issues/972issue-or-discussion · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/tier-b-rerank.mdproject-research-note · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract
Provider documented ·
dossier-research· current · observed 2026-09-28Legacy dossier research (verdict ready, tier T1) cited 3 sources; the dossier does not attribute sources to individual properties.
- NVIDIA-NeMo/nemo-helix @ 689f7852611b0151cee2748ca2b68e8e163e3b65: plugins/nemo-agents/src/nemo_agents_plugin/skills/agents-secure/resources/pii_scan.pyprovider-documentation · last read 2026-09-29 · latest outcome read · supports Cited by the legacy dossier research for this family · #L229-L232
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/issuance-research/nvidia.mdprovider-sdk-source · last read 2026-09-29 · latest outcome read · supports Cited by the legacy dossier research for this family
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/nvidia.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports Final research evidence recorded by the legacy dossier
Provider documented ·
taxonomy-sources· current · observed 2026-09-28The legacy taxonomy lists 2 sources for this family. The taxonomy records no date; the dossier researchedAt is used as the observed-at date.
- NVIDIA-NeMo/nemo-helix @ 689f7852611b0151cee2748ca2b68e8e163e3b65: plugins/nemo-agents/src/nemo_agents_plugin/skills/agents-secure/resources/pii_scan.pyprovider-documentation · last read 2026-09-29 · latest outcome read · supports Listed as a source for this family in the legacy taxonomy · #L229-L232
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/nvidia.mdprovider-documentation · last read 2026-09-29 · 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
- prefix
nvapi-, then at least 60 characters of[A-Za-z0-9_-], open-ended; no separator or checksum. The 128-byte upper bound is product policy, not a provider fact. - Basis
- prefix T1 (NVIDIA docs, and the ngcsdk constant
SCOPED_KEY_PREFIXwith an executingstartswith, R1 and R6); alphabet and the floor of 60 T1 under R2 (a provider-authored secret-scanning rule in an NVIDIA-owned organization, added 2026-05-21; a second NVIDIA rule uses a floor of 40 with the same class). No provider source states an exact width. - Issuance
- not attempted; a uniform width across the three key kinds would allow an exact-width contract later, as a separate optional change.
- Contract in core
- detector-families.md (no row until the Beta.12 detector, redact-secret#972, is merged).
In this benchmark
- Fixtures
- 39
- Left readable
- 0
- Redacted too much
- 0
- False alarms
- 0
39 fixtures: 17 expect a redaction, 22 must stay quiet. See every row
| Evidence level | Fixtures | Left readable | Too much | False alarms |
|---|---|---|---|---|
| T1Provider-documented | 17 | 0 | 0 | 0 |
| T2Tool-corroborated | 13 | 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 engineNo rule maps to it | 39 | 15 | 2 | 0 |
| gitleaksRepository scanner · 8.30.1 · Directory scan · default rulesNo rule maps to it | 39 | 7 | 0 | 0 |
| redact-secretProduct measured here · 0.1.0-beta.14 · Published npm package · default detectors1 detector mapped | 39 | 0 | 0 | 0 |
| trufflehogRepository scanner · 3.97.4 · Filesystem scan · verification disabled1 rule targets it | 39 | 4 | 0 | 0 |
Benchmark dossier questions
- Open caveat
- the 128-byte cap is project policy (the Apify precedent), so an over-long run is an intentional false negative, never truncated; bodies with a byte outside the class, and any key class shorter than 60, are accepted false negatives.
Looks like it, but isn't
- Collisions
- the peers disagree with the provider grammar: trufflehog's
NVAPIis an exact 64, and betterleaks is{60,70}(tool-only, unpinned). NVAPI SDK and crate names (nvapi-sys,nvapi-rs) fall below the floor.
Scanner rules for this family
| Scanner | Rule | What the rule matches |
|---|---|---|
| trufflehog · rules 3.97.4 | nvapi | nvapi- + 64 characters |
No rule maps to this family in flare-redact, gitleaks, openredaction.
Fixtures in this family
| Fixture | Kind and evidence | redact-secret |
|---|---|---|
nvidia-api-key-bare-prosenvidia · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
nvidia-api-key-bearer-headernvidia · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
nvidia-api-key-chat-nvidianvidia · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
nvidia-api-key-chat-pastenvidia · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
nvidia-api-key-curl-bearernvidia · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
nvidia-api-key-docker-login-stdinnvidia · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
nvidia-api-key-dotenvnvidia · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
nvidia-api-key-dotenv-ngcnvidia · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
nvidia-api-key-exportnvidia · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
nvidia-api-key-json-api-keynvidia · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
nvidia-api-key-json-tokennvidia · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
nvidia-api-key-key-shape-barenvidia · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
nvidia-api-key-key-shape-quotednvidia · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
nvidia-api-key-key-shape-unicode-crlfnvidia · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
nvidia-api-key-openai-compatnvidia · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
nvidia-api-key-sdk-kwargnvidia · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
nvidia-api-key-x-api-key-headernvidia · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
nvidia-api-key-actions-secret-referencenvidia · templated-reference | Must not flagT3 · Project policy | Quiet |
nvidia-api-key-body-59-near-missnvidia · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
nvidia-api-key-body-59-twinnvidia · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
nvidia-api-key-dot-in-body-twinnvidia · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
nvidia-api-key-ellipsis-placeholdernvidia · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
nvidia-api-key-env-reference-referencenvidia · templated-reference | Must not flagT3 · Project policy | Quiet |
nvidia-api-key-key-guidance-prosenvidia · prose-mention | Must not flagT3 · Project policy | Quiet |
nvidia-api-key-label-prosenvidia · benign-lookalike | Must not flagT3 · Project policy | Quiet |
nvidia-api-key-leading-glue-twinnvidia · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
nvidia-api-key-leading-underscore-twinnvidia · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
nvidia-api-key-masknvidia · benign-lookalike | Must not flagT3 · Project policy | Quiet |
nvidia-api-key-other-prefix-64-near-missnvidia · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
nvidia-api-key-prefix-at-eol-near-missnvidia · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
nvidia-api-key-prefix-onlynvidia · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
nvidia-api-key-referencenvidia · benign-lookalike | Must not flagT3 · Project policy | Quiet |
nvidia-api-key-sdk-crate-names-public-idnvidia · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
nvidia-api-key-sdk-package-name-public-idnvidia · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
nvidia-api-key-short-bodynvidia · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
nvidia-api-key-underscore-prefix-twinnvidia · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
nvidia-api-key-uppercase-prefix-twinnvidia · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
nvidia-api-key-x-run-placeholdernvidia · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
nvidia-api-key-your-key-placeholdernvidia · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
Sources
Documentation and code
- github.com/NVIDIA-NeMo/nemo-helix/blob/689f7852611b0151cee2748ca2b68e8e163e3b65/plugins/nemo-agents/src/nemo_agents_plugin/skills/agents-secure/resources/pii_scan.py#L229-L232
- github.com/redact-secret/redact-secret/blob/8b6a5fde52ecb4dfce13f09c7a947062d21483c7/docs/audits/evidence/860/nvidia.md
- github.com/redact-secret/redact-secret/blob/8b6a5fde52ecb4dfce13f09c7a947062d21483c7/docs/audits/evidence/860/issuance-research/nvidia.md
Research log
- redact-secret/redact-secret#860Research issue
- redact-secret/redact-secret#972Research issue
- redact-secret/redact-secret-benchmarks#464Research issue
- Final evidence, pinned to a commit/redact-secret/redact-secret/blob/8b6a5fde52ecb4dfce13f09c7a947062d21483c7/docs/audits/evidence/860/nvidia.md