dbfc8a2a32
C3 - config.yml contains credentials, remove from git tracking:
- Add backend/config.yml to .gitignore
- git rm --cached to untrack it
- Add backend/config.yml.example with instructions
C1 - SECRET_KEY must come from .env, no unsafe default:
- Remove hardcoded "change_me_in_production" default from config.py
- App now fails to start if SECRET_KEY is not set (pydantic required field)
- Generate real random key in backend/.env (gitignored)
- Add backend/.env.example for new contributors
H1 - WebSocket /ws/status was unauthenticated:
- Backend: require ?token= query param, validate via decode_token(),
close with code 1008 (Policy Violation) if missing or invalid
- Frontend: append ?token=<jwt> to WebSocket URL
54 lines
575 B
Plaintext
54 lines
575 B
Plaintext
# Claude / project meta — never commit
|
|
CLAUDE.md
|
|
FEATURES.md
|
|
.claude/
|
|
_project_specs/
|
|
|
|
# Environment files - NEVER commit
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
|
|
# Secrets
|
|
*.pem
|
|
*.key
|
|
*.p12
|
|
credentials.json
|
|
secrets.json
|
|
service-account*.json
|
|
|
|
# Dependencies
|
|
node_modules/
|
|
__pycache__/
|
|
*.pyc
|
|
.venv/
|
|
venv/
|
|
|
|
# Build outputs
|
|
dist/
|
|
build/
|
|
|
|
# IDE
|
|
.idea/
|
|
.vscode/settings.json
|
|
.DS_Store
|
|
|
|
# Python
|
|
*.egg-info/
|
|
.pytest_cache/
|
|
.mypy_cache/
|
|
.ruff_cache/
|
|
htmlcov/
|
|
.coverage
|
|
|
|
# App config — contains credentials, never commit
|
|
backend/config.yml
|
|
|
|
# SQLite
|
|
*.db
|
|
*.db-shm
|
|
*.db-wal
|
|
|
|
# Docker
|
|
.docker/
|