This document outlines the security measures and privacy protections implemented in the AI Assistant to prevent sensitive data exposure.
These files contain personal data and are automatically excluded from version control:
config/discovered_apps.json- Your installed applications listconfig/app_usage.db- Your application usage tracking databaseconfig/user_settings.json- Your personal preferences and settingsconfig/multimodal_config.json- API keys and voice configurationai_assistant/config/contacts.json- Phone numbers and contact informationconfig/app_integration.env- Application integration credentials- All
*.dbfiles - SQLite databases with personal data - All
*.envfiles (except.examplefiles) - Environment variables with secrets
data/- 30+ database files with learning history, chat logs, commands, etc.user_data/- User actions, queries, and replies logslogs/- Application logs that may contain PIIoffline_cache/- Cached datamodel/vosk-*- Large voice recognition models
These template files are tracked in git and contain no personal data:
config/*.example- Template configuration filesapi_keys.json.example- API key structure example- Documentation and README files
- Source code files
When you clone this repository on a new machine:
-
Run the setup script (automatically copies example files):
python setup_config.py
OR just start the app (auto-initializes):
python main.py
-
Configure your personal data:
- Edit
config/multimodal_config.json- Add your API keys - Edit
ai_assistant/config/contacts.json- Add your contacts - Edit
config/user_settings.json- Customize your preferences - Create
config/app_integration.env- Add integration credentials
- Edit
-
Your data stays local - These files will never be pushed to GitHub
- β
Always use
.examplefiles for templates - β
Update
.gitignorebefore adding new config files - β
Use
git ls-filesto verify nothing sensitive is tracked - β
Review commits before pushing:
git diff --cached - β Never commit files with real API keys, passwords, or personal data
- β Never hardcode secrets in source code
- β
Keep your
.envand config files backed up locally - β
Review your
.gitignoreif you fork this repo - β Use environment variables for sensitive data
- β Don't share your
data/orconfig/directories - β Don't commit personalized configuration files
The application automatically:
- Checks if config files exist on startup
- Copies
.examplefiles to actual config files if missing - Scans for installed applications (stored locally only)
- Creates databases as needed (never tracked in git)
To check for accidentally committed sensitive data:
# Check tracked files in sensitive directories
git ls-files | grep -E "(config|data|user_data|logs)/"
# Search for potential secrets in tracked files
git ls-files -z | xargs -0 grep -E "(api_key|secret|password|token)" --include="*.py" --include="*.json"
# Check what's in your last commit
git show --name-only
# See file sizes in repo (detect large databases)
git count-objects -vH- Personal app list not committed (
discovered_apps.json) - User preferences not committed (
user_settings.json) - API keys protected (
multimodal_config.json,.envfiles) - Contact information protected (
contacts.json) - Database files ignored (
*.db) - Log files ignored (
*.log) - Cache directories ignored
- User data directories ignored
- Example files created for all sensitive configs
- Auto-initialization implemented
- Documentation updated
-
Remove from git tracking (keeps local file):
git rm --cached path/to/sensitive/file
-
Add to .gitignore:
echo "path/to/sensitive/file" >> .gitignore
-
Commit the fix:
git add .gitignore git commit -m "security: Remove sensitive file from tracking" -
Remove from git history (if already pushed):
git filter-branch --force --index-filter \ "git rm --cached --ignore-unmatch path/to/sensitive/file" \ --prune-empty --tag-name-filter cat -- --allβ οΈ Warning: This rewrites history. Force push required:git push origin --force --all -
Rotate compromised secrets: If API keys or passwords were exposed, rotate them immediately!
If you discover a security vulnerability, please:
- Do NOT open a public issue
- Contact the maintainer privately
- Provide details about the vulnerability
- Allow time for a fix before public disclosure
Periodically audit your repository:
- Run
git ls-files | grep -E "(json|db|env)$"monthly - Review
.gitignorewhen adding new features - Check for hardcoded secrets in code reviews
- Update this document when adding new config files
Last Updated: December 19, 2025 Version: 1.0