Données et état
Trois familles qui déplacent des valeurs plutôt que de produire des effets de bord : data remodèle ce qui a déjà circulé dans le flux, state retient des valeurs entre exécutions, et filter décide si l'exécution se poursuit.
Data — Transformations en mémoire
Dix opérateurs, tous purs : ils lisent des étapes antérieures et produisent une nouvelle valeur.
| Opérateur | Propriétés | Description |
|---|---|---|
set |
value |
Définit une valeur pour les étapes suivantes. Relue à steps.<name>.value. |
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 doublons selon key. |
merge |
left, right, joinKey? |
Fusionne deux tableaux — jointure sur joinKey, ou concaténation si omis. |
split |
input, size |
Découpe un tableau en sous-tableaux de taille size. |
compare |
left, right, key |
Compare deux tableaux par key → added / removed / unchanged. |
lookup |
input, key, value |
Trouve le premier élément dont le champ key vaut value. |
validate-config |
config, format? |
Valide une configuration Sovrium (json par défaut / yaml) → { valid, errors }. |
- name: revenueByRegion
type: data
operator: aggregate
props:
input: '{{fetchOrders.result}}'
function: sum
field: amount
groupBy: regionTrois comportements qui surprennent :
aggregateexigefieldpoursum,avg,minetmax. Seulcountpeut s'en passer.lookuprenvoie un enregistrement, pas une table clé→valeur — c'est unfind, pas unindexBy.setprend une chaîne.valueest un modèle de chaîne : un nombre, une liste ou un objet YAML nu est rejeté. Son résultat est àsteps.<name>.value, pas.result.
State — Magasin clé-valeur inter-exécutions
Cinq opérateurs qui persistent des valeurs entre les exécutions : compteurs, curseurs, marqueurs de déduplication — tout ce qu'une exécution seule ne peut retenir.
| Opérateur | Propriétés | 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? |
Ajoute amount atomiquement (défaut 1 ; négatif décrémente). |
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.record.region}}', namespace: metrics }Les deux propriétés de portée optionnelles ont un format contraint, et une valeur hors format échoue au décodage plutôt qu'à l'exécution :
| Propriété | Format | Valide | Rejeté |
|---|---|---|---|
namespace |
Kebab-case minuscule, commençant par une lettre. | metrics, sync-state |
Metrics, my_ns |
ttl |
Un nombre suivi de ms, s, m, h ou d. |
30s, 24h |
1 hour, 3600 |
Filter — Filtrage conditionnel
Un seul opérateur, qui décide si le flux se poursuit.
| Opérateur | Propriétés | Description |
|---|---|---|
continue |
condition, onFalse? |
Évalue un groupe de conditions ; si faux, stop (arrête l'exécution) ou skip (passe à l'action suivante). Par défaut stop. |
- name: onlyPaid
type: filter
operator: continue
props:
condition:
conditions:
- field: '{{trigger.data.record.status}}'
operator: equals
value: paid
onFalse: stopC'est l'outil adapté pour restreindre un déclencheur qui ne sait pas se restreindre lui-même : un déclencheur auth s'active à chaque inscription, et une première étape filter/continue la ramène aux inscriptions qui vous intéressent. Préférez path/branch lorsque les deux issues doivent faire quelque chose.
Crypto — Hachage et HMAC
Déplacé vers Crypto et digest.
Digest — Regroupement et libération
Déplacé vers Crypto et digest.
Pages connexes
- Crypto et digest — hachage, signatures et libération par lots.
- Contrôle de flux — groupes de conditions,
path,loop,flow/stop. - Présentation des actions — le modèle type + opérateur + propriétés.
- Actions HTTP et webhooks — obtenir les tableaux que ces opérateurs remodèlent.
- CRUD des enregistrements — l'API de données derrière les lectures d'enregistrements.
Dernière mise à jour 11 août 2026
Cette documentation a été rédigée avec de l'IA : des erreurs ou du contenu obsolète sont donc possibles. Sovrium est en bêta. Les contributions et corrections sont les bienvenues.