Поддерживаемые протоколы
Эта страница относится к текущей реализации OSA Proxy. Архивная Java/Spring-реализация доступна в разделе Архивная Java/Spring-реализация.
Раздел описывает, какие ресурсы OSA Proxy проверяет и какие ответы может модифицировать для каждой экосистемы.
Сводная таблица
Параметры scan-manifest и scan-package
scan-manifest включает проверку и модификацию metadata, из которой пакетный менеджер выбирает доступные версии. При срабатывании блокирующей политики небезопасные версии удаляются из ответа или помечаются как заблокированные, если формат это поддерживает.
scan-package включает проверку скачиваемого артефакта: архива, бинарного пакета, module zip, .gem, .deb, .apk или .rpm. Если политика блокирует компонент, скачивание прерывается с HTTP-кодом из codescoring.block-status-code.
Для Debian, Alpine и RPM используется только scan-package: системные индексы не изменяются, поэтому пакетный менеджер может видеть версию в индексе, но скачивание конкретного пакета будет заблокировано при нарушении политики.
Для Docker параметры scan-manifest и scan-package не используются в конфигурации репозитория. OSA Proxy проверяет Docker image manifest. Manifest list используется для определения image manifest и не отправляется на проверку как отдельный компонент; blob/layer-запросы проксируются в registry.
Maven
- Metadata:
maven-metadata.xml. - Пакеты:
.jar,.war,.earи другие Maven-артефакты. - При модификации metadata заблокированные версии удаляются из списка, а поля
latestиreleaseобновляются на последнюю разрешенную версию.
npm
- Metadata: JSON-описание пакета.
- Пакеты:
.tgz. - Из metadata удаляются заблокированные версии, связанные записи
time, аdist-tagsпересчитываются на разрешенные версии.
PyPI
- Metadata: страницы Simple API.
- Пакеты:
.whl,.tar.gz,.zipи другие архивы Python-пакетов. - Ссылки на заблокированные версии удаляются, URL загрузки переписываются так, чтобы скачивание проходило через OSA Proxy.
NuGet
- Metadata: service index и registration index.
- Пакеты:
.nupkg. - Для клиента используется маршрут
/nuget-api/v3/index.json; metadata переписывается на URL OSA Proxy.
Go modules
- Metadata: список версий
@v/list. - Пакеты: module
.zip. - Заблокированные версии удаляются из списка версий. Для SumDB используется
sumdb-registryи настройкаGOSUMDB.
Composer
- Metadata: Composer/Packagist metadata.
- Пакеты: dist-архивы
.zip,.tar,.tgz,.tar.gz,.tar.bz2,.tar.xz. - Dist URL переписываются на маршруты OSA Proxy. Для внешних dist-хостов используйте
packages-registryиadditional-packages-registries.
RubyGems
- Metadata: индексы RubyGems.
- Пакеты:
.gem. - Проверяются metadata и скачиваемые gem-пакеты.
Docker
- Metadata: Docker image manifest. Manifest list используется для определения image manifest.
- Пакеты: отдельного
scan-packageнет; blob/layer-запросы проксируются дальше в registry. - Docker использует стандартные endpoints
/v2/...и/token, поэтому несколько Docker-репозиториев разделяются по поддоменам, а не по первому сегменту пути.
Диагностика блокировки
Если пакетный менеджер не показывает причину блокировки, проверьте соответствующий metadata endpoint напрямую:
