I have been trying to determine a way to deliver end node solutions (Raspberry Pi) using node-red while at the same time protecting my IP that is embedded in the node-red flows.json file.
I came up with the following idea and would appreciate any thoughts.
I envision what I call a container flow that would control the dynamic encryption/decryption of the flows.json file.
Contained in the end-node devices would be an encrypted flows.json file along with the container json flow. The container flow would be the flow that loads upon startup of node-red..
Upon boot up the container flow, using a secure method (MQQT, HTTPS, etc.) would "phone home" to a control cloud server and receive the decryption key.
The control flow would then decrypt the flows.json and then use admin api .addFlow to add the decrypted flows.json file to the active configuration.
Once the decrypted flows.json file is added to the active configuration the decrypted flows.json file would be deleted.
If I can do this decryption in some sort of memory based storage I will so that there would be no trace of the decrypted file on any storage device.
In theory this should work. One aspect that I have yet to determine is whether the active configuration has any state in storage or not. I will be researching this next.
I would appreciate any questions/thoughts/ideas/recommendations.
Thanks
Joe