Law/.codex/PROJECT_CONTEXT.md
2026-03-17 10:30:43 +03:00

37 lines
2 KiB
Markdown

## Repository Context Map
### Entry Points
- `app/main.py`: main backend API (`/api/public`, `/api/admin`).
- `app/chat_main.py`: dedicated chat API service.
- `app/email_main.py`: email service.
- `docker-compose.yml`: local service topology.
### Main Backend Areas
- `app/api/public/`: public/client cabinet endpoints.
- `app/api/admin/`: admin and lawyer endpoints.
- `app/api/admin/requests_modules/kanban.py`: kanban aggregation and filters.
- `app/api/admin/crud_modules/`: generic CRUD/query layer.
- `app/services/`: shared domain services, including chat serialization/security.
- `app/services/chat_crypto.py`: versioned chat crypto (`v1/v2` backward-compatible read, `v3` per-chat AEAD write path).
- `app/services/chat_secure_service.py`: chat paging, explicit decrypt, message body batches, live delta.
- `app/models/`: SQLAlchemy models.
- `app/models/message.py`: plaintext no longer auto-decrypts from ORM; chat body encryption happens on flush, read decrypt is explicit.
- `app/core/`: config, middleware, security hardening.
### Frontend Areas
- `app/web/admin/`: admin/lawyer UI source modules.
- `app/web/client.jsx`: client cabinet entry.
- `app/web/admin.js`, `app/web/client.js`: built bundles.
### Tests
- `tests/test_http_hardening.py`: middleware/security headers.
- `tests/test_public_cabinet.py`: client cabinet flows.
- `tests/admin/test_lawyer_chat.py`: admin/lawyer chat flows.
- `tests/test_migrations.py`: migration coverage.
### High-Risk Zones
- Request workspace loading: admin `app/web/admin/hooks/useRequestWorkspace.js`, client `app/web/client.jsx`.
- Kanban performance: `app/api/admin/requests_modules/kanban.py`.
- Generic query endpoints used by request modal: `app/api/admin/crud_modules/service.py`, `app/api/admin/invoices.py`.
- Chat serialization and live updates: `app/services/chat_secure_service.py`, public/admin chat routers.
- Chat crypto and migration safety: `app/services/chat_crypto.py`, `app/scripts/reencrypt_with_active_kid.py`, `tests/test_crypto_kid_rotation.py`, `tests/test_reencrypt_with_active_kid.py`.