Passa al contenuto principale

API

Usa questa pagina per consultare metodi WebSocket, eventi ed errori esposti dal motore.

Il motore si pilota attraverso un'unica API. La riga di comando afe ne è un client, e più avanti lo sarà anche la UI web.

Il protocollo​

L'API è JSON-RPC 2.0 su una WebSocket in /rpc. L'handshake deve portare Authorization: Bearer <token>, oppure un cookie di sessione valido con l'Origin del server stesso.

MetodoParametriRisultato
flow.list—i flow con il loro Schema di ingresso, il workspace che serve, i progetti e la revisione corrente
flow.bpmnflow, revision?{xml}: il flow come BPMN 2.0 XML, senza layout
ticket.startflow, input, project?, revision?, traceparent?{ticket_id} appena il ticket è accettato
ticket.rerunticket_id{ticket_id} di un nuovo ticket con stesso flow, input, progetto e revisione
revision.getrevision_id{id, manifests}: la configurazione congelata
ticket.resumeticket_id, answer? (action, comment?){ticket_id}
ticket.pause, ticket.cancelticket_idnull
ticket.getticket_idstato, round, revisione, artefatti, consumi, domanda in attesa, ultimo errore
ticket.liststate?i ticket con i consumi e la domanda in attesa di quelli che aspettano
ticket.eventsticket_idgli eventi del ticket, in ordine
events.subscribeticket_id?{subscription}, poi le notifiche events.event
events.unsubscribesubscriptiontrue o false
workers.status—metriche della coda (waiting, claimed) e i worker vivi

I ticket girano in background e i loro progressi arrivano come notifiche events.event sulla stessa connessione. Chi si iscrive in ritardo riceve prima gli eventi già avvenuti del ticket, poi quelli in diretta, senza duplicati.

Tipi di evento​

TipoSignificato
ticket_startedIl ticket è stato accettato e il motore lo ha avviato.
ticket_resumedUna persona ha risposto, oppure il ticket è stato riavviato.
ticket_recoveredUn worker ha preso in carico un ticket il cui worker è morto.
ticket_cancelledIl ticket è stato annullato.
ticket_doneIl flow ha raggiunto END.
node_startedUn nodo ha iniziato un'attivazione.
node_finishedUn nodo ha concluso un'attivazione.
budget_alertUn budget ha superato una frazione di avviso o un limite; aspetta una persona.
loop_detectedLa stessa chiamata a un tool si è ripetuta; aspetta una persona.
human_requestUn nodo human chiede a una persona.
human_responseUna persona ha risposto a un nodo human.
needs_humanUn passaggio di consegna; il ticket si ferma per una persona.
errorIl ticket è fallito; il payload porta state e error.

Errori​

Codice di erroreSignificato
-32602Parametri non validi
-32001Flow o ticket sconosciuto
-32002Input non valido; data.fields indica il campo sbagliato
-32003Azione non offerta
-32004Il ticket è in esecuzione, oppure è chiuso
-32005Revisione sconosciuta
-32006Il ticket non ha una revisione (creato prima che le revisioni esistessero)

Vedi anche​