# 🎉 Node-RED 3.0.0-beta.1 released

**URL:** <https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124>\
**Category:** News\
**Created:** [3 May 2022 13:35 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124 "2022-05-03T13:35:27Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [3 May 2022 13:35 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/1 "2022-05-03T13:35:27Z")

</div>

🎉 The first **beta** release of Node-RED 3.0 is now available.

**Node-RED 3.x requires at least Node 14.x or later. We recommend the current Active LTS release, Node 16.x.**

Here are the highlights for this release.

The [Change Log](https://github.com/node-red/node-red/blob/39602ff5f26c115c0dbed432eb583fc8ef6d0333/CHANGELOG.md) has the full list of changes.

**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

- _None_

### Wire Junctions

A new core node type has been added called `junction` that makes it easier to route the wires in a flow.

There are two ways of adding a Junction to a flow.

- Shift-RightClick-Drag across the wire(s).

![fcpLB4zj6t](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/0/7/073af702666ea0958973a0714e96d492cb0c0f5f.gif)

- Using the Quick-Add dialog (Ctrl-click in the workspace to open)

 ![158238261-d42e40c0-4b46-4fc1-bf2d-95bc8cd462c8](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/6/a/6a1d457ff27fdfa1db8d82359e1aca89bff640e6.png)

- You can move junctions by dragging them around.
- To add a new wire _from_ a Junction, Ctrl (Cmd) Click on it to start wiring - this will add a wire where the Junction is the **source** node.

### Debug Path Tooltip

When hovering over a node name in the Debug sidebar, a new tooltip shows the full location of the node. This is useful when working with subflows, making it much easier to identify exactly which node generated the message.

Clicking on any item in the list will reveal it in the workspace.

 ![debug-path-tooltip](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/0/c/0c10dffb16883532e8314fcc17370c4c1791082a.png)

### Continuous Search

When searching for things in the editor, a new toolbar in the workspace provides options to quickly jump between the search results.

 ![continuous-search](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/3/4/349efb1e35ce1f48d5103543889d68f8ad8d2651.png)

We've added a pair of new actions to help navigate the results:

- `core:search-previous` - shortcut: `shift-f`
- `core:search-next` - shortcut: `f`

### Splitting wires

A new action has been added that will split a wire into a pair of Link nodes:

![split-wire-with-links](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/f/5/f5ba4be18dc377357ebb1d5c952d14e8a6832ed7.gif)

- `core:split-wire-with-link-nodes`

### Default node names

The `Debug`, `Function` and `Link` nodes are now given unique default names when they are added to the workspace.

![jkLU8QXabF](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/3/d/3dda27b2c11ad24f8788211a74163c1d05d6b54c.gif)

This capability could be added to any node, including contrib nodes, via their `onadd` function. We chose just this initial set as they were the ones that would most benefit from having a name applied.

A new action has also been added that will apply an appropriate default name to any selected nodes that don't currently have a name:

- `core:generate-node-names`

### Monaco Text Editor

We added the `monaco` editor component as an alternative to the default `ace` editor a year ago in the 2.x release. It has proven to be very stable and provides a much richer user experience.

With 3.0, we have switched over to monaco as the default editor. New installs of Node-RED will pickup the change - existing installs will need to update the `codeEditor` entry in their settings file.

The ultimate goal will be to remove `ace` entirely in the 4.0 release in April next year.

## Node Updates

Lots of good updates in the nodes:

- The Debug node has a new option to output to its status a count of how many messages it has received
- The HTTP Request node now lets you preconfigure HTTP Headers in the node itself
- The Link Call node can now be dynamically targeted based on the messages it receives
- Lots of fixes in the MQTT nodes

--

Be sure to read through the [Change Log](https://github.com/node-red/node-red/blob/39602ff5f26c115c0dbed432eb583fc8ef6d0333/CHANGELOG.md) 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 2.2.x

So on a Pi you'd do:

```auto
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 #core-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

This release contains pretty much everything we want to get into 3.0. There may be a final few bits and pieces, but nothing on the critical path.

The main work is documenting all these new features.

The goal is to release 3.0 at the end of this month.

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [3 May 2022 13:41 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/2 "2022-05-03T13:41:46Z")

</div>



---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [3 May 2022 13:57 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/3 "2022-05-03T13:57:43Z")

</div>

Wire junctions don't appear to be working quite as expected?

![Animation1](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/5/a593b68113b14b12a38be3bf7750b73306c8c60a.gif)

Windows with node.js v16

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [3 May 2022 14:01 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/4 "2022-05-03T14:01:53Z")

</div>

> [@TotallyInformation](#):
>
> Wire junctions don't appear to be working quite as expected?

Hmm... yes. Looks like an issue with handling Many-To-One. It's working fine in the One-To-Many case.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [3 May 2022 14:02 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/5 "2022-05-03T14:02:45Z")

</div>

Sorry, you also can't move a wire from a junction either:

![Animation1](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/7/9/799fc6c4022d675a80ab4fe2fa826eedfbe409ce.gif)

And I don't seem to be able to add a new wire from a junction? I have to wire "backwards" from the target node.

* * *

Liking the results though:

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/6/7/67c2e321887deb7a24535364f3a8f2ff696700ae.png)

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [3 May 2022 14:05 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/6 "2022-05-03T14:05:01Z")

</div>

- move a wire from a junction either:

That is expected - I will update the description. To wire _from_ a junction, you ctrl-click on it.

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [3 May 2022 14:09 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/7 "2022-05-03T14:09:45Z")

</div>

> [@TotallyInformation](#):
>
> ![Animation1](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/7/9/799fc6c4022d675a80ab4fe2fa826eedfbe409ce.gif)

It looks like you are holding SHIFT down in that sceenshot. Try moving a junction without holding SHIFT.

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [3 May 2022 14:10 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/8 "2022-05-03T14:10:24Z")

</div>

@TotallyInformation sorry, misunderstood your bit about removing a wire from a junction.

You are right - you cannot (currently) disconnect a wire from a junction like you can from a regular node port by shift-dragging with the wire selected. Will look at adding that in.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [3 May 2022 14:10 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/9 "2022-05-03T14:10:56Z")

</div>

Sorry Steve, I was trying to move a wire from one junction to another the way you can when moving a wire from a normal node. Select the wire, hold shift and click on the junction.

---

<div class="post-metadata">

**Author:** ![hardillb](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/hardillb/32/12373_2.png) [@hardillb](https://discourse.nodered.org/u/hardillb)\
**Post date:** [3 May 2022 14:24 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/10 "2022-05-03T14:24:44Z")

</div>

Docker builds as `nodered/node-red-dev@v3.0.0-beta.1` are available (along with the usual spread of NodeJS versions and minimal)

[https://hub.docker.com/r/nodered/node-red-dev/tags](https://hub.docker.com/r/nodered/node-red-dev/tags)

---

<div class="post-metadata">

**Author:** ![r0ller](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/r0ller/32/14327_2.png) [@r0ller](https://discourse.nodered.org/u/r0ller)\
**Post date:** [3 May 2022 16:25 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/11 "2022-05-03T16:25:42Z")

</div>

"The Link Call node can now be dynamically targeted based on the messages"

Wow, that'll make the command object design pattern prettier as I can get rid of the switch node 🙂

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [3 May 2022 17:22 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/12 "2022-05-03T17:22:11Z")

</div>

> [@r0ller](#):
>
> that'll make the command object design pattern prettier

Yeah, its a nice feature once its understood.

For anyone reading, this _should_ give you a head start...

![chrome_4Wz5qIxUFg](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/0/3/03578635d28696d2ffa5bf79201ffbb146b0caee.gif)

```auto
[{"id":"86a02eac9c04ee7f","type":"link call","z":"55525a9d18c99b86","name":"","links":[],"linkType":"dynamic","timeout":"30","x":1040,"y":1320,"wires":[["7cf21fdc4ef8c71e"]]},{"id":"dc6ee940a56aa3d5","type":"inject","z":"55525a9d18c99b86","name":"2 => timestwo","props":[{"p":"payload"},{"p":"target","v":"timestwo","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"2","payloadType":"num","x":870,"y":1320,"wires":[["86a02eac9c04ee7f"]]},{"id":"f98510d19a494813","type":"link in","z":"55525a9d18c99b86","name":"timestwo","links":[],"x":840,"y":1200,"wires":[["4f97edec87b5237c"]],"l":true},{"id":"d62020e8f463a0c1","type":"link out","z":"55525a9d18c99b86","name":"link out 1","mode":"return","links":[],"x":1105,"y":1200,"wires":[]},{"id":"4f97edec87b5237c","type":"function","z":"55525a9d18c99b86","name":"payload x 2","func":"msg.payload *= 2\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1000,"y":1200,"wires":[["d62020e8f463a0c1"]]},{"id":"937e65d2527f0e0d","type":"link in","z":"55525a9d18c99b86","name":"timesten","links":[],"x":840,"y":1240,"wires":[["4b6edee7a3a380e0"]],"l":true},{"id":"02b071d73722ce86","type":"link out","z":"55525a9d18c99b86","name":"link out 2","mode":"return","links":[],"x":1105,"y":1240,"wires":[]},{"id":"4b6edee7a3a380e0","type":"function","z":"55525a9d18c99b86","name":"payload x 10","func":"msg.payload *= 10\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1000,"y":1240,"wires":[["02b071d73722ce86"]]},{"id":"e26ddb0930c96ec3","type":"inject","z":"55525a9d18c99b86","name":"2 => timesten","props":[{"p":"payload"},{"p":"target","v":"timesten","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"2","payloadType":"num","x":870,"y":1360,"wires":[["86a02eac9c04ee7f"]]},{"id":"7cf21fdc4ef8c71e","type":"debug","z":"55525a9d18c99b86","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1070,"y":1360,"wires":[]},{"id":"db8e8f959fac2c15","type":"inject","z":"55525a9d18c99b86","name":"2 => bad-target","props":[{"p":"payload"},{"p":"target","v":"bad-target","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"2","payloadType":"num","x":880,"y":1400,"wires":[["86a02eac9c04ee7f"]]}]

```

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [3 May 2022 17:23 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/13 "2022-05-03T17:23:59Z")

</div>

> [@knolleary](#):
>
> The Debug node has a new option to output to its status a count of how many messages it has received

Weirdly, I think this may be one of the most useful changes for my use of Node-RED 🙂 and I never even knew I needed/wanted it until it just appeared!

---

<div class="post-metadata">

**Author:** ![ralphwetzel](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ralphwetzel/32/53713_2.png) [@ralphwetzel](https://discourse.nodered.org/u/ralphwetzel)\
**Post date:** [3 May 2022 20:10 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/14 "2022-05-03T20:10:56Z")

</div>

> [@knolleary](#):
>
> So on a Pi you'd do:
> 
> ```auto
> sudo npm install -g --unsafe-perm node-red@next
> 
> ```

I'm getting some weird errors from npm:

```auto
2 info using npm@6.14.16
3 info using node@v14.19.1
[...]
756 warn registry Unexpected warning for https://registry.npmjs.org/: Miscellaneous Warning EINTEGRITY: sha512-FqzBfTVlxs1SyslRi+HXReb+bQtJlcPIoEEjKcbEyAERh00
LKxTOpObE1PPlBh6g+KzLN0AjJuxDaMwRTBZO5w== integrity checksum failed when using sha512: wanted sha512-FqzBfTVlxs1SyslRi+HXReb+bQtJlcPIoEEjKcbEyAERh00LKxTOpObE1
PPlBh6g+KzLN0AjJuxDaMwRTBZO5w== but got sha512-z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXcg/SpIdNs6c5H0NE8XYXysP+DGNKHfuwvY7kxvUdBeoGlODJ6+SfaPg==. (0 bytes)
[...]
758 silly fetchPackageMetaData error for uid-safe@~2.1.5 Invalid response body while trying to fetch https://registry.npmjs.org/uid-safe: Integrity verification failed for sha512-FqzBfTVlxs1SyslRi+HXReb+bQtJlcPIoEEjKcbEyAERh00LKxTOpObE1PPlBh6g+KzLN0AjJuxDaMwRTBZO5w== (/root/.npm/_cacache/content-v2/sha512/16/ac/c17d3565c6cd52cac9518be1d745e6fe6d0b4995c3c8a0412329c6c4c80111874d0b2b14cea4e6c4d4f3e5061ea0f8accb37402326ec4368cc114c164ee7)
759 silly fetchPackageMetaData error for on-headers@~1.0.2 Invalid response body while trying to fetch https://registry.npmjs.org/on-headers: Integrity verification failed for sha512-/DLH7n+zPmxJAVBHXx63MhZPfzL3HNvOGXBL8J+oulyIB8ZCgooMAAqBg8BhOQQkJC2wOwOq3WY9Zh4+JbV+8Q== (/root/.npm/_cacache/content-v2/sha512/fc/32/c7ee7fb33e6c490150475f1eb732164f7f32f71cdbce19704bf09fa8ba5c8807c642828a0c000a8183c061390424242db03b03aadd663d661e3e25b57ef1)

```

Has anyone else seen this?  
Any idea, what's going wrong here?

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [3 May 2022 20:32 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/15 "2022-05-03T20:32:48Z")

</div>

> [@ralphwetzel](#):
>
> `warn registry Unexpected warning for https://registry.npmjs.org/: Miscellaneous Warning EINTEGRITY`

Its an NPM issue on your machine.  
Plenty of answers / solutions here: [git - npm WARN registry Unexpected warning for https://registry.npmjs.org/: - Stack Overflow](https://stackoverflow.com/questions/52068565/npm-warn-registry-unexpected-warning-for-https-registry-npmjs-org)

---

<div class="post-metadata">

**Author:** ![ralphwetzel](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ralphwetzel/32/53713_2.png) [@ralphwetzel](https://discourse.nodered.org/u/ralphwetzel)\
**Post date:** [3 May 2022 20:51 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/16 "2022-05-03T20:51:52Z")

</div>

Thank you, @Steve-Mcl - for pointing in the right direction!

```auto
sudo npm cache clear --force

```

... fixed the issue!

---

<div class="post-metadata">

**Author:** ![softy2k](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/softy2k/32/23707_2.png) [@softy2k](https://discourse.nodered.org/u/softy2k)\
**Post date:** [4 May 2022 05:51 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/17 "2022-05-04T05:51:21Z")

</div>

I've been waiting for more than half a year... an still nothing new about the possibility of **limiting the search only for the current flow**.

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [4 May 2022 06:32 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/18 "2022-05-04T06:32:55Z")

</div>

> [@softy2k](#):
>
> still nothing new about the possibility of **limiting the search only for the current flow**.

No, sorry @softy2k , it didnt make the cut. And TBH, I cant remember why other items took priority.

Instead, there is "continuous search" which does make it easier to navigate search results. Hopefully that helps a little.

But - if time permits, I'll see if I can squeeze it in.

REF: [feature: Allow search to be limited to the current flow · Issue #3419 · node-red/node-red · GitHub](https://github.com/node-red/node-red/issues/3419)

---

<div class="post-metadata">

**Author:** ![krambriw](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/krambriw/32/5429_2.png) [@krambriw](https://discourse.nodered.org/u/krambriw)\
**Post date:** [4 May 2022 07:05 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/19 "2022-05-04T07:05:11Z")

</div>

I'm so used to install & upgrade using the script. Can it be used for this upgrade as well? Something like below (better ask before jumping...)

```auto
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered) --nodered-version="3.0.0-beta.1" --node16

```

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [4 May 2022 07:09 UTC](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124/20 "2022-05-04T07:09:36Z")

</div>

Should do. Probably better to use "next" (for current / most recent beta)...  
`bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered) --nodered-version="next" --node16`

#### From [NPM](https://www.npmjs.com/package/node-red)...

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/2/c2f69d9f568265123eba943a1b799023548d2ec5.png)

Please try and let us know.

[Next page](https://discourse.nodered.org/t/node-red-3-0-0-beta-1-released/62124.md?page=2)
