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.
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 :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.