Skip to content

Webhooks & Streams temps réel

StormeoOS expose trois mécanismes pour pousser des données en temps réel :

MécanismeDirectionCas d'usageDoc
Public API webhooksStormeoOS → vousRecevoir les events agence (CRUD clients, factures, etc.) sur votre URLpublic-api-webhooks.md
Stripe webhooksStripe → StormeoOSRéceptionnés par StormeoOS (gestion abonnements + paiements)stripe.md
SSE streamsStormeoOS → navigateur / curlStream temps réel monitoring + scan progress (long-polling alternatif)sse-streams.md

Quel mécanisme choisir ?

BesoinMécanisme
"Je veux qu'on me notifie quand un client est créé"Public API webhooks
"Je dois afficher la progression d'un scan en live"SSE streams
"Je veux qu'un paiement Stripe trigger un effet côté mon app"Public API webhooks (event invoice.paid après réconciliation Stripe) — pas Stripe directement
"Je code un dashboard live monitoring"SSE streams (/api/monitoring-stream)

Sécurité — vue d'ensemble

MécanismeAuthSignatureAnti-replay
Public API webhooksURL publique chez vous + signingSecret HMACHMAC-SHA256 sur bodyX-Stormeo-Delivery-Id (idempotence)
Stripe webhooksStripe → StormeoOS, STRIPE_WEBHOOK_SECRETStripe signature stdTimestamp Stripe
SSE streamsSession cookie connect.sid (auth StormeoOS)— (TLS)— (connection persistante)

Différences avec REST polling

Les webhooks et SSE évitent le polling REST. Comparatif :

Polling RESTWebhooksSSE
LatenceHi (= intervalle)<15s<100ms
Charge serveurHiLoMid
Complexité côté clientLoHi (endpoint à exposer)Mid (connexion persistante)
IdempotenceAutoÀ gérerN/A (stream)
Ordre garantiOui (filtrer par since)Non (retries)Oui (stream ordonné)
Reprise après coupureAutoAuto (queue serveur)À gérer (Last-Event-ID)

StormeoOS API