# Claude
.claude/
CLAUDE.md

# macOS
.DS_Store
**/.DS_Store
**/._.DS_Store

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
venv/
.venv/
env/
.env
docker-compose.override.yml
*.egg-info/
dist/
build/

# Node
frontend/node_modules/
frontend/coverage/
npm-debug.log*

# Database
*.db
*.db-journal
*.db-wal
*.db-shm

# Archive files (user data)
archive/

# Firmware cache (downloaded firmware files)
firmware/

# Virtual printer (auto-generated certs and uploads at repo root)
/virtual_printer/

# IDE
.idea/
.vscode/
*.swp
*.swo

# Screenshots (development - root folder only)
/screenshots/

# Logs
*.log
logs/
*.log*
bambutrack.log.*
firmware/

# Node modules
node_modules/

# Runtime data dir (db, archives, backups). Anchored to the repo root on
# purpose: a bare `data/` also matches frontend/src/data and
# backend/app/data, which are source, not runtime state.
/data/

# Local-dev runtime caches (matplotlib MPLCONFIGDIR lands here when DATA_DIR
# is unset, so base_dir resolves to the repo root). In Docker this sits
# inside the /app/data volume and is already covered.
.cache/

# JWT secret file (should be in data dir, but protect project root too)
.jwt_secret

# MFA encryption key file (#1219) — same protection as .jwt_secret
.mfa_encryption_key

# SpoolBuddy SSH keys (generated at runtime for remote updates)
spoolbuddy/ssh/

# Security scan output
*.sarif

debug_logs/
db_backup/
support-packages/
backups/
bin/
advertisements/

# gitleaks reports
gitleaks-report.json

scripts/pip-audit.sh

security/

test_pipeline_archive_source.3mf
test_pipeline_run_1.3mf
