ForgeFlow
nl

Flow

FlowStreams beheren met de Flow-API

Flow · flow@11.1 flowflowstreamapiimportexportnotify

Alles wat de editor doet, loopt via één JSON-endpoint: POST /fapi/ met de body { "schema": "<name>", "data": { ... } } (de API-routes van Total.js, zie API-routes). Het adres /fapi/ komt uit de regel $api : /fapi/ van het bestand config. Elke aanroep behalve de aanmelding heeft de sessiecookie nodig; zonder is het antwoord 401: Unauthorized.

Deze aanroepen zijn tijdens het schrijven van deze pagina ook uitgeprobeerd op een lokale Flow 11.1 (Node.js 24 en total5@0.0.19).

Aanmelden

Auth|login neemt login en password en antwoordt {"success":true} met de sessiecookie. Een verkeerd paar antwoordt 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>"}}'

De volgende aanroepen gebruiken -b cookie.txt.

De aanroepen

schemadataWat het doet
Streamsgeende lijst met FlowStreams met id, name, group, author, version, proxypath, size en de live stats van de draaiende
Streams\savename, en optioneel author, version, icon, color, group, url, reference, readme, memory, cloning, proxypath, proxytimeoutmaakt een stream aan wanneer id ontbreekt (het recht create wordt gecontroleerd), anders werkt het de stream met die id bij en herstart hem
Streams\readidde eigenschappen van één stream
Streams\rawidhet hele streamobject, met zijn ontwerp
Streams\exportidde stream als JSON-tekst in value, zonder de interne velden (unixsocket, env, import, worker, asfiles)
Streams\importdata (de JSON-tekst)maakt een nieuwe stream uit een export (tot 10 MB), met een nieuwe id; een herhaalde proxypath wordt vervangen door een willekeurige; antwoordt {"success":true,"value":"<id>"}
Streams\pauseid, is (true of false)pauzeert of hervat een draaiende stream
Streams\restartidherstart de stream
Streams\removeidverwijdert de stream en zijn map (het recht remove wordt gecontroleerd)
Streams\statsgeende totalen van de installatie: versies van Node.js, Total.js en Flow, berichten, wachtend, geheugen en verbindingen
Variables\read / Variables\saveid (optioneel), datade variabelen van één stream, of de globale variabelen wanneer id leeg is; opslaan stuurt ze naar de draaiende streams
Console\read / Console\cleargeende console van de toepassing
CDN\cleargeenwist de cache van de gedownloade interfacecomponenten
Settings\read / Settings\savede instellingen (zie instellingen en bestanden)alleen voor de superbeheerder

Een stream maken en starten

Maak hem aan en importeer daarna een in de editor gebouwd ontwerp (een geëxporteerd JSON-bestand) om hem te starten:

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

Een uit de editor geëxporteerde stream bevat zijn design (de vakken en hun verbindingen), zijn components (de bron van elk) en zijn variables.

Regels van proxypath

Een stream kan HTTP-routes publiceren onder een eigen pad. Flow voegt de schuine strepen toe (demo wordt /demo/), wijst de paden af die van Flow zelf zijn (/, /cdn/, /fapi/, /private/, /flows/, /designer/, /parts/, /forms/, /css/, /js/, /fonts/, /panels/) met Proxy endpoint contains reserved path en wijst een pad af dat een andere stream al gebruikt. proxytimeout is de tijd in seconden die op het antwoord van de stream wordt gewacht (standaard 120).

Aanroepen van buitenaf

RouteGebruik
GET of POST /notify/{id}/stuurt een melding naar de stream met die id (de POST-body is beperkt tot 1 MB); de componenten van de stream bepalen wat ze ermee doen. Antwoordt {"success":true}
+SOCKET /{id}/de WebSocket van de editor voor die stream (vereist de sessie)
GET /private/?token=<token>toont de bestanden van de map private/ wanneer het token gelijk is aan het token van de instellingen; tien verkeerde tokens blokkeren een adres gedurende 15 minuten
+POST /update/werkt de toepassing bij vanuit een .bundle-bestand; alleen voor de gebundelde versie

Houd het token geheim, stuur deze aanroepen via HTTPS en zet Flow achter een reverse proxy wanneer het vanaf internet bereikbaar is.