mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Ensure global-config credential env vars are merged on deploy
Fixes #4508
This commit is contained in:
parent
282bb6c414
commit
58e2fcbeee
@ -71,7 +71,7 @@ RED.envVar = (function() {
|
|||||||
};
|
};
|
||||||
if (item.name.trim() !== "") {
|
if (item.name.trim() !== "") {
|
||||||
new_env.push(item);
|
new_env.push(item);
|
||||||
if ((item.type === "cred") && (item.value !== "__PWRD__")) {
|
if (item.type === "cred") {
|
||||||
credentials.map[item.name] = item.value;
|
credentials.map[item.name] = item.value;
|
||||||
credentials.map["has_"+item.name] = (item.value !== "");
|
credentials.map["has_"+item.name] = (item.value !== "");
|
||||||
item.value = "__PWRD__";
|
item.value = "__PWRD__";
|
||||||
|
@ -384,10 +384,27 @@ var api = module.exports = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (nodeType === "global-config") {
|
} else if (nodeType === "global-config") {
|
||||||
if (JSON.stringify(savedCredentials.map) !== JSON.stringify(newCreds.map)) {
|
const existingCredentialKeys = Object.keys(savedCredentials?.map || [])
|
||||||
savedCredentials.map = newCreds.map;
|
const newCredentialKeys = Object.keys(newCreds?.map || [])
|
||||||
dirty = true;
|
existingCredentialKeys.forEach(key => {
|
||||||
|
if (!newCreds.map?.[key]) {
|
||||||
|
// This key doesn't exist in the new credentials list - remove
|
||||||
|
delete savedCredentials.map[key]
|
||||||
|
delete savedCredentials.map[`has_${key}`]
|
||||||
|
dirty = true
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
newCredentialKeys.forEach(key => {
|
||||||
|
if (!/^has_/.test(key)) {
|
||||||
|
if (!savedCredentials.map?.[key] || newCreds.map[key] !== '__PWRD__') {
|
||||||
|
// This key either doesn't exist in current saved, or the
|
||||||
|
// value has been changed
|
||||||
|
savedCredentials.map[key] = newCreds.map[key]
|
||||||
|
savedCredentials.map[`has_${key}`] = newCreds.map[`has_${key}`]
|
||||||
|
dirty = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
var dashedType = nodeType.replace(/\s+/g, '-');
|
var dashedType = nodeType.replace(/\s+/g, '-');
|
||||||
var definition = credentialsDef[dashedType];
|
var definition = credentialsDef[dashedType];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user