ForgeFlow
ro

Flow

Gestionarea FlowStreams cu API-ul Flow

Flow · flow@11.1 flowflowstreamapiimportexportnotify

Tot ce face editorul trece printr-un singur endpoint JSON: POST /fapi/ cu corpul { "schema": "<name>", "data": { ... } } (rutele API Total.js, vezi rutele API). Adresa /fapi/ vine din linia $api : /fapi/ a fișierului config. Fiecare apel în afară de autentificare are nevoie de cookie-ul de sesiune; fără el răspunsul este 401: Unauthorized.

Aceste apeluri au fost încercate și pe un Flow 11.1 local (Node.js 24 și total5@0.0.19) în timp ce se scria această pagină.

Autentificare

Auth|login primește login și password și răspunde {"success":true} cu cookie-ul de sesiune. O pereche greșită răspunde Invalid credentials.

curl -c cookie.txt -X POST http://localhost:8000/fapi/ \
  -H 'content-type: application/json' \
  -d '{"schema":"Auth|login","data":{"login":"<your login>","password":"<your password>"}}'

Apelurile următoare folosesc -b cookie.txt.

Apelurile

schemadataCe face
Streamsniciunullista FlowStreams cu id, name, group, author, version, proxypath, size și stats în timp real ale celor care rulează
Streams\savename, și opțional author, version, icon, color, group, url, reference, readme, memory, cloning, proxypath, proxytimeoutcreează un flux când lipsește id (se verifică permisiunea create); altfel actualizează fluxul cu acel id și îl repornește
Streams\readidproprietățile unui flux
Streams\rawidîntregul obiect al fluxului, cu designul său
Streams\exportidfluxul ca text JSON în value, fără câmpurile interne (unixsocket, env, import, worker, asfiles)
Streams\importdata (textul JSON)creează un flux nou dintr-un export (până la 10 MB), cu un id nou; un proxypath repetat este înlocuit cu unul aleatoriu; răspunde {"success":true,"value":"<id>"}
Streams\pauseid, is (true sau false)pune pe pauză sau reia un flux care rulează
Streams\restartidrepornește fluxul
Streams\removeidelimină fluxul și folderul lui (se verifică permisiunea remove)
Streams\statsniciunultotalurile instalației: versiunile Node.js, Total.js și Flow, mesaje, în așteptare, memorie și conexiuni
Variables\read / Variables\saveid (opțional), datavariabilele unui flux sau variabilele globale când id este gol; salvarea le trimite fluxurilor care rulează
Console\read / Console\clearniciunulconsola aplicației
CDN\clearniciunulgolește cache-ul componentelor de interfață descărcate
Settings\read / Settings\savesetările (vezi setări și fișiere)doar pentru super-administrator

Crearea unui flux și rularea lui

Creează-l, apoi importă un design construit în editor (un fișier JSON exportat) pentru a-l porni:

curl -b cookie.txt -X POST http://localhost:8000/fapi/ \
  -H 'content-type: application/json' \
  -d '{"schema":"Streams|save","data":{"name":"Demo","author":"Me"}}'

Un flux exportat din editor poartă design (casetele și conexiunile lor), components (sursa fiecăreia) și variables.

Regulile proxypath

Un flux poate publica rute HTTP sub o cale proprie. Flow adaugă barele oblice (demo devine /demo/), respinge căile care aparțin lui Flow însuși (/, /cdn/, /fapi/, /private/, /flows/, /designer/, /parts/, /forms/, /css/, /js/, /fonts/, /panels/) cu Proxy endpoint contains reserved path și respinge o cale pe care o folosește deja alt flux. proxytimeout este timpul în secunde de așteptare a răspunsului fluxului (implicit 120).

Apeluri din exterior

RutaUtilizare
GET sau POST /notify/{id}/trimite o notificare fluxului cu acel id (corpul POST este limitat la 1 MB); componentele fluxului decid ce fac cu ea. Răspunde {"success":true}
+SOCKET /{id}/WebSocket-ul editorului pentru acel flux (are nevoie de sesiune)
GET /private/?token=<token>listează fișierele din folderul private/ când token-ul este egal cu token din setări; zece token-uri greșite blochează o adresă timp de 15 minute
+POST /update/actualizează aplicația dintr-un fișier .bundle; doar pentru versiunea împachetată

Păstrează token secret, trimite aceste apeluri prin HTTPS și pune Flow în spatele unui proxy invers când este accesibil de pe Internet.