Importar credenciales en node-red (flows_cred.json)
Cuando exportamos los proyectos en node-red disponemos de dos ficheros, uno es el de los flujos (flows.json) y otro es el de las credenciales (flows_cred.json). Este segundo incluye las credenciales, es decir los usuarios y contraseñas de nuestros nodos. Por ejemplo, el usuario y contraseña de una petición http a una API.
En el momento que importamos en otro instancia, desplegamos y realizamos las pruebas vemos que no se han cargado las credenciales y hay que volver a ponerlas a mano. Esto sucede porque el fichero flows_cred.json se encuentra encriptado por defecto para asegurar que su contenido no pueda ser leído fácilmente, puedes abrirlo y lo verás.
Node-red lo que hace es generar una clave aleatoria para encriptar este fichero por defecto, por eso, cuando lo importamos en una segunda instancia de node-red si no tiene la misma clave no se cargan los valores de nuestras credenciales. ¿Cómo podemos cambiar esto? Muy fácil.
Lo primero es tener claro que el asunto se resuelve desde el fichero settings.js. Tienes que buscar la propiedad credentialSecret, descomentarla si la tienes así y debes optar por dos opciones:
- La primera sería ponerla a false (credentialSecret: false) de tal manera que las contraseñas no se encriptan y se podrán cargar en cualquier otra instancia sin hacer ajustes. Esto conlleva un agujero de seguridad en entornos abiertos donde la contraseña se puede ver.
- La otra opción es poner una palabra (credentialSecret: «mi-string-key») para encriptar las contraseñas, sabiendo siempre que las instancias de node-red deben tener la misma credentialSecret.
Ahora solo quedaría reiniciar node-red y desplegar el cambio lo que hará que node-red descifre o vuelva a cifrar las contraseñas según la opción que hayas tomado. Ya puedes copiar e importar tus nodos y credenciales en la segunda instancia de node-red, solo recuerda que settings.js tenga el mismo valor de credentialSecret.