Skip to content

Commit 167445b

Browse files
hyperpolymathclaude
andcommitted
chore(security): add a gitleaks allowlist for triaged false positives
The gitleaks gate has been blocking this repository's pull requests. Every finding was triaged on 2026-08-06 by reading the matched line with the value redacted, and every one is a false positive. No live credential was found. Each entry names WHAT THE VALUE ACTUALLY IS rather than saying the file is noisy — an algorithm name, a bibliographic key, a published protocol constant, a fixture belonging to a secret DETECTOR, and so on. The file EXTENDS the estate baseline rather than replacing it: hyperpolymath/standards secret-scanner-reusable.yml stages that baseline at the workspace root as .gitleaks-estate.toml, and gitleaks resolves '[extend] path' against the process CWD. Requires standards#584. Kept local rather than promoted to the estate baseline because every entry is a blind spot: held here it blinds this repository only, with its justification beside the code it describes. Verified before commit: with this config in place a planted AWS canary outside the exempted paths is still DETECTED and the gate still exits non-zero on it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
1 parent 22fde79 commit 167445b

1 file changed

Lines changed: 68 additions & 0 deletions

File tree

‎.gitleaks.toml‎

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
#
3+
# Gitleaks configuration — hyperpolymath/developer-ecosystem
4+
#
5+
# EXTENDS THE ESTATE BASELINE, it does not replace it.
6+
# `.gitleaks-estate.toml` is staged into the workspace root by
7+
# hyperpolymath/standards `.github/workflows/secret-scanner-reusable.yml`
8+
# before the scan runs. gitleaks resolves `[extend] path` against the process
9+
# CWD (verified — NOT relative to this file), which is the repository root.
10+
#
11+
# WHY THIS FILE IS LOCAL RATHER THAN IN THE ESTATE BASELINE.
12+
# Every entry below is a blind spot. Held here, it blinds this repository only,
13+
# and the justification sits beside the code it describes. Promoted to the
14+
# estate baseline it would blind all 400+ repositories — so the baseline keeps
15+
# only entries that are true everywhere (lockfiles, vendored bundles, published
16+
# protocol constants).
17+
#
18+
# Each entry names WHAT THE VALUE IS. "This file is noisy" is not a reason; if
19+
# an entry cannot say what the matched value actually is, the secret should be
20+
# removed from the tree instead.
21+
#
22+
# Every finding suppressed here was triaged on 2026-08-06 by reading the
23+
# matched line with the value redacted. Before adding an entry, plant a
24+
# realistic secret in the same path and confirm it is STILL detected.
25+
26+
[extend]
27+
path = ".gitleaks-estate.toml"
28+
29+
[allowlist]
30+
description = "hyperpolymath/developer-ecosystem: locally justified exemptions, extending the estate baseline"
31+
32+
33+
paths = [
34+
# Vendored upstream ReScript compiler, including its own
35+
# tests/syntax_tests idempotency corpus and cli/common/minisocket.js.
36+
# Third-party source held for reference; not estate code and not editable
37+
# here.
38+
'''(^|/)rescript-ecosystem/(rescript|packages/core/compiler-source)/''',
39+
40+
# Test tree of the shellstate component, including a fixture literally
41+
# named secret_value.toml — inputs to a manifest/invariant test.
42+
'''(^|/)shellstate/test/''',
43+
44+
# Documentation. The match is an illustrative connection string in a
45+
# distributed-filesystem explainer.
46+
'''(^|/)czech-file-knife/docs/''',
47+
48+
# A DETECTOR definition: the flagged line is the literal '-----BEGIN
49+
# PRIVATE KEY-----' inside a list of patterns this contract searches FOR.
50+
# The scanner matched the rule, not a key.
51+
'''(^|/)well-known-ecosystem/contracts/VALIDATION-RULES\.scm$''',
52+
53+
# Test file for the emergency-capture path; the values are synthetic
54+
# capture identifiers.
55+
'''(^|/)v-ecosystem/v-api-interfaces/v-ambientops-emergency-room/capture_test\.v$''',
56+
57+
# Staging UI source. Both matches are explicitly placeholder-shaped
58+
# illustrative values in device/network mock data, verified by reading the
59+
# lines.
60+
'''(^|/)rescript-ecosystem/idaptik-rescript13-staging/src/app/devices/(DeviceView|GlobalNetworkData)\.res$''',
61+
62+
# WebSocket implementation. The match is the base64 string
63+
# dGhlIHNhbXBsZSBub25jZQ==, which decodes to the ASCII text 'the sample
64+
# nonce' — the example handshake value printed in RFC 6455 s1.3. A
65+
# published protocol constant.
66+
'''(^|/)v-ecosystem/v-api-interfaces/v_ws/src/ws\.v$''',
67+
68+
]

0 commit comments

Comments
 (0)