O que é o Flow: automação visual e IoT com FlowStreams
Flow (totaljs/flow, versão 11.1 no momento da escrita) é a aplicação principal da família Total.js para programação visual. Desenha um diagrama no navegador: cada caixa é um componente, as linhas entre elas transportam mensagens e o diagrama é um FlowStream. O Flow guarda muitos FlowStreams, executa cada um e dá-lhe o editor, a monitorização e uma API para os gerir.
É uma aplicação Total.js 5 com licença MIT e não precisa de base de dados: tudo vive em duas pastas da aplicação (veja instalação e primeiro arranque).
O que obtém
- Um editor visual no navegador (a rota
/designer/) com uma biblioteca de componentes, o readme de cada componente, uma consola, as variáveis do fluxo e modo escuro. - Muitos FlowStreams independentes numa instalação, cada um com nome, ícone, cor, grupo, autor, versão e notas. Por predefinição cada fluxo corre no seu próprio processo Node.js (
flowstream_worker: forkno ficheiroconfig), pelo que um fluxo que falha não arrasta os outros e o Flow reinicia-o. - Componentes como ficheiros simples. Um componente é um ficheiro HTML com uma parte Node.js, o seu formulário de definições e o seu design (veja escrever um componente). O catálogo oficial é o repositório
flowstreamcomponents. - Entradas para o mundo exterior: um fluxo pode publicar rotas HTTP sob o seu próprio
proxypath, receber chamadas em/notify/{id}/e comunicar por WebSocket. - Importar e exportar um fluxo como um único ficheiro JSON, pausar, reiniciar, estatísticas e uma cópia de segurança da base de dados de fluxos.
- Início de sessão com um login e uma palavra-passe gerados, ou através do OpenPlatform quando instala o Flow como uma das suas apps, com as permissões Create Flows e Remove Flows.
- Extensões: ficheiros HTML que copia para uma pasta para ampliar o editor.
Onde se enquadra
O Flow é a ferramenta para ligar coisas sem escrever um servidor: ler um sensor, chamar uma API a cada minuto, transformar uma mensagem, guardá-la, enviar um alerta, responder a um pedido HTTP. Como o motor de execução é o FlowStream do Total.js 5, o mesmo motor também pode ser incorporado na sua própria aplicação; o Flow é a aplicação completa à sua volta.
A família
O Flow tem parentes noutros repositórios de github.com/totaljs: lesscode, flowstreamdesigner, flowdesigneroffline, flowdesigner e outros. Existem como projetos separados; esta secção documenta apenas a aplicação flow e os seus componentes.