ForgeFlow
en

Flow

What is Flow: visual automation and IoT with FlowStreams

Flow · flow@11.1 flowflowstreamautomationiotvisual

Flow (totaljs/flow, version 11.1 at the time of writing) is the main application of the Total.js family for visual programming. You draw a diagram in the browser: every box is a component, the lines between them carry messages, and the diagram is a FlowStream. Flow keeps many FlowStreams, runs each one, and gives you the editor, the monitoring and an API to manage them.

It is a Total.js 5 application, MIT licensed, and it needs no database: everything lives in two folders of the application (see install and first start).

What you get

  • A visual editor in the browser (the route /designer/) with a library of components, the readme of each component, a console, the variables of the stream and dark mode.
  • Many independent FlowStreams in one installation, each with a name, icon, color, group, author, version and notes. By default each stream runs in its own Node.js process (flowstream_worker: fork in the config file), so a stream that fails does not take the others with it, and Flow restarts it.
  • Components as plain files. A component is one HTML file with a Node.js part, its settings form and its design (see write a component). The official catalogue is the repository flowstreamcomponents.
  • Ways in for the outside world: a stream can publish HTTP routes under its own proxypath, receive calls on /notify/{id}/, and talk over WebSocket.
  • Import and export of a stream as one JSON file, pause, restart, statistics and a backup of the database of streams.
  • Sign-in with a generated login and password, or through OpenPlatform when you install Flow as one of its apps, with the permissions Create Flows and Remove Flows.
  • Extensions: HTML files that you copy to a folder to extend the editor.

Where it fits

Flow is the tool to connect things without writing a server: read a sensor, call an API every minute, transform a message, store it, send an alert, answer an HTTP request. Because the runtime is the FlowStream of Total.js 5, the same engine can also be embedded in your own application; Flow is the complete application around it.

The family

Flow has relatives in other repositories of github.com/totaljs: lesscode, flowstreamdesigner, flowdesigneroffline, flowdesigner and others. They exist as separate projects; this section documents the application flow and its components only.

Next

  1. Install and first start
  2. Manage FlowStreams with the API
  3. Settings and files
  4. Write a component
  5. The components repository