Skip to content

HTTP API и OpenAPI ​

HTTP-сервисы ozProtect имеют отдельные origin, наборы методов и credentials. Одинаковый путь /methods/account.* не означает один backend. Для панельных действий также существует Socket.IO API.

Спецификации ​

СервисЧитаемый справочникOpenAPI 3.1.1
NetworkМетоды и маршрутыnetwork.json
SSOРеализованные методыsso.json
AntiCheat backendRPC и 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 или кэширования.

Пример чтения каталога без реального токена:

bash
curl "$NETWORK_ORIGIN/methods/front.getLicenses"

Обычный ответ:

json
{"status":"success","response":{},"info":{"category":"front","method":"getLicenses"}}

Ошибка приложения может прийти с HTTP 200:

json
{"status":"error","error":{"name":"access_denied","message":"..."}}

Всегда проверяйте status, затем тело response или ошибку. Не считайте поля info/debug частью стабильной модели данных, не сохраняйте в журналах credentials из диагностического ответа.

Авторизация ​

КонтекстCredentialsДополнительные проверки
Network HTTP v2Authorization: Bearer с personal RS256 account tokenПодпись/issuer/audience/expiry/version плюс права метода
Legacy аккаунт Network HTTPПоле access_token, обычно в POST bodyAuth hash, owner/staff/server access, feature и dedicated scope по методу
Сетевой токен панелиaccount.genNetToken: project, server, key, client_id, access_tokenВ текущем клиентском контракте key проходит SessionDecrypt; это не простой Bearer
SSOLegacy поля приложения/токена и проверки validerОтдельный контракт и ошибки
AntiCheat panel/clientJWT, 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.

Обновление из соседних исходников:

bash
npm run reference:generate -- --sso-ref origin/claude/dev-work
npm run docs:check

Команды меняют только документацию и не вызывают API. Runtime/production совместимость требуют отдельной проверки владельца сервиса.

Ошибки и повторы · Сокеты

Разработано с ❤️ от ozLiginus