4dcda61ec9
ci / lint (push) Failing after 30s
ci / unit (push) Has been skipped
ci / security (push) Has been skipped
contract-openapi / openapi-contract (push) Failing after 28s
contract-openapi / ts-client-is-current (push) Failing after 38s
ci / build (push) Has been skipped
ci / image-scan (push) Has been skipped
ci / push (push) Has been skipped
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/.