# O que é o Flow: automação visual e IoT com FlowStreams

> O Flow é a app do Total.js que executa FlowStreams, diagramas visuais de componentes ligados por mensagens, para automação, integrações e IoT, com um editor no navegador e uma API para gerir os fluxos.

Framework: flow
Product: Flow (flow@11.1)
Language: pt
Content-SHA256: 186ba4d3851aea3eb827cce1195b0ee1191666f601a9fde82f9bf803b8107ee5
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

**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](/en/flow/install-and-first-start/)).

## 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: fork` no ficheiro `config`), 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](/en/flow/write-a-component/)). O catálogo oficial é o repositório [`flowstreamcomponents`](/en/flow/the-components-repository/).
- **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](/en/openplatform/what-is-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`](https://github.com/totaljs/lesscode), [`flowstreamdesigner`](https://github.com/totaljs/flowstreamdesigner), [`flowdesigneroffline`](https://github.com/totaljs/flowdesigneroffline), [`flowdesigner`](https://github.com/totaljs/flowdesigner) e outros. Existem como projetos separados; esta secção documenta apenas a aplicação `flow` e os seus componentes.

## A seguir

1. [Instalação e primeiro arranque](/en/flow/install-and-first-start/)
2. [Gerir FlowStreams com a API](/en/flow/manage-flowstreams-with-the-api/)
3. [Definições e ficheiros](/en/flow/settings-and-files/)
4. [Escrever um componente](/en/flow/write-a-component/)
5. [O repositório de componentes](/en/flow/the-components-repository/)
