Компоненты и архитектура
ozProtect объединяет учётные записи, управление игровыми серверами, модерацию и сбор свидетельств. Разные интерфейсы используют разные backend-сервисы. Имя компонента или наличие исходников ещё не подтверждает его установку в production.
Карта компонентов
| Компонент | Ответственность | Основной интерфейс |
|---|---|---|
.land | Лендинг, кабинет владельца/игрока, вход, проекты и обращения | HTTP к SSO/Network, Socket.IO /front |
.web | Панель сотрудников выбранного игрового сервера | HTTP bootstrap и Socket.IO Network /client |
.cp | Служебная админ-панель ozProtect: проекты, биллинг, бонусы, система | Административные методы Network, служебная учётная запись |
.node | ozProtect Network: проекты, серверы, права, история, модерация, подписки, интеграции | HTTP /methods/category.method, четыре Socket.IO namespace |
.sso | Перенос ответственности PHP .back: центральные аккаунты и совместимые методы авторизации | Отдельный HTTP API, другой формат ошибок |
.ext | Rust Oxide/uMod extension: игровые события, команды, CloudConfig | Network /server, серверный токен |
.ext.dayz | Отдельный DayZ-мод и .NET bridge-агент | Локальный bridge и Network /server |
.minecraft | Java core, anticheat evidence, extension API и адаптеры Bukkit/Forge/NeoForge/Fabric | Network /server, game_id = 6 |
.checker.mc | Windows-чекер Minecraft с согласием игрока | Network /checker, код сессии |
.anticheat | Rust AntiCheat extension и отдельные Windows Client/Service/Tray | Собственный протокол к .aback |
.aback | AntiCheat backend: серверы, клиенты, нарушения, скриншоты, версии и релизы | HTTP, SecureChannel и собственные сокеты |
.docs, .adocs | Общая документация и отдельная документация античита | Статические сайты |
.ulog | Внутренние инструменты импорта/сверки истории | Не публичный runtime или API |
.game.front | Отдельный игровой frontend | Наличие Vue-проекта не подтверждает готовый общий интерфейс ozProtect |
Потоки данных
- Кабинет получает аккаунт через настроенный SSO/legacy backend. Network проверяет аккаунт и доступ к проекту/серверу при выдаче или проверке сетевого токена.
- Панель открывает подключение
/clientк назначенному Network. Выбранный сервер задаёт область данных и доступные действия. - Игровое расширение подключается к
/server, передаёт события и принимает поддерживаемые команды. Команда панели проходит через права, feature gates и возможности адаптера. - Minecraft Checker подключается к
/checkerпо коду конкретной сессии. Он не получает серверный ключ и не является игровым расширением. - Rust AntiCheat использует отдельный backend и набор учётных данных; его HWID-сессия не заменяет Minecraft UUID или права Network.
Развёртывание и изоляция
Network развёртывает команда ozProtect в региональных k3s-кластерах. Исходники .node не выдаются клиенту как публичный self-hosting комплект. Внутренний Redis связывает поды одного кластера и поддерживает callback/ack. Глобальный Redis между кластерами предназначен для уведомлений без обязательного ответа.
Enterprise имеет license ID 5. Отдельный контур ограничивает проекты через DEDICATED_PROJECT_ID, независимо от названия тарифа. Назначенный Network host хранится у сервера; плагин и панель должны учитывать проверку адреса. Лицензия, права сотрудника и изоляция проекта являются отдельными условиями доступа.
Язык интерфейса, домен и регион независимы. Будущий .com и возможный отключённый .kz относятся к плану нового контура; локальные адреса в примерах не объявляют публичную доступность. Старые .ru значения в исходниках требуют явной конфигурации при переносе.
Источники: Network common/ApiNet.js, common/Validator.js, modules/License.js, modules/Server.js; SSO src/app.js; маршруты .web/.cp; README игровых компонентов.
