Διαχείριση FlowStreams με το API του Flow
Ό,τι κάνει ο επεξεργαστής περνά από ένα μόνο 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.
Οι κλήσεις
schema | data | Τι κάνει | ||
|---|---|---|---|---|
Streams | κανένα | η λίστα των FlowStreams με id, name, group, author, version, proxypath, size και τα ζωντανά stats αυτών που τρέχουν | ||
Streams\ | save | name, και προαιρετικά author, version, icon, color, group, url, reference, readme, memory, cloning, proxypath, proxytimeout | δημιουργεί μια ροή όταν λείπει το id (ελέγχεται το δικαίωμα create), αλλιώς ενημερώνει τη ροή με αυτό το id και την επανεκκινεί | |
Streams\ | read | id | οι ιδιότητες μιας ροής | |
Streams\ | raw | id | ολόκληρο το αντικείμενο της ροής, με τον σχεδιασμό της | |
Streams\ | export | id | η ροή ως κείμενο JSON στο value, χωρίς τα εσωτερικά πεδία (unixsocket, env, import, worker, asfiles) | |
Streams\ | import | data (το κείμενο JSON) | δημιουργεί μια νέα ροή από μια εξαγωγή (έως 10 MB), με νέο id· ένα επαναλαμβανόμενο proxypath αντικαθίσταται με τυχαίο· απαντά {"success":true,"value":"<id>"} | |
Streams\ | pause | id, is (true ή false) | θέτει σε παύση ή συνεχίζει μια ροή που τρέχει | |
Streams\ | restart | id | επανεκκινεί τη ροή | |
Streams\ | remove | id | αφαιρεί τη ροή και τον φάκελό της (ελέγχεται το δικαίωμα remove) | |
Streams\ | stats | κανένα | τα σύνολα της εγκατάστασης: εκδόσεις Node.js, Total.js και Flow, μηνύματα, εκκρεμή, μνήμη και συνδέσεις | |
Variables\ | read / Variables\ | save | id (προαιρετικό), 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 όταν είναι προσβάσιμο από το Διαδίκτυο.