Skip to content

Commit 9d4f8b7

Browse files
committed
docs: align documentation with paths-le standards and fix false claims
- Add missing documentation files (ARCHITECTURE.md, COMMANDS.md, I18N.md, governance docs) - Fix false claims in README: 4 commands (was 5), 4 languages (was 13), 19 secret types (was 15+) - Remove non-standard FILE_TYPE_ANALYSIS.md - Verify all metrics are accurate (17 tests, 1 test file) - Update PERFORMANCE.md and TESTING.md to match paths-le quality standards
1 parent 336b6e6 commit 9d4f8b7

15 files changed

Lines changed: 1911 additions & 486 deletions

File tree

README.md

Lines changed: 98 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -32,33 +32,56 @@
3232

3333
## ⚡ See It In Action
3434

35-
**Before**: Manually searching for hardcoded secrets (30+ minutes)
35+
**Before**: Manually searching for hardcoded secrets across 100+ files (30+ minutes)
3636

3737
```javascript
38+
// File: src/config.js
3839
const apiKey = "AKIAIOSFODNN7EXAMPLE"
39-
const password = "mypassword123"
40-
// ... searching through 100+ files
40+
41+
// File: .env
42+
DATABASE_PASSWORD=mysecret123
43+
44+
// File: credentials.json
45+
{"github_token": "ghp_xxxxx"}
46+
// ... searching through entire codebase
4147
```
4248

43-
**After**: One command detects all secrets automatically
49+
**After**: One command scans entire workspace and detects all secrets automatically
4450

4551
```
46-
AWS Access Key (line 1) - Confidence: High
47-
Password (line 2) - Confidence: Medium
48-
GitHub Token (line 15) - Confidence: High
49-
... (12 secrets total)
52+
📄 src/config.js (1 secret(s))
53+
AWS-KEY (1)
54+
- Line 2, Column 14
55+
Key: apiKey
56+
Confidence: high
57+
58+
📄 .env (1 secret(s))
59+
PASSWORD (1)
60+
- Line 15, Column 18
61+
Key: DATABASE_PASSWORD
62+
Confidence: medium
63+
64+
📄 credentials.json (1 secret(s))
65+
TOKEN (1)
66+
- Line 3, Column 18
67+
Key: github_token
68+
Confidence: high
69+
70+
... (12 secrets found across 8 files, 247 files scanned)
5071
```
5172

5273
---
5374

5475
## ✅ Why Secrets-LE?
5576

56-
- **15+ secret types detected** - AWS, Azure, GCP, GitHub, JWT, passwords, private keys
77+
- **19 secret types detected** - API keys, AWS, Azure, GCP, JWT, tokens, passwords, private keys
78+
- **Workspace-wide scanning** - Scans entire project, not just single files
5779
- **Zero Config** - Install → Press `Cmd+Alt+S` → Done
5880
- **100% Local** - No data leaves your machine, ever
5981
- **GitGuardian-level detection** - Without the cloud dependency
82+
- **Smart exclusions** - Automatically skips node_modules, .git, dist, and other build artifacts
6083

61-
Perfect for pre-commit checks, security audits, and credential management.
84+
Perfect for pre-commit checks, security audits, and credential management across entire codebases.
6285

6386
---
6487

@@ -71,12 +94,14 @@ If Secrets-LE saves you time, a quick rating helps other developers discover it:
7194

7295
### Key Features
7396

97+
- **Workspace Scanning** - Scans entire project for secrets across all files
7498
- **Detect Secrets** - Find API keys, tokens, passwords, and private keys
99+
- **Smart File Filtering** - Automatically excludes node_modules, .git, build artifacts
75100
- **Sanitize Content** - Automatically replace secrets with safe placeholders
76101
- **Configurable Sensitivity** - Adjust detection levels (low, medium, high)
77102
- **Security-First** - Detects AWS, Azure, GCP keys, JWT tokens, and more
78103
- **Universal Support** - Works on any text file format
79-
- **13 languages** - English, Chinese, German, Spanish, French, Indonesian, Italian, Japanese, Korean, Portuguese, Russian, Ukrainian, Vietnamese
104+
- **4 languages** - English (base), German, Spanish, French
80105

81106
## 🚀 More from the LE Family
82107

@@ -90,10 +115,12 @@ If Secrets-LE saves you time, a quick rating helps other developers discover it:
90115

91116
## 💡 Use Cases
92117

93-
- **Pre-Commit Checks** - Scan files before committing to prevent credential leaks
94-
- **Security Audits** - Find hardcoded secrets across entire codebase
118+
- **Pre-Commit Checks** - Scan entire workspace before committing to prevent credential leaks
119+
- **Security Audits** - Find hardcoded secrets across entire codebase automatically
120+
- **Project Security** - Scan all files in your workspace for exposed credentials
95121
- **Config Validation** - Ensure no secrets in config files before deployment
96-
- **Code Review** - Quick scan during pull request reviews
122+
- **Code Review** - Quick workspace scan during pull request reviews
123+
- **Compliance** - Regular scans to maintain security standards
97124

98125
### Detecting API Keys & Credentials
99126

@@ -150,18 +177,19 @@ MIIEpAIBAAKCAQEA... # ✅ Detected
150177
## 🚀 Quick Start
151178

152179
1. Install from [Open VSX](https://open-vsx.org/extension/OffensiveEdge/secrets-le) or [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.secrets-le)
153-
2. Open any file (`.js`, `.ts`, `.json`, `.env`, `.py`, or any text file)
180+
2. Open a workspace folder in VS Code
154181
3. Run `Secrets-LE: Detect Secrets` (`Cmd+Alt+S` / `Ctrl+Alt+S`)
155-
4. Review detected secrets and sanitize if needed
182+
4. Review detected secrets grouped by file and type
183+
5. Sanitize secrets if needed using the sanitize command
156184

157185
## 📋 Available Commands
158186

159-
Secrets-LE provides **5 commands** accessible via Command Palette (`Ctrl+Shift+P` / `Cmd+Shift+P`):
187+
Secrets-LE provides **4 commands** accessible via Command Palette (`Ctrl+Shift+P` / `Cmd+Shift+P`):
160188

161189
### Core Commands
162190

163-
- **Detect Secrets** (`Cmd/Ctrl+Alt+S`) - Scan for API keys, tokens, passwords
164-
- **Sanitize Secrets** - Replace detected secrets with safe placeholders
191+
- **Detect Secrets** (`Cmd/Ctrl+Alt+S`) - Scan entire workspace for API keys, tokens, passwords
192+
- **Sanitize Secrets** - Replace detected secrets with safe placeholders in active file
165193

166194
### Settings & Help
167195

@@ -174,19 +202,40 @@ Secrets-LE has minimal configuration to keep things simple. Most settings are av
174202

175203
Key settings include:
176204

177-
- Detection sensitivity (low, medium, high)
178-
- Secret type filters (API keys, passwords, tokens, private keys)
179-
- Sanitization replacement text
180-
- Deduplication options
181-
- Output format preferences (side-by-side, clipboard copy)
182-
- Safety warnings and thresholds
183-
- Notification levels (silent, important, all)
205+
- **Workspace scanning**:
206+
- File patterns to scan (`workspace.scanPatterns`, default: `**/*`)
207+
- Exclude patterns (`workspace.scanExcludes`, default: node_modules, .git, dist, etc.)
208+
- Maximum files to scan (`workspace.scanMaxFiles`, default: 10000)
209+
- **Detection**:
210+
- Sensitivity (low, medium, high)
211+
- Secret type filters (API keys, passwords, tokens, private keys)
212+
- **Output**:
213+
- Sanitization replacement text
214+
- Deduplication options
215+
- Format preferences (side-by-side, clipboard copy)
216+
- **Safety**:
217+
- File size warnings and thresholds
218+
- Notification levels (silent, important, all)
184219

185220
For the complete list of available settings, open VS Code Settings and search for "secrets-le".
186221

187222
## 📁 Supported File Types
188223

189-
**Secrets-LE works universally on any text file!** Detection uses regex patterns applied directly to text content.
224+
**Secrets-LE works universally on any text file in your workspace!** Detection uses regex patterns applied directly to text content. The extension scans your entire workspace and processes all text files by default.
225+
226+
### Workspace Scanning
227+
228+
By default, Secrets-LE scans all files (`**/*`) but automatically excludes:
229+
- `node_modules/**` - Dependencies
230+
- `.git/**` - Version control
231+
- `dist/**`, `build/**` - Build outputs
232+
- `.next/**`, `coverage/**` - Framework artifacts
233+
- `*.min.js`, `*.bundle.js` - Minified files
234+
- Lock files (`package-lock.json`, `yarn.lock`, etc.)
235+
236+
You can customize scan patterns and exclusions in settings.
237+
238+
### File Type Support
190239

191240
| Category | File Types |
192241
| ----------------- | ----------------------------------------------------------------------------------- |
@@ -197,6 +246,8 @@ For the complete list of available settings, open VS Code Settings and search fo
197246
| **Documentation** | Markdown, Plain Text, Log Files |
198247
| **Shell** | Bash, Zsh, PowerShell, Batch |
199248

249+
**All text files are supported** - Once the extension is activated, it can scan any text file in your workspace.
250+
200251
### What Gets Detected
201252

202253
**API Keys & Credentials**:
@@ -227,7 +278,7 @@ For the complete list of available settings, open VS Code Settings and search fo
227278

228279
## 🌍 Language Support
229280

230-
**13 languages**: English, German, Spanish, French, Indonesian, Italian, Japanese, Korean, Portuguese (Brazil), Russian, Ukrainian, Vietnamese, Chinese (Simplified)
281+
**4 languages**: English (base), German, Spanish, French
231282

232283
## 🧩 System Requirements
233284

@@ -247,18 +298,30 @@ For detailed information, see [Performance Monitoring](docs/PERFORMANCE.md).
247298
## 🔧 Troubleshooting
248299

249300
**Not detecting secrets?**
250-
Ensure file is saved and check sensitivity level in settings
301+
- Ensure workspace folder is open (not just a file)
302+
- Check sensitivity level in settings (try "high" for maximum detection)
303+
- Verify scan patterns include your file types in settings
304+
305+
**Scanning too many files?**
306+
- Adjust `workspace.scanMaxFiles` to limit the number of files scanned
307+
- Add more exclude patterns to skip build artifacts or generated files
251308

252309
**False positives?**
253-
Lower sensitivity level or disable specific secret types
310+
- Lower sensitivity level or disable specific secret types
311+
- Review detected secrets - some may be example/test values
312+
313+
**Performance issues?**
314+
- Reduce `workspace.scanMaxFiles` limit
315+
- Add more exclude patterns to skip large directories
316+
- Check [Performance Monitoring](docs/PERFORMANCE.md) for optimization tips
254317

255318
**Need help?**
256319
Check [Issues](https://github.com/OffensiveEdge/secrets-le/issues) or enable logging: `secrets-le.telemetryEnabled: true`
257320

258321
## ❓ FAQ
259322

260323
**What secrets are detected?**
261-
15+ types including AWS, Azure, GCP, GitHub, JWT, passwords, private keys
324+
19 types including API keys, AWS, Azure, GCP, JWT, tokens, passwords, private keys
262325

263326
**Does it send data anywhere?**
264327
No! 100% local processing. No network requests ever
@@ -269,6 +332,9 @@ Yes! Adjust sensitivity levels and enable/disable specific secret types
269332
**How accurate is detection?**
270333
High accuracy with configurable sensitivity to reduce false positives
271334

335+
**Does it scan the entire workspace?**
336+
Yes! By default it scans all files in your workspace, excluding common directories like node_modules and .git. You can customize scan patterns in settings.
337+
272338
## 📊 Testing
273339

274340
**17 unit tests across 1 test file** • Powered by Vitest • Run with `bun run test:coverage`
@@ -279,7 +345,7 @@ High accuracy with configurable sensitivity to reduce false positives
279345

280346
### Test Suite Highlights
281347

282-
- **Comprehensive secret detection** across 15+ types
348+
- **Comprehensive secret detection** across 19 types
283349
- **Sanitization validation** with replacement verification
284350
- **Error handling** with graceful degradation
285351
- **Security-focused** testing for edge cases

coverage/index.html

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -23,30 +23,30 @@ <h1>All files</h1>
2323
<div class='clearfix'>
2424

2525
<div class='fl pad1y space-right2'>
26-
<span class="strong">25.44% </span>
26+
<span class="strong">21.82% </span>
2727
<span class="quiet">Statements</span>
28-
<span class='fraction'>302/1187</span>
28+
<span class='fraction'>302/1384</span>
2929
</div>
3030

3131

3232
<div class='fl pad1y space-right2'>
33-
<span class="strong">74.41% </span>
33+
<span class="strong">73.56% </span>
3434
<span class="quiet">Branches</span>
35-
<span class='fraction'>64/86</span>
35+
<span class='fraction'>64/87</span>
3636
</div>
3737

3838

3939
<div class='fl pad1y space-right2'>
40-
<span class="strong">40.81% </span>
40+
<span class="strong">40% </span>
4141
<span class="quiet">Functions</span>
42-
<span class='fraction'>20/49</span>
42+
<span class='fraction'>20/50</span>
4343
</div>
4444

4545

4646
<div class='fl pad1y space-right2'>
47-
<span class="strong">25.44% </span>
47+
<span class="strong">21.82% </span>
4848
<span class="quiet">Lines</span>
49-
<span class='fraction'>302/1187</span>
49+
<span class='fraction'>302/1384</span>
5050
</div>
5151

5252

@@ -84,28 +84,28 @@ <h1>All files</h1>
8484
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
8585
</td>
8686
<td data-value="0" class="pct low">0%</td>
87-
<td data-value="96" class="abs low">0/96</td>
87+
<td data-value="118" class="abs low">0/118</td>
8888
<td data-value="0" class="pct low">0%</td>
8989
<td data-value="2" class="abs low">0/2</td>
9090
<td data-value="0" class="pct low">0%</td>
9191
<td data-value="2" class="abs low">0/2</td>
9292
<td data-value="0" class="pct low">0%</td>
93-
<td data-value="96" class="abs low">0/96</td>
93+
<td data-value="118" class="abs low">0/118</td>
9494
</tr>
9595

9696
<tr>
97-
<td class="file medium" data-value="extraction"><a href="extraction/index.html">extraction</a></td>
98-
<td data-value="51.89" class="pic medium">
99-
<div class="chart"><div class="cover-fill" style="width: 51%"></div><div class="cover-empty" style="width: 49%"></div></div>
97+
<td class="file low" data-value="extraction"><a href="extraction/index.html">extraction</a></td>
98+
<td data-value="47.48" class="pic low">
99+
<div class="chart"><div class="cover-fill" style="width: 47%"></div><div class="cover-empty" style="width: 53%"></div></div>
100100
</td>
101-
<td data-value="51.89" class="pct medium">51.89%</td>
102-
<td data-value="582" class="abs medium">302/582</td>
101+
<td data-value="47.48" class="pct low">47.48%</td>
102+
<td data-value="636" class="abs low">302/636</td>
103103
<td data-value="78.48" class="pct medium">78.48%</td>
104104
<td data-value="79" class="abs medium">62/79</td>
105105
<td data-value="42.85" class="pct low">42.85%</td>
106106
<td data-value="42" class="abs low">18/42</td>
107-
<td data-value="51.89" class="pct medium">51.89%</td>
108-
<td data-value="582" class="abs medium">302/582</td>
107+
<td data-value="47.48" class="pct low">47.48%</td>
108+
<td data-value="636" class="abs low">302/636</td>
109109
</tr>
110110

111111
<tr>
@@ -129,13 +129,13 @@ <h1>All files</h1>
129129
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
130130
</td>
131131
<td data-value="0" class="pct low">0%</td>
132-
<td data-value="506" class="abs low">0/506</td>
133-
<td data-value="25" class="pct low">25%</td>
134-
<td data-value="4" class="abs low">1/4</td>
135-
<td data-value="25" class="pct low">25%</td>
136-
<td data-value="4" class="abs low">1/4</td>
132+
<td data-value="627" class="abs low">0/627</td>
133+
<td data-value="20" class="pct low">20%</td>
134+
<td data-value="5" class="abs low">1/5</td>
135+
<td data-value="20" class="pct low">20%</td>
136+
<td data-value="5" class="abs low">1/5</td>
137137
<td data-value="0" class="pct low">0%</td>
138-
<td data-value="506" class="abs low">0/506</td>
138+
<td data-value="627" class="abs low">0/627</td>
139139
</tr>
140140

141141
</tbody>
@@ -146,7 +146,7 @@ <h1>All files</h1>
146146
<div class='footer quiet pad2 space-top1 center small'>
147147
Code coverage generated by
148148
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149-
at 2025-11-02T14:40:49.777Z
149+
at 2025-11-02T17:05:34.031Z
150150
</div>
151151
<script src="prettify.js"></script>
152152
<script>

0 commit comments

Comments
 (0)