redact-secret · Report · Detector
Langfuse secret keys
Format evidence
Graduated arrival contract (#210, registry detector since redact-secret#728; research #221 observed 2026-09-24). Covers only issuer-minted keys: Langfuse's own key generator (provider code, unchanged from 2023-06 to 2026-09) builds sk-lf-${randomUUID()}, i.e. sk-lf- plus a lowercase RFC 4122 version-4 UUID (42 characters; version nibble 4, variant nibble 8/9/a/b), and uses the same generator for project, organization and AI-gateway keys. Langfuse documentation shows the sk-lf-/pk-lf- prefixes and the contexts (LANGFUSE_SECRET_KEY, SDK constructors, Basic auth public-key:secret-key, OTLP Authorization=Basic) but states no body grammar, so the tier stays T2: the body is provider code corroborated by trufflehog 3.97.4 (which also requires a langfuse keyword and the paired pk) and betterleaks. The public key pk-lf-<uuid> is documented as safe for browser code and is this family's public-prefix twin and public-id control. Self-hosted operator-defined keys (headless init accepts any string; the admin API enforces only the sk-lf- prefix) are simply outside the minted-shape claim: none is fixtured, and none is asserted silent. The sk-lf-gw- form appears only in a PR description, Storybook stories and a unit-test fixture; it is recorded, neither claimed nor asserted silent. A base64 Basic-auth blob carries the secret only in encoded form; this contract makes no claim on it and it is not fixtured as a control. gitleaks 8.30.1 has no Langfuse rule.
What the run recorded, by group
| Group | Fixtures | Leaked or false alarms | Near-twins | Outcomes | Other scanners, same cell |
|---|---|---|---|---|---|
| Must not flag · Tool-corroborated | 17 | False alarmsat most 18.4%0 of 17 controls flagged | 17 quiet · 0 flagged |
| |
| Must not flag · Project policy | 7 | False alarmsat most 35.4%0 of 7 controls flagged | 7 quiet · 0 flagged |
| |
| Must redact · Tool-corroborated | 18 | Secret spans left readableat most 17.6%0 of 18 spans | Near-twins told apartinsufficient-coverage8 of 8 pairs | 18 redacted · 0 too much · 0 partly exposed · 0 missed |
|
- Fixtures
- 42
- Left readable
- 0
- Redacted too much
- 0
- False alarms
- 0
Fixtures for this detector
| Fixture | Kind and evidence | redact-secret |
|---|---|---|
langfuse-secret-key-curl-basiclangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-curl-basic-authlangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-exportlangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-gateway-bearerlangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-handover-notelangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-key-shape-barelangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-key-shape-quotedlangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-key-shape-unicode-crlflangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-python-clientlangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-secret-getlangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-twin-base-cilangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-twin-base-pythonlangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-typescript-clientlangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-variant-nibble-twinlangfuse · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
langfuse-secret-key-version-nibble-twin-wrong-alphabetlangfuse · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
langfuse-secret-key-browser-public-key-public-idlangfuse · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
langfuse-secret-key-compose-initlangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-dotenvlangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-env-example-placeholderlangfuse · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
langfuse-secret-key-error-log-team-settingslangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-hashed-key-row-encoded-valuelangfuse · benign-encoded-value | Must not flagT2 · Tool-corroborated | Quiet |
langfuse-secret-key-k8s-secret-ref-referencelangfuse · templated-reference | Must not flagT3 · Project policy | Quiet |
langfuse-secret-key-key-pair-doc-proselangfuse · prose-mention | Must not flagT3 · Project policy | Quiet |
langfuse-secret-key-litellm-configlangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-long-last-group-twinlangfuse · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
langfuse-secret-key-masklangfuse · benign-lookalike | Must not flagT3 · Project policy | Quiet |
langfuse-secret-key-masked-display-placeholderlangfuse · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
langfuse-secret-key-no-hyphens-twinlangfuse · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
langfuse-secret-key-prefix-onlylangfuse · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
langfuse-secret-key-prefix-only-grep-near-misslangfuse · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
langfuse-secret-key-public-idlangfuse · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
langfuse-secret-key-public-key-twinlangfuse · public-sibling-prefix | Must not flagT2 · Tool-corroborated · twin | Quiet |
langfuse-secret-key-python-env-lookup-referencelangfuse · templated-reference | Must not flagT3 · Project policy | Quiet |
langfuse-secret-key-referencelangfuse · benign-lookalike | Must not flagT3 · Project policy | Quiet |
langfuse-secret-key-region-hosts-env-public-idlangfuse · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
langfuse-secret-key-short-bodylangfuse · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
langfuse-secret-key-short-last-group-twinlangfuse · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
langfuse-secret-key-trace-url-ids-public-idlangfuse · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
langfuse-secret-key-truncated-uuid-near-misslangfuse · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
langfuse-secret-key-twin-base-dotenvlangfuse · documented-format-literal | Must redactT2 · Tool-corroborated | Redacted |
langfuse-secret-key-variant-nibble-twin-wrong-alphabetlangfuse · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
langfuse-secret-key-version-nibble-twinlangfuse · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |