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​