Aller au contenu principal

Webhooks

NOÉ permet l'utilisation de webhooks. Voici comment ils marchent !

Les webhooks ne fonctionnnent qu'avec les vraies interactions utilisateur.

Les webhooks ne sont envoyés que lorsqu'un réel utilisateur fait une action depuis l'interface de NOÉ. Si une modification est apportée via les APIs, les webhooks ne seront pas envoyés.

Webhooks et sécurité informatique

Les webhooks de NOÉ ne sont pas sécurisés : si vous ne vérifiez pas la provenance des données que vous recevez, n'importe qui peut se faire passer pour le serveur de NOÉ et peut compromettre vos données en injectant des modifications non désirées.

Nous recommandons que vous utilisiez un filtrage par adresse IP : en n'acceptant que les requêtes venant de l'adresse IP du serveur NOÉ, vous réduisez considérablement votre vulnérabilité aux attaques.

Vous pouvez connaître l'adresse IP du serveur de NOÉ en allant sur ce site et en recherchant api.noe-app.io.

Typologie d'un Webhook

Quand un webhook est envoyé à votre service, la requête a la forme suivante:

Méthode

POST 

Body

{
endpoint: WebhookEndpoint,
action: WebhookAction,
payload: Payload
}

Les sous-types WebhookEndpoint, WebhookAction et Payload sont définis ci-dessous.

Sous-types

Type d'objet : WebhookEndpoint (endpoint)

L'endpoint spécifie quel type d'objet vient d'être modifié : une session, une activité, etc.

Ci-dessous, la correspondance entre les types d'objets dans NOÉ et les clés que l'on trouve dans le webhook.

Type d'objetWebhookEndpoint (endpoint)
Catégoriescategories
Espacesplaces
Encadrant·esstewards
Activitésactivities
Sessionssessions

Type d'action : WebhookAction (action)

L'action spécifie si l'objet vient d'être créé, modifié, ou supprimé.

Ci-dessous, la correspondance entre les types d'actions dans NOÉ et les clés que l'on trouve dans le webhook.

Type d'actionWebhookAction (action)
Créationcreate
Modificationupdate
Suppressiondelete

Payload

La payload est le contenu du webhook à proprement parler.

La Payload contient :

  • l'objet créé ou modifié lorsqu'il s'agit d'une création ou modification,
  • l'ID de l'objet supprimé dans le cas d'une suppression.
info

Pour l'instant, le contenu exact des payloads n'est pas détaillé. Pour anticiper les typages, vous pouvez vous référer au code directement dans NOÉ. Dans ce dossier, chaque fichier xxxxx.model.ts contient un type XxxxxxD qui décrit sa structure : cela fournit une bonne base de travail même si ce n'est pas encore une science exacte.