redact-secret · Report · Detector
Composio API keys
Format evidence
- Provider documentation provider staff statement of 2026-09-17 (ak_ + 20 nanoid) and the provider OpenAPI example (ak_ + 20) · observed 2026-09-28 · a dated statement by Composio's Head of Security (ruling R3) and the provider OpenAPI example fix ak_ + exactly 20 [A-Za-z0-9_-]; the docs name the prefix and the x-api-key header
- Reference 1
- Reference 2
- Reference 3
- Reference 4
- Reference 5
- Reference 6
- Reference 7
- Reference 8
- Reference 9
- Reference 10
- Reference 11
- Reference 12
- Reference 13
- Reference 14
- Reference 15
Arrival evidence (#434, product redact-secret#909; #860 handoff composio.md, READY). The project key has full access to one project and its connected third-party accounts. T1 on every fact: documented prefix, a dated provider-staff statement (R3) for the width and alphabet, the OpenAPI example for the width and the CLI redaction regex for the alphabet (R2). The short ak_ prefix with a _/- alphabet would match snake_case and kebab-case identifiers, so the contract carries the handoff's mixed-case guard (at least one upper- and one lower-case letter; ~6e-5 of random bodies fail it, an accepted false negative), and all-lower/all-upper bodies back twins. A mixed-case 20-byte identifier after ak_ remains an accepted false positive. bkend.ai's ak_ + 64 hex is another provider's credential and a twin, not a control. Neither pinned peer has a Composio rule. Graduated to a registry detector at the 1127bf9 re-pin (redact-secret PR #938).
What the run recorded, by group
| Group | Fixtures | Leaked or false alarms | Near-twins | Outcomes | Other scanners, same cell |
|---|---|---|---|---|---|
| Must not flag · Tool-corroborated | 21 | False alarmsat most 15.5%0 of 21 controls flagged | 21 quiet · 0 flagged |
| |
| Must not flag · Project policy | 8 | False alarmsat most 32.4%0 of 8 controls flagged | 8 quiet · 0 flagged |
| |
| Must redact · Provider-documented | 19 | Secret spans left readableat most 16.8%0 of 19 spans | Near-twins told apartat least 78.5%14 of 14 pairs | 19 redacted · 0 too much · 0 partly exposed · 0 missed |
|
- Fixtures
- 48
- Left readable
- 0
- Redacted too much
- 0
- False alarms
- 0
Fixtures for this detector
| Fixture | Kind and evidence | redact-secret |
|---|---|---|
composio-api-key-actions-envcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-bare-prosecomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-bearer-headercomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-chat-pastecomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-compose-envcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-csv-commacomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-digest-encoded-valuecomposio · benign-encoded-value | Must not flagT2 · Tool-corroborated | Quiet |
composio-api-key-dotenvcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-end-of-inputcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-exportcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-inside-xak-twincomposio · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-api-key-json-api-keycomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-json-tokencomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-key-shape-barecomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-key-shape-quotedcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-key-shape-unicode-crlfcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-mcp-configcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-provider-headercomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-sdk-kwargcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-ts-constructorcomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-x-api-key-headercomposio · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
composio-api-key-actions-secret-referencecomposio · templated-reference | Must not flagT3 · Project policy | Quiet |
composio-api-key-all-lowercase-body-twincomposio · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-api-key-all-uppercase-body-twincomposio · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-api-key-bkend-ak-64-hex-twincomposio · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-api-key-body-long-twincomposio · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-api-key-body-short-twincomposio · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-api-key-dot-in-body-twincomposio · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-api-key-ellipsis-placeholdercomposio · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
composio-api-key-env-reference-referencecomposio · templated-reference | Must not flagT3 · Project policy | Quiet |
composio-api-key-hyphen-prefix-twincomposio · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-api-key-inside-cak-twincomposio · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-api-key-inside-oak-twincomposio · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-api-key-inside-uak-twincomposio · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-api-key-kebab-case-identifier-near-misscomposio · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
composio-api-key-key-guidance-prosecomposio · prose-mention | Must not flagT3 · Project policy | Quiet |
composio-api-key-label-prosecomposio · benign-lookalike | Must not flagT3 · Project policy | Quiet |
composio-api-key-maskcomposio · benign-lookalike | Must not flagT3 · Project policy | Quiet |
composio-api-key-plus-in-body-twincomposio · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-api-key-prefix-onlycomposio · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
composio-api-key-project-id-public-idcomposio · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
composio-api-key-referencecomposio · benign-lookalike | Must not flagT3 · Project policy | Quiet |
composio-api-key-short-bodycomposio · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
composio-api-key-sibling-placeholders-placeholdercomposio · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
composio-api-key-snake-case-identifier-near-misscomposio · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
composio-api-key-trailing-glue-twincomposio · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
composio-api-key-truncated-near-misscomposio · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
composio-api-key-uppercase-prefix-twincomposio · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |