מאגרי חבילות¶
מקורות 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 | Scope כמו @acme, שהחבילות שלו מגיעות מהמאגר הזה. ריק אם אין |
| אסימון או user:password | אסימון גישה, או user:password |
| מראה לכל התקנה | כל חבילה ללא scope משלה מותקנת דרך המאגר הזה. אחד לכל ארגון |
| רשות אישורים (PEM) | ראו רשות אישורים פרטית |
אסימון נכתב ל-.npmrc של ההתקנה כ-_authToken ונשלח כאסימון bearer. user:password, למשל משתמש Artifactory ומפתח ה-API שלו, נכתב כ-_auth (base64) ונשלח כ-Basic. כל אחד מהם נשלח רק למארח של המאגר עצמו.
אינדקסי PyPI¶
| שדה | מכיל |
|---|---|
| כתובת URL של האינדקס | כתובת ה-simple-index של האינדקס, למשל https://artifactory.example.com/artifactory/api/pypi/pypi/simple/ |
| אסימון או user:password | אסימון גישה, שנשלח כמשתמש __token__, או user:password |
| אינדקס ברירת מחדל לכל התקנה | כל חבילת Python מותקנת מהאינדקס הזה במקום מה-PyPI הציבורי. אחד לכל ארגון |
| רשות אישורים (PEM) | ראו רשות אישורים פרטית |
האינדקסים ופרטי ההזדהות שלהם מגיעים ל-uv רק בסביבה של ההתקנה עצמה, לעולם לא בקובץ.
מארחי Git¶
רשומת מארח Git מכסה את המאגרים שמהם נשלפים הקוד של מקור או תלויות ה-Git שלו.
| שדה | מכיל |
|---|---|
| מארח | המארח, עם הפורט וקידומת הנתיב כשיש לשרת כאלה: github.com, gitlab.example.com, bitbucket.example.com:7990/bitbucket |
| אסימון או user:token | אסימון, או 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 לאסימון גישה של מאגר או של workspace; שם המשתמש או הדוא"ל שלכם לאסימון 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.
ההגדרות האלה מצביעות על קובץ אחד עם הרשויות הציבוריות ועם אלה של כל רשומה. הקובץ נכתב לתיקייה הזמנית של ההתקנה ונמחק יחד איתה, כך ששום דבר מחוץ להתקנה אינו קורא אותו.