The first beta release of Node-RED 2.0.0 is now available.
The Change Log has the full list of changes in this release, but here are the highlights.
Note: if any issues are reported against the beta, we'll update this post to list them here. If you hit a problem, please do check back here before adding a comment.
Known Issues
- HTTP Request node does not work properly with all HTTP proxies.
Major Changes
The main focus of this release is dropping support for old versions of Node.js. This in turn has allowed us to make some major dependency updates which has required time and effort to do properly. As such, there are not lots of new features in this release - but there are some.
Node.js 12 or later required
Node-RED 2.0 does not support anything earlier than Node.js 12.
Updated module dependencies
As we have finally been able to drop support for Node 8 and Node 10, we've been able to update a number of our underlying dependencies across major versions.
In the majority of cases, this will be absolutely transparent to end users. But some of the updates are closely related to the functionality some of our nodes provide.
The following nodes have been updated and should, unless stated, behave exactly the same as before. All of our unit tests pass cleanly - but there's always a chance of edge cases our tests don't cover. If you use any of these nodes in your flows, please take a moment to verify they are still working as you'd expect.
- HTTP Request: Reimplemented with a different underlying module. We have tried to maintain 100% functional compatibility, but some edge cases remain - particularly around HTTP Proxies.
- JSON: The schema validation option no longer supports
JSON-Schema draft-04
. - HTML: Its underlying module has had a major version update. Should be fully backward compatible.
Renamed RBE
node to Filter
node
The RBE (Report By Exception) node is one of the hidden gems of the palette. Given how many times its the answer to a question on the forum, its clear we needed to make it more discoverable. With this release we have done two things:
- moved it from
node-red-node-rbe
into the core palette - rebranded it the
filter
node.
Under the covers it still uses the rbe
node type, so existing flows will not be affected. Also that means it will still show up if you search for rbe
- so users following existing guides will still find it.
Removed tail
node
We have removed node-red-node-tail
as a default dependency. This means you may need to manually install that module to get the node back if your flows use it.
Runtime Features
Restructured default settings file
Not a feature as such, but we've reorganised the default settings file. The settings are now in a better order, with clearer sections to help users navigate.
We also have some plans for node-red-admin
to help users generate their settings file with security already enabled... coming soon!
You can see the new default settings file here.
Default flows file name
We've also updated the default settings file to hardcode the flow file name to flows.json
. Previously we left it unset, so the runtime would use the hostname to generate the flow file name. That would catch people out when moving between networks. As this is a change to the default settings file, all existing installs will continue to behave as they did before.
Editor Features
Monaco Text Editor
Thanks to @Steve-Mcl we now have optional support for the Monaco text editor. This gives a much richer code editing experience in the Function node and elsewhere.
For now, Node-RED will still use the ACE editor by default. To enable Monaco you need to edit the editorTheme
section of your settings file to include a codeEditor
section like this:
editorTheme: {
codeEditor: {
lib: "monaco"
}
},
Steve has done a great job of verifying a lot of the more commonly used nodes will work with Monaco, but it is possible there are contrib nodes out there that assume the editor uses ACE. If you hit any problems, please let us know so we can raise with the module owner.
Inject node updates
Steve has also been busy adding a new button to the Inject node's edit dialog that will trigger the Inject node with the values from the edit dialog, rather than the values currently deployed. That makes it much easier to quickly inject different values whilst testing a flow.
Note the button in the main flow view will still inject the current deployed values as it always has.
CSS Theme Variables
To make it easier for nodes/plugins to style their UI elements so they honour any custom theme applied, we've added a selected of CSS Variables they can use to pick-up theme colours.
Node updates
- A new settings is available,
fileWorkingDirectory
that can be used to define the working directory used by the File nodes to resolve relative paths. If the setting isn't provided, the nodes will do what they did before - use the working directory of the Node-RED process. - When in rate-limiting mode, the Delay node can now dynamically set its rate using
msg.rate
. - The TLS node now allows you to specify an ALPN protocol
Be sure to read through the Change Log to see what else is in there.
Installing the beta
If you want to try out the beta, you will need specify node-red@next when you use npm to update. Without the @next
you'll still get 1.x
So on a Pi you'd do:
sudo npm install -g --unsafe-perm node-red@next
Reporting problems
If you hit any problems, please report them either as a reply on this topic, or in the #dev slack channel. Please do not post new topics to the forum regarding the beta as that could confuse users who are not using the beta.
Outstanding work
We aren't going to rush the final 2.0 release as we really need to make sure the beta has had some good usage in the community to flush out any problems with the underlying module updates.
There are a few items we had in the plan for 2.0 that we'd still like to get done before the final release - although none are critical and could get bumped to 2.1.
And we really need to get the HTTP Request node working properly with proxies again.