Authentifier un package privé dans Dataform

Ce document explique comment authentifier un package NPM privé dans Dataform pour permettre son installation dans un dépôt Dataform.

Pour installer un package npm privé dans un dépôt Dataform et l'utiliser pour développer votre workflow SQL, vous devez d'abord authentifier le package dans Dataform. Le processus d'authentification est différent pour le premier package privé dans un dépôt et un package privé ultérieur dans un dépôt.

Avant de commencer

  1. Dans la console Google Cloud, accédez à la page Dataform page.

    Accéder à la page Dataform

  2. Sélectionnez ou créez un dépôt.

  3. Sélectionnez ou créez un espace de travail de développement.

Rôles requis

Pour obtenir les autorisations nécessaires pour authentifier des packages NPM privés dans Dataform, demandez à votre administrateur de vous accorder le rôle IAM Éditeur Dataform (roles/dataform.editor) sur les dépôts et les espaces de travail. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Authentifier le premier package privé dans un dépôt Dataform

Pour authentifier des packages npm privés dans Dataform, vous devez procéder comme suit avant d'installer le premier package npm privé dans un dépôt Dataform:

  1. Créez un secret Secret Manager dédié au stockage des jetons d'authentification des packages npm privés dans le dépôt Dataform.

    1. Ajoutez le jeton d'authentification du package, obtenu à partir de votre registre NPM, au secret.

    Vous devez stocker tous les jetons d'authentification des packages npm privés dans votre dépôt dans un seul secret. Vous devez créer un secret dédié par dépôt Dataform. Le secret doit être au format JSON.

  2. Importez le secret dans le dépôt Dataform.

  3. Créez un fichier .npmrc et ajoutez le jeton d'authentification du package au fichier.

    Le jeton d'authentification du fichier .npmrc doit correspondre au jeton d'authentification du secret importé.

Une fois le package NPM privé authentifié, vous pouvez l'installer dans le dépôt Dataform.

Créer un secret pour l'authentification des packages privés

Pour authentifier des packages NPM privés dans un dépôt Dataform, vous devez créer un secret Secret Manager et définir des jetons d'authentification pour tous les packages privés que vous souhaitez installer dans le dépôt Dataform dans le secret. Définissez un jeton d'authentification par package NPM privé et stockez tous les jetons d'authentification dans un seul secret par dépôt. Le secret doit être au format JSON.

Pour créer un secret avec des jetons d'authentification pour les packages NPM privés, procédez comme suit:

  1. Dans Secret Manager, créez un secret.

    1. Dans le champ Valeur du secret, saisissez un ou plusieurs jetons d'authentification au format suivant:
    {
      "AUTHENTICATION_TOKEN_NAME": "TOKEN_VALUE"
    }
    

    Remplacez les éléments suivants :

    • AUTHENTICATION_TOKEN_NAME: nom unique du jeton qui identifie le package qu'il authentifie
    • TOKEN_VALUE: valeur du jeton d'authentification, obtenue à partir de votre registre NPM
  2. Accordez l'accès au secret à votre compte de service Dataform.

    Votre compte de service Dataform est au format suivant:

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
    1. Lorsque vous accordez l'accès, assurez-vous d'attribuer le rôle roles/secretmanager.secretAccessor à votre compte de service Dataform.

Importer le secret d'authentification des packages privés dans un dépôt Dataform

Avant d'installer un package NPM privé dans un dépôt Dataform pour la première fois, importez votre secret contenant le jeton d'authentification du package dans le dépôt.

Pour importer le secret avec les jetons d'authentification des packages npm privés dans un dépôt Dataform, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page Dataform page.

    Accéder à Dataform

  2. Sélectionnez le dépôt dans lequel vous souhaitez installer des packages NPM privés.

  3. Sur la page du dépôt, cliquez sur Settings > Configure NPM packages private (Paramètres > Configurer les packages NPM privés).

  4. Dans le volet Ajouter un jeton secret pour les packages npm, dans la liste déroulante Secret, sélectionnez votre secret contenant les jetons d'authentification pour les packages npm privés.

  5. Cliquez sur Enregistrer.

Créer un fichier .npmrc pour l'authentification des packages privés

Pour authentifier des packages NPM privés dans un dépôt Dataform, vous devez créer un fichier .npmrc de niveau supérieur dans le dépôt. Vous devez stocker les jetons d'authentification de tous les packages npm privés à installer dans le dépôt dans le fichier .npmrc. Les jetons d'authentification du fichier .npmrc doivent correspondre aux jetons d'authentification du secret importé dans le dépôt. Pour en savoir plus sur les fichiers .npmrc, consultez la documentation npmrc.

Pour créer un fichier .npmrc de niveau supérieur dans votre dépôt, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page Dataform page.

    Accéder à Dataform

  2. Sélectionnez le dépôt dans lequel vous souhaitez installer des paquets NPM privés, puis un espace de travail.

  3. Dans le volet Fichiers, cliquez sur le menu Plus, puis sur Créer un fichier.

  4. Dans le volet Créer un fichier, procédez comme suit :

    1. Dans le champ Ajouter un chemin d'accès au fichier, saisissez .npmrc.

    2. Cliquez sur Créer un fichier.

Ajouter un jeton d'authentification au fichier .npmrc d'un dépôt Dataform

Pour authentifier un package NPM privé dans un dépôt Dataform qui contient déjà un secret avec des jetons d'authentification de package et un fichier .npmrc, vous devez ajouter le jeton d'authentification du package privé au fichier .npmrc du dépôt.

Dans le fichier .npmrc, vous devez définir la portée de votre registre npm et ajouter le jeton d'authentification du package privé auquel vous accédez dans cette portée. Pour en savoir plus sur les fichiers .npmrc, consultez la documentation npmrc.

Le jeton d'authentification du fichier .npmrc doit correspondre au jeton d'authentification du secret importé dans le dépôt.

Pour ajouter un jeton d'authentification au fichier .npmrc d'un dépôt Dataform, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page Dataform page.

    Accéder à Dataform

  2. Sélectionnez le dépôt dans lequel vous souhaitez installer des paquets NPM privés, puis un espace de travail.

  3. Dans le volet Fichiers, sélectionnez le fichier .npmrc.

  4. Dans le fichier .npmrc, définissez la portée du registre NPM et le jeton d'authentification du package privé au format suivant:

   @REGISTRY-SCOPE:registry=NPM-REGISTRY-URL
   NPM-REGISTRY-URL:_authToken=$AUTHENTICATION-TOKEN

Remplacez les éléments suivants :

  • REGISTRY-SCOPE: portée du registre NPM à laquelle vous souhaitez appliquer le jeton d'authentification
  • NPM-REGISTRY-URL: URL de votre registre NPM, par exemple https://npm.pkg.github.com
  • AUTHENTICATION-TOKEN: jeton d'authentification du package NPM privé. Le jeton d'authentification du fichier .npmrc doit correspondre au jeton d'authentification du secret importé. Le jeton d'authentification est fourni en tant que variable d'environnement dans le fichier .npmrc. Assurez-vous donc d'ajouter les crochets d'ouverture ${ et de fermeture }.

    Vous pouvez saisir plusieurs jetons d'authentification.

L'exemple de code suivant montre un jeton d'authentification pour un package NPM privé ajouté au fichier .npmrc d'un dépôt Dataform:

@company:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${AUTHENTICATION_TOKEN}

Authentifier un package privé ultérieur dans un dépôt Dataform

Pour authentifier un package NPM privé dans un dépôt Dataform qui contient déjà un secret avec des jetons d'authentification de package et un fichier .npmrc, procédez comme suit:

  1. Dans Secret Manager, listez les secrets et sélectionnez le secret qui stocke les jetons d'authentification des paquets NPM privés de votre dépôt.

  2. Ajoutez une nouvelle version au secret.

    Dataform utilise la dernière version du secret par défaut.

    1. Ajoutez le jeton d'authentification du package privé à la valeur secrète au format suivant:
    {
      "AUTHENTICATION_TOKEN_NAME": "TOKEN_VALUE"
    }
    

    Remplacez les éléments suivants :

    • AUTHENTICATION_TOKEN_NAME: nom unique du jeton qui identifie le package qu'il authentifie
    • TOKEN_VALUE: valeur du jeton d'authentification, obtenue à partir de votre registre NPM

    Vous pouvez ajouter plusieurs jetons d'authentification à la fois.

  3. Dans Dataform, ajoutez le jeton d'authentification au fichier .npmrc de votre dépôt.

Une fois le package NPM privé authentifié, vous pouvez l'installer dans le dépôt Dataform.

Étape suivante