Wat is Flow: visuele automatisering en IoT met FlowStreams
Flow (totaljs/flow, versie 11.1 op het moment van schrijven) is de hoofdtoepassing van de Total.js-familie voor visueel programmeren. Je tekent een diagram in de browser: elk vak is een component, de lijnen ertussen dragen berichten en het diagram is een FlowStream. Flow bewaart veel FlowStreams, voert elk uit en geeft je de editor, de monitoring en een API om ze te beheren.
Het is een Total.js 5-toepassing onder MIT-licentie en heeft geen database nodig: alles staat in twee mappen van de toepassing (zie installatie en eerste start).
Wat je krijgt
- Een visuele editor in de browser (de route
/designer/) met een bibliotheek van componenten, de readme van elke component, een console, de variabelen van de stream en een donkere modus. - Veel onafhankelijke FlowStreams in één installatie, elk met naam, icoon, kleur, groep, auteur, versie en notities. Standaard draait elke stream in een eigen Node.js-proces (
flowstream_worker: forkin het bestandconfig), zodat een stream die faalt de andere niet meesleurt en Flow hem herstart. - Componenten als gewone bestanden. Een component is één HTML-bestand met een Node.js-deel, zijn instellingenformulier en zijn ontwerp (zie een component schrijven). De officiële catalogus is de repository
flowstreamcomponents. - Ingangen naar de buitenwereld: een stream kan HTTP-routes publiceren onder een eigen
proxypath, aanroepen ontvangen op/notify/{id}/en praten via WebSocket. - Importeren en exporteren van een stream als één JSON-bestand, pauzeren, herstarten, statistieken en een back-up van de database met streams.
- Aanmelden met een gegenereerde login en wachtwoord, of via OpenPlatform wanneer je Flow als een van zijn apps installeert, met de rechten Create Flows en Remove Flows.
- Extensies: HTML-bestanden die je naar een map kopieert om de editor uit te breiden.
Waar het past
Flow is het hulpmiddel om dingen te verbinden zonder een server te schrijven: een sensor uitlezen, elke minuut een API aanroepen, een bericht omzetten, opslaan, een melding sturen, een HTTP-verzoek beantwoorden. Omdat de runtime de FlowStream van Total.js 5 is, kan dezelfde engine ook in je eigen applicatie worden ingebouwd; Flow is de complete applicatie eromheen.
De familie
Flow heeft verwanten in andere repositories van github.com/totaljs: lesscode, flowstreamdesigner, flowdesigneroffline, flowdesigner en andere. Ze bestaan als aparte projecten; dit onderdeel documenteert alleen de toepassing flow en haar componenten.