Multi-user Dashboards with Node-RED Dashboard 2.0

I am a farily new chap here, and was going through the documentation and also checked this article out:

So far I only installed the @flowfuse/node-red-dashboard but I don't see how I could access the FlowFuse dashboard mentioned in step 1, or install the User Addon as mentioned in step 2. Is this not available in a self hosted option?

Hi @nygma2004 - we have a few details here, there are in fact three products/libraries in play:

  • Node-RED: The drag and drop editor, can be installed and run locally (or anywhere you like for that matter) via npm, docker or a Cloud provider.
  • FlowFuse: Platform to help you manage multiple Node-RED instances, remotely and cloud-hosted. FlowFuse also can be installed locally, or via docker, kubernetes, or you can just sign up and use it on FlowFuse Cloud (one of the Cloud Providers for Node-RED).
  • Node-RED Dashboard 2.0: Open source package, primarily developed by FlowFuse, that adds in a collection of UI and Chart nodes to Node-RED for building custom UI. Does not require FlowFuse at all, can just be used with core Node-RED.

Forgive me is some that was already known, just wanted to make sure clarity was provided in the three components being used!

So, Step 1, the FlowFuse UI is available when using FlowFuse to run your Node-RED instances, but would not be available if just using Node-RED standalone.

The User Addon currently isn't available in self-hosted FlowFuse, but @Marian is working on some details here and may be able to provide some more information.

1 Like

Thanks a lot for the lengthly explanation. I assumed it is somehow related to FlowFuse.
My setup is self-hosted, so probably will wait for future details if this would be available at all.

Are you running/managing Node-RED through a self-hosted FlowFuse, or just running Node-RED directly?

I am running Node-Red directly. I installed it manually on my server and that's it. Since Dashboard 2.0 came out, I added the custom set of nodes to Node-Red and that's where I am right now. I just starting to understand how FlowFuse and Dashboard 2.0 is related to each other.

Is it intended that, eventually, the dashboard will support multiple users independently of FlowFuse?

Got you, so FlowFuse is a standalone platform that can help you run/manage Node-RED Instances, and provides the options you saw in Step 1.

Node-RED Dashboard 2.0 is a separate package from the FlowFuse product (we, FlowFuse, the company, just happen to be the maintainers of it on GitHub), hence the @flowfuse/ leading text in the package name.

The only feature in Node-RED Dashboard 2.0 that is exclusive to instances of Node-RED running on FlowFuse (the platform) is the msg._client.user data being appended to all messages (as it uses the user object that FlowFuse provides with it's own authentication).

Out of the box, you can add authentication to Node-RED yourself: Securing Node-RED : Node-RED, but any user objects, etc. aren't then by default include dby default within Dashboard events.

Thanks. I can see there is a Free tier from FlowFuse in the self hosted version, so I can install and play around with it. Can "import" and existing installation to FlowFuse? I have loads implemented in my current instance already, I don't want to mess it up.

Hi @nygma2004, the Personalized Multi-User Dashboard plugin, @flowfuse/node-red-dashboard-2-user-addon, is available in our FlowFuse Certified Nodes catalog, accessible to our Teams and Enterprise customers. This is also available for our Self-Hosted customers who wish to use the Personalized Multi-User Dashboard; therefore, we provide all necessary configurations upon request to get started.

For importing to FlowFuse, I would recommend our Tools Plugin for migrations, available at Node-RED Tools plugin • FlowFuse Docs. The Node-RED Tools Plugin is a module that you can install into any Node-RED instance running outside of FlowFuse. The current version of the plugin allows you to create a new Instance Snapshot using the flows you have locally and push them into an instance on FlowFuse.

At present, there are no plans to offer access to the Personalized Multi-User Dashboard plugin outside of FlowFuse. However, devices (Node-RED remote instances managed by FlowFuse) are supported. If you have a specific case you would like to discuss, here is my meeting link, and I would be more than happy to talk about your case. Meeting Link

I don't personally have a requirement, but this is one of the features most often asked about here on the forum. Hence my interest.

I guess most requiring this will be commercial users so perhaps FlowFuse is an appropriate route for them.

1 Like

I've been wondering if the multi-user feature will still work if a device goes offline. Or in other words, I assume that it would still work even if there is no permanent connection to the flow-fuse service / server?

1 Like

I have another question relating to multi-user-functionalities. I would like to use these functionalities outside of FlowFuse by using socket-ids. In some projects we have used node-red-contrib-mdashboard, but I wanted to change to Dashboard 2.0.

image

When I look into the code. It should be possible.

Code source: node-red-dashboard/nodes/config/ui_base.js at main · FlowFuse/node-red-dashboard · GitHub

Best regards, Andreas

I thought that the socketId had been included with D2? I know I had a conversation with Joe about it early on.

Just remember that those ID's are not very stable though, they change rather too easily.

You are correct. All events emitted by Dashboard 2.0 nodes emit a msg._client object which contains the socketId as we agreed.

As per D1.0, including the socketId in the msg._client will send unique data to ui-notification and ui-control connections if the id is presented. For all other widget types, this is currently only possible with the FF plugin

1 Like

Thanks for your fast response.

It would be great, if also the other widgets would be accessible via socket-Id without the need of the plugin, because not always you have an flowfuse-environment.

Hi @boehan - the decision to constrain to ui-notification and ui-control was the mirror the behaviour of the original Node-RED Dashboard, which only offered this functionality for these two nodes.

Beyond this, with the work that FlowFuse have done in building out multi-user authentication/Dashboards with the FlowFuse plugin, we deemed this to be a commercial offering, as multi-user Dashboards are generally for teams of engineers, or business. This is the reason we have made this available on the Team & Enterprise tiers.

1 Like

Just a reminder that, if you want more control over your web app UI's and can live without the help that Dashboard 1 or 2 offer, you can use UIBUILDER which offers full control and certainly lets you filter updates by socket id, a client id (more stable than socket id), page name, etc.

UIBUILDER is fully open source.

2 Likes

Thanks for your response. I love the easiness of the Node-RED-Dashboard and also the possibility to be free in relation to HTML, JavaScript and CSS within the Template-Node. But for me the Multi User Dashboard functionalities is the standard and the Single User Dashboard is the exception. When you think about controlling a machine, like we do in our model factory, then single user dashboard is suitable. But if you want to develop a Web-App then its unfortunately not. We have tried the UiBuilder, but for us it was too complex. If we needed the full freedomness, we have used the standard http-endpoint with the template-node. We are thinking about creating a fork of the Node-RED Dashboard 2.0 with Socket-ID-functionalities.

OK, thanks for the reply. Without wishing to sidetrack this thread, I'm always open for feedback and if there is anything you think I could do to make the use easier, please let me know.

2 Likes