Wiki / 20
Программный интерфейс реестра (Registry API)
Публичный программный интерфейс реестра, маршруты авторов и администраторов.
Публичный программный интерфейс
Публичный интерфейс версии 0.1 доступен только для чтения:
GET /v0.1/servers?search=&cursor=&limit=— серверы, доступные для поиска и имеющие текущую активную версию;GET /v0.1/servers/{name}/versions— активные неизменяемые версии;GET /v0.1/servers/{name}/versions/latest— явно указанная текущая версия;GET /v0.1/servers/{name}/versions/{version}— одна активная неизменяемая версия.
В ответах используется устойчивая постраничная выдача по курсору. Непроверенные, отклонённые, снятые с публикации и неактуальные кандидатные версии не показываются при поиске. Исторический манифест никогда не пересоздаётся по текущим изменяемым метаданным сервера.
Программный интерфейс автора
Все авторские маршруты, кроме регистрации, требуют заголовок X-API-Key: hwh_...:
POST /api/v1/authors/register— создаёт автора и единственный раз возвращает ключ программного интерфейса;POST /api/v1/namespaces— создаёт DNS TXT-проверку;POST /api/v1/namespaces/{prefix}/verify— подтверждает DNS TXT-проверку;POST /api/v1/servers— создаёт первую ожидающую публикацию;GET /api/v1/servers/mine— показывает публикации аутентифицированного автора;GET /api/v1/servers/mine/{server_id}— показывает версию, адрес, состояние проверки и работоспособность;POST /api/v1/servers/{server_id}/releases— создаёт новую неизменяемую кандидатную версию с новым адресом;POST /api/v1/servers/{server_id}/withdraw— скрывает сервер из поиска, не удаляя историю версий.
Программный интерфейс администратора
Для маршрутов модерации нужен заголовок X-Admin-Key. Утверждение атомарно повышает проверенную версию до активной, устанавливает текущую версию и адрес сервера, а предыдущий адрес помечает как replaced («заменён»). Проверку адреса намеренно выполняет фоновый обработчик, где применяются ограничения SSRF и снимки возможностей.
Операторская панель управления
Тот же X-Admin-Key защищает операторские представления только для чтения. Это не публичные интерфейсы каталога: их нельзя открывать браузерам или хранить в клиентском коде.
GET /api/v1/admin/overview— число ожидающих проверки и модерации версий, активных серверов, включённых источников и неисправных адресов;GET /api/v1/admin/moderation-queue?limit=50— ограниченная очередь версий, ожидающих проверки или модерации, включая состояние адреса и число проверенных инструментов;GET /api/v1/admin/sources— настроенные источники синхронизации, явное состояние включения и результат последней синхронизации;GET /api/v1/admin/servers/{server_id}/health-history?limit=50— ограниченная история последних проверок работоспособности выбранного сервера.
Эти представления намеренно не содержат учётных данных издателя, ключей программного интерфейса, исходных импортированных записей, тел запросов к адресу и секретов моделей. Существующие маршруты утверждения, отклонения, регистрации и включения источника остаются явными операциями изменения и требуют тот же ключ администратора.
Управление учётными записями портала также защищено X-Admin-Key:
GET /api/v1/admin/portal-users— показывает пользователей и назначенные системные роли без хешей паролей и токенов сессий;POST /api/v1/admin/portal-users/{user_id}/roles— назначает одну из проверенных системных ролей (admin,moderator,employee,developer,mcp_developer,skill_developer,teacher,student,user,corporate).
Публичная регистрация может создать только роль user («пользователь»). Корпоративными организациями и их пользовательскими группами управляют через панель сотрудников. Они не могут создавать системные роли Hexwave.