Flow Engine engine upgrade to NodeRED 3

Available since Onesait Platform version 4.2.0.

Introduction

In the platform release, the FlowEngine execution engine based on Node-RED has been migrated to version 3.0, specifically to version 3.0.2. This allows to use all the new capabilities and enhancements of the new engine from within the FlowEngine.

Complete information on what's new in this release here: https://nodered.org/blog/2022/07/14/version-3-0-released.

Let's take a look at the main improvements incorporated.

Built-in enhancements

Context menu

A right-click context menu has finally been added to the workspace. This gives users quick access to a lot of built-in actions in the editor and should help them discover more of the available features.

Possibility to generate intermediate connectors (Junctions) for better visibility

Possibility to install node.js modules from within the node function (for that node)

New Monaco editor

From version 2.0 of NodeRED the function editor uses this editor, offering more facilities for development such as autocompletion, tooltips,...

Other

  • Tree view of the flows.

  • New Help sidebar: The help window is now a new tab, having more space for reading.

  • Grouping nodes: It allows grouping nodes as if they were a component.

  • JSONata $moment support: Added support for the Moment date/time library in the FUNCTION nodes, allowing date modification functions, Timezone conversion, etc.

  • Inject node properties: It now allows to configure any MSG value.

  • Function node lifecycle: It allows FUNCTION nodes to create code at node initialization (deploy) and destruction.

  • Importing duplicate nodes: When importing flows or nodes, it asks if you want to overwrite existing ones by id. That way, you can update or replicate flows within domains.

  • Simplified Git Workflow: It is possible to configure projects to auto commit when DEPLOYing the domain.

  • Handling 'lost' nodes: Bug fix for nodes that lost their reference to a NodeRED tab.

  • FUNCTION node: The node can now send messages in the setup part.

  • Function node use of npm modules: Nodejs modules (npm install) can be added directly to FUNCTION nodes.

  • Editor features:

    • Export preview: Added a new tree view screen when exporting to make the task easier.

    • Selecting nodes: Added shotcuts for node selection and management.

    • Opening a subflow: CTRL + double click on a subflow now takes you to the subflow definition.

    • Navigating around the workspace: New shotcuts for navigation.

  • Function external module changes: Improved definition of new modules. These modules are installed in background, ready to use in the FUNCTION node.

  • Inject node quick inject button: Now you can inject data directly from the definition without having to deploy each time, which facilitates development.

  • Removed tail node: The default node is removed. It can be reinstalled from the palette.

  • Flow Debugger: A new plugin has been created to debug NodeRED, adding breakpoints between nodes (input/output), viewing message queue, etc.

  • Flow Linter - nrlint: A plugin has been created to have a Flow linter available.

  • New Welcome Tour Guide: A small guided tour has been added for the first time you enter the domain.

  • Hiding tabs: Now you can close the tabs so that they do not occupy space in the top bar and open them from the tree view.

  • Dynamic MQTT nodes: Dynamic subscription option has been added.

  • Auto-complete in msg TypedInputs: Auto-complete added to some nodes when selecting MSG fields.

  • New Link Call node: New node that allows, together with the LINK-IN/OUT, to generate subroutine-like executions.

  • Edit & Arrange menus: Customization of elements.

  • Flow/Group level environment variables: It allows you to set global variables at group and flow (tab) level.

  • Debug sidebar options: Change of options in the display of debug messages

  • Deep copy option on Change node: SET node now allows to make a copy of the data (not by reference).

  • Delay node updates: The node now supports a second output for those MSGs that are discarded by the retention policy configured in the node.

  • File nodes renamed: FILE nodes are renamed to make it easier to know which is the write node and which is the read node.

  • Search History: The node search window now has a history for easy access to regular searches.

  • Remembering zoom/position: Zoom and other display selections can be configured to always be stored and applied.

  • Aligning nodes: Snap-to-grid option is added.

  • Detaching nodes: Detaching nodes is enabled without losing the link between successor and predecessor nodes.

  • Selecting multiple wires: Multiple selection now illuminates links between nodes for easier viewing.

  • Slicing wires: "Slicing" links at a time using CTRL + drag right click is now allowed.

  • Subflow Output labels: Added labels to subflow outputs.

  • Predefined Environment Variables: Added a set of environment variables to access common names such as flow (tab), node, etc.

  • The JSONParser node will now try to parse Buffer objects if it can.