ForgeFlow
bg

Flow

Управление на FlowStreams с API на Flow

Flow · flow@11.1 flowflowstreamapiimportexportnotify

Всичко, което прави редакторът, минава през една JSON крайна точка: POST /fapi/ с тяло { "schema": "<name>", "data": { ... } } (API маршрутите на Total.js, вижте API маршрути). Адресът /fapi/ идва от реда $api : /fapi/ във файла config. Всяко извикване освен входа изисква бисквитката на сесията; без нея отговорът е 401: Unauthorized.

Тези извиквания бяха опитани и срещу локален Flow 11.1 (Node.js 24 и total5@0.0.19) докато се пишеше тази страница.

Вход

Auth|login приема login и password и отговаря {"success":true} с бисквитката на сесията. Грешна двойка отговаря 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 от настройките; десет грешни токена блокират адрес за 15 минути
+POST /update/обновява приложението от файл .bundle; само за пакетираната версия

Пазете token в тайна, изпращайте тези извиквания през HTTPS и поставете Flow зад обратен прокси, когато е достъпен от интернет.