Scripts / Importation de données anciennes

Script est la solution complète de SKOOR pour créer, éditer et exécuter des scripts avec de nombreuses options pour les personnaliser.

Page des scripts

La page est divisée en trois sections principales :

Paramètres

Cette section comprend les paramètres généraux d'un Script, tels que :

  • Nom et description.

  • Délai d'attente par défaut (en secondes)

  • Copier le jeton Webhook ou le réinitialiser (disponible uniquement pour les ADMINS)

  • Configurations Scheduler : Permet d'avoir plusieurs planifications avec des configurations d'exécution dédiées.

  • Configurations d'exécution : Permet de personnaliser le délai d'attente et les variables d'environnement.

image-20250423-062736.png

Fichiers

Cette section offre une solution complète de gestion des fichiers pour le Script, y compris un éditeur de pointe pour les données textuelles.

Un lien de téléchargement sera affiché si les données sont binaires (non modifiables sous forme de texte).

image-20250214-093009.png

Exécution

Cette section permet d'exécuter et de contrôler les exécutions d'un Script. Elle offre une petite zone de dépôt pour télécharger les fichiers sources si nécessaire.

image-20250214-093849.png

Création d'un Script

Les scripts peuvent être créés manuellement ou téléchargés sous forme de fichiers Zip, comme indiqué ci-dessous :

image-20250423-061036.png
image-20250423-061102.png

Les pierres angulaires d'un Script

Script d'exécution

Le fichier principal comprend la logique du Script. Il détermine le type d'exécution du Script :

  • Python Runner attend un fichier main.py.

  • Talend Runner attend un fichier <scriptName>_run.sh.

  • Le Runner Shell attend un fichier run.sh.

Placez votre script principal un niveau en dessous de la racine (ou plus haut), car l'analyse en profondeur utilise toujours le script le moins profond qu'il trouve.

Le message suivant s'affiche lorsque l'on tente d'exécuter un Script sans script d'exécution principal.

image-20250423-061703.png

.env

Il s'agit d'un simple fichier texte qui contient des variables d'environnement. Ainsi, les variables utilisées dans un Script peuvent être ajustées en fonction du cas d'utilisation.
Le fichier .env suivant produirait les variables d'environnement montrées, permettant de les ajuster dans des configurations d'exécution personnalisées.

image-20250214-094006.pngimage-20250214-094332.png

Variables d'environnement pré-fournies

Certains détails concernant l'exécution du Script sont transmis à l'environnement du Script en tant que variables d'environnement :

  • UserId comme SKOOR_USER_ID

  • Nom d'utilisateur comme SKOOR_USER_USERNAME

  • Nom complet de l'utilisateur comme SKOOR_USER_FULLNAME

Les captures d'écran ci-dessous montrent comment récupérer ces variables dans un exemple Python, ainsi que la sortie du script :

import os

source_file = os.environ.get('SKOOR_SOURCE_FILE')
user_id = os.environ.get('SKOOR_USER_ID')
username = os.environ.get('SKOOR_USER_USERNAME')
userFullname = os.environ.get('SKOOR_USER_FULLNAME')

print("sourceFile: ", source_file)
print("User ID: ", user_id)
print("Username: ", username)
print("Fullname: ", userFullname)
image-20250214-094833.png

Exemple utilisant .env

Le script suivant lit la variable foo dans .env et l'imprime sur la console. Vous trouverez ci-dessous les captures d'écran de .env et des configurations d'exécution correspondantes.

image-20250214-094929.pngimage-20250214-094943.png

image-20250214-094911.png

image-20250214-095049.pngimage-20250214-095128.png

Fichiers sources

Les scripts peuvent être conçus pour accepter des fichiers externes (fichiers sources) et les traiter dans le cadre de la logique du script.

Les fichiers sources peuvent être référencés dans le script en utilisant la variable d'environnement SKOOR_SOURCE_FILE, comme le montre l'extrait de code suivant :

# IN PYTHON
import os

source_file = os.environ.get('SKOOR_SOURCE_FILE')
print(source_file)
#IN SHELL

echo $SKOOR_SOURCE_FILE

Exécution de sous-scripts

Si des sous-scripts sont nécessaires, ils doivent être placés dans un dossier bin. Puisqu'ils pourront être exécutés.

Veillez à toujours placer les sous-scripts dans un dossier bin.

L'exemple suivant montre un exemple en Shell :

image-20250423-063721.png

La sortie de ce run.sh est la suivante :

image-20250423-063801.png

image-20250423-063907.png

La sortie de ce run.sh est : :

image-20250423-063955.png

Exécution rapide

Cette option propose un bouton QuickRun qui exécute le Script sans fichier source et avec les valeurs par défaut des variables d'environnement.
Elle permet d'exécuter rapidement un Script lors de son développement ou de son dépannage et le bouton Latest Job Overview affiche la sortie de la console.

image-20250214-095256.png

Exécution

Démarrer une exécution

Dans la section d'exécution, sélectionnez la configuration souhaitée (et téléchargez un fichier source si nécessaire) puis cliquez sur "Exécuter le Script"

image-20250214-095342.png

Annuler une exécution

Les exécutions en cours ou en attente peuvent être annulées en cliquant sur l'icône d'annulation dans la section Historique.

image-20250214-095439.png

Retrait de Poetry

Poetry est un outil puissant utilisé pour la gestion des dépendances et des environnements virtuels en Python. Tout cela se fait en définissant un fichier pyproject.toml.

En supprimant/renommant le fichier pyproject.toml, l'utilisation de Poetry sera automatiquement supprimée et le fichier skoor-python sera utilisé à la place.

Vue d'ensemble des travaux

Pour afficher les détails complets d'un travail, cliquez sur une entrée de la liste Historique, comme indiqué ci-dessous :

image-20250214-095601.png

image-20250214-095612.png

Historique de l'exécution

La section Historique présente une liste de toutes les exécutions du Script. Les détails de chaque exécution peuvent être consultés en cliquant dessus.

image-20250214-095715.png

Une section dédiée présente l'historique détaillé de la dernière exécution du Script (ignore les exécutions en attente/annulées).

image-20250214-095752.png

Utilisation de jetons Webhook pour exécuter un convertisseur

Cette option permet d'exécuter le Script sans avoir besoin de se connecter, et c'est l'option préférée des utilisateurs techniques.
Chaque Script a son propre jeton Webhook et l'URL sera copiée dans le presse-papiers en cliquant sur Copy Webhook Token.

Exemple d'utilisation des jetons Webhook

Copiez le jeton Webhook de la page Script en cliquant sur Copy Webhook Token, pour cet exemple, l'URL Webhook se présente comme suit :

http://localhost:8090/scripts/8925cfd4-2063-4b07-9d56-956f2b754b47/run?token=6ae51c9f-d292-4d55-b512-4537121b37f5

Utilisez l'URL pour envoyer une demande à POST:

En utilisant un logiciel API comme POSTMAN

image-20250213-145831.png

Une réponse 200 avec l'entité Job initiale indique que l'exécution a été déclenchée, comme le montre la capture d'écran ci-dessous :

image-20250213-145952.png

Utilisation de cURL dans un terminal

curl -X POST http://localhost:8090/scripts/8925cfd4-2063-4b07-9d56-956f2b754b47/run?token=6ae51c9f-d292-4d55-b512-4537121b37f5

La réponse se présente comme suit


image-20250213-151347.png

Cette exécution peut être observée dans SKOOR Dashboard et l'exécution montre qu'elle a été créée par Token-User dans l'historique.

image-20250214-095924.png

image-20250214-095945.png

Suppression

Cliquez sur l'icône de la corbeille pour supprimer le Script. L'icône apparaît lorsque l'on passe le pointeur de la souris sur le nom du Script.

image-20250226-085215.png

Exportation du Script au format Zip

Cliquez sur l'icône d'archive pour exporter le Script. L'icône apparaît lorsque l'on passe le pointeur de la souris sur le nom du Script.

image-20250226-085236.png