Hantera FlowStreams med Flows API
Allt som editorn gör går genom en enda JSON-slutpunkt: POST /fapi/ med kroppen { "schema": "<name>", "data": { ... } } (Total.js API-rutter, se API-rutter). Adressen /fapi/ kommer från raden $api : /fapi/ i filen config. Varje anrop utom inloggningen behöver sessionscookien; utan den blir svaret 401: Unauthorized.
De här anropen provades också mot ett lokalt Flow 11.1 (Node.js 24 och total5@0.0.19) medan den här sidan skrevs.
Logga in
Auth|login tar login och password och svarar {"success":true} med sessionscookien. Ett felaktigt par svarar 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 följande anropen använder -b cookie.txt.
Anropen
schema | data | Vad det gör | ||
|---|---|---|---|---|
Streams | ingen | listan över FlowStreams med id, name, group, author, version, proxypath, size och de levande stats för de körande | ||
Streams\ | save | name, och valfritt author, version, icon, color, group, url, reference, readme, memory, cloning, proxypath, proxytimeout | skapar ett flöde när id saknas (behörigheten create kontrolleras), annars uppdateras flödet med det id och startas om | |
Streams\ | read | id | egenskaperna för ett flöde | |
Streams\ | raw | id | hela flödesobjektet, med dess design | |
Streams\ | export | id | flödet som JSON-text i value, utan de interna fälten (unixsocket, env, import, worker, asfiles) | |
Streams\ | import | data (JSON-texten) | skapar ett nytt flöde från en export (upp till 10 MB), med ett nytt id; en upprepad proxypath ersätts med en slumpmässig; svarar {"success":true,"value":"<id>"} | |
Streams\ | pause | id, is (true eller false) | pausar eller återupptar ett körande flöde | |
Streams\ | restart | id | startar om flödet | |
Streams\ | remove | id | tar bort flödet och dess mapp (behörigheten remove kontrolleras) | |
Streams\ | stats | ingen | installationens summor: versioner av Node.js, Total.js och Flow, meddelanden, väntande, minne och anslutningar | |
Variables\ | read / Variables\ | save | id (valfritt), data | variablerna för ett flöde, eller de globala variablerna när id är tomt; att spara skickar dem till de körande flödena |
Console\ | read / Console\ | clear | ingen | applikationens konsol |
CDN\ | clear | ingen | rensar cachen för nedladdade gränssnittskomponenter | |
Settings\ | read / Settings\ | save | inställningarna (se inställningar och filer) | endast för superadministratören |
Skapa ett flöde och köra det
Skapa det och importera sedan en design som byggts i editorn (en exporterad JSON-fil) för att starta det:
curl -b cookie.txt -X POST http://localhost:8000/fapi/ \
-H 'content-type: application/json' \
-d '{"schema":"Streams|save","data":{"name":"Demo","author":"Me"}}'Ett flöde som exporterats från editorn bär sin design (rutorna och deras anslutningar), sina components (källkoden för varje) och sina variables.
Regler för proxypath
Ett flöde kan publicera HTTP-rutter under en egen sökväg. Flow lägger till snedstrecken (demo blir /demo/), avvisar de sökvägar som tillhör Flow själv (/, /cdn/, /fapi/, /private/, /flows/, /designer/, /parts/, /forms/, /css/, /js/, /fonts/, /panels/) med Proxy endpoint contains reserved path och avvisar en sökväg som ett annat flöde redan använder. proxytimeout är tiden i sekunder att vänta på flödets svar (standard 120).
Anrop utifrån
| Rutt | Användning |
|---|---|
GET eller POST /notify/{id}/ | skickar en notifiering till flödet med det id:t (POST-kroppen är begränsad till 1 MB); flödets komponenter bestämmer vad de gör med den. Svarar {"success":true} |
+SOCKET /{id}/ | editorns WebSocket för det flödet (kräver sessionen) |
GET /private/?token=<token> | listar filerna i mappen private/ när token är lika med token i inställningarna; tio felaktiga tokens blockerar en adress i 15 minuter |
+POST /update/ | uppdaterar applikationen från en .bundle-fil; endast för den paketerade versionen |
Håll token hemlig, skicka dessa anrop över HTTPS och lägg Flow bakom en omvänd proxy när det är nåbart från internet.