La source peut être inline, Git ou un workspace. Le code s’exécute via le runtime conteneur et la cible configurée. L’image, les dépendances et l’accès au dépôt doivent être disponibles sur cette cible.
Type technique : script_zig. Runtime : docker.
Identifiants et prérequis
Aucun identifiant externe dédié n’est défini par ce nœud. Les sources distantes ou la cible d’exécution peuvent néanmoins nécessiter leurs propres accès.
Consultez le guide des identifiants si une source distante ou une cible d’exécution nécessite un accès.
Paramètres
Les noms ci-dessous correspondent aux clés techniques. Les valeurs par défaut ne constituent pas une configuration prête à exécuter : renseignez les champs requis par votre opération. Les chemins contenant [] décrivent les éléments d’une liste ; certains champs dépendent du mode sélectionné.
Paramètre
Type
Par défaut
Valeurs / limites
libraryIds
array
-
-; max 100
source
union
{"kind":"inline","script":"const std = @import(\"std\");\n\npub fn run(input: std.json.Value, allocator: std.mem.Allocator) !std.json.ObjectMap {\n // API_TOKEN comes from a selected Secret variables credential.\n const api_token = std.process.getEnvVarOwned(allocator, \"API_TOKEN\") catch null;\n defer if (api_token) |value| allocator.free(value);\n var out = std.json.ObjectMap.init(allocator);\n try out.put(\"payload\", if (input.object.get(\"input\")) |v| v else std.json.Value{ .null = {} });\n try out.put(\"upstream\", if (input.object.get(\"nodes\")) |v| v else std.json.Value{ .null = {} });\n try out.put(\"hasApiToken\", std.json.Value{ .bool = api_token != null and api_token.?.len > 0 });\n try out.put(\"message\", std.json.Value{ .string = \"Script output ready\" });\n return out;\n}\n","dependencies":[]}
-
source.files
record
-
-
source.directories
array
-
-; max 100
source.kind
literal
"inline"
inline, git, workspace
source.script
string
"const std = @import(\"std\");\n\npub fn run(input: std.json.Value, allocator: std.mem.Allocator) !std.json.ObjectMap {\n // API_TOKEN comes from a selected Secret variables credential.\n const api_token = std.process.getEnvVarOwned(allocator, \"API_TOKEN\") catch null;\n defer if (api_token) |value| allocator.free(value);\n var out = std.json.ObjectMap.init(allocator);\n try out.put(\"payload\", if (input.object.get(\"input\")) |v| v else std.json.Value{ .null = {} });\n try out.put(\"upstream\", if (input.object.get(\"nodes\")) |v| v else std.json.Value{ .null = {} });\n try out.put(\"hasApiToken\", std.json.Value{ .bool = api_token != null and api_token.?.len > 0 });\n try out.put(\"message\", std.json.Value{ .string = \"Script output ready\" });\n return out;\n}\n"
Image utilisée pour exécuter le script (ex. docker.io/library/node:22-bookworm). Pour une image Podman locale, utiliser localhost/nom:tag.
secretCredentialIds Secrets
Connexions Secrets injectées comme variables d'environnement du script (process.env, os.environ…). Le fichier qui les porte est effacé dès le démarrage du conteneur.
Configuration initiale
Exemple de configuration initiale du catalogue, à adapter avant exécution. Les secrets doivent rester dans les identifiants.
json
{"source":{"kind":"inline","script":"const std = @import(\"std\");\n\npub fn run(input: std.json.Value, allocator: std.mem.Allocator) !std.json.ObjectMap {\n // API_TOKEN comes from a selected Secret variables credential.\n const api_token = std.process.getEnvVarOwned(allocator, \"API_TOKEN\") catch null;\n defer if (api_token) |value| allocator.free(value);\n var out = std.json.ObjectMap.init(allocator);\n try out.put(\"payload\", if (input.object.get(\"input\")) |v| v else std.json.Value{ .null = {} });\n try out.put(\"upstream\", if (input.object.get(\"nodes\")) |v| v else std.json.Value{ .null = {} });\n try out.put(\"hasApiToken\", std.json.Value{ .bool = api_token != null and api_token.?.len > 0 });\n try out.put(\"message\", std.json.Value{ .string = \"Script output ready\" });\n return out;\n}\n","dependencies":[]},"executionTarget":{"kind":"host"}}
Vérification
Testez le nœud avec des données représentatives. Contrôlez sa sortie dans l’inspecteur et les logs, puis utilisez le mapping de l’éditeur pour les champs des nœuds suivants. Un test de déclencheur avec payload simulé ne valide pas la livraison du service externe.
Exécuter du code Zig personnalisé
Utilisation et spécificités
La source peut être inline, Git ou un workspace. Le code s’exécute via le runtime conteneur et la cible configurée. L’image, les dépendances et l’accès au dépôt doivent être disponibles sur cette cible.
Type technique :
script_zig. Runtime :docker.Identifiants et prérequis
Aucun identifiant externe dédié n’est défini par ce nœud. Les sources distantes ou la cible d’exécution peuvent néanmoins nécessiter leurs propres accès.
Consultez le guide des identifiants si une source distante ou une cible d’exécution nécessite un accès.
Paramètres
Les noms ci-dessous correspondent aux clés techniques. Les valeurs par défaut ne constituent pas une configuration prête à exécuter : renseignez les champs requis par votre opération. Les chemins contenant [] décrivent les éléments d’une liste ; certains champs dépendent du mode sélectionné.
libraryIdsarraysourceunion{"kind":"inline","script":"const std = @import(\"std\");\n\npub fn run(input: std.json.Value, allocator: std.mem.Allocator) !std.json.ObjectMap {\n // API_TOKEN comes from a selected Secret variables credential.\n const api_token = std.process.getEnvVarOwned(allocator, \"API_TOKEN\") catch null;\n defer if (api_token) |value| allocator.free(value);\n var out = std.json.ObjectMap.init(allocator);\n try out.put(\"payload\", if (input.object.get(\"input\")) |v| v else std.json.Value{ .null = {} });\n try out.put(\"upstream\", if (input.object.get(\"nodes\")) |v| v else std.json.Value{ .null = {} });\n try out.put(\"hasApiToken\", std.json.Value{ .bool = api_token != null and api_token.?.len > 0 });\n try out.put(\"message\", std.json.Value{ .string = \"Script output ready\" });\n return out;\n}\n","dependencies":[]}source.filesrecordsource.directoriesarraysource.kindliteral"inline"inline,git,workspacesource.scriptstring"const std = @import(\"std\");\n\npub fn run(input: std.json.Value, allocator: std.mem.Allocator) !std.json.ObjectMap {\n // API_TOKEN comes from a selected Secret variables credential.\n const api_token = std.process.getEnvVarOwned(allocator, \"API_TOKEN\") catch null;\n defer if (api_token) |value| allocator.free(value);\n var out = std.json.ObjectMap.init(allocator);\n try out.put(\"payload\", if (input.object.get(\"input\")) |v| v else std.json.Value{ .null = {} });\n try out.put(\"upstream\", if (input.object.get(\"nodes\")) |v| v else std.json.Value{ .null = {} });\n try out.put(\"hasApiToken\", std.json.Value{ .bool = api_token != null and api_token.?.len > 0 });\n try out.put(\"message\", std.json.Value{ .string = \"Script output ready\" });\n return out;\n}\n"source.dependenciesarray[]source.repostringsource.branchstring"main"source.scriptPathstringsource.credentialIdstringsource.installRootstringsource.installCommandstringsource.workingDirstringimagestringworkspaceSourceunionworkspaceSource.kindliteralupstream,nodeworkspaceSource.keystringexecutionTargetunion{"kind":"host"}executionTarget.kindliteral"host"aws_ecs,aws_lambda,gcp_job,gcp_function,azure_container,azure_function,scaleway_job,scaleway_function,scaleway_container,digitalocean_function,host,remote_server,kube,swarmexecutionTarget.credentialIdstringexecutionTarget.storageCredentialIdstringexecutionTarget.bucketstringexecutionTarget.regionstringfr-par,nl-ams,pl-waw; max 64executionTarget.clusterstringexecutionTarget.taskDefinitionstringexecutionTarget.containerNamestringexecutionTarget.subnetsarrayexecutionTarget.securityGroupsarray[]executionTarget.assignPublicIpbooleanfalseexecutionTarget.functionNamestringexecutionTarget.projectstringexecutionTarget.jobNamestringexecutionTarget.endpointstringexecutionTarget.subscriptionIdstringexecutionTarget.resourceGroupstringexecutionTarget.functionAppstringexecutionTarget.jobIdstringexecutionTarget.functionIdstringexecutionTarget.containerIdstringexecutionTarget.namespaceIdstringexecutionTarget.serverIdstringexecutionTarget.providerenumaws,gcp,scaleway,ovh,azure,digitalocean,hetznerexecutionTarget.clusterIdstringexecutionTarget.namespacestringsecretCredentialIdsarray[]Aide de configuration
imageImage de conteneur
secretCredentialIdsSecrets
Configuration initiale
Exemple de configuration initiale du catalogue, à adapter avant exécution. Les secrets doivent rester dans les identifiants.
{ "source": { "kind": "inline", "script": "const std = @import(\"std\");\n\npub fn run(input: std.json.Value, allocator: std.mem.Allocator) !std.json.ObjectMap {\n // API_TOKEN comes from a selected Secret variables credential.\n const api_token = std.process.getEnvVarOwned(allocator, \"API_TOKEN\") catch null;\n defer if (api_token) |value| allocator.free(value);\n var out = std.json.ObjectMap.init(allocator);\n try out.put(\"payload\", if (input.object.get(\"input\")) |v| v else std.json.Value{ .null = {} });\n try out.put(\"upstream\", if (input.object.get(\"nodes\")) |v| v else std.json.Value{ .null = {} });\n try out.put(\"hasApiToken\", std.json.Value{ .bool = api_token != null and api_token.?.len > 0 });\n try out.put(\"message\", std.json.Value{ .string = \"Script output ready\" });\n return out;\n}\n", "dependencies": [] }, "executionTarget": { "kind": "host" } }Vérification
Testez le nœud avec des données représentatives. Contrôlez sa sortie dans l’inspecteur et les logs, puis utilisez le mapping de l’éditeur pour les champs des nœuds suivants. Un test de déclencheur avec payload simulé ne valide pas la livraison du service externe.
Voir aussi : Expressions et données, Exécutions, Catalogue des nœuds.