Actions de code
La famille code exécute du TypeScript personnalisé comme étape d'automatisation pour la logique que les actions déclaratives ne couvrent pas. Un operator, runTypescript. La source est une fonction nommée execute(context) dont le corps est vérifié au niveau des types au démarrage du serveur.
| Prop | Description |
|---|---|
code |
Source TypeScript pour une fonction nommée execute(context). Dans les configurations TS, enveloppez avec String(function execute(context: CodeContext) { … }) pour l'autocomplétion de l'IDE. Requis. |
inputData |
Paires clé-valeur résolues par gabarit transmises comme context.inputData. |
input |
Paires clé-valeur résolues par gabarit transmises comme context.input (mêmes règles de résolution que inputData). |
packages |
Spécificateurs de paquets npm avec épinglage de version optionnel (par ex. lodash, date-fns@3.6.0, @scope/pkg@1.2.3). Résolus/installés au démarrage de l'application ou via sovrium install. |
timeout |
Timeout d'exécution en ms (1000–300000, par défaut 30000). |
Contexte de code
La fonction execute reçoit un objet context :
| Membre | Description |
|---|---|
context.trigger |
La charge utile du déclencheur. |
context.steps |
Sorties des étapes précédentes, indexées par nom d'étape. |
context.inputData |
Entrées résolues par gabarit depuis la prop inputData. |
context.input |
Entrées résolues par gabarit depuis la prop input. |
context.env |
Variables d'environnement (valeurs sensibles masquées dans les journaux). |
context.actions |
Invoque des actions natives ou des modèles réutilisables depuis le code. |
context.packages |
Les paquets npm déclarés, accessibles par nom. |
context.log |
Journalisation structurée : info, warn, error. |
- name: enrich-lead
type: code
operator: runTypescript
props:
packages: [date-fns]
inputData: { url: '{{trigger.data.profile_url}}' }
code: |
async function execute(context) {
const res = await context.actions.http.get({ url: context.inputData.url })
context.log.info('fetched', res.status)
return { score: res.body.score, fetchedAt: new Date().toISOString() }
}
Vérifié au niveau des types au démarrage, isolé en sandbox à l'exécution. Le corps de execute est validé au démarrage de l'application, de sorte qu'une fonction malformée échoue rapidement plutôt qu'en cours d'exécution. Les packages déclarés sont résolus à l'avance et exposés via context.packages — ils ne sont pas récupérés à la demande à l'intérieur de la sandbox.
Pages connexes
- Vue d'ensemble des actions — invocation des actions natives (également disponibles via
context.actions) et des modèlesrefréutilisables. - Variables d'environnement —
context.envet masquage des secrets. - HTTP et webhooks — les actions HTTP accessibles depuis le code.