-
Notifications
You must be signed in to change notification settings - Fork 1
security
Bryan edited this page Jun 13, 2026
·
1 revision
Lode's main security boundary is local repository source. The project is designed to keep indexed facts on local disk and avoid hosted telemetry or external code-search services by default.
| Boundary | Source path | Notes |
|---|---|---|
| Local repository input | src/lode/indexer.py |
Parses untrusted source files from a selected repo path. |
| SQLite data directory |
src/lode/storage.py, src/lode/config.py
|
Stores source-derived metadata and snippets locally. |
| Local HTTP daemon | src/lode/daemon.py |
Binds to localhost by default. |
| Embedding service |
src/lode/embeddings.py, docker-compose.yml
|
Optional local HTTP call to a configured embedding URL. |
| Logs | src/lode/observability.py |
Redacts sensitive field names before structured logging. |
sanitize() in src/lode/observability.py redacts keys containing password, secret, token, key, or authorization. New log events should use log_event() so the same redaction path applies.
CI runs Bandit and pip-audit in .github/workflows/ci.yml, while CodeQL runs through .github/workflows/codeql.yml. Dependency update automation is configured in .github/dependabot.yml and renovate.json.
- Keep daemon binds local unless the user explicitly chooses otherwise.
- Treat repository contents as sensitive when adding new outputs or logs.
- Prefer
.env.examplefor documented environment variables and never commit local.envfiles.