Script / Importazione di dati legacy

"Scripts" è la soluzione completa di SKOOR per la creazione, la modifica e l'esecuzione di script, con tantissime opzioni per personalizzarli.

Pagina Scripts

La pagina è suddivisa in tre sezioni principali:

Impostazioni

Questa sezione include le impostazioni generali di uno script, quali:

  • Nome e Descrizione.

  • Timeout predefinito (in secondi)

  • Tipi MIME consentiti per i file sorgente.

  • Copia token Webhook o reimpostalo (disponibile solo per gli AMMINISTRATORI)

  • Configurazioni della pianificazione: consente pianificazioni multiple con configurazioni di esecuzione dedicate.

  • Configurazioni di esecuzione: consente la personalizzazione del timeout e delle variabili d'ambiente.

image-20260512-100658.png

File

Questa sezione offre una soluzione completa di gestione dei file per lo script, compreso un editor all'avanguardia per i dati testuali.

Verrà visualizzato un link per il download se i dati sono binari (non modificabili in formato testo).

image-20250214-093009.png

Esecuzione

Questa sezione è responsabile dell'esecuzione e del monitoraggio delle esecuzioni di uno script. Offre una piccola area di rilascio per caricare i file sorgente, se necessario.

image-20260512-100726.png

Creazione di uno script

Gli script possono essere creati manualmente o caricati tramite file Zip come mostrato di seguito:

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

Importazione dello script tramite file Zip

Quando si importa il file zip dello script, viene eseguita un'analisi, al termine della quale vengono visualizzati diversi indicatori prima che l'importazione effettiva venga completata.
Tali indicatori sono:

image-20250715-111604.png

Conferma sovrascrittura

Indica che esiste già uno script con lo stesso nome.
Selezionando questo flag, lo script verrà sovrascritto.

Includi metadati dello script

Indica che il file Zip contiene un file "script_metadata.json":

Questo file include il timeout predefinito dello script, la descrizione e la configurazione di esecuzione/pianificazione.

Elementi fondamentali di uno script

Script di esecuzione

Il file principale include la logica dello script. Questo determina il tipo di runner per lo script:

  • Python Runner richiede un file main.py.

  • Il Talend Runner richiede un file `<scriptName>_run.sh`.

  • Shell Runner richiede un file run.sh.

Posizionare lo script principale un livello sotto la radice (o più in alto), poiché la scansione in larghezza utilizza sempre lo script meno profondo che trova.

Viene visualizzato il seguente messaggio quando si tenta di eseguire uno script senza uno script runner principale.

image-20250423-061703.png

.env

Si tratta di un semplice file di testo che include variabili d'ambiente. In questo modo le variabili utilizzate in uno script possono essere regolate in base al caso d'uso.

Il file .env deve trovarsi nella stessa cartella dello script runner (main.py, run.sh … ecc.)

Il seguente file .env produrrebbe le variabili d'ambiente mostrate, consentendo di modificarle nelle configurazioni di esecuzione personalizzate.

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

Variabili d'ambiente predefinite

Alcuni dettagli sull'esecuzione dello script vengono passati all'ambiente dello script come variabili d'ambiente. Questi sono:

  • UserId come SKOOR_USER_ID

  • Nome utente come SKOOR_USER_USERNAME

  • Nome completo dell'utente come SKOOR_USER_FULLNAME

Le schermate sottostanti mostrano come recuperarle in un esempio Python insieme all'output nello 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

Esempio con .env

Il seguente script legge la variabile foo in .env e la stampa sulla console; di seguito sono riportati gli screenshot di tale .env e delle rispettive configurazioni di esecuzione.

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

image-20250214-094911.png

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

File sorgente

Gli script possono essere progettati per accettare file esterni (file sorgente) ed elaborarli come parte della logica dello script.

I file sorgente possono essere referenziati nello script utilizzando la variabile d'ambiente SKOOR_SOURCE_FILE, come mostrato nel seguente frammento di codice:

# 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

I seguenti tipi di file sono supportati di default, a meno che non siano limitati nella configurazione dello script:

  • Testo (strutturato)

    • 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

  • Documenti

    • 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

  • Archivi

    • 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

Esecuzione di sub-script

Se sono necessari dei sub-script, questi devono essere inseriti all'interno di una cartella bin. In questo modo saranno eseguibili.

Assicurarsi di inserire sempre i sub-script in una cartella bin.

Di seguito è riportato un esempio in Shell:

image-20250423-063721.png

L'output di questo run.sh è:

image-20250423-063801.png

image-20250423-063907.png

L'output di questo file "run.sh" è:

image-20250423-063955.png

QuickRun

Questa opzione offre un pulsante "QuickRun" che esegue lo script senza un file sorgente e con i valori predefiniti delle variabili d'ambiente.
Consente di eseguire rapidamente uno script durante lo sviluppo o la risoluzione dei problemi e il pulsante "Latest Job Overview" mostra l'output della console.

image-20250214-095256.png

Esecuzione

Avvio di un'esecuzione

Nella sezione di esecuzione, selezionare la configurazione desiderata (e caricare un file sorgente se necessario), quindi fare clic su "Esegui script"

image-20250214-095342.png

Annullare un'esecuzione

Le esecuzioni in corso e quelle in attesa possono essere annullate facendo clic sull'icona di annullamento del lavoro nella sezione Cronologia.

image-20250214-095439.png

Disattivazione di Poetry

Poetry è un potente strumento utilizzato per la gestione delle dipendenze e degli ambienti virtuali in Python. Tutto ciò avviene definendo un file pyproject.toml nella stessa cartella dello script di esecuzione (main.py, run.sh … ecc.).

Rimuovendo o rinominando il file pyproject.toml, l'utilizzo di Poetry verrà automaticamente disattivato e verrà utilizzato invece skoor-python.

Panoramica dei lavori

Per visualizzare i dettagli completi di un lavoro, fare clic su una voce nell'elenco Cronologia come mostrato di seguito:

image-20250214-095601.png

image-20250214-095612.png

Cronologia delle esecuzioni

La sezione Cronologia mostra un elenco di tutte le esecuzioni dello script. È possibile visualizzare i dettagli di ciascuna esecuzione cliccandoci sopra.

image-20250214-095715.png

Una sezione dedicata mostra la cronologia dettagliata dell'ultima esecuzione dello script (escluse le esecuzioni in attesa o annullate)

image-20250214-095752.png

Utilizzo dei token Webhook per eseguire un convertitore

Questa opzione consente di eseguire lo script senza la necessità di effettuare il login ed è l'opzione preferita dagli utenti tecnici.
Ogni script ha il proprio token Webhook univoco e l'URL verrà copiato negli appunti cliccando su "Copy Webhook Token".

Esempio di utilizzo dei token Webhook

Copia il token Webhook dalla pagina dello script cliccando su "Copy Webhook Token"; in questo esempio l'URL Webhook è il seguente:

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

Utilizza l'URL per inviare una richiesta POST:

Utilizzo di un software API come POSTMAN

image-20250213-145831.png

Una risposta 200 con l'entità di lavoro iniziale indica che l'esecuzione è stata attivata, come mostrato nella schermata qui sotto:

image-20250213-145952.png

Utilizzo di cURL nel terminale

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

La risposta dovrebbe apparire così


image-20250213-151347.png

Questa esecuzione può essere osservata nella SKOOR Dashboard e l'esecuzione creata da Token-User è visibile nella Cronologia.

image-20250214-095924.png

image-20250214-095945.png

Eliminazione

Fare clic sull'icona del cestino per eliminare lo script. L'icona apparirà quando si passa il puntatore del mouse sul nome dello script.

image-20250226-085215.png

Esportazione dello script come file Zip

Fare clic sull'icona dell'archivio per esportare lo script. L'icona apparirà quando si passa il puntatore del mouse sul nome dello script.

All'interno del file ZIP esportato viene esportato un file script_metadata.json, contenente la descrizione, il timeout predefinito, la configurazione dell'esecuzione e la configurazione della pianificazione dello script.

Su Safari: disattiva Impostazioni → Generali → "Apri i file 'sicuri' dopo il download" per impedire l'estrazione automatica dei file ZIP.

image-20250226-085236.png