feat: АРМ администратора — записи, состояние стенда, аудит, копии (lct-24)
Целый раздел ТЗ, от которого не было ни одной функции. - Учётные записи: завести, сменить роль и службу, заблокировать, сбросить пароль. Обучающемуся заводится и карточка курсанта — на ней висят профиль и проверка «это твой разбор». - Состояние компонентов: база, модели речи, эмбеддинги, провайдер LLM, версия классификатора, число живых занятий. Отдельной строкой — секрет сессии: значение по умолчанию не ошибка запуска, но на стенде это дыра, и увидеть её должен администратор, а не проверяющий на защите. - Журнал действий с фильтром, только на чтение. - Резервные копии: кнопка и make backup для cron. pg_dump берётся локальный, а если его нет — из контейнера базы; если нет ни того ни другого, администратор видит, чего не хватает, а кнопка не молчит. Границы роли выражены отсутствием маршрутов, а не проверками внутри них: в разделе нет ни одной точки, трогающей оценки или пишущей в аудит. Два теста проверяют это перебором маршрутов роутера — так запрет нельзя ослабить, случайно добавив обработчик. Найдено по ходу: тесты с базой падали в компании и проходили поодиночке. Движок SQLAlchemy кэшировался на процесс, а каждый TestClient поднимает свой событийный цикл — пул привязан к первому. Появился db.base.reset() и фикстура, дающая движок на тест. 193 теста зелёных (12 новых).
This commit is contained in:
parent
d55c8bc8cd
commit
641e505c67
13 changed files with 948 additions and 1 deletions
5
Makefile
5
Makefile
|
|
@ -41,6 +41,9 @@ typecheck: ## Проверить фронтенд компилятором
|
|||
models: ## Скачать модели в backend/models/: эмбеддинги, GigaAM, Silero VAD; Silero TTS — вручную
|
||||
cd backend && $(UV) run python scripts/models.py
|
||||
|
||||
backup: ## Резервная копия базы в backend/backups/ (для cron: раз в сутки)
|
||||
cd backend && $(UV) run python scripts/backup.py
|
||||
|
||||
users: ## Завести учётные записи ролей и напечатать пароли: make users force=1
|
||||
cd backend && $(UV) run python scripts/users.py
|
||||
|
||||
|
|
@ -74,4 +77,4 @@ pregen: ## Построить таблицу реплик звонящего д
|
|||
demo: ## Поднять стенд для занятия: база, сценарии, бэкенд с голосом, фронт
|
||||
./scripts/demo.sh
|
||||
|
||||
.PHONY: help dev down back front types users test test-voice typecheck test-llm lesson llm-check latency migrate revision models seed repl pregen demo
|
||||
.PHONY: help dev down back front types users backup test test-voice typecheck test-llm lesson llm-check latency migrate revision models seed repl pregen demo
|
||||
|
|
|
|||
Loading…
Reference in a new issue