mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Updated Design: Runtime Editor Split (markdown)
parent
f60968a135
commit
3dc1e337e8
@ -1,31 +1,56 @@
|
|||||||
Currently, Node-RED is a monolithic entity that has both the editor and runtime packaged in one place.
|
Currently, Node-RED is a monolithic entity that has both the editor and runtime packaged in one place.
|
||||||
|
|
||||||
The plan is to break them up into their own discrete packages that can be used separately.
|
The plan is to break them up into their own discrete packages to provide some more flexibility in how they are used.
|
||||||
|
|
||||||
|
- [Use Cases](#use-cases)
|
||||||
|
- [Headless](#headless)
|
||||||
|
- [Multi-user, single-tenet runtimes](#multi-user-single-tenet-runtimes)
|
||||||
|
- [Multi-user, multi-tenet runtimes](#multi-user-multi-tenet-runtimes)
|
||||||
|
- [Distributed](#distributed)
|
||||||
|
- [Scaled](#scaled)
|
||||||
|
- [Repurposed Editor](#repurposed-editor)
|
||||||
|
|
||||||
## Use Cases
|
## Use Cases
|
||||||
|
|
||||||
### Headless device
|
### Headless
|
||||||
|
|
||||||
A device that runs a flow it is given. The flow is edited elsewhere and remotely pushed to the device (or hardcoded on the device).
|
A device that runs a flow it is given. The flow is edited elsewhere and remotely pushed to the device (or hardcoded on the device).
|
||||||
|
|
||||||
- don't want the overhead of the editor that isn't going to be used
|
- don't want the overhead of the editor that isn't going to be used
|
||||||
- supports http endpoints (just doesn't have full editor capability)
|
- supports http endpoints (just doesn't have full editor capability)
|
||||||
|
|
||||||
### Distributed Node-RED
|
### Multi-user, single-tenet runtimes
|
||||||
|
|
||||||
A node-red flow is edited in one place. When deployed, it gets carved up and different parts are pushed to different runtimes, either local or remote.
|
- A single hosted instance of the editor is backed by multiple runtimes - one per user or group of users
|
||||||
|
- The user access the editor and the underlying api requests are proxied to the appropriate runtime
|
||||||
|
- Authentication is handled at the proxy layer
|
||||||
|
- API requests can be proxied unmodified (other than auth tokens)
|
||||||
|
|
||||||
- Custom actions are added behind the deploy action
|
### Multi-user, multi-tenet runtimes
|
||||||
- Serves up the editor without a local version of the runtime
|
|
||||||
|
|
||||||
### Scaled Node-RED
|
- A single hosted instance of the editor is backed by multiple runtimes.
|
||||||
|
- The user access the editor and the underlying api requests are proxied to the appropriate runtime.
|
||||||
|
- Each runtime may host flows of different users that should not see each other
|
||||||
|
- The proxy layer provides a filtered view of the flow to ensure the editor only displays information available to the logged in user.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Scaled
|
||||||
|
|
||||||
A node-red flow is edited in one place. When deployed, it gets sent to multiple runtimes to provide horizontal scaling.
|
A node-red flow is edited in one place. When deployed, it gets sent to multiple runtimes to provide horizontal scaling.
|
||||||
|
|
||||||
- Custom actions are added behind the deploy action
|
- Custom actions are added behind the deploy action
|
||||||
- Serves up the editor without a local version of the runtime
|
- Serves up the editor without a local version of the runtime
|
||||||
|
|
||||||
### Node-RED Editor
|
### Distributed
|
||||||
|
|
||||||
|
A node-red flow is edited in one place. When deployed, it gets carved up and different parts are pushed to different runtimes, either local or remote.
|
||||||
|
|
||||||
|
- Custom actions are added behind the deploy action
|
||||||
|
- Serves up the editor without a local version of the runtime
|
||||||
|
|
||||||
|
|
||||||
|
### Repurposed Editor
|
||||||
|
|
||||||
The Node-RED editor is used for another system entirely that shares the same node/wire visualisation.
|
The Node-RED editor is used for another system entirely that shares the same node/wire visualisation.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user