Skip to content
Benchmarks

redact-secret · Report · Detector

Neon API keys

  • 42 fixtures
  • Format evidence: T2 · Tool-corroborated
  • Run 2026-10-07
  • Mode published · redact-secret 0.1.0-beta.14

Format evidence

  • betterleaks
  • mask-go
  • Reference 1
  • Reference 2
  • Reference 3
  • Twin source napi_ prefix (2025-01-31 changelog) · observed 2026-09-24 · Neon states that newly created API keys are prefixed with napi_ so that secret scanning can rely on an identifiable marker, and that existing unprefixed keys stay valid. It states no body length or alphabet. Twins mutate the prefix, its delimiter, the body length floor or the body alphabet

Registry detector neon-api-key since redact-secret#524 (#773, registry pinned at 3144bb3); authored under #259 directly as a registry contract. The napi_ prefix is provider-documented (Neon changelog 2025-01-31, source neondatabase/website content/changelog/2025-01-31.md). The body is not: Neon calls a key "a randomly-generated 64-bit token", and its one written example (napi_examplekey...) is a word and two ordered runs, not a shape. The 64-character [A-Za-z0-9] body floor is corroborated by betterleaks neon-api-key (exactly 64, entropy-gated) and mask-go (64 as a floor). The tier is therefore T2: a T1 prefix with a tool-corroborated body stays at the weakest frozen field. The body is read as a floor, so no fixture asserts silence on a longer body. GitHub secret scanning lists neon_api_key as a partner pattern without publishing the expression. Neither pinned peer (gitleaks 8.30.1, trufflehog 3.97.4) has a Neon rule, so a peer miss is expected. Legacy unprefixed keys are not claimed and are not controls. A Neon connection URI password is a separate credential that the connection-string family already covers, and it is never a control here. Node-API identifiers (napi_create_string_utf8, NAPI_VERSION) are near-miss controls.

What the run recorded, by group

Detector views overlap, so their groups are never summed across detectors. Other scanners are reference values on the same inputs, in run order.
Groups of Neon API keys fixtures
GroupFixturesLeaked or false alarmsNear-twinsOutcomesOther scanners, same cell
Must not flag · Tool-corroborated16False alarmsat most 19.4%0 of 16 controls flagged16 quiet · 0 flagged
  • flare-redact at most 19.4%
  • gitleaks at most 19.4%
  • trufflehog at most 19.4%
Must not flag · Project policy8False alarmsat most 32.4%0 of 8 controls flagged8 quiet · 0 flagged
  • flare-redact at most 32.4%
  • gitleaks at most 32.4%
  • trufflehog at most 32.4%
Must redact · Tool-corroborated18Secret spans left readableat most 17.6%0 of 18 spansNear-twins told apartinsufficient-coverage8 of 8 pairs18 redacted · 0 too much · 0 partly exposed · 0 missed
  • flare-redact at most 96.9%
  • gitleaks at most 66.3%
  • trufflehog at most 100.0%
42 of 42 rows
Fixtures
42
Left readable
0
Redacted too much
0
False alarms
0

Fixtures for this detector

42 fixtures. Choose "Every scanner" to see each scanner's outcome for the same rows.
Fixtures in Neon API keys
FixtureKind and evidenceredact-secret
neon-api-key-api-key-createneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-bearer-curlneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-compose-envneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-create-branch-actionneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-dotenvneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-exportneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-incident-noteneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-key-shape-bareneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-key-shape-quotedneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-key-shape-unicode-crlfneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-mcp-configneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-neonctl-flagneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-secret-printneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-terraform-varsneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-ts-api-clientneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-twin-base-dotenvneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-twin-base-headerneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-twin-base-tsneon · documented-format-literalMust redactT2 · Tool-corroboratedRedacted
neon-api-key-actions-secret-referenceneon · templated-referenceMust not flagT3 · Project policyQuiet
neon-api-key-api-key-list-public-idneon · public-identifierMust not flagT2 · Tool-corroboratedQuiet
neon-api-key-dash-in-body-twinneon · wrong-alphabetMust not flagT2 · Tool-corroborated · twinQuiet
neon-api-key-docs-placeholder-placeholderneon · documentation-placeholderMust not flagT3 · Project policyQuiet
neon-api-key-env-reference-referenceneon · templated-referenceMust not flagT3 · Project policyQuiet
neon-api-key-hyphen-delimiter-twinneon · boundary-violationMust not flagT2 · Tool-corroborated · twinQuiet
neon-api-key-inner-dash-twinneon · wrong-alphabetMust not flagT2 · Tool-corroborated · twinQuiet
neon-api-key-key-guidance-proseneon · prose-mentionMust not flagT3 · Project policyQuiet
neon-api-key-label-proseneon · benign-lookalikeMust not flagT3 · Project policyQuiet
neon-api-key-maskneon · benign-lookalikeMust not flagT3 · Project policyQuiet
neon-api-key-masked-display-placeholderneon · documentation-placeholderMust not flagT3 · Project policyQuiet
neon-api-key-node-api-call-near-missneon · format-near-missMust not flagT2 · Tool-corroboratedQuiet
neon-api-key-pooled-host-public-idneon · public-identifierMust not flagT2 · Tool-corroboratedQuiet
neon-api-key-prefix-letter-twinneon · prefix-near-missMust not flagT2 · Tool-corroborated · twinQuiet
neon-api-key-prefix-letter-twin-prefix-near-missneon · prefix-near-missMust not flagT2 · Tool-corroborated · twinQuiet
neon-api-key-prefix-onlyneon · benign-lookalikeMust not flagT2 · Tool-corroboratedQuiet
neon-api-key-prefix-only-near-missneon · format-near-missMust not flagT2 · Tool-corroboratedQuiet
neon-api-key-project-and-branch-public-idneon · public-identifierMust not flagT2 · Tool-corroboratedQuiet
neon-api-key-project-digest-encoded-valueneon · benign-encoded-valueMust not flagT2 · Tool-corroboratedQuiet
neon-api-key-referenceneon · benign-lookalikeMust not flagT3 · Project policyQuiet
neon-api-key-short-bodyneon · benign-lookalikeMust not flagT2 · Tool-corroboratedQuiet
neon-api-key-short-body-twinneon · wrong-lengthMust not flagT2 · Tool-corroborated · twinQuiet
neon-api-key-short-body-twin-wrong-lengthneon · wrong-lengthMust not flagT2 · Tool-corroborated · twinQuiet
neon-api-key-uppercase-prefix-twinneon · prefix-near-missMust not flagT2 · Tool-corroborated · twinQuiet