HTTP API и OpenAPI
HTTP-сервисы ozProtect имеют отдельные origin, наборы методов и credentials. Одинаковый путь /methods/account.* не означает один backend. Для панельных действий также существует Socket.IO API.
Спецификации
| Сервис | Читаемый справочник | OpenAPI 3.1.1 |
|---|---|---|
| Network | Методы и маршруты | network.json |
| SSO | Реализованные методы | sso.json |
| AntiCheat backend | RPC и HTTP-маршруты | anticheat.json |
JSON можно импортировать в совместимый OpenAPI-клиент. servers: / означает выбранный вами origin, а не работающий публичный адрес. Эти спецификации не разрешают запускать финансовые, административные или игровые операции на чужом/production контуре.
Формат сверяется с официальной спецификацией OpenAPI. Это документация HTTP; Socket.IO события не маскируются под REST paths.
Network RPC
Маршрут: GET|POST /methods/category.method. Некоторые зарегистрированные объекты также имеют вложенные группы. Network сопоставляет имена с экспортированными ключами; сохраняйте регистр метода. JSON, urlencoded и multipart обрабатываются HTTP-слоем. GetParam читает объединение query/body, причём body перекрывает query. GetBody и GetQuery читают только своё расположение.
Для credentials и изменений используйте POST. То, что legacy dispatcher принимает GET для изменяющего метода, не делает такой GET безопасным для повторов, ссылок, crawler или кэширования.
Пример чтения каталога без реального токена:
curl "$NETWORK_ORIGIN/methods/front.getLicenses"Обычный ответ:
{"status":"success","response":{},"info":{"category":"front","method":"getLicenses"}}Ошибка приложения может прийти с HTTP 200:
{"status":"error","error":{"name":"access_denied","message":"..."}}Всегда проверяйте status, затем тело response или ошибку. Не считайте поля info/debug частью стабильной модели данных, не сохраняйте в журналах credentials из диагностического ответа.
Авторизация
| Контекст | Credentials | Дополнительные проверки |
|---|---|---|
| Network HTTP v2 | Authorization: Bearer с personal RS256 account token | Подпись/issuer/audience/expiry/version плюс права метода |
| Legacy аккаунт Network HTTP | Поле access_token, обычно в POST body | Auth hash, owner/staff/server access, feature и dedicated scope по методу |
| Сетевой токен панели | account.genNetToken: project, server, key, client_id, access_token | В текущем клиентском контракте key проходит SessionDecrypt; это не простой Bearer |
| SSO | Legacy поля приложения/токена и проверки valider | Отдельный контракт и ошибки |
| AntiCheat panel/client | JWT, server key, API key или SecureChannel, по конкретному маршруту | Не подставляйте Network token |
В OpenAPI AccessToken описан как legacy query credential для GET; при POST он документирован полем тела. Отсутствие security у извлечённого метода не означает, что метод анонимный: проверки могут жить в middleware/модулях. x-source-checks является списком наблюдений, не сертификацией доступа.
Новый браузерный вход SSO
Cookie-based /auth/login/session/logout/profile/projects/network-token, Steam, регистрация и восстановление описаны в SSO и включены в SSO OpenAPI. Браузер не должен передавать application keys. api_v=2 на старом /methods/* является другим, переходным application-контрактом.
SSO выдаёт короткие personal RS256 токены; Network должен отдельно поддерживать проверку Authorization: Bearer для HTTP и auth.token для Socket.IO. На данном срезе source verifier Network добавлен в 50e0478, а интеграция/приёмка клиентов выполняются отдельно. Legacy credentials выше относятся к совместимым приложениям, а не к новым браузерным формам.
Полнота и обновление
Справочник извлекает зарегистрированные RPC, явные HTTP registrations и доступные Socket.IO handlers, читая AST без импорта backend и без .env. Он сохраняет commit/dirty marker в source snapshot. Набор исходников с dirty marker включает локальные изменения и не равен опубликованному релизу.
x-source содержит файл/строку; x-observed-required-input, x-observed-errors, x-feature-keys отражают видимые guards. * в таблицах отмечает прямой обязательный guard. Условия в ветках, динамические payload, вложенные формы и delegated validation могут требовать дополнительных полей. Неизвестные типы и response намеренно не выдумываются. Публикация ограничена явным списком пользовательских операций; служебные интерфейсы и приватный source inventory исключены.
Некоторые AC aliases регистрируются через wrappers; спецификация сохраняет их существование, но оставляет схему ответа открытой для redirect/binary/зашифрованного результата. Не считайте её полной моделью всех payload.
Обновление из соседних исходников:
npm run reference:generate -- --sso-ref origin/claude/dev-work
npm run docs:checkКоманды меняют только документацию и не вызывают API. Runtime/production совместимость требуют отдельной проверки владельца сервиса.
