Actions de données et d'état
Ces cinq familles manipulent les données en transit entre les étapes et persistent les valeurs entre les exécutions : data (transformations), state (magasin clé-valeur), filter (filtrage conditionnel), crypto (hachage) et digest (regroupement d'événements pour une libération ultérieure).
Data — Transformations en mémoire
La famille data transforme les tableaux et valeurs qui ont déjà circulé dans le workflow. Neuf operators.
| Operator | Props | Description |
|---|---|---|
set |
value |
Définit une valeur (ou en calcule une à partir de gabarits) pour les étapes ultérieures. |
aggregate |
input, function, field?, groupBy? |
Réduit un tableau — sum/avg/min/max/count, éventuellement groupé. |
sort |
input, field, direction? |
Trie un tableau par field (asc par défaut / desc). |
limit |
input, count |
Prend les count premiers éléments. |
deduplicate |
input, key |
Supprime les éléments en double par key. |
merge |
left, right, joinKey? |
Fusionne deux tableaux, en joignant éventuellement sur joinKey. |
split |
input, size |
Découpe un tableau en sous-tableaux de taille size. |
compare |
left, right, key |
Compare deux tableaux par key (ajoutés / supprimés / modifiés). |
lookup |
input, key, value |
Construit une carte de correspondance clé→valeur à partir d'un tableau. |
- name: revenueByRegion
type: data
operator: aggregate
props:
input: '{{fetchOrders.result}}'
function: sum
field: amount
groupBy: region
State — Magasin clé-valeur inter-exécutions
La famille state persiste les valeurs entre les exécutions d'automatisation (compteurs, curseurs, marqueurs de déduplication). Un namespace optionnel délimite les clés ; ttl les fait expirer. Cinq operators.
| Operator | Props | Description |
|---|---|---|
get |
key, namespace? |
Lit une valeur stockée. |
set |
key, value, namespace?, ttl? |
Stocke une valeur, éventuellement avec une durée de vie. |
increment |
key, amount?, namespace? |
Incrémente atomiquement une valeur numérique (par défaut +1). |
delete |
key, namespace? |
Supprime une valeur stockée. |
list |
prefix?, namespace?, limit? |
Liste les clés (éventuellement filtrées par préfixe). |
- name: bumpCounter
type: state
operator: increment
props: { key: 'orders:{{trigger.data.region}}', namespace: metrics }
Filter — Filtrage conditionnel
La famille filter décide si le workflow se poursuit. Un operator.
| Operator | Props | Description |
|---|---|---|
continue |
condition, onFalse? |
Évalue un groupe de conditions ; si faux, stop (arrête) ou skip (saute à l'action suivante). Par défaut stop. |
- name: onlyPaid
type: filter
operator: continue
props:
condition:
conditions: [{ field: '{{trigger.data.status}}', operator: equals, value: paid }]
onFalse: stop
Crypto — Hachage et HMAC
La famille crypto calcule des empreintes et des signatures (par ex. vérification de signature de webhook). Deux operators.
| Operator | Props | Description |
|---|---|---|
hash |
input, algorithm, encoding? |
Hache avec md5 / sha256 / sha512 ; hex (par défaut) ou base64. |
hmac |
input, secret, algorithm, encoding? |
HMAC avec sha256 / sha512 ; clé fournie par secret. |
- name: signPayload
type: crypto
operator: hmac
props:
input: '{{trigger.body}}'
secret: $env.SIGNING_SECRET
algorithm: sha256
encoding: hex
Digest — Regroupement et libération
La famille digest collecte des éléments à travers plusieurs exécutions dans un seau nommé, puis les libère sous forme de lot (par ex. regrouper des notifications dans un résumé quotidien). Deux operators.
| Operator | Props | Description |
|---|---|---|
collect |
bucket, item, deduplicateBy? |
Ajoute un élément à un seau nommé, en dédupliquant éventuellement. |
release |
bucket, sort?, limit? |
Vide un seau — éventuellement trié ({ field, direction? }) et plafonné. |
# Producer automation (record trigger) collects
- name: queueDigest
type: digest
operator: collect
props: { bucket: daily-summary, item: '{{trigger.data}}', deduplicateBy: id }
# Consumer automation (cron trigger) releases
- name: drain
type: digest
operator: release
props: { bucket: daily-summary, sort: { field: created_at, direction: desc }, limit: 50 }
Pages connexes
- Vue d'ensemble des actions — le modèle type + operator + props.
- Contrôle de flux — groupes de conditions,
path,loop. - HTTP et webhooks — récupération de données depuis des API externes.
- CRUD d'enregistrements — l'API de données derrière les lectures d'enregistrements.