Scripts / Importation de données anciennes

« Scripts » est la solution complète de SKOOR pour créer, modifier et exécuter des scripts, avec une multitude d'options permettant de les personnaliser.

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 :

Paramètre

Description

Nom

Définit le nom du script SKOOR.

Description

Définissez la description du script SKOOR.

Délai d'expiration

Définit le délai d'expiration par défaut pour l'exécution du script, en secondes.

Fichiers acceptés

Spécifie les types MIME autorisés pour les fichiers source téléchargés.

Configuration d'exécution par défaut

Sélectionne la configuration d'exécution par défaut utilisée par le script.

Copier et réinitialiser le jeton

Permet aux administrateurs de copier et de réinitialiser le jeton du webhook. Disponible uniquement pour les ADMINS.

Configurations de planification

Permet de définir plusieurs plannings avec des configurations d'exécution dédiées.

Commencez par choisir une période (Année, Mois, Semaine, Jour, Heure ou Minute) : en fonction de votre sélection, seuls les champs pertinents s'affichent (Mois, Jours du mois, Jours de la semaine, Heures, Minutes). La sélection multiple est possible. Pour exécuter le processus à intervalles réguliers, définissez la période et double-cliquez sur le nombre souhaité.

Exemple : tous les jours à 02h30 → Période « Jour », Heure 2, Minute 30.

Exemple : toutes les 10 minutes → Période « Heure », Minute <double-cliquez sur 10>

Configurations d’exécution

Permet de personnaliser le délai d’expiration et les variables d’environnement.

image-20260512-100658.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'affichera si les données sont binaires (non modifiables sous forme de texte).

image-20250214-093009.png

Exécution

Cette section est chargée d'exécuter et de surveiller les exécutions d'un script. Elle propose une petite zone de dépôt pour télécharger des fichiers source si nécessaire.

image-20260512-100726.png

Création d'un script

Les scripts peuvent être créés manuellement ou importés via des fichiers ZIP, comme illustré 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

Ce message indique qu'un script portant le même nom existe déjà.
Cochez cette case pour que ce script soit écrasé.

Inclure les métadonnées du script

Indique que le fichier ZIP contient des métscript_metadata.jsons :

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

Éléments fondamentaux d’un script

Script d'exécution

Le fichier principal contient la logique du script. Il détermine le type de moteur d’exécution du script :

  • Le moteur Python Runner attend un fichier «main.py ».

  • Le moteur Talend Runner attend un fichier «<scriptName>_run.sh ».

  • Le moteur 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 plus superficiel qu’elle trouve.

Le message suivant s'affiche lorsque vous essayez d'exécuter un script sans script principal du Runner.

image-20250423-061703.png

.env

Il s’agit d’un simple fichier texte contenant des variables d’environnement. Cela permet d’ajuster les variables utilisées dans un script en fonction du cas d’utilisation.

Le fichier `.env` doit se trouver dans le même dossier que le script d’exécution (main.py, run.sh, etc.)

Le fichier `.env` suivant générerait les variables d’environnement indiquées, permettant de les adapter dans des configurations d’exécution personnalisées.

image-20250214-094006.pngimage-20260512-100857.png

Variables d’environnement prédéfinies

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

  • UserId sous la forme SKOOR_USER_ID

  • Nom d’utilisateur sous forme d’SKOOR_USER_USERNAME

  • Nom complet de l’utilisateur sous forme d’SKOOR_USER_FULLNAME

Les captures d'écran ci-dessous montrent comment récupérer ces informations 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')
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 le fichier .env et l'affiche dans la console. Vous trouverez ci-dessous les captures d'écran de ce fichier .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 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
image-20260512-101048.png

Les types de fichiers suivants sont pris en charge par défaut, sauf restriction dans la configuration du script :

  • Texte (structuré)

    • text/plain

    • text/csv

    • text/tab-separated-values

    • text/tsv

    • text/markdown

    • text/vtt

    • application/json

    • application/x-ndjson

    • application/jsonl

    • application/xml

    • text/xml

    • application/yaml

    • text/yaml

    • application/x-yaml

    • application/sql

    • text/sql

  • Documents

    • application/pdf

    • application/msword

    • application/vnd.openxmlformats-officedocument.wordprocessingml.document

    • application/vnd.ms-excel

    • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

    • application/vnd.ms-powerpoint

    • application/vnd.openxmlformats-officedocument.presentationml.presentation

    • application/vnd.oasis.opendocument.text

    • application/vnd.oasis.opendocument.spreadsheet

    • application/vnd.oasis.opendocument.presentation

    • application/rtf

    • application/epub+zip

  • Archives

    • application/parquet

    • application/x-parquet

    • application/avro

    • application/x-avro

    • application/vnd.apache.arrow.file

    • application/vnd.apache.arrow.stream

    • application/orc

    • application/x-orc

    • application/zip

    • application/x-zip-compressed

    • application/gzip

    • application/x-gzip

    • application/x-bzip2

    • application/x-xz

    • application/zstd

    • application/x-zstd

    • application/x-tar

    • application/x-7z-compressed

Exécution de sous-scripts

Si des sous-scripts sont nécessaires, ils doivent être placés dans un dossier bin. Ceux-ci seront en effet exécutables.

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

Voici un exemple sous Shell :

image-20250423-063721.png

La sortie de ce fichier « run.sh » est la suivante :

image-20250423-063801.png

image-20250423-063907.png

La sortie de ce fichier «run.sh » est la suivante :

image-20250423-063955.png

QuickRun

Cette option propose un bouton « Exécuter rapidement » (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 « Afficher la console » (Latest Job Overview) 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 ainsi que celles en attente peuvent être annulées en cliquant sur l’icône d’annulation de tâche dans la section « Historique ».

image-20250214-095439.png

Désactivation 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 » dans le même dossier que le script d’exécution (main.py, run.sh, etc.).

La suppression ou le renommage du fichier `pyproject.toml` désactivera automatiquement l’utilisation de Poetry et fera appel à `skoor-python` à la place.

Aperçu des tâches

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

image-20250214-095601.png

image-20250214-095612.png

Historique d’exécution

La section « Historique » affiche la liste de toutes les exécutions du script. Pour obtenir des détails sur chaque exécution, cliquez dessus.

image-20250214-095715.png

Une section dédiée présente l’historique détaillé de la dernière exécution du script (en omettant les exécutions en attente ou 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 ; elle est privilégiée par les utilisateurs techniques.
Chaque script dispose d'un jeton Webhook unique ; l'URL est 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 du script en cliquant sur « Copy Webhook Token » ; dans cet exemple, l’URL du Webhook se présente comme suit :

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

Utilisez cette URL pour envoyer une requête POST :

À l’aide d’un logiciel d’API tel que POSTMAN

image-20250213-145831.png

Une réponse « 200 » contenant 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 de 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 le SKOOR Dashboard et apparaît dans l’historique comme ayant été créée par l’utilisateur « Token-User ».

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 vous survolez le nom du script avec le pointeur de la souris.

image-20250226-085215.png

Exporter le script au format ZIP

Cliquez sur l’icône d’archive pour exporter le script. L’icône apparaît lorsque vous survolez le nom du script avec le pointeur de la souris.

Le fichier ZIP exporté contient un fichier « script_metadata.json » qui regroupe la description, le délai d’expiration par défaut, la configuration d’exécution et la configuration de la 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