Справочник API · v3.2

Программный доступ к реестру и кэшу.

PkgMirror API — стабильный REST-интерфейс для автоматизации публикации, дистрибуции и аудита артефактов. Детерминированное поведение, строгие подписи и предсказуемые лимиты на каждом уровне.

REST · JSON mTLS + Bearer OpenAPI 3.1
Матрица эндпоинтов PkgMirror API в редакторе
214 эндпоинтов · 6 доменов
``` ```html
Аутентификация

Один токен. Полный контроль.

Каждый запрос проходит через шифрованный канал mTLS и проверяется по Bearer-токену. Модель доступа построена по принципу Zero-Trust: минимальные привилегии, явные роли, прозрачный аудит.

Токен выдаётся на уровне организации и привязан к конкретному VPC. Действует 8 часов, после чего автоматически ротируется через /v3/auth/refresh. Все действия записываются в журнал аудита с привязкой к подписи артефакта.

Последовательность выдачи и ротации токена PkgMirror
Шаг 01 / Запрос

Получение токена

POST /v3/auth/token с парой ключей организации. В ответ — JWT с подписью ECDSA P-256 и TTL 28800 секунд.

Шаг 02 / Проверка

Верификация на гранике

Каждый запрос проверяется по хэшу токена и роли registry:read / registry:publish. Отклонение — 401 с кодом AUTH_EXPIRED.

Шаг 03 / Ротация

Автоматическое обновление

SDK прозрачно продлевает токен за 300 секунд до истечения. При сбое — фолбэк на локальный ключ без простоя pipeline.

``` ```html
Реестр эндпоинтов

Шесть доменов, 214 операций

API разбит на домены по инженерным задачам. Каждый метод возвращает предсказуемую структуру с детерминированными кодами состояния.

Домен A / Registry

Управление пакетами

GET /v3/packages, POST /v3/packages, DELETE /v3/packages/{id}. Полный CRUD для внутренних пакетов с версионированием по SemVer и подписью PGP.

Домен B / Cache

Операции кэша

POST /v3/cache/prime для прогрева, POST /v3/cache/invalidate для детерминированной инвалидации. Стратегия TTL управляется на уровне организации.

Домен C / Audit

Журнал и воспроизводимость

GET /v3/audit/lineage возвращает полную цепочку от публикации до развёртывания. Хэш каждого артефакта проверяется по SHA-512.

Домен D / Access

Роли и привилегии

GET /v3/access/policies и POST /v3/access/grant. Матрица ролей привязана к VPC и региону хранения артефактов.

Домен E / Edge

Глобальный слой

GET /v3/edge/status — состояние 31 региона. POST /v3/edge/route — ручная маршрутизация запросов при деградации узла.

Домен F / Webhooks

Событийные подписки

POST /v3/webhooks для событий package.published, cache.evicted, audit.flagged. Подпись события — HMAC-SHA256.

``` ```html
Лимиты запросов

Предсказуемые границы нагрузки

Каждый тариф имеет фиксированные пороги. Лимиты применяются на уровне организации и региона, а не на уровне отдельного токена.

1 200 Запросов / мин · тариф Enterprise
50 Параллельных сессий публикации
2 ГБ Максимальный размер одного артефакта
60 с Окно сброса burst-лимита
Header / X-RateLimit

Метрики в каждом ответе

Заголовки X-RateLimit-Limit, X-RateLimit-Remaining и X-RateLimit-Reset возвращаются с каждым запросом для точного планирования.

Код 429 / Too Many Requests

Детерминированный отказ

При превышении порога — HTTP 429 с заголовком Retry-After в секундах. SDK выполняет экспоненциальный backoff с джиттером.

Burst / Выбросы

Гибкий буфер

Кратковременные выбросы до 200% базового лимита допускаются в течение 10 секунд для пиков сборки без влияния на SLA.

``` ```html
Библиотеки SDK

Готовые клиенты для вашего стека

Официальные SDK покрывают все шесть доменов API, управляют ротацией токенов и ретраями автоматически. Версии синхронизированы с OpenAPI-спецификацией.

Язык / Go

pkgmirror-go

Версия 3.2.1 · go get github.com/pkgmirror/go. Нативная поддержка контекстов, стриминг артефактов и интеграция с CI-хуками.

Язык / Python

pkgmirror-py

Версия 2.8.4 · pip install pkgmirror. Асинхронный клиент на asyncio, типизация через Pydantic, поддержка PyPI-проксирования.

Язык / Java

pkgmirror-java

Версия 5.1.0 · Maven Central. Клиент на Java 17+, интеграция с Spring Boot и поддержка Maven-репозиториев.

Язык / Node.js

pkgmirror-node

Версия 4.0.2 · npm install @pkgmirror/sdk. Изоморфный клиент для браузера и Node, строгие TypeScript-типы из OpenAPI.

Язык / Rust

pkgmirror-rs

Версия 0.9.7 · crates.io. Безопасный клиент на tokio, верификация PGP-подписей и стриминг без аллокаций в стеке.

Формат / OpenAPI

Спецификация 3.1

Полный YAML-контракт доступен по /v3/meta/openapi.json. Генерируйте собственных клиентов для любых языков и фреймворков.

``` ```html
Начните интеграцию

Первый запрос — через 5 минут.

Создайте тестовую организацию, получите токен и подключите SDK. Полный цикл публикации и аудита артефакта — без изменения вашего pipeline.