Avant de commencer
L’injection de secrets Forge nécessite un sandbox authentifié avec une clé API Forge. Elle est disponible pour les bacs à sable sans serveur, mais pas pour les bacs à sable exécutés sur votre propre cluster CoreWeave Kubernetes Service (CKS). Le placement CKS repose sur un jeton d’accès à l’API CoreWeave. Il n’est pas possible de combiner ce jeton avec une clé API Forge distincte pour résoudre les secrets d’un sandbox CKS.
Pour suivre les exemples, vous devez disposer des éléments suivants :
- Un compte Forge SaaS (logiciel en tant que service) avec un accès aux bacs à sable sans serveur.
- Un secret nommé
HF_TOKENdans le Secret Manager de votre équipe Forge. Si ce secret n’existe pas, demandez à un administrateur Forge de l’ajouter. - Une clé API Forge ayant accès à cette équipe.
FORGE_API_KEY dans l’environnement du processus qui crée le sandbox. Remplacez [FORGE-API-KEY] par votre clé API Forge :
FORGE_TEAM. Si le secret appartient à une autre équipe, définissez FORGE_TEAM sur cette équipe. Remplacez [FORGE-TEAM] par le nom de l’équipe :
FORGE_API_KEY ni FORGE_TEAM.
Installez le client correspondant à votre langage :
- Python
- TypeScript
Utilisez Python 3.11 ou une version ultérieure et, si nécessaire, installez
uv. Dans votre environnement Python, installez le client :Injecter un secret
Utilisezstore="wandb" en Python ou store: "wandb" en TypeScript. Ce magasin résout les secrets pour l’équipe Forge authentifiée. Avec ce flux de travail, il n’est pas nécessaire d’enregistrer un magasin de secrets d’organisation.
Les exemples suivants injectent HF_TOKEN et vérifient sa présence sans afficher sa valeur. Dans la sandbox, la variable d’environnement porte par défaut le nom du secret.
- Python
- TypeScript
Transmettez la clé API Forge et, si besoin, l’équipe via
AuthHeaders :Secret is available et arrêtent la sandbox une fois l’opération terminée. Le code exécuté dans la sandbox peut lire la valeur dans HF_TOKEN.
Dans secrets, transmettez le nom du secret, et non sa valeur : c’est le serveur qui résout la valeur. Ne l’affichez pas et ne l’écrivez pas dans les journaux.
Champs de référence de secret
Utilisez ces champs dans unSecret Python ou dans une entrée secrets TypeScript :
Utiliser un nom de variable d’environnement personnalisé
Pour choisir la variable d’environnement qui reçoit le secret, définissezenv_var en Python ou envVar en TypeScript. Les exemples suivants exposent le secret HF_TOKEN sous le nom HUGGINGFACE_TOKEN :
- Python
- TypeScript
HUGGINGFACE_TOKEN, puis affichent Secret is available.
Sélectionner un champ d’un secret structuré
Pour injecter une seule valeur d’un objet JSON, définissezfield sur sa clé de premier niveau. Les chemins imbriqués ne sont pas pris en charge. S’il s’agit d’une chaîne JSON, la valeur est injectée sans les guillemets JSON qui l’entourent.
Pour cet exemple, ajoutez un secret d’équipe nommé DB_CREDENTIALS dont la valeur est un objet JSON tel que {"password":"[DB-PASSWORD]"}. Remplacez [DB-PASSWORD] par le mot de passe avant d’enregistrer le secret. Les exemples injectent son champ password dans DB_PASSWORD :
- Python
- TypeScript
Secret is available sans révéler le mot de passe. La sélection d’un champ échoue si le secret n’est pas un objet JSON, si la clé n’existe pas ou si sa valeur est null.
Réutiliser les références de secret
Pour les sessions Python, placez les références de secret partagées dansSandboxDefaults. En TypeScript, réutilisez un même tableau secrets lorsque vous créez des bacs à sable :
- Python
- TypeScript
secrets propres à chaque sandbox et ignore les doublons exacts. Si plusieurs références différentes ciblent la même variable d’environnement, le client lève une ValueError avant de créer la sandbox. Pour la signature de type Python, consultez la référence Secret.Résoudre les problèmes d’injection de secrets
Si la sandbox ne démarre pas avec une référence de secret, consultez le texte de l’erreur pour vérifier l’authentification, l’équipe sélectionnée et le placement :
L’injection de secrets Forge n’est pas disponible pour le placement CKS, y compris lorsque vous définissez à la fois un jeton d’accès à l’API CoreWeave et une clé API Forge.