Paramétrez Openflow Connector for Jira Cloud

Note

Le connecteur est soumis aux conditions d’utilisation du connecteur.

Cette rubrique décrit les étapes pour paramétrer Openflow Connector for Jira Cloud.

Conditions préalables

  1. Assurez-vous d’avoir consulté À propos de Openflow Connector for Jira Cloud.

  2. Assurez-vous que vous avez paramétré Openflow.

Obtenir les identifiants de connexion

En tant qu’administrateur de Jira Cloud, effectuez les tâches suivantes dans votre compte Atlassian :

  1. Naviguez jusqu’à la page API jetons.

  2. Sélectionnez Create API token with scopes.

  3. Dans la boîte de dialogue Create an API token, donnez un nom descriptif au jeton d’API et sélectionnez une date d’expiration pour le jeton d’API. Ce délai peut aller de 1 à 365 jours.

  4. Sélectionnez l’application Jeton Api Jira.

  5. Sélectionnez les champs d’application jira read:jira-work et read:jira-user.

  6. Sélectionnez Create token.

  7. Dans la boîte de dialogue Copy your API token, sélectionnez Copy pour copier le jeton API que vous avez généré, puis collez le jeton dans les paramètres du connecteur, ou sauvegardez-le en toute sécurité.

  8. Sélectionnez Close pour fermer la boîte de dialogue.

Paramétrage du compte Snowflake

En tant qu’administrateur de compte Snowflake, effectuez les tâches suivantes :

  1. Créez un nouveau rôle ou utilisez un rôle existant.

  2. Créez un nouvel utilisateur du service Snowflake avec le type SERVICE.

  3. Autorisez l’utilisateur du service Snowflake le rôle que vous avez créé dans les étapes précédentes.

  4. Configurez avec l’authentification par paire de clés pour l’utilisateur de Snowflake SERVICE de l’étape 2.

  5. Snowflake recommande vivement cette étape. Configurez un gestionnaire de secrets pris en charge par Openflow, par exemple AWS, Azure et Hashicorp, et stockez les clés publiques et privées dans le magasin de secrets.

    Note

    Si, pour une raison quelconque, vous ne souhaitez pas utiliser un gestionnaire de secrets, il vous incombe de protéger les fichiers de clés publiques et privées utilisés pour l’authentification par paires de clés conformément aux politiques de sécurité de votre organisation.

    1. Une fois le gestionnaire de secrets configuré, déterminez comment vous vous y authentifierez. Sur AWS, il est recommandé d’utiliser le rôle de l’instance EC2 associée à Openflow, car de cette manière, aucun autre secret ne doit être conservé.

    2. Dans Openflow, configurez un fournisseur de paramètres associé à ce gestionnaire de secrets, à partir du menu hamburger en haut à droite. Naviguez vers Controller Settings » Parameter Provider et récupérez les valeurs de vos paramètres.

    3. À ce stade, tous les identifiants peuvent être référencés avec les chemins de paramètres associés et aucune valeur sensible ne doit être conservée dans Openflow.

  6. Si d’autres utilisateurs de Snowflake ont besoin d’accéder aux documents bruts ingérés et aux tables ingérées par le connecteur (par exemple, pour un traitement personnalisé dans Snowflake), accordez à ces utilisateurs le rôle créé à l’étape 1.

  7. Créez une base de données et un schéma dans Snowflake pour que le connecteur puisse stocker les données ingérées. Autorisez Privilèges de base de données pour le rôle créé à la première étape.

    CREATE DATABASE jira_destination_db;
    CREATE SCHEMA jira_destination_db.jira_destination_schema;
    GRANT USAGE ON DATABASE jira_destination_db TO ROLE <jira_connector_role>;
    GRANT USAGE ON SCHEMA jira_destination_db.jira_destination_schema TO ROLE <jira_connector_role>;
    GRANT CREATE TABLE, CREATE VIEW ON SCHEMA jira_destination_db.jira_destination_schema TO ROLE <jira_connector_role>;
    
    Copy
  8. Créez un entrepôt qui sera utilisé par le connecteur ou utilisez un entrepôt existant. Commencez par la taille d’entrepôt la plus petite, puis faites des essais en fonction du nombre de tables répliquées et de la quantité de données transférées. Les tables de grande taille s’adaptent généralement mieux aux entrepôts multi-clusters, plutôt qu’aux entrepôts de grande taille.

  9. Assurez-vous que l’utilisateur dont le rôle est utilisé par le connecteur dispose des privilèges requis pour utiliser l’entrepôt. Si ce n’est pas le cas, accordez les privilèges requis au rôle.

    CREATE WAREHOUSE jira_connector_warehouse WITH WAREHOUSE_SIZE = 'X-Small';
    GRANT USAGE ON WAREHOUSE jira_connector_warehouse TO ROLE <jira_connector_role>;
    
    Copy

Définir le connecteur

En tant qu’ingénieur des données, effectuez les tâches suivantes pour installer et configurer le connecteur :

Installer le connecteur

  1. Naviguez jusqu’à la page d’aperçu d’Openflow. Dans la section Featured connectors, sélectionnez View more connectors.

  2. Sur la page des connecteurs Openflow, trouvez le connecteur et sélectionnez Add to runtime.

  3. Dans la boîte de dialogue Select runtime, sélectionnez votre environnement d’exécution dans la liste déroulante Available runtimes.

  4. Sélectionnez Add.

    Note

    Avant d’installer le connecteur, assurez-vous que vous avez créé une base de données et un schéma dans Snowflake pour que le connecteur puisse stocker les données ingérées.

  5. Authentifiez-vous au déploiement avec les identifiants de votre compte Snowflake et sélectionnez Allow lorsque vous êtes invité à autoriser l’application d’exécution à accéder à votre compte Snowflake. Le processus d’installation du connecteur prend quelques minutes.

  6. Authentifiez-vous auprès de l’environnement d’exécution avec les identifiants de votre compte Snowflake.

Le canevas Openflow apparaît avec le groupe de processus du connecteur ajouté.

Configuration du connecteur

  1. Cliquez avec le bouton droit de la souris sur le groupe de processus importé et sélectionnez Parameters.

  2. Renseignez les valeurs des paramètres requis comme décrit dans Paramètres de débit.

Paramètres de débit

Cette section décrit les paramètres de flux que vous pouvez configurer en fonction des contextes de paramètres suivants :

Note

La modification des paramètres liés à la configuration de l’ingestion (par exemple, Type de recherche, Requête JQL, Noms de projet et Créé après) réinitialise l’état du processeur FetchJiraIssues, lui permettant de récupérer à nouveau tous les tickets. Cela est utile si vous souhaitez modifier les critères de requête des tickets ou redémarrer l’ingestion depuis le début. Cette action de réinitialisation ne tronque pas la table de destination.

Paramètres de la source Jira Cloud

Paramètre

Description

E-mail Jira

Adresse e-mail du compte Atlassian.

Jeton d’API Jira

Jeton d’accès d’API pour votre compte Atlassian Jira avec les champs d’application nécessaires (read:jira-work et read:jira-user).

URL d’environnement

URL vers l’environnement Atlassian Jira. Par exemple, https://your-domain.atlassian.net.

Paramètres de la destination Jira Cloud

Paramètre

Description

Base de données de destination

La base de données dans laquelle les données seront conservées. Elle doit déjà exister dans Snowflake. Notez que le nom est sensible à la casse et en cas d’identificateur non délimité, le nom doit être fourni en majuscules.

Schéma de destination

Le schéma dans lequel les données seront conservées. Il doit déjà exister dans Snowflake. Notez que le nom est sensible à la casse et en cas d’identificateur non délimité, le nom doit être fourni en majuscules.

Identificateur de compte Snowflake

Nom du compte Snowflake formaté comme suit : [[nom de l’organisation] -[[nom du compte] où les données seront conservées

Stratégie d’authentification Snowflake

Stratégie d’authentification auprès de Snowflake. Valeurs possibles : SNOWFLAKE_SESSION_TOKEN, lorsque vous exécutez le flux sur SPCS et KEY_PAIR, lorsque vous souhaitez configurer l’accès à l’aide d’une clé privée.

Clé privée de Snowflake

La clé privée RSA utilisée pour l’authentification. La clé RSA doit être formatée selon les normes PKCS8 et comporter les en-têtes et pieds de page standard PEM. Notez que vous devez définir soit le fichier de clé privée de Snowflake, soit la clé privée de Snowflake.

Fichier de clé privée de Snowflake

Le fichier qui contient la clé privée RSA utilisée pour l’authentification à Snowflake, formaté selon les normes PKCS8 et comportant les en-têtes et pieds de page standard PEM. La ligne d’en-tête commence par -----BEGIN PRIVATE. Cochez la case Reference asset pour télécharger le fichier de la clé privée.

Mot de passe de la clé privée de Snowflake

Le mot de passe associé au fichier de la clé privée de Snowflake

Rôle Snowflake

Rôle Snowflake utilisé lors de l’exécution de la requête

Nom d’utilisateur Snowflake

Nom d’utilisateur utilisé pour se connecter à l’instance de Snowflake

Entrepôt Snowflake

L’entrepôt de Snowflake est utilisé pour exécuter des requêtes

Paramètres d’ingestion de Jira Cloud

Paramètre

Description

Type de recherche

Type de recherche à effectuer. Il a l’une de ces valeurs possibles SIMPLE et JQL. Valeur par défaut : SIMPLE.

Table de destination

La table Snowflake dans laquelle les données sont stockées. Elle sera créée si elle n’existe pas. Le nom de la table ne doit pas être délimité et doit être fourni en majuscules. En plus de la table de destination, une vue aplatie basée sur la table de destination est créée. Le nom de la vue est une concaténation du nom de la table et du suffixe _VIEW

Requête JQL

Une requête JQL utilisée pour rechercher les tickets Jira à récupérer. Elle ne doit être utilisée que lorsque le type de recherche est JQL.

Noms de projet

Liste des projets à partir desquels les tickets doivent être extraits. Vous pouvez rechercher des tickets appartenant à un projet particulier par nom de projet, clé de projet ou ID de projet. Cette liste ne doit être utilisée que lorsque le type de recherche est SIMPLE. Fournissez une liste d’éléments séparés par des virgules. Par exemple : Project1, Project2.

Catégories de statut

Filtre de catégories de statut pour une recherche simple. A utiliser uniquement lorsque le type de recherche est SIMPLE. Voici quelques valeurs à titre d’exemple : Done, In Progress, To Do.

Mise à jour après

Filtrez les questions mises à jour après une date et une heure spécifiées. A utiliser uniquement lorsque le type de recherche est SIMPLE. Doit être au format aaaa-MM-dd, par exemple 2023-10-01.

Créé après

Filtrez les problèmes créés après une date et une heure données. A utiliser uniquement lorsque le type de recherche est SIMPLE. Doit être au format aaaa-MM-dd, par exemple 2023-10-01.

Champs de questions

Une liste de champs à renvoyer pour chaque ticket, utilisée pour récupérer un sous-ensemble de champs. Les IDs de champs personnalisés peuvent être obtenus en suivant ce guide. Ce paramètre accepte une liste séparée par des virgules. Vous pouvez utiliser des valeurs spéciales : *all pour récupérer tous les champs, *navigable pour récupérer les champs navigables, préfixe moins (-) pour exclure un champ. Par exemple, *all,-description renvoie tous les champs à l’exception de la description. Valeur par défaut : *all.

Taille maximale des pages

Nombre maximum de tickets à renvoyer par requête, avec une valeur par défaut et une valeur maximale de 1000. Notez que l’API Jira peut renvoyer moins de résultats en fonction de la taille totale de la réponse.

Exécutez le flux

  1. Cliquez avec le bouton droit de la souris sur l’avion et sélectionnez Enable all Controller Services.

  2. Cliquez avec le bouton droit de la souris sur le groupe de processus importé et sélectionnez Start. Le connecteur démarre l’ingestion des données.

Si vous devez modifier les critères de la requête d’émission ou si vous souhaitez relancer l’ingestion à partir de zéro, effectuez les étapes suivantes pour vous assurer que les données de la table de destination sont cohérentes :

  1. Cliquez avec le bouton droit de la souris sur le processeur FetchJiraIssues et arrêtez-le.

  2. Cliquez avec le bouton droit de la souris sur le processeur FetchJiraIssues et sélectionnez View State.

  3. Dans la boîte de dialogue State, sélectionnez Clear State. Cette action efface l’état du processeur et lui permet de récupérer à nouveau tous les numéros.

  4. Facultatif : Si vous souhaitez modifier les critères de requête, cliquez avec le bouton droit de la souris sur le groupe de processus importé et sélectionnez Parameters. Mettez à jour les paramètres si nécessaire.

  5. Facultatif : si vous souhaitez modifier le nom de la table de destination, cliquez avec le bouton droit de la souris sur le groupe de processus importé et sélectionnez Parameters. Mettez à jour le paramètre Destination Table.

  6. Cliquez avec le bouton droit de la souris sur le processeur FetchJiraIssues et sélectionnez Start. Le connecteur démarre l’ingestion des données.

  7. Après l’ingestion, les données sont disponibles dans la table de destination Snowflake et dans un format aplati dans la vue de destination. La vue comprend tous les champs disponibles dans l’instance Jira.

Accès aux données

Les données extraites de Jira sont disponibles dans la table de destination. Tous les champs extraits pour le ticket Jira sont disponibles dans la colonne ISSUE en tant qu’objet sous forme brute extraite de l’API.

Pour faciliter la requête de données, une vue aplatie est créée en fonction de la table de destination. Le nom de la vue est une concaténation du nom de la table et du suffixe _VIEW. Par exemple, si la table de destination s’appelle JIRA_ISSUES, la vue sera nommée JIRA_ISSUES_VIEW. Dans la vue, tous les champs de tickets sont extraits et disponibles sous forme de colonnes séparées. Le nom de la colonne est défini sur le libellé du champ. S’il existe de nombreux tickets avec le même libellé, un suffixe avec un ID de champ est ajouté au nom de la colonne pour garantir l’unicité. Par exemple, s’il y a deux champs avec des IDs customfield_1, customfield_2, et le libellé est défini dans les deux champs sur Custom Field, les colonnes de la vue seront nommées Custom Field (customfield_1), Custom Field (customfield_2).