# awg_api — control plane Непривилегированный процесс: FastAPI + REST API v1 + WebSocket + отдача статики UI. | Модуль | Ответственность | Задача | |---|---|---| | `app.py` | lifespan, конфиг, логирование, error model, статика | #31 | | `routers/` | эндпоинты по OpenAPI (status, config, routing, devices, logs, auth) | #32 | | `ws/` | `/api/v1/metrics/stream` | #33 | | `security/` | токен, CSRF, rate limit, маскировка секретов | #34 | | `store/` | SQLite (WAL), миграции, audit log, apply/rollback | #20 | Контракт — `docs/openapi.yaml` (задача #19), TS-клиент генерируется в `ui/src/api/generated/`.