FlowFuse / FlowFuse/nr-project-nodes

Enable interop between Project Nodes and MQTT Broker service

Open
#114 2 comments 0 reactions 1 assignee Claimed by @knolleary View on GitHub
epic size:L
Dominant language
JavaScript
Stars
7
Forks
1
Avg merge
8d 6h
Merged PRs (30d)
2

Description

### Description

With the first iteration of the MQTT Broker service, we require users to register MQTT Clients in order to connect to the broker. This is true whether they are connecting from an external device, or a managed Node-RED instance.

Each registered client can only connect once to the broker; they cannot be shared. This makes things awkward when working with the DevOps pipeline; the credentials have to be provided via ENV vars to ensure each instance stage gets its own unique credentials.

The proposal here is to enhance the Project nodes as *the* way to pub/sub on the broker from within a managed Node-RED instance. The user does not need to worry about connection details - they just plug in topics to use and its done.

I suggest, but open to alternatives, adding a third 'use team broker' option to the node:

image

Above mock up is the Project In node - the Project Out node should be updated to match. The Project Call node does not feature here.

Some requirements:

- Only show the option if the Team Broker is available to the team - will require additional flag to be passed over instance/device settings and settings updated to include.
- Update ACL checks for project node connection to permit access to the MQTT Topic space
- Given we chose to expose ACLs to the clients, we need to define the story here as we don't have a mechanism to grant project nodes ACL access to the shared topic space.

```[tasklist]
### Tasks
- [ ] https://github.com/FlowFuse/flowfuse/pull/4789
- [ ] https://github.com/FlowFuse/nr-launcher/pull/302
- [ ] https://github.com/FlowFuse/device-agent/pull/328
- [ ] Update project nodes to offer Team Broker action
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.