redact-secret · Report
API key (bb_live_)
bb_live_ + at least 20 [A-Za-z0-9], open-ended (provider CI gate, R2); the 128-byte cap is product policy; bb_test_ is issuance-gated and excluded.
Research record
4 events in the review history: 3 observed, 1 reviewed. Latest: observed on 2026-10-03 by automation, project maintainer. Project-maintained review is not independent validation. The family record at this release.
Format
What it looks like
- Descriptive pattern
^bb_live_[A-Za-z0-9]{20,}$
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-29browserbase/cookbook scripts/verify.py CI gate (2026-09-25, a public Browserbase-organization member; R2): (?<!\w)bb_live_[A-Za-z0-9]{20,}(?!\w); the same author's import_sources.py filter uses the same body inside [A-Za-z0-9_-] boundaries; docs placeholders bb_live_... (R4); re-checked 2026-09-28: bb_live_ + at least 20 [A-Za-z0-9], open-ended; no separator or checksum; bb_test_ is not part of the family
- browserbase/cookbook @ eff9eca8e61e16ea1635e9e75e043c7a765c5f88: scripts/verify.pyprovider-documentation · last read 2026-10-03 · latest outcome read · supports bb_live_ + at least 20 [A-Za-z0-9], open-ended; no separator or checksum; bb_test_ is not part of the family · #L383
Provider documented ·
field-prefix· current · observed 2026-09-29prefix: bb_live_
- browserbase/stagehand @ ad2bf12ea7abd95bb1d6f3a59600842a0954fffb: packages/integrations/core/src/harness/redact.tsprovider-documentation · last read 2026-10-03 · latest outcome read · supports provider redaction regex bb_(live|test)_ (R2) · #L12
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/browserbase.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports docs placeholders bb_live_... (R4)
- github.com/redact-secret/redact-secret/issues/860issue-or-discussion · last read 2026-09-29 · latest outcome read · supports R4: a placeholder is T1 for its prefix · #issuecomment-5871306275
Provider documented ·
field-alphabet· current · observed 2026-09-29alphabet: [A-Za-z0-9] (The stagehand redactor also admits _ and - after four alphanumerics; the contract keeps the gate's alphanumeric class.)
- browserbase/cookbook @ eff9eca8e61e16ea1635e9e75e043c7a765c5f88: scripts/verify.pyprovider-documentation · last read 2026-10-03 · latest outcome read · supports provider CI gate, R2 · #L383
- browserbase/cookbook @ eff9eca8e61e16ea1635e9e75e043c7a765c5f88: scripts/import_sources.pyprovider-sdk-source · last read 2026-10-03 · latest outcome read · supports the same body class · #L22-L31
Provider documented ·
field-floor· current · observed 2026-09-29floor: at least 20 body bytes, open-ended
- browserbase/cookbook @ eff9eca8e61e16ea1635e9e75e043c7a765c5f88: scripts/verify.pyprovider-documentation · last read 2026-10-03 · latest outcome read · supports {20,} · #L383
- 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 gate is open-ended: positives reach 128 and no fixture asserts silence on 129.)
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/browserbase.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports supported shape: project policy, the Apify precedent; no width is observed
Unresolved ·
field-boundary· current · observed 2026-09-29boundary: a key glued to an identifier on either side ([A-Za-z0-9_-]) is not claimed; a _ or - glued after the run rejects the match (The two provider rules agree on _ and disagree on -; the handoff decides both, so this is a handoff boundary decision, not a provider statement.)
- browserbase/cookbook @ eff9eca8e61e16ea1635e9e75e043c7a765c5f88: scripts/verify.pyprovider-documentation · last read 2026-10-03 · latest outcome read · supports (?!\w) rejects a glued _ but not a glued - · #L383
- browserbase/cookbook @ eff9eca8e61e16ea1635e9e75e043c7a765c5f88: scripts/import_sources.pyprovider-sdk-source · last read 2026-10-03 · latest outcome read · supports [A-Za-z0-9_-] boundaries reject both · #L22-L31
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/browserbase.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports implementation notes
Unresolved ·
field-bb-test· current · observed 2026-09-29bb-test: bb_test_ keys are issuance-gated: only a floor-5 regex and a T2 comment (Never a positive; a bb_test_ value of any length is a benign control.)
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/browserbase.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports excluded shapes
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/issuance-research/browserbase.mdproject-research-note · last read 2026-09-29 · latest outcome read · supports bb-test: bb_test_ keys are issuance-gated: only a floor-5 regex and a T2 comment
Provider documented ·
field-transport· current · observed 2026-09-29transport: the BROWSERBASE_API_KEY environment variable, sent as the X-BB-API-Key header; Browserbase(api_key=...) and new Stagehand({ apiKey })
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/browserbase.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports role and blast radius
Tool corroborated ·
field-peer-lag· current · observed 2026-09-29peer-lag: no rule in trufflehog 3.97.4 or gitleaks 8.30.1
- gitleaks/gitleaks @ v8.30.1: config/gitleaks.tomlscanner-rule-source · last read 2026-10-04 · latest outcome read · supports no browserbase rule
- trufflesecurity/trufflehog @ v3.97.4: pkg/detectorsscanner-rule-source · last read 2026-09-29 · latest outcome read · supports no browserbase detector directory at the pinned version
Unresolved ·
listed-references· current · observed 2026-09-29The legacy contract lists 12 references without stating which property each supports.
- browserbase/cookbook @ eff9eca8e61e16ea1635e9e75e043c7a765c5f88: scripts/verify.pyprovider-documentation · last read 2026-10-03 · latest outcome read · supports Listed as a reference by the legacy contract · #L383
- browserbase/cookbook @ eff9eca8e61e16ea1635e9e75e043c7a765c5f88: scripts/import_sources.pyprovider-sdk-source · last read 2026-10-03 · latest outcome read · supports Listed as a reference by the legacy contract · #L22-L31
- browserbase/stagehand @ ad2bf12ea7abd95bb1d6f3a59600842a0954fffb: packages/integrations/core/src/harness/redact.tsprovider-documentation · last read 2026-10-03 · latest outcome read · supports Listed as a reference by the legacy contract · #L12
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/browserbase.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/973issue-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/README.mdproject-research-note · 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
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/issuance-research/browserbase.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/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.
- browserbase/cookbook @ eff9eca8e61e16ea1635e9e75e043c7a765c5f88: scripts/verify.pyprovider-documentation · last read 2026-10-03 · latest outcome read · supports Cited by the legacy dossier research for this family · #L383
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/browserbase.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports Final research evidence recorded by the legacy dossier
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/issuance-research/browserbase.mdproject-research-note · last read 2026-09-29 · latest outcome read · supports Cited by the legacy dossier research for this family
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.
- browserbase/cookbook @ eff9eca8e61e16ea1635e9e75e043c7a765c5f88: scripts/verify.pyprovider-documentation · last read 2026-10-03 · latest outcome read · supports Listed as a source for this family in the legacy taxonomy · #L383
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/browserbase.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
bb_live_, then at least 20 alphanumeric characters[A-Za-z0-9], open-ended; boundaries on both sides. The 128-byte upper bound is product policy.bb_test_is excluded. - Basis
- prefix T1 (docs placeholders
bb_live_...under R4 and a provider redaction regex inbrowserbase/stagehandunder R2); alphabet and the floor of 20 T1 under R2 (a provider-authored CI hygiene gate inbrowserbase/cookbook, 2026-09-25, whose author is a public Browserbase-organization member; no public scanner has a Browserbase rule). The stagehand redactor also admits_and-; the contract keeps the gate's alphanumeric class. - Issuance
- not attempted; one issued
bb_live_key, and whether abb_test_key can be created, would narrow it. - Contract in core
- detector-families.md (no row until the Beta.12 detector, redact-secret#973, is merged).
In this benchmark
- Fixtures
- 38
- Left readable
- 0
- Redacted too much
- 0
- False alarms
- 0
38 fixtures: 16 expect a redaction, 22 must stay quiet. See every row
| Evidence level | Fixtures | Left readable | Too much | False alarms |
|---|---|---|---|---|
| T1Provider-documented | 16 | 0 | 0 | 0 |
| T2Tool-corroborated | 6 | 0 | 0 | 0 |
| T3Project policy | 16 | 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 | 38 | 15 | 1 | 0 |
| gitleaksRepository scanner · 8.30.1 · Directory scan · default rulesNo rule maps to it | 38 | 7 | 0 | 0 |
| redact-secretProduct measured here · 0.1.0-beta.14 · Published npm package · default detectors1 detector mapped | 38 | 0 | 0 | 0 |
| trufflehogRepository scanner · 3.97.4 · Filesystem scan · verification disabledNo rule maps to it | 38 | 16 | 0 | 0 |
Benchmark dossier questions
- Open caveat
- the 128-byte cap is project policy; a key whose body contains
_or-is an accepted false negative; everybb_test_key is outside the family.
Looks like it, but isn't
- Collisions
bb_live_session_…and other snake_case identifiers (the glued_rejects),bb_<timestamp>cookie names and project-ID UUIDs are not keys. The two provider rules disagree on a glued-; the handoff decides both.
Scanner rules for this family
No peer rule maps to this family
None of the reviewed peer scanners has a rule that can match a credential of this family.
None mapped
Fixtures in this family
| Fixture | Kind and evidence | redact-secret |
|---|---|---|
browserbase-api-key-bare-prosebrowserbase · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
browserbase-api-key-bearer-headerbrowserbase · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
browserbase-api-key-chat-pastebrowserbase · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
browserbase-api-key-dotenvbrowserbase · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
browserbase-api-key-exportbrowserbase · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
browserbase-api-key-json-api-keybrowserbase · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
browserbase-api-key-json-tokenbrowserbase · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
browserbase-api-key-key-shape-barebrowserbase · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
browserbase-api-key-key-shape-quotedbrowserbase · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
browserbase-api-key-key-shape-unicode-crlfbrowserbase · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
browserbase-api-key-mcp-envbrowserbase · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
browserbase-api-key-python-sdkbrowserbase · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
browserbase-api-key-sdk-kwargbrowserbase · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
browserbase-api-key-stagehand-tsbrowserbase · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
browserbase-api-key-x-api-key-headerbrowserbase · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
browserbase-api-key-x-bb-api-key-headerbrowserbase · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
browserbase-api-key-actions-secret-referencebrowserbase · templated-reference | Must not flagT3 · Project policy | Quiet |
browserbase-api-key-body-19-twinbrowserbase · wrong-length | Must not flagT3 · Project policy · twin | Quiet |
browserbase-api-key-ellipsis-placeholderbrowserbase · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
browserbase-api-key-env-reference-referencebrowserbase · templated-reference | Must not flagT3 · Project policy | Quiet |
browserbase-api-key-hyphen-prefix-twinbrowserbase · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
browserbase-api-key-key-guidance-prosebrowserbase · prose-mention | Must not flagT3 · Project policy | Quiet |
browserbase-api-key-label-prosebrowserbase · benign-lookalike | Must not flagT3 · Project policy | Quiet |
browserbase-api-key-leading-glue-twinbrowserbase · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
browserbase-api-key-leading-underscore-twinbrowserbase · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
browserbase-api-key-live-session-identifier-near-missbrowserbase · format-near-miss | Must not flagT3 · Project policy | Quiet |
browserbase-api-key-maskbrowserbase · benign-lookalike | Must not flagT3 · Project policy | Quiet |
browserbase-api-key-prefix-at-eol-near-missbrowserbase · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
browserbase-api-key-prefix-onlybrowserbase · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
browserbase-api-key-project-id-public-idbrowserbase · public-identifier | Must not flagT3 · Project policy | Quiet |
browserbase-api-key-referencebrowserbase · benign-lookalike | Must not flagT3 · Project policy | Quiet |
browserbase-api-key-short-bodybrowserbase · benign-lookalike | Must not flagT3 · Project policy | Quiet |
browserbase-api-key-timestamp-cookie-public-idbrowserbase · public-identifier | Must not flagT3 · Project policy | Quiet |
browserbase-api-key-trailing-hyphen-twinbrowserbase · boundary-violation | Must not flagT3 · Project policy · twin | Quiet |
browserbase-api-key-trailing-underscore-twinbrowserbase · boundary-violation | Must not flagT3 · Project policy · twin | Quiet |
browserbase-api-key-uppercase-prefix-twinbrowserbase · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
browserbase-api-key-x-run-placeholderbrowserbase · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
browserbase-api-key-your-api-key-here-placeholderbrowserbase · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
Sources
Documentation and code
- github.com/browserbase/cookbook/blob/eff9eca8e61e16ea1635e9e75e043c7a765c5f88/scripts/verify.py#L383
- github.com/redact-secret/redact-secret/blob/8b6a5fde52ecb4dfce13f09c7a947062d21483c7/docs/audits/evidence/860/browserbase.md
- github.com/redact-secret/redact-secret/blob/8b6a5fde52ecb4dfce13f09c7a947062d21483c7/docs/audits/evidence/860/issuance-research/browserbase.md
Research log
- redact-secret/redact-secret#860Research issue
- redact-secret/redact-secret#973Research issue
- redact-secret/redact-secret-benchmarks#464Research issue
- redact-secret/redact-secret#1012Research issue
- Final evidence, pinned to a commit/redact-secret/redact-secret/blob/8b6a5fde52ecb4dfce13f09c7a947062d21483c7/docs/audits/evidence/860/browserbase.md