Перейти к содержанию

Реестры пакетов

Источники Node и Python устанавливают собственный код и свои зависимости. Admin → Реестры пакетов задаёт, откуда они устанавливают: из npm-реестров, индексов PyPI и Git-хостов организации. Администратор организации вводит их один раз, и все установки Node и Python в организации используют их. Публичный npm-реестр и публичный PyPI не требуют записи.

Каждое поле хранит то, что было введено: значение или ссылку вроде ${secret:npm_token} или ${env:NPM_TOKEN}, которая разрешается в собственном хранилище секретов организации при каждой установке. Ссылка, которая ни во что не разрешается, останавливает установку и называет реестр и поле. Provisa никогда не пишет в хранилище и не придумывает имена секретов. См. Секреты.


npm-реестры

Поле Содержит
URL реестра Адрес реестра, например https://artifactory.example.com/artifactory/api/npm/npm/
Область (scope) Область вроде @acme, пакеты которой берутся из этого реестра. Пусто, если её нет
Токен или пользователь:пароль Токен доступа или user:password
Зеркало для всех установок Каждый пакет без собственной области устанавливается через этот реестр. Одно на организацию
Центр сертификации (PEM) См. Собственный центр сертификации

Токен записывается в .npmrc установки как _authToken и отправляется как bearer-токен. user:password, например пользователь Artifactory и его API-ключ, записывается как _auth (base64) и отправляется как Basic. И то и другое уходит только на собственный хост реестра.

Индексы PyPI

Поле Содержит
URL индекса Адрес simple-index индекса, например https://artifactory.example.com/artifactory/api/pypi/pypi/simple/
Токен или пользователь:пароль Токен доступа, отправляемый от пользователя __token__, или user:password
Индекс по умолчанию для всех установок Каждый пакет Python устанавливается из этого индекса вместо публичного PyPI. Один на организацию
Центр сертификации (PEM) См. Собственный центр сертификации

Индексы и их учётные данные попадают в uv только через собственное окружение установки, никогда через файл.

Git-хосты

Запись Git-хоста охватывает репозитории, из которых берутся код источника или его Git-зависимости.

Поле Содержит
Хост Хост с портом и префиксом пути, если они есть у сервера: github.com, gitlab.example.com, bitbucket.example.com:7990/bitbucket
Токен или пользователь:токен Токен или user:token
Центр сертификации (PEM) См. Собственный центр сертификации

URL репозитория сопоставляется с записью, с хоста, порта и префикса пути которой он начинается. Если подходят несколько, побеждает самая длинная: запись для bitbucket.example.com:7990/bitbucket/scm/data охватывает этот проект, а запись для bitbucket.example.com:7990/bitbucket охватывает остальное.

Токен без пользователя отправляется от пользователя x-access-token. Другие провайдеры ожидают пользователя, поэтому введите user:token:

Провайдер Пользователь
GitHub x-access-token, по умолчанию: введите только токен
GitLab Любое непустое имя пользователя
Bitbucket Cloud x-token-auth для токена доступа репозитория или рабочего пространства; ваше имя пользователя или адрес электронной почты для API-токена
Bitbucket Data Center Ваше имя пользователя; x-token-auth для токена проекта или репозитория

Собственный центр сертификации

Реестру, индексу или Git-серверу за вашим собственным центром сертификации, например прокси Artifactory внутри вашей сети, нужно доверие к этому центру. Вставьте его сертификат PEM в поле Центр сертификации (PEM) записи или ссылку на секрет, который его содержит. Оставьте поле пустым для сервера, сертификату которого доверяют публично. Значение без сертификата PEM отклоняется при сохранении записи, а ссылка, которая не разрешается в сертификат, отклоняется при установке.

Центру доверяют наряду с публичными, никогда вместо них:

  • Собственные загрузки Provisa через запись (метаданные и tarball пакета, wheel, Git-репозиторий) проверяют сервер по нему.
  • Во время установки uv читает его через SSL_CERT_FILE, npm и Bun — через cafile в собственном .npmrc установки, Deno — через DENO_CERT, а Git — через GIT_SSL_CAINFO.

Эти настройки указывают на один файл с публичными центрами и центрами каждой записи. Файл записывается во временный каталог установки и удаляется вместе с ним, поэтому ничто вне установки его не читает.