Aller au contenu principal

Anatomie de pulse.yaml

Débutant ⏱ 8 min pulse.yaml · concepts

Vous allez construire : une lecture guidée du fichier unique qui définit une application — vous modifierez chaque bloc et verrez ce qui change.

source → stages[] → sink

Prérequis

1 · Ouvrez pulse.yaml et repérez les trois blocs

cat pulse.yaml
source: OBSERVER — d'où viennent les événements
stages: DÉCIDER — une chaîne ordonnée, un moteur par stage
sink: AGIR — optionnel ; où vont les résultats

Chaque application Pulse, c'est ces trois blocs. Il n'y a aucune configuration cachée ailleurs.

2 · Le bloc source

source:
kind: webhook # ou : file-tail · http-poll · jdbc-source · …

Un type de connecteur + ses réglages. Ses événements atterrissent toujours sur <app>.in. Changez kind et rien en aval ne bouge — les stages ne savent pas d'où viennent les événements.

3 · Le bloc stages

stages:
- name: triage
engine: rule-based
rules:
- { condition: "severity == 'error'", action: flag }

Chaque règle est une condition plus une action (flag, block, hold, review, ou emit:<topic> pour router). Chaque stage nomme l'un des quatre moteurs : streaming, rule-based, llm, mcp. Le stage n lit le topic du stage n−1 et publie sur <app>.<stage>.out — c'est pourquoi vous pouviez suivre hello.triage.out directement.

4 · Changez la règle et redéployez

pulse deploy .

Les déploiements sont idempotents — modifier, redéployer, recommencer. Renvoyez sample.json et observez comment la nouvelle règle le traite.

5 · Ajoutez un sink (bloc optionnel)

sink:
kind: webhook
url: ${secret:MY_WEBHOOK}

Les sinks poussent les résultats vers l'extérieur — webhooks, Slack, JDBC, fichiers… Notez la référence ${secret:…} : les secrets ne vivent jamais en clair. C'est le sujet de Les secrets, proprement.

Ce qui vient de se passer

Toute la surface développeur tient dans un fichier déclaratif unique. Le deploy le lit et met en place le runtime ; rien de ce que vous avez cliqué ou exporté ne vit hors de ce fichier — c'est pourquoi les applications se relisent dans une PR et se reproduisent sur n'importe quelle machine.

Dépannage

Le deploy échoue après ma modification

L'erreur nomme le champ exact. La plus courante : une référence ${secret:…} non résolue — le deploy refuse d'expédier une configuration trouée. Définissez le secret ou retirez la référence.

Ensuite