FlowFuse / FlowFuse/node-red-dashboard

New Nodes: In/Out User-Specific Context Store

Open
#1,009 2 comments 0 reactions 0 assignees View on GitHub
needs-triage type:feature
Dominant language
HTML
Stars
355
Forks
82
Avg merge
4d 20h
Merged PRs (30d)
24

Description

### Description

With the release of https://flowfuse.com/blog/2024/06/dashboard-multi-tenancy/, we've had feedback that it would be useful to have an easier way to store temporary/context data on a user-by-user basis.

I was chatting with @knolleary, initially proposing us having a standalone Dashboard store alongside flow/global stores, but then it would be tricky as we'd lose the value of that separation. Instead, Nick proposed, and I agree with, the idea of adding some new nodes - likely as a third party installable, rather than part of core. These new nodes would provide a wrapping interface to the context stores, allowing users to key by some user-specific id (e.g. `socketId`, `user.email`)

Nodes required would likely be:

- `save`/`set` - given a user map, property and value, store this in a context store
- `get` - retrieve a given value, given a user id and property
- `clear` - remove all data form a given user (in the case of socketId being disconnected, an easy way to remove everything associated with the lost connection, or possibly a given value for property?

### Have you provided an initial effort estimate for this issue?

I have provided an initial effort estimate

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue names no files, tests, or entry points; begin by locating the existing flow/global context-store interfaces and the dashboard's node packages. Clarify whether this belongs in a third-party package and define the save/set, get, and clear behavior, including disconnect cleanup, before implementation; done means those user-keyed operations are specified and covered.

Written by the indexing model from the issue text.

Assessment

Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.