ForgeFlow
el

Flow

Διαχείριση FlowStreams με το API του Flow

Flow · flow@11.1 flowflowstreamapiimportexportnotify

Ό,τι κάνει ο επεξεργαστής περνά από ένα μόνο endpoint JSON: POST /fapi/ με σώμα { "schema": "<name>", "data": { ... } } (οι διαδρομές API του Total.js, δείτε διαδρομές API). Η διεύθυνση /fapi/ προέρχεται από τη γραμμή $api : /fapi/ του αρχείου config. Κάθε κλήση εκτός από τη σύνδεση χρειάζεται το cookie συνεδρίας· χωρίς αυτό η απάντηση είναι 401: Unauthorized.

Αυτές οι κλήσεις δοκιμάστηκαν επίσης σε τοπικό Flow 11.1 (Node.js 24 και total5@0.0.19) ενώ γραφόταν αυτή η σελίδα.

Σύνδεση

Το Auth|login δέχεται login και password και απαντά {"success":true} με το cookie συνεδρίας. Ένα λάθος ζεύγος απαντά 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>"}}'

Οι επόμενες κλήσεις χρησιμοποιούν -b cookie.txt.

Οι κλήσεις

schemadataΤι κάνει
Streamsκανέναη λίστα των FlowStreams με id, name, group, author, version, proxypath, size και τα ζωντανά stats αυτών που τρέχουν
Streams\savename, και προαιρετικά author, version, icon, color, group, url, reference, readme, memory, cloning, proxypath, proxytimeoutδημιουργεί μια ροή όταν λείπει το id (ελέγχεται το δικαίωμα create), αλλιώς ενημερώνει τη ροή με αυτό το id και την επανεκκινεί
Streams\readidοι ιδιότητες μιας ροής
Streams\rawidολόκληρο το αντικείμενο της ροής, με τον σχεδιασμό της
Streams\exportidη ροή ως κείμενο JSON στο value, χωρίς τα εσωτερικά πεδία (unixsocket, env, import, worker, asfiles)
Streams\importdata (το κείμενο JSON)δημιουργεί μια νέα ροή από μια εξαγωγή (έως 10 MB), με νέο id· ένα επαναλαμβανόμενο proxypath αντικαθίσταται με τυχαίο· απαντά {"success":true,"value":"<id>"}
Streams\pauseid, is (true ή false)θέτει σε παύση ή συνεχίζει μια ροή που τρέχει
Streams\restartidεπανεκκινεί τη ροή
Streams\removeidαφαιρεί τη ροή και τον φάκελό της (ελέγχεται το δικαίωμα remove)
Streams\statsκανένατα σύνολα της εγκατάστασης: εκδόσεις Node.js, Total.js και Flow, μηνύματα, εκκρεμή, μνήμη και συνδέσεις
Variables\read / Variables\saveid (προαιρετικό), dataοι μεταβλητές μιας ροής ή οι καθολικές μεταβλητές όταν το id είναι κενό· η αποθήκευση τις στέλνει στις ροές που τρέχουν
Console\read / Console\clearκανέναη κονσόλα της εφαρμογής
CDN\clearκανένακαθαρίζει την προσωρινή μνήμη των κατεβασμένων συνιστωσών διεπαφής
Settings\read / Settings\saveοι ρυθμίσεις (δείτε ρυθμίσεις και αρχεία)μόνο για τον υπερδιαχειριστή

Δημιουργία μιας ροής και εκτέλεσή της

Δημιουργήστε την και μετά εισαγάγετε έναν σχεδιασμό που φτιάξατε στον επεξεργαστή (ένα εξαγόμενο αρχείο JSON) για να την ξεκινήσετε:

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

Μια ροή που εξάγεται από τον επεξεργαστή φέρει το design της (τα κουτιά και οι συνδέσεις τους), τα components της (τον κώδικα του καθενός) και τα variables της.

Κανόνες του proxypath

Μια ροή μπορεί να δημοσιεύει διαδρομές HTTP κάτω από δική της διαδρομή. Το Flow προσθέτει τις καθέτους (το demo γίνεται /demo/), απορρίπτει τις διαδρομές που ανήκουν στο ίδιο το Flow (/, /cdn/, /fapi/, /private/, /flows/, /designer/, /parts/, /forms/, /css/, /js/, /fonts/, /panels/) με Proxy endpoint contains reserved path και απορρίπτει μια διαδρομή που χρησιμοποιεί ήδη άλλη ροή. Το proxytimeout είναι ο χρόνος σε δευτερόλεπτα αναμονής για την απάντηση της ροής (προεπιλογή 120).

Κλήσεις απ’ έξω

ΔιαδρομήΧρήση
GET ή POST /notify/{id}/στέλνει μια ειδοποίηση στη ροή με αυτό το id (το σώμα του POST περιορίζεται σε 1 MB)· οι συνιστώσες της ροής αποφασίζουν τι θα κάνουν με αυτήν. Απαντά {"success":true}
+SOCKET /{id}/το WebSocket του επεξεργαστή για αυτή τη ροή (χρειάζεται τη συνεδρία)
GET /private/?token=<token>απαριθμεί τα αρχεία του φακέλου private/ όταν το token ισούται με το token των ρυθμίσεων· δέκα λάθος tokens μπλοκάρουν μια διεύθυνση για 15 λεπτά
+POST /update/ενημερώνει την εφαρμογή από ένα αρχείο .bundle· μόνο για τη συσκευασμένη έκδοση

Κρατήστε το token μυστικό, στείλτε αυτές τις κλήσεις μέσω HTTPS και τοποθετήστε το Flow πίσω από αντίστροφο proxy όταν είναι προσβάσιμο από το Διαδίκτυο.