If upgrading, please read the upgrade instructions.
For the Raspberry Pi users, please see the Raspberry Pi documentation for how to upgrade if you are still on the pre-installed version.
We published our roadmap to 1.0 last July and with it said:
You’ll note that there are not committed timescales on this roadmap; it represents a lot of development work and there are still unanswered questions on the final designs. But our intention is to get to 1.0 by the end of the year.
Here we are at the end of January and this is our first release since then and it isn’t 1.0. We had hoped to be further along the roadmap than we are, but some things just can’t be rushed.
As an open source project we rely on our excellent community to help drive things forward. One of our goals for this year is to grow the contributor community. Contributing to the project doesn’t just mean writing lines of code (although, of course, that does help speed the roadmap along). There are many ways to get more involved and give back to the project, such as documentation, the cookbook or helping improving the flow library.
If you want to get involved, come chat to us on Slack.
But now, on with the 0.18 release notes.
The new Projects feature is the first major step on our roadmap to 1.0. It changes how you manage your flow files and introduces version control into the editor.
We’re easing this feature out, so for this release it is in preview mode - you need to enable it via your settings file. That means you can opt-in to moving over to projects before we turn it on by default in a future release.
Message Sequence nodes
We introduced the Split/Join node pair in a previous release. These nodes can be used to turn a single message into a sequence of messages and back again.
With this release we are adding some more features around message sequences.
Switchnode has some new rules for routing messages based on their position within a sequence
Joinnode can be configured with a JSONata expression for reducing a sequence to a single message
- a new
Sortnode has been added for reordering the messages in a sequence
- a new
Batchnode has been aded for creating new sequences from the messages it receives.
- both the
File Innodes, when sending multiple messages, send them as properly formed message sequences. This allows you to more efficiently stream large CSV files through a flow.
For example, given a stream of sensor data coming from an MQTT node, the
can be used to create time-sliced sequences which the
Join node reduces to calculate
the average sensor reading within each time-slice.
Customising a node’s icon
We’ve added the ability to change a node’s icon. This can be helpful where you have lots of the same node type on a flow and you want to help distinguish them. Note this is an editor customisation - you cannot change the icon dynamically from a flow.
To change the icon, open the settings section of a node’s edit dialog and you’ll see the new options beneath the port labels settings. With this release you have to pick from the list of available icons, but we’ll be expanding on that in the future.
Support for scoped modules
We recently updated the Flow Library to index scoped node modules. With this release we’ve squashed a few bugs so you can now also install them directly from within the Palette Editor.
Increased flexibility with core nodes
By convention, nodes use
msg.payload as the main property they work with. This
is how many nodes are able to just work together, but it can also cause problems
where a flow has to juggle its properties around to get the right thing into the payload
at any given point.
Some nodes are already more flexible than others and let you pick a different property to work with. We’ve now extended that to more nodes.
In the core palette, the
XML nodes have all been updated,
as have the extra nodes
base64 - look-out for
new versions of their modules.
Update to JSONata 1.5.0
We’ve updated to the latest release of JSONata which introduces some new functions and capabilities. Check their release notes for more information on both the 1.4.0 and 1.5.0 releases.
As usual, there’s a long list of improvements across a wide range of the core nodes.
HTTP Innode will only automatically parse the JSON if the request had its
Content-typeproperly set - and in the real world, that’s the type of thing that users get wrong. Adding this mode to the
JSONnode allows such a flow to be more forgiving and guarantee the message payload has been parsed.
TLSconfig node allows you to specify a passphrase for your private key file.
Speaking of TLS, we’ve added TLS support to the
Speaking of WebSockets, we’ve added WebSocket support to the
templatenode, which can already send parsed JSON rather than text, can now also send parsed YAML. You can also use
msg.templateto dynamically set the template it uses.
Speaking of YAML, there’s a new
YAMLparser node for converting to and from that format.
Delaynode can now be reset by sending it a message with a
msg.resetproperty, discarding any queued up messages.
Debugnode now lets you update its status text with the content of messages it receives. Useful for providing a quick-glance view of your flow’s state.
Injectnode now lets you specify a delay before its ‘inject once on start’ option is triggered.
Triggernode can now be configured to use
msg.topicto distinguish different streams of messages to trigger against.