From d9bd736159eb6eac95227ba16c28117bcd78b4c9 Mon Sep 17 00:00:00 2001 From: Sam Machin Date: Mon, 21 Mar 2022 09:29:41 +0000 Subject: [PATCH] change error to warn for moving from unencrypted to encrypted --- .../node_modules/@node-red/runtime/lib/nodes/credentials.js | 5 ++--- .../@node-red/runtime/locales/en-US/runtime.json | 3 ++- test/unit/@node-red/runtime/lib/nodes/credentials_spec.js | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/node_modules/@node-red/runtime/lib/nodes/credentials.js b/packages/node_modules/@node-red/runtime/lib/nodes/credentials.js index d682b03f7..eaf5833c5 100644 --- a/packages/node_modules/@node-red/runtime/lib/nodes/credentials.js +++ b/packages/node_modules/@node-red/runtime/lib/nodes/credentials.js @@ -241,9 +241,8 @@ var api = module.exports = { } else { if (encryptionEnabled) { // Our config expects the credentials to be encrypted but the encrypted object is not found - var error = new Error("Encrypted credentials not found"); - error.code = "credentials_load_failed"; - throw error + log.warn(log._("nodes.credentials.encryptednotfound",{message:err.toString()})) + credentialCache = credentials; } else { // credentialSecret is set to False log.warn(log._("nodes.credentials.unencrypted",{message:err.toString()})) diff --git a/packages/node_modules/@node-red/runtime/locales/en-US/runtime.json b/packages/node_modules/@node-red/runtime/locales/en-US/runtime.json index 092df794e..0704e2bdc 100644 --- a/packages/node_modules/@node-red/runtime/locales/en-US/runtime.json +++ b/packages/node_modules/@node-red/runtime/locales/en-US/runtime.json @@ -105,7 +105,8 @@ "error-saving":"Error saving credentials: __message__", "not-registered": "Credential type '__type__' is not registered", "system-key-warning": "\n\n---------------------------------------------------------------------\nYour flow credentials file is encrypted using a system-generated key.\n\nIf the system-generated key is lost for any reason, your credentials\nfile will not be recoverable, you will have to delete it and re-enter\nyour credentials.\n\nYou should set your own key using the 'credentialSecret' option in\nyour settings file. Node-RED will then re-encrypt your credentials\nfile using your chosen key the next time you deploy a change.\n---------------------------------------------------------------------\n", - "unencrypted" : "Using Unecrypted credentials" + "unencrypted" : "Using unecrypted credentials", + "encryptednotfound" : "Encrypted crededntials not found" }, "flows": { "safe-mode": "Flows stopped in safe mode. Deploy to start.", diff --git a/test/unit/@node-red/runtime/lib/nodes/credentials_spec.js b/test/unit/@node-red/runtime/lib/nodes/credentials_spec.js index 6c53142d3..0668da3b6 100644 --- a/test/unit/@node-red/runtime/lib/nodes/credentials_spec.js +++ b/test/unit/@node-red/runtime/lib/nodes/credentials_spec.js @@ -379,7 +379,6 @@ describe('red/runtime/nodes/credentials', function() { credentials.export().then(function(result) { result.should.have.a.property("$"); settings.should.not.have.a.property("_credentialSecret"); - // reset everything - but with _credentialSecret still set credentials.init(runtime); // load the freshly encrypted version @@ -444,12 +443,13 @@ describe('red/runtime/nodes/credentials', function() { done(); }); }); + it('handles bad credentials object - resets credentials', function(done) { settings = { credentialSecret: "e3a36f47f005bf2aaa51ce3fc6fcaafd79da8d03f2b1a9281f8fb0a285e6255a" }; // {"node":{user1:"abc",password1:"123"}} - var cryptedFlows = {"FOO":"5b89d8209b5158a3c313675561b1a5b5phN1gDBe81Zv98KqS/hVDmc9EKvaKqRIvcyXYvBlFNzzzJtvN7qfw06i"}; + var cryptedFlows = {"BADKEY":"5b89d8209b5158a3c313675561b1a5b5phN1gDBe81Zv98KqS/hVDmc9EKvaKqRIvcyXYvBlFNzzzJtvN7qfw06i"}; credentials.init(runtime); credentials.load(cryptedFlows).then(function() { done();