"Sovereignty is not speed β it is the discipline to preview, confirm, then execute."
This document outlines security practices, backup recovery procedures, and responsible disclosure guidelines for Sovereign-DevKit, aligned with the Mkhitarian Philosophy of ethical, intentional execution.
| Version | Status | Security Support |
|---|---|---|
| v3.1.x | β Current | Full support + patches |
| v3.0.x | π‘ Maintenance | Critical fixes only |
| < v3.0 | π΄ End-of-Life | No security updates |
π Recommendation: Always use the latest
v3.1.xrelease for safety controls (--dry-run,--backup,--report).
- Intent Before Execution β Preview changes with
--dry-runbefore applying fixes. - Sovereignty Over Convenience β Auto-backups (
.bak) are enabled by default; you control your data. - Transparency By Design β All detection patterns are visible in-source; no hidden logic.
- Zero-Trust Output β Detected values are redacted (
[REDACTED]) even in scan logs. - Minimal Attack Surface β Zero external dependencies; pure Node.js built-ins only.
When using --fix (with default --backup), LogSanitizer.js creates a .bak copy before modifying any file:
# Original file
config.js
# After: node LogSanitizer.js config.js --fix
config.js # β Sanitized (leaks redacted)
config.js.bak # β Original content preservedIf you need to restore a file after redaction:
# 1. Verify the backup exists
ls -la config.js.bak
# 2. Restore the original
cp config.js.bak config.js
# 3. (Optional) Re-scan with stricter filters
node LogSanitizer.js config.js --ext .js --dry-run- β
Always test with
--dry-runfirst - β
Keep
.bakfiles locally until you confirm the fix is correct - β
Delete
.bakfiles only after verification:rm *.bak - β Never commit
.bakfiles to version control (ignored by default in.gitignore)
If LogSanitizer.js flags a value that is not a sensitive leak:
Check if the value appears in:
- Test/mock files (
test/,mocks/,__tests__/) - Documentation or comments
- Example configuration (
.env.example)
Future versions will auto-ignore known safe patterns. For now, use extension filtering:
# Scan only production-relevant files
node LogSanitizer.js ./src --ext .js,.ts,.envOpen an issue with:
## False Positive Report
- **File path**: `path/to/file.js`
- **Flagged pattern**: `[paste the regex name or sample]`
- **Why it's safe**: [brief explanation]
- **LogSanitizer.js version**: `v3.1.0`π β Open a New Issue
If you discover a genuine security vulnerability in Sovereign-DevKit:
- Contact the maintainer privately first (see below)
- Provide reproducible steps and impact assessment
- Allow reasonable time for a fix before public disclosure
- Exploit the vulnerability beyond testing
- Disclose details publicly before a patch is released
- Access or modify data you don't own
- Primary: GitHub Issue (private template)
- Secondary: ORCID Profile β Find contact info
- Response Time: Within 72 hours for critical issues
Before submitting a PR that modifies detection logic:
# 1. Run dry-run on test suite
node LogSanitizer.js ./tests --dry-run
# 2. Verify no false positives on clean files
node LogSanitizer.js ./src --ext .js --report
# 3. Confirm backup behavior
echo "TEST=sk-test-fake-key" > test.env
node LogSanitizer.js test.env --fix
[ -f test.env.bak ] && echo "β
Backup created"
# 4. Clean up test artifacts
rm -f test.env test.env.bak report.json| Threat | Mitigation |
|---|---|
| π Accidental key exposure | 35-pattern detection + --fix redaction |
| π¦ Leaked scan logs | Output values auto-redacted ([REDACTED]) |
| π₯ Malicious regex injection | Fresh RegExp per call; no eval() or dynamic code |
| π± Mobile environment risks | Zero dependencies; no network calls; local-only execution |
"Architecture is a product of thought β not infrastructure. Constraints refine systems instead of limiting them."
Every security decision in Sovereign-DevKit reflects the Mkhitarian Principles:
- π― Intent: Tools require conscious approval before modification
- π‘οΈ Sovereignty: Users retain full control over backups and data
- π Transparency: All logic is open-source and auditable
- β‘ Simplicity: Minimal code = minimal attack surface
- π± Human-First: Designed for mobile developers with limited resources
- License: MIT
- Author: El Madani El Mkhitar
- Philosophy: Mkhitarian Philosophy
"In the Name of the Creator, We Build."