redact-secret · Report
Deploy token (CLOJARS_)
CLOJARS_ + exactly 60 lowercase hex (68 in all), exactly the server validator; the prefix is case-sensitive.
Research record
3 events in the review history: 2 observed, 1 reviewed. Latest: observed on 2026-09-29 by automation, project maintainer. Project-maintained review is not independent validation. The family record at this release.
Format
What it looks like
- Descriptive pattern
^CLOJARS_[0-9a-f]{60}$
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-29clojars/clojars-web src/clojars/db.clj (442eb89, last changed 2026-09-16): generate-deploy-token = (str "CLOJARS_" (hexadecimalize (generate-secure-token 30))), hexadecimalize formats %02X then lowercases, and is-deploy-token? is #"^CLOJARS_[0-9a-f]{60}$"; re-checked 2026-09-29: CLOJARS_ + exactly 60 lowercase hex, 68 in all; no checksum
- clojars/clojars-web @ 442eb895e7ab3449161848d8c368d4783c5f0067: src/clojars/db.cljprovider-documentation · last read 2026-09-29 · latest outcome read · supports CLOJARS_ + exactly 60 lowercase hex, 68 in all; no checksum · #L799-L853
Unresolved ·
tool-corroboration· current · observed 2026-09-29Pinned scanner rules are consistent with the contract grammar (1 artifact: gitleaks 8.30.1).
- gitleaks/gitleaks @ v8.30.1: config/gitleaks.tomlscanner-rule-source · last read 2026-10-04 · latest outcome read · supports gitleaks 8.30.1: clojars-api-token: (?i)CLOJARS_[a-z0-9]{60} (case-insensitive and wider than hex)
Provider documented ·
field-prefix· current · observed 2026-09-29prefix: CLOJARS_ (uppercase, case-sensitive)
- clojars/clojars-web @ 442eb895e7ab3449161848d8c368d4783c5f0067: src/clojars/db.cljprovider-documentation · last read 2026-09-29 · latest outcome read · supports generate-deploy-token and is-deploy-token? · #L799-L853
Provider documented ·
field-body· current · observed 2026-09-29body: exactly 60 lowercase hex [0-9a-f] (30 secure-random bytes); 68 in all
- clojars/clojars-web @ 442eb895e7ab3449161848d8c368d4783c5f0067: src/clojars/db.cljprovider-documentation · last read 2026-09-29 · latest outcome read · supports hexadecimalize lowercases; the validator is [0-9a-f]{60} · #L799-L853
Unresolved ·
field-boundary· current · observed 2026-09-29boundary: a token glued to an identifier on either side ([A-Za-z0-9_-]) is not claimed (Handoff boundary decision, not a provider statement; the validator itself is anchored.)
- redact-secret/redact-secret @ 4f220ea000b58fa2e0e431ad88dea4eccb393fb0: docs/audits/evidence/1014/clojars.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports implementation notes
Provider documented ·
field-transport· current · observed 2026-09-29transport: CLOJARS_PASSWORD in CI; a Leiningen :password entry; a Maven ~/.m2/settings.xml <password> element
- redact-secret/redact-secret @ 4f220ea000b58fa2e0e431ad88dea4eccb393fb0: docs/audits/evidence/1014/clojars.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports test axes
Provider documented ·
field-env-names· current · observed 2026-09-29env-names: CLOJARS_USERNAME, CLOJARS_PASSWORD and CLOJARS_ENVIRONMENT are variable names, not tokens (Benign controls: they fail the 60-hex body.)
- redact-secret/redact-secret @ 4f220ea000b58fa2e0e431ad88dea4eccb393fb0: docs/audits/evidence/1014/clojars.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports excluded shapes
Tool corroborated ·
field-peer-lag· current · observed 2026-09-29peer-lag: gitleaks 8.30.1 clojars-api-token (?i)CLOJARS_[a-z0-9]{60} (entropy 2) has no boundary and is case-insensitive over [a-z0-9]: it reads every positive and overreaches on clojars_, uppercase-hex and non-hex-letter bodies, leading glue and a 61-byte body (it matches the first 60). Mapped to clojars-deploy-token. No Clojars rule in trufflehog 3.97.4
- gitleaks/gitleaks @ v8.30.1: config/gitleaks.tomlscanner-rule-source · last read 2026-10-04 · latest outcome read · supports clojars-api-token
- trufflesecurity/trufflehog @ v3.97.4: pkg/detectorsscanner-rule-source · last read 2026-09-29 · latest outcome read · supports no clojars detector directory at the pinned version
Unresolved ·
listed-references· current · observed 2026-09-29The legacy contract lists 8 references without stating which property each supports.
- clojars/clojars-web @ 442eb895e7ab3449161848d8c368d4783c5f0067: src/clojars/db.cljprovider-documentation · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract · #L799-L853
- redact-secret/redact-secret @ 4f220ea000b58fa2e0e431ad88dea4eccb393fb0: docs/audits/evidence/1014/README.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/1014issue-or-discussion · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract · #issuecomment-5900447282
- github.com/redact-secret/redact-secret/issues/1014issue-or-discussion · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract
- redact-secret/redact-secret @ 4f220ea000b58fa2e0e431ad88dea4eccb393fb0: docs/audits/evidence/1014/clojars.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/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-benchmarks/issues/528issue-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/issues/1025issue-or-discussion · 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-29Legacy dossier research (verdict ready, tier T1) cited 2 sources; the dossier does not attribute sources to individual properties.
- clojars/clojars-web @ 442eb895e7ab3449161848d8c368d4783c5f0067: src/clojars/db.cljprovider-documentation · last read 2026-09-29 · latest outcome read · supports Cited by the legacy dossier research for this family · #L799-L853
- redact-secret/redact-secret @ 378581770a87751d72e27529796c4f790649fd00: docs/audits/evidence/1014/clojars.mdproject-research-note · last read 2026-09-29 · latest outcome read · supports Final research evidence recorded by the legacy dossier
Provider documented ·
taxonomy-sources· current · observed 2026-09-29The legacy taxonomy lists 2 sources for this family. The taxonomy records no date; the dossier researchedAt is used as the observed-at date.
- clojars/clojars-web @ 442eb895e7ab3449161848d8c368d4783c5f0067: src/clojars/db.cljprovider-documentation · last read 2026-09-29 · latest outcome read · supports Listed as a source for this family in the legacy taxonomy · #L799-L853
- redact-secret/redact-secret @ 4f220ea000b58fa2e0e431ad88dea4eccb393fb0: docs/audits/evidence/1014/clojars.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
CLOJARS_(uppercase, case-sensitive) + exactly 60 lowercase hex (68 in all).- Basis
- T1 under R1: the generator and the server validator
#"^CLOJARS_[0-9a-f]{60}$"agree. - Issuance
- not attempted; the grammar is T1 from provider sources, so no key is needed.
- Contract in core
- detector-families.md (row on
main; the Beta.12 detector, redact-secret#1025, merged in redact-secret#1039 and is unreleased).
In this benchmark
- Fixtures
- 37
- Left readable
- 0
- Redacted too much
- 0
- False alarms
- 0
37 fixtures: 15 expect a redaction, 22 must stay quiet. See every row
| Evidence level | Fixtures | Left readable | Too much | False alarms |
|---|---|---|---|---|
| T1Provider-documented | 15 | 0 | 0 | 0 |
| T2Tool-corroborated | 15 | 0 | 0 | 0 |
| T3Project policy | 7 | 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 | 37 | 14 | 1 | 0 |
| gitleaksRepository scanner · 8.30.1 · Directory scan · default rules1 rule targets it | 37 | 0 | 0 | 8 |
| redact-secretProduct measured here · 0.1.0-beta.14 · Published npm package · default detectors1 detector mapped | 37 | 0 | 0 | 0 |
| trufflehogRepository scanner · 3.97.4 · Filesystem scan · verification disabledNo rule maps to it | 37 | 15 | 0 | 0 |
Looks like it, but isn't
- Collisions
CLOJARS_USERNAME/CLOJARS_PASSWORD/CLOJARS_ENVIRONMENTvariable names fail the body.
Scanner rules for this family
| Scanner | Rule | What the rule matches |
|---|---|---|
| gitleaks · rules 8.30.1 | clojars-api-token | CLOJARS_ + 60 characters |
No rule maps to this family in flare-redact, openredaction, trufflehog.
Fixtures in this family
| Fixture | Kind and evidence | redact-secret |
|---|---|---|
clojars-deploy-token-actions-envclojars · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
clojars-deploy-token-bare-proseclojars · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
clojars-deploy-token-bearer-headerclojars · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
clojars-deploy-token-body-61-twinclojars · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
clojars-deploy-token-chat-pasteclojars · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
clojars-deploy-token-dotenvclojars · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
clojars-deploy-token-exportclojars · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
clojars-deploy-token-json-api-keyclojars · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
clojars-deploy-token-json-tokenclojars · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
clojars-deploy-token-key-shape-bareclojars · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
clojars-deploy-token-key-shape-quotedclojars · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
clojars-deploy-token-key-shape-unicode-crlfclojars · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
clojars-deploy-token-leading-glue-twinclojars · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
clojars-deploy-token-lein-credentialsclojars · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
clojars-deploy-token-lowercase-prefix-twinclojars · prefix-near-miss | Must not flagT2 · Tool-corroborated · twin | Quiet |
clojars-deploy-token-maven-settingsclojars · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
clojars-deploy-token-non-hex-letter-twinclojars · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
clojars-deploy-token-sdk-kwargclojars · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
clojars-deploy-token-trailing-hyphen-twinclojars · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
clojars-deploy-token-trailing-underscore-twinclojars · boundary-violation | Must not flagT2 · Tool-corroborated · twin | Quiet |
clojars-deploy-token-uppercase-hex-byte-twinclojars · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
clojars-deploy-token-uppercase-hex-value-near-missclojars · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
clojars-deploy-token-x-api-key-headerclojars · documented-format-literal | Must redactT1 · Provider-documented | Redacted |
clojars-deploy-token-actions-secret-referenceclojars · templated-reference | Must not flagT3 · Project policy | Quiet |
clojars-deploy-token-bare-60-hex-encoded-valueclojars · benign-encoded-value | Must not flagT2 · Tool-corroborated | Quiet |
clojars-deploy-token-body-59-twinclojars · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
clojars-deploy-token-ellipsis-placeholderclojars · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
clojars-deploy-token-env-name-list-public-idclojars · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
clojars-deploy-token-env-reference-referenceclojars · templated-reference | Must not flagT3 · Project policy | Quiet |
clojars-deploy-token-label-proseclojars · benign-lookalike | Must not flagT3 · Project policy | Quiet |
clojars-deploy-token-maskclojars · benign-lookalike | Must not flagT3 · Project policy | Quiet |
clojars-deploy-token-prefix-onlyclojars · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
clojars-deploy-token-referenceclojars · benign-lookalike | Must not flagT3 · Project policy | Quiet |
clojars-deploy-token-short-bodyclojars · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
clojars-deploy-token-token-guidance-proseclojars · prose-mention | Must not flagT3 · Project policy | Quiet |
clojars-deploy-token-truncated-near-missclojars · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
clojars-deploy-token-username-env-public-idclojars · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
Sources
Documentation and code
- github.com/clojars/clojars-web/blob/442eb895e7ab3449161848d8c368d4783c5f0067/src/clojars/db.clj#L799-L853
- github.com/redact-secret/redact-secret/blob/4f220ea000b58fa2e0e431ad88dea4eccb393fb0/docs/audits/evidence/1014/clojars.md
Research log
- redact-secret/redact-secret#1014Research issue
- redact-secret/redact-secret#1025Research issue
- redact-secret/redact-secret#1039Research issue
- redact-secret/redact-secret-benchmarks#528Research issue
- Final evidence, pinned to a commit/redact-secret/redact-secret/blob/378581770a87751d72e27529796c4f790649fd00/docs/audits/evidence/1014/clojars.md