Paket-Registries¶
Node- und Python-Quellen installieren ihren eigenen Code und ihre Abhängigkeiten. Admin → Paket-Registries legt fest, woher sie installieren: aus den npm-Registries, PyPI-Indizes und Git-Hosts der Organisation. Ein Organisationsadministrator trägt sie einmal ein, und jede Node- und Python-Installation der Organisation verwendet sie. Die öffentliche npm-Registry und das öffentliche PyPI brauchen keinen Eintrag.
Jedes Feld enthält, was eingegeben wurde: einen Wert oder eine Referenz wie ${secret:npm_token} oder ${env:NPM_TOKEN}, die bei jeder Installation im eigenen Vault der Organisation aufgelöst wird. Eine Referenz, die sich zu nichts auflöst, beendet die Installation und nennt die Registry und das Feld. Provisa schreibt nie in den Vault und erfindet keine Secret-Namen. Siehe Secrets.
npm-Registries¶
| Feld | Enthält |
|---|---|
| Registry-URL | Die Adresse der Registry, etwa https://artifactory.example.com/artifactory/api/npm/npm/ |
| Scope | Ein Scope wie @acme, dessen Pakete aus dieser Registry kommen. Leer für keinen |
| Token oder Benutzer:Passwort | Ein Zugriffstoken oder user:password |
| Jede Installation spiegeln | Jedes Paket ohne eigenen Scope wird über diese Registry installiert. Eine pro Organisation |
| Zertifizierungsstelle (PEM) | Siehe Eine eigene Zertifizierungsstelle |
Ein Token wird als _authToken in die .npmrc der Installation geschrieben und als Bearer-Token gesendet. user:password, etwa ein Artifactory-Benutzer und sein API-Schlüssel, wird als _auth (base64) geschrieben und als Basic gesendet. Beides geht nur an den eigenen Host der Registry.
PyPI-Indizes¶
| Feld | Enthält |
|---|---|
| Index-URL | Die Simple-Index-Adresse des Index, etwa https://artifactory.example.com/artifactory/api/pypi/pypi/simple/ |
| Token oder Benutzer:Passwort | Ein Zugriffstoken, gesendet als Benutzer __token__, oder user:password |
| Standardindex für jede Installation | Jedes Python-Paket wird aus diesem Index statt aus dem öffentlichen PyPI installiert. Einer pro Organisation |
| Zertifizierungsstelle (PEM) | Siehe Eine eigene Zertifizierungsstelle |
Die Indizes und ihre Zugangsdaten erreichen uv nur in der eigenen Umgebung der Installation, nie in einer Datei.
Git-Hosts¶
Ein Git-Host-Eintrag deckt die Repositories ab, aus denen der Code einer Quelle oder ihre Git-Abhängigkeiten geholt werden.
| Feld | Enthält |
|---|---|
| Host | Der Host, mit Port und Pfadpräfix, wo der Server sie hat: github.com, gitlab.example.com, bitbucket.example.com:7990/bitbucket |
| Token oder Benutzer:Token | Ein Token oder user:token |
| Zertifizierungsstelle (PEM) | Siehe Eine eigene Zertifizierungsstelle |
Eine Repository-URL wird dem Eintrag zugeordnet, mit dessen Host, Port und Pfadpräfix sie beginnt. Passen mehrere, gewinnt der längste: Ein Eintrag für bitbucket.example.com:7990/bitbucket/scm/data deckt dieses Projekt ab, einer für bitbucket.example.com:7990/bitbucket den Rest.
Ein Token allein wird mit dem Benutzer x-access-token gesendet. Andere Anbieter erwarten einen Benutzer, also geben Sie user:token ein:
| Anbieter | Benutzer |
|---|---|
| GitHub | x-access-token, der Standard: das Token allein eingeben |
| GitLab | Ein beliebiger, nicht leerer Benutzername |
| Bitbucket Cloud | x-token-auth für ein Repository- oder Workspace-Zugriffstoken; Ihr Benutzername oder Ihre E-Mail-Adresse für ein API-Token |
| Bitbucket Data Center | Ihr Benutzername; x-token-auth für ein Projekt- oder Repository-Token |
Eine eigene Zertifizierungsstelle¶
Eine Registry, ein Index oder ein Git-Server hinter Ihrer eigenen Zertifizierungsstelle, etwa ein Artifactory-Proxy in Ihrem Netz, braucht das Vertrauen in diese Stelle. Fügen Sie ihr PEM-Zertifikat in das Feld Zertifizierungsstelle (PEM) des Eintrags ein, oder eine Referenz auf ein Secret, das es enthält. Lassen Sie das Feld leer, wenn das Zertifikat des Servers öffentlich vertrauenswürdig ist. Ein Wert ohne PEM-Zertifikat wird beim Speichern abgelehnt, eine Referenz, die sich zu keinem auflöst, bei der Installation.
Der Stelle wird zusätzlich zu den öffentlich vertrauenswürdigen vertraut, nie an ihrer Stelle:
- Die eigenen Abrufe von Provisa über den Eintrag (Metadaten und Tarball eines Pakets, ein Wheel, ein Git-Repository) prüfen den Server gegen sie.
- Während einer Installation liest uv sie über
SSL_CERT_FILE, npm und Bun übercafilein der eigenen.npmrcder Installation, Deno überDENO_CERTund Git überGIT_SSL_CAINFO.
Diese Einstellungen nennen eine Datei mit den öffentlich vertrauenswürdigen Stellen und denen jedes Eintrags. Die Datei wird in das temporäre Verzeichnis der Installation geschrieben und mit ihm entfernt, sodass nichts außerhalb der Installation sie liest.