Scripts / Importation de données anciennes

Scripts est la solution complète de SKOOR pour créer, modifier et exécuter des scripts avec de nombreuses options de personnalisation.

Page 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'expiration par défaut (en secondes)

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

  • Configurations du calendrier : permet de définir plusieurs calendriers avec des configurations d'exécution dédiées.

  • Configurations d'exécution : permet de personnaliser le délai d'expiration 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 s'affiche si les données sont binaires (non modifiables sous forme de texte).

image-20250214-093009.png

Exécution

Cette section est responsable de l'exécution et de la surveillance des exécutions d'un script. Elle offre une petite zone de dépôt pour télécharger les fichiers source si nécessaire.

image-20250214-093849.png

Création d'un script

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

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

Importation d'un script à l'aide d'un fichier Zip

Lors de l'importation du fichier zip du script, une analyse est effectuée, à l'issue de laquelle différents indicateurs s'affichent avant que l'importation proprement dite ne soit effectuée.
Ces indicateurs sont les suivants :

image-20250715-111604.png

Confirmer le remplacement

Indique qu'un script portant le même nom existe déjà.
Cocher ce drapeau entraînera le remplacement du script.

Inclure les métadonnées du script

Indique que le fichier zip contient des métadonnées :

Ce fichier comprend le délai d'expiration par défaut, la description et la configuration d'exécution/de planification du script.

Les fondements d'un script

Script d'exécution

Le fichier principal contient la logique du script. Il détermine le type d'exécutant pour le script :

  • Python Runner attend un fichier main.py.

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

  • Shell Runner attend un fichier run.sh.

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

Le message suivant s'affiche lorsque vous essayez 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. De cette façon, les variables utilisées dans un script peuvent être ajustées en fonction du cas d'utilisation.

Le fichier .env doit se trouver dans le même dossier que le script runner (main.py, run.sh, etc.).

Le fichier .env suivant produirait les variables d'environnement indiqué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

Certaines informations relatives à l'exécution du script sont transmises à l'environnement du script sous forme de variables d'environnement. Il s'agit des variables suivantes :

  • UserId comme SKOOR_USER_ID

  • Nom d'utilisateur comme SKOOR_USER_USERNAME

  • Nom complet de l'utilisateur en tant qu'SKOOR_USER_FULLNAME

Les captures d'écran ci-dessous montrent comment récupérer ces informations dans un exemple Python, ainsi que le résultat dans le 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')
userGroup_id = os.environ.get('SKOOR_USER_USERGROUP_IDS')
userGroup_names = os.environ.get('SKOOR_USER_USERGROUP_NAMES')


print("sourceFile: ", source_file)
print("User ID: ", user_id)
print("Username: ", username)
print("Fullname: ", userFullname)
print("UserGroup ID: ", userGroup_id)
print("UserGroup name: ", userGroup_names)
image-20251201-084654.png

Exemple utilisant .env

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

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

image-20250214-094911.png

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

Fichiers source

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

Les fichiers source peuvent être référencés dans le script à l'aide de 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. Ceux-ci seront alors exécutables.

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

Voici un exemple dans Shell :

image-20250423-063721.png

Le résultat de cette run.sh est le suivant :

image-20250423-063801.png

image-20250423-063907.png

Le résultat de cette commande est le suivant :

image-20250423-063955.png

QuickRun

Cette option propose un bouton d'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 pendant son développement ou son dépannage, et le bouton d'Latest Job Overviewion affiche la sortie de la console.

image-20250214-095256.png

Exécution

Lancer une exécution

Dans la section 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 et en attente peuvent être annulées en cliquant sur l'icône « Annuler la tâche » dans la section « Historique ».

image-20250214-095439.png

Poetry Opt-out

Poetry est un outil puissant utilisé pour la gestion des dépendances et des environnements virtuels en Python. Pour cela, il suffit de définir un fichier d'pyproject.tomls dans le même dossier que le script d'exécution (main.py, run.sh, etc.).

La suppression/le renommage du fichier pyproject.toml désactivera automatiquement l'utilisation de Poetry et utilisera à la place skoor-python.

Aperçu des tâches

Pour afficher tous les détails d'une tâche, cliquez sur une entrée dans la liste Historique comme indiqué ci-dessous :

image-20250214-095601.png

image-20250214-095612.png

Historique d'exécution

La section Historique affiche une liste de toutes les exécutions du script. Vous pouvez obtenir des détails sur chaque exécution en cliquant dessus.

image-20250214-095715.png

Une section dédiée affiche 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 des jetons Webhook pour exécuter un convertisseur

Cette option permet d'exécuter le script sans avoir à se connecter, et elle est préférée par les utilisateurs techniques.
Chaque script dispose d'un jeton Webhook unique 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 depuis la page Script en cliquant sur Copy Webhook Token. Dans 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 requête POST :

Utilisation d'un logiciel API tel que POSTMAN

image-20250213-145831.png

Une réponse 200 avec l'entité de tâche 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 d'cURL dans le terminal

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

La réponse ressemblerait à ceci


image-20250213-151347.png

Cette exécution peut être observée dans SKOOR Dashboard et l'exécution créée par Token-User apparaît 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îtra lorsque vous passerez 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îtra lorsque vous passerez le pointeur de la souris sur le nom du script.

Le fichier ZIP exporté contient un fichier script_metadata.json qui comprend la description, le délai d'expiration par défaut, la configuration d'exécution et la configuration de planification du script.

Sur Safari : désactivez Paramètres → Général → « Ouvrir les fichiers « sûrs » après le téléchargement » pour empêcher l'extraction automatique des fichiers ZIP.

image-20250226-085236.png