Qué es Flow: automatización visual e IoT con FlowStreams
Flow (totaljs/flow, versión 11.1 en el momento de escribir esto) es la aplicación principal de la familia Total.js para la programación visual. Dibujas un diagrama en el navegador: cada caja es un componente, las líneas entre ellas llevan mensajes y el diagrama es un FlowStream. Flow guarda muchos FlowStreams, ejecuta cada uno y te da el editor, la monitorización y una API para gestionarlos.
Es una aplicación Total.js 5 con licencia MIT y no necesita base de datos: todo vive en dos carpetas de la aplicación (consulta instalación y primer arranque).
Qué obtienes
- Un editor visual en el navegador (la ruta
/designer/) con una biblioteca de componentes, el readme de cada componente, una consola, las variables del flujo y modo oscuro. - Muchos FlowStreams independientes en una instalación, cada uno con nombre, icono, color, grupo, autor, versión y notas. Por defecto cada flujo se ejecuta en su propio proceso de Node.js (
flowstream_worker: forken el archivoconfig), de modo que un flujo que falla no arrastra a los demás, y Flow lo reinicia. - Componentes como archivos normales. Un componente es un archivo HTML con una parte Node.js, su formulario de ajustes y su diseño (consulta escribir un componente). El catálogo oficial es el repositorio
flowstreamcomponents. - Vías de entrada al mundo exterior: un flujo puede publicar rutas HTTP bajo su propio
proxypath, recibir llamadas en/notify/{id}/y hablar por WebSocket. - Importar y exportar un flujo como un único archivo JSON, pausar, reiniciar, estadísticas y una copia de seguridad de la base de datos de flujos.
- Inicio de sesión con un login y una contraseña generados, o mediante OpenPlatform cuando instalas Flow como una de sus apps, con los permisos Create Flows y Remove Flows.
- Extensiones: archivos HTML que copias a una carpeta para ampliar el editor.
Dónde encaja
Flow es la herramienta para conectar cosas sin escribir un servidor: leer un sensor, llamar a una API cada minuto, transformar un mensaje, guardarlo, enviar una alerta, responder a una petición HTTP. Como el motor es el FlowStream de Total.js 5, el mismo motor puede integrarse también en tu propia aplicación; Flow es la aplicación completa que lo rodea.
La familia
Flow tiene parientes en otros repositorios de github.com/totaljs: lesscode, flowstreamdesigner, flowdesigneroffline, flowdesigner y otros. Existen como proyectos separados; esta sección documenta solo la aplicación flow y sus componentes.