Passer au contenu principal

Vue d’ensemble

@reelevant-tech/workflows-sdk est la librairie sur laquelle repose l’éditeur de Workflow. Il garde un Workflow en mémoire, permet de le modifier via des node builders et type checke chaque changement contre les Datasources et les Contents utilisés par le Workflow. L’exemple ci-dessous ajoute un paramètre d’URL locale au draft d’un Workflow, et ne le sauvegarde que si le résultat est valide.
Le SDK ne sauvegarde jamais rien lui-même. Vous lisez une version via l’API Workflow, passez sa définition au SDK, puis renvoyez sdk.workflow via l’API une fois que sdk.typecheck() ne renvoie plus d’erreur.

Fonctionnement du SDK

Constructeur

apis contient trois clients générés, indexés par l’API qu’ils appellent : Le SDK met en cache les réponses réussies aux requêtes identiques pendant la durée de vie de l’instance : charger un gros Workflow ne récupère chaque Datasource et chaque Content qu’une fois. Envoyez le header x-rlvt-sdk-no-cache sur une requête pour contourner le cache.

Node builders

Un Node n’est jamais écrit en JSON brut. Vous demandez au SDK le builder d’un type de Node, définissez ses options, puis l’ajoutez :
Le builder valide chaque option contre le schéma du Node et sait quels Nodes amont peuvent alimenter chaque propriété. Pour modifier un Node existant, chargez-le dans un builder avec await builder.from(nodeId), définissez les nouvelles valeurs, puis appelez sdk.nodes.update(nodeId, builder). Supprimer un Node ou un edge laisse les Nodes dépendants en place et les signale via typecheck() : c’est vous qui décidez comment les réparer. Les entrypoints (sdk.entrypoints.add({ type: 'email', format: 'content-image' })) et les edges (sdk.edges.add(fromId, toId)) complètent le graphe. Un edge part d’un entrypoint, d’un Node ou d’un chemin d’un Logic Node.

Type checking

sdk.typecheck() renvoie chaque problème de la définition courante sous forme de WorkflowError : l’id du Node, le pathId pour un chemin de Logic Node, le type d’erreur et un payload avec le détail. Une liste vide signifie que le Workflow s’exécutera comme configuré. Certains types de Node ajoutent leurs propres types d’erreur (par exemple un Datagraph Object qui n’existe plus). Journalisez type et payload plutôt que de comparer à une liste fermée.

Sauvegarder et publier

Une version live n’est jamais modifiée : tout changement en production passe par un nouveau draft et une publication.

Erreurs

Pages associées