redact-secret · Report
User API key (uak_)
uak_ + 43 URL-safe nanoid [A-Za-z0-9_-] per the 2026-09-17 staff statement; a code comment's 20 is T2 (R6).
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
^uak_[A-Za-z0-9_-]{43}$
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-28provider staff statement of 2026-09-17 (uak_ + 43 nanoid); the SDK constant names uak_: a dated statement by Composio's Head of Security (ruling R3) fixes uak_ + exactly 43 [A-Za-z0-9_-]; a CLI code comment showing uak_ + 20 is T2 under ruling R6 and does not override it
- github.com/trufflesecurity/trufflehog/issues/5321provider-documentation · last read 2026-09-28 · latest outcome read · supports a dated statement by Composio's Head of Security (ruling R3) fixes uak_ + exactly 43 [A-Za-z0-9_-]; a CLI code comment showing uak_ + 20 is T2 under ruling R6 and does not override it
Provider documented ·
field-prefix· current · observed 2026-09-28prefix: uak_
- docs.composio.dev/reference/authenticating-to-composioprovider-documentation · last read 2026-09-28 · latest outcome read · supports x-user-api-key header
- ComposioHQ/composio @ 34484551843e575e79cca244d9fca3e4459f59e9: ts/packages/core/src/utils/sdk.tsprovider-documentation · last read 2026-09-28 · latest outcome read · supports prefix: uak_ · #L23
Unresolved ·
field-body· current · observed 2026-09-28body: exactly 43 characters (A provider-staff statement, recorded under the nearest basis; T1 by ruling R3 until a newer provider source contradicts it (none did at the 2026-09-28 re-check).)
- github.com/gitleaks/gitleaks/issues/2276issue-or-discussion · last read 2026-09-28 · latest outcome read · supports body: exactly 43 characters
- github.com/redact-secret/redact-secret/issues/860issue-or-discussion · last read 2026-09-29 · latest outcome read · supports R3: a dated provider-staff statement is T1 · #issuecomment-5852413851
- github.com/trufflesecurity/trufflehog/issues/5321provider-documentation · last read 2026-09-28 · latest outcome read · supports Composio Head of Security, 2026-09-17: ak_+20, oak_+20, uak_+43
Provider documented ·
field-alphabet· current · observed 2026-09-28alphabet: URL-safe nanoid [A-Za-z0-9_-]; a body may start or end with _ or -
- ComposioHQ/composio @ 34484551843e575e79cca244d9fca3e4459f59e9: ts/packages/cli/src/analytics/dispatch.tsprovider-sdk-source · last read 2026-09-28 · latest outcome read · supports \buak_[A-Za-z0-9_-]+, \bak_[A-Za-z0-9_-]+ · #L426-L427
- github.com/redact-secret/redact-secret/issues/860issue-or-discussion · last read 2026-09-29 · latest outcome read · supports R2 · #issuecomment-5871306275
- github.com/trufflesecurity/trufflehog/issues/5321provider-documentation · last read 2026-09-28 · latest outcome read · supports alphabet: URL-safe nanoid [A-Za-z0-9_-]; a body may start or end with _ or -
Unresolved ·
field-separators· current · observed 2026-09-28separators: none; no checksum
- github.com/trufflesecurity/trufflehog/issues/5321provider-documentation · last read 2026-09-28 · latest outcome read · supports separators: none; no checksum
Unresolved ·
field-boundary· current · observed 2026-09-28boundary: a key glued to an identifier on either side ([A-Za-z0-9_-]) is not claimed; this keeps ak_ inside oak_/uak_/cak_ from reading as a project key
- redact-secret/redact-secret @ 270faf84dc12f6a4a4cf61fe3ffab7aadc4f7262: docs/audits/evidence/860/composio.mdprovider-documentation · last read 2026-09-28 · latest outcome read · supports separability
Tool corroborated ·
field-peer-lag· current · observed 2026-09-28peer-lag: no rule in trufflehog 3.97.4 or gitleaks 8.30.1; the staff-authored trufflehog PR #5322 (20/20/43 over [A-Za-z0-9_-]) is still open
- gitleaks/gitleaks @ v8.30.1: config/gitleaks.tomlscanner-rule-source · last read 2026-10-04 · latest outcome read · supports no composio rule
- github.com/trufflesecurity/trufflehog/pull/5322scanner-rule-source · last read 2026-09-28 · latest outcome read · supports open, updated 2026-09-28
Unresolved ·
field-code-comment-width· current · observed 2026-09-28code-comment-width: a CLI code comment shows uak_ + 20 (Cannot override the T1 43. uak_ + 20 backs a length twin; the issuance check (handoff checklist) is the confirmation.)
- ComposioHQ/composio @ 34484551843e575e79cca244d9fca3e4459f59e9: ts/packages/cli/src/commands/login.cmd.tsprovider-sdk-source · last read 2026-09-28 · latest outcome read · supports code-comment-width: a CLI code comment shows uak_ + 20 · #L801
- github.com/redact-secret/redact-secret/issues/860issue-or-discussion · last read 2026-09-29 · latest outcome read · supports R6: a code comment is T2 · #issuecomment-5871306275
Unresolved ·
listed-references· current · observed 2026-09-28The legacy contract lists 15 references without stating which property each supports.
- docs.composio.dev/reference/authenticating-to-composioprovider-documentation · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract
- ComposioHQ/composio @ 34484551843e575e79cca244d9fca3e4459f59e9: ts/packages/cli/src/commands/login.cmd.tsprovider-sdk-source · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract · #L801
- ComposioHQ/composio @ 34484551843e575e79cca244d9fca3e4459f59e9: ts/packages/core/src/utils/sdk.tsprovider-documentation · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract · #L23
- ComposioHQ/composio @ 34484551843e575e79cca244d9fca3e4459f59e9: docs/public/openapi.jsonprovider-documentation · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract
- ComposioHQ/composio @ 34484551843e575e79cca244d9fca3e4459f59e9: ts/packages/cli/src/analytics/dispatch.tsprovider-sdk-source · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract · #L426-L427
- github.com/gitleaks/gitleaks/issues/2276issue-or-discussion · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract
- github.com/redact-secret/redact-secret/issues/909issue-or-discussion · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract
- redact-secret/redact-secret @ 270faf84dc12f6a4a4cf61fe3ffab7aadc4f7262: docs/audits/evidence/860/README.mdproject-research-note · last read 2026-09-28 · 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-5852413851
- 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
- github.com/redact-secret/redact-secret-benchmarks/issues/434issue-or-discussion · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract
- redact-secret/redact-secret @ 270faf84dc12f6a4a4cf61fe3ffab7aadc4f7262: docs/audits/evidence/860/composio.mdprovider-documentation · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract
- github.com/trufflesecurity/trufflehog/pull/5322scanner-rule-source · last read 2026-09-28 · latest outcome read · supports Listed as a reference by the legacy contract
- github.com/trufflesecurity/trufflehog/issues/5321provider-documentation · last read 2026-09-28 · 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 4 sources; the dossier does not attribute sources to individual properties.
- ComposioHQ/composio @ 34484551843e575e79cca244d9fca3e4459f59e9other · last read 2026-09-28 · latest outcome read · supports Cited by the legacy dossier research for this family
- github.com/gitleaks/gitleaks/issues/2276issue-or-discussion · last read 2026-09-28 · latest outcome read · supports Cited by the legacy dossier research for this family
- redact-secret/redact-secret @ 8b6a5fde52ecb4dfce13f09c7a947062d21483c7: docs/audits/evidence/860/composio.mdproject-research-note · last read 2026-09-28 · latest outcome read · supports Final research evidence recorded by the legacy dossier
- github.com/trufflesecurity/trufflehog/issues/5321provider-documentation · last read 2026-09-28 · 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 3 sources for this family. The taxonomy records no date; the dossier researchedAt is used as the observed-at date.
- docs.composio.dev/reference/authenticating-to-composioprovider-documentation · last read 2026-09-28 · latest outcome read · supports Listed as a source for this family in the legacy taxonomy
- redact-secret/redact-secret @ 270faf84dc12f6a4a4cf61fe3ffab7aadc4f7262: docs/audits/evidence/860/composio.mdprovider-documentation · last read 2026-09-28 · latest outcome read · supports Listed as a source for this family in the legacy taxonomy
- github.com/trufflesecurity/trufflehog/issues/5321provider-documentation · last read 2026-09-28 · 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
uak_, exactly 43 body characters from[A-Za-z0-9_-]. - Basis
- T1 for prefix (docs, SDK constant with an executing
startsWithbranch, R6) and for length and alphabet (the same staff statement). A CLI code comment showinguak_+ 20 is T2 under R6 and does not override; the file is dated 2025-06 and may show an older short format. - Issuance
- the step-2 selection gated this shape on that conflict; the Tier A handoff lifted the gate under R6 and asked the maintainer to confirm. The issuance check (one
composio loginkey, expect 43) stays as confirmation. - Contract in core
- detector-families.md.
In this benchmark
- Fixtures
- 36
- Left readable
- 0
- Redacted too much
- 0
- False alarms
- 0
36 fixtures: 16 expect a redaction, 20 must stay quiet. See every row
| Evidence level | Fixtures | Left readable | Too much | False alarms |
|---|---|---|---|---|
| T1Provider-documented | 16 | 0 | 0 | 0 |
| T2Tool-corroborated | 15 | 0 | 0 | 0 |
| T3Project policy | 5 | 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 | 36 | 15 | 1 | 0 |
| gitleaksRepository scanner · 8.30.1 · Directory scan · default rulesNo rule maps to it | 36 | 4 | 0 | 1 |
| redact-secretProduct measured here · 0.1.0-beta.14 · Published npm package · default detectors1 detector mapped | 36 | 0 | 0 | 0 |
| trufflehogRepository scanner · 3.97.4 · Filesystem scan · verification disabledNo rule maps to it | 36 | 16 | 0 | 0 |
Benchmark dossier questions
- Open caveat
- A provider CLI code comment shows a 20-byte body, a T2 source (R6) that conflicts with the staff-stated 43; an issuance check on one composio login key is kept as confirmation.
Looks like it, but isn't
- Collisions
- none beyond the shared
ak_substring, handled by the leading boundary.
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 |
|---|---|---|
composio-user-api-key-actions-envcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-user-api-key-bare-prosecomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-user-api-key-bearer-headercomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-user-api-key-chat-pastecomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-user-api-key-compose-envcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-user-api-key-csv-commacomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-user-api-key-digest-encoded-valuecomposio · benign-encoded-value | Must not flagT2 · Tool-corroborated | Quiet |
composio-user-api-key-dotenvcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-user-api-key-end-of-inputcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-user-api-key-exportcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-user-api-key-json-api-keycomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-user-api-key-json-tokencomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-user-api-key-mcp-configcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-user-api-key-provider-headercomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-user-api-key-sdk-kwargcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-user-api-key-ts-constructorcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-user-api-key-x-api-key-headercomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-user-api-key-actions-secret-referencecomposio · templated-reference | Must not flagT3 · Project policy | Quiet |
composio-user-api-key-body-44-twincomposio · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-user-api-key-body-long-twincomposio · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-user-api-key-body-short-twincomposio · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-user-api-key-dot-in-body-twincomposio · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-user-api-key-ellipsis-placeholdercomposio · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
composio-user-api-key-env-reference-referencecomposio · templated-reference | Must not flagT3 · Project policy | Quiet |
composio-user-api-key-hyphen-prefix-twincomposio · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-user-api-key-kebab-case-identifier-near-misscomposio · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
composio-user-api-key-key-guidance-prosecomposio · prose-mention | Must not flagT3 · Project policy | Quiet |
composio-user-api-key-leading-glue-twincomposio · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-user-api-key-legacy-width-20-twincomposio · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-user-api-key-plus-in-body-twincomposio · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-user-api-key-project-id-public-idcomposio · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
composio-user-api-key-sibling-placeholders-placeholdercomposio · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
composio-user-api-key-snake-case-identifier-near-misscomposio · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
composio-user-api-key-trailing-glue-twincomposio · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-user-api-key-truncated-near-misscomposio · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
composio-user-api-key-uppercase-prefix-twincomposio · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
Sources
Documentation and code
- docs.composio.dev/reference/authenticating-to-composio
- github.com/trufflesecurity/trufflehog/issues/5321
- github.com/redact-secret/redact-secret/blob/270faf84dc12f6a4a4cf61fe3ffab7aadc4f7262/docs/audits/evidence/860/composio.md
- github.com/ComposioHQ/composio/tree/34484551843e575e79cca244d9fca3e4459f59e9
- github.com/gitleaks/gitleaks/issues/2276
Research log
- redact-secret/redact-secret#860Research issue
- redact-secret/redact-secret#909Research issue
- redact-secret/redact-secret-benchmarks#434Research issue
- Final evidence, pinned to a commit/redact-secret/redact-secret/blob/8b6a5fde52ecb4dfce13f09c7a947062d21483c7/docs/audits/evidence/860/composio.md