Админ-панель v2.0
Единый интерфейс для организаторов и судей: расписание на сегодня, очередь lobby, live-статус GSI и протоколы в PDF/JSON.
Dashboard
На главном экране отображаются:
- Live now — матчи с активным GSI или ручным статусом «в игре»
- Queue — ожидающие создания lobby (глубина Redis-очереди)
- Incidents — просроченные ready-check, споры, запросы паузы
- Steam — состояние бота (connected / reconnecting / error)
Управление матчем
| Действие | Кто | Эффект |
|---|---|---|
| Start ready-check | Referee | Таймер 90 с, уведомление капитанам |
| Mark map win | Referee | Обновление счёта серии, опционально GSI confirm |
| Tech win / forfeit | Referee + Organizer | Продвижение в сетке с комментарием в аудит |
| Remake lobby | Referee | Новый пароль, старый lobby закрывается ботом |
| Upload replay | Referee | Ссылка в протоколе, checksum в журнале |
Дисквалификация команды необратима для текущего турнира. Для отмены нужен Owner и запись причины в аудит.
Lobby и уведомления
При назначении слота worker создаёт practice lobby с названием вида TA-{tournament}-{match}. Пароль доставляется:
- в личный кабинет капитана на портале лиги
- через Discord webhook (если настроен)
- через email/SMS при включённых интеграциях
Капитан может запросить повторную отправку не чаще одного раза в 5 минут — защита от спама Steam API.
Журнал аудита
Каждая запись содержит: user id, роль, match id, action, payload hash, timestamp UTC. Экспорт для разбора споров — CSV или SIEM через API /api/v2/audit.
Безопасность production
- Включите 2FA для Owner и Organizer
- Ограничьте IP админки через nginx allowlist или VPN
- Ротируйте API-ключи сезонно; webhook подписываются HMAC-SHA256
- Не используйте Steam-бота для личной игры — только worker
Чек-лист развёртывания и переменные окружения — в Установка.