Harden UI security and add deployment templates

This commit is contained in:
Artem Kokos
2026-05-16 11:22:02 +07:00
parent 1ac66ec4ac
commit 0fd64307b7
12 changed files with 962 additions and 210 deletions

View File

@@ -11,6 +11,7 @@
- guest/admin/master API-ключи
- event log и базовая статистика
- встроенный UI в `static/index.html`
- встроенный UI без внешних CDN
## Запуск
@@ -24,6 +25,8 @@ uvicorn main:app --host 0.0.0.0 --port 8000
UI: `http://<host>:8000/`
Готовые deployment-файлы для `systemd`: [deploy/README.md](/home/kokos/workspace/ignis/ignis-core/deploy/README.md:1)
## Конфигурация
Минимум:
@@ -66,6 +69,12 @@ IGNIS_SYNC_DATABASE_URL=sqlite:///./ignis.db
Сервер работает в `fail-closed`: если `IGNIS_API_KEY` не задан, защищённые маршруты недоступны.
Встроенный UI:
- использует только локальные статические ассеты
- по умолчанию не сохраняет API-ключ между перезагрузками
- может запомнить ключ только в рамках текущей вкладки браузера
## API
Основные маршруты:
@@ -168,7 +177,7 @@ curl -X POST 'http://localhost:8000/schedules/once' \
timeout 120s .venv/bin/python -m unittest discover -s tests -v
```
Сейчас есть 25 тестов. Покрыты:
Сейчас есть 27 тестов. Покрыты:
- auth и роли
- lifecycle API-ключей
@@ -179,6 +188,7 @@ timeout 120s .venv/bin/python -m unittest discover -s tests -v
- auto-subnet selection для discovery
- background offline cleanup threshold
- manual rescan summary и immediate cleanup
- security headers и локальные UI-ассеты
- агрегация stats без двойного счёта `*_requested`
## Ограничения