Реестры пакетов¶
Источники 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.
Эти настройки указывают на один файл с публичными центрами и центрами каждой записи. Файл записывается во временный каталог установки и удаляется вместе с ним, поэтому ничто вне установки его не читает.