5ec1fc9b05
B1: Remove duplicate get_redis() — singleton no longer overwritten B2: Plugin routes now enforce activation status via require_active_plugin() B3: Fix UploadFile ForwardRef error — remove functools.wraps from wrap_plugin_route B4: DMS upload uses true streaming via save_stream() instead of RAM accumulation B5: Worker on_startup registers plugin event handlers + webhook dispatcher B6: Implement send_password_reset_email job, remove raw token logging B7: Webhook SSRF protection (IP validation, no redirects), secret removed from response B8: RLS repair migration 0044 + separate crm_runtime DB user (NOSUPERUSER, NOBYPASSRLS) B9: Fix .env.docker.example AUTH_SECRET → SECRET_KEY B10: Remove Redis default password, remove exposed DB/Redis ports Also: add frontend_url to config, add SMTP settings to .env.docker.example, update prestart.sh to use MIGRATION_DATABASE_URL for alembic.
71 lines
723 B
Plaintext
71 lines
723 B
Plaintext
# Secrets and environment files
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
!.env.docker.example
|
|
|
|
# Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
*$py.class
|
|
*.so
|
|
*.egg-info/
|
|
.eggs/
|
|
build/
|
|
dist/
|
|
*.egg
|
|
|
|
# Virtual environments
|
|
.venv/
|
|
venv/
|
|
env/
|
|
ENV/
|
|
|
|
# Test and coverage
|
|
.pytest_cache/
|
|
.coverage
|
|
.coverage.*
|
|
htmlcov/
|
|
coverage.xml
|
|
.mypy_cache/
|
|
.ruff_cache/
|
|
|
|
# Redis dumps
|
|
dump.rdb
|
|
*.rdb
|
|
|
|
# Database files
|
|
*.db
|
|
*.db-journal
|
|
*.db-wal
|
|
*.db-shm
|
|
data/
|
|
|
|
# IDE
|
|
.vscode/
|
|
.idea/
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
.DS_Store
|
|
|
|
# Logs
|
|
*.log
|
|
logs/
|
|
|
|
# Alembic (autogenerated migrations excluded, but keep 0001)
|
|
alembic/versions/__pycache__/
|
|
|
|
# Frontend build artifacts
|
|
frontend/node_modules/
|
|
frontend/dist/
|
|
|
|
# Docker
|
|
.docker-data/
|
|
|
|
# Test artifacts
|
|
.pytest_cache/
|
|
.coverage
|
|
.coverage.*
|
|
htmlcov/
|