Skip to content
Snippets Groups Projects
Commit 9411791f authored by timothycarambat's avatar timothycarambat
Browse files

Simplify ENV management

auto write ENV on changes
Dont double-track envs that are already tracked
parent 524edd6e
No related branches found
No related tags found
No related merge requests found
...@@ -145,7 +145,6 @@ function apiSystemEndpoints(app) { ...@@ -145,7 +145,6 @@ function apiSystemEndpoints(app) {
try { try {
const body = reqBody(request); const body = reqBody(request);
const { newValues, error } = await updateENV(body); const { newValues, error } = await updateENV(body);
if (process.env.NODE_ENV === "production") await dumpENV();
response.status(200).json({ newValues, error }); response.status(200).json({ newValues, error });
} catch (e) { } catch (e) {
console.log(e.message, e); console.log(e.message, e);
......
...@@ -416,7 +416,6 @@ function systemEndpoints(app) { ...@@ -416,7 +416,6 @@ function systemEndpoints(app) {
false, false,
response?.locals?.user?.id response?.locals?.user?.id
); );
if (process.env.NODE_ENV === "production") await dumpENV();
response.status(200).json({ newValues, error }); response.status(200).json({ newValues, error });
} catch (e) { } catch (e) {
console.log(e.message, e); console.log(e.message, e);
...@@ -451,8 +450,6 @@ function systemEndpoints(app) { ...@@ -451,8 +450,6 @@ function systemEndpoints(app) {
true true
)?.error; )?.error;
} }
if (process.env.NODE_ENV === "production") await dumpENV();
response.status(200).json({ success: !error, error }); response.status(200).json({ success: !error, error });
} catch (e) { } catch (e) {
console.log(e.message, e); console.log(e.message, e);
...@@ -493,7 +490,6 @@ function systemEndpoints(app) { ...@@ -493,7 +490,6 @@ function systemEndpoints(app) {
}, },
true true
); );
if (process.env.NODE_ENV === "production") await dumpENV();
await Telemetry.sendTelemetry("enabled_multi_user_mode", { await Telemetry.sendTelemetry("enabled_multi_user_mode", {
multiUserMode: true, multiUserMode: true,
}); });
......
...@@ -719,6 +719,7 @@ async function updateENV(newENVs = {}, force = false, userId = null) { ...@@ -719,6 +719,7 @@ async function updateENV(newENVs = {}, force = false, userId = null) {
} }
await logChangesToEventLog(newValues, userId); await logChangesToEventLog(newValues, userId);
if (process.env.NODE_ENV === "production") await dumpENV();
return { newValues, error: error?.length > 0 ? error : false }; return { newValues, error: error?.length > 0 ? error : false };
} }
...@@ -751,6 +752,8 @@ async function dumpENV() { ...@@ -751,6 +752,8 @@ async function dumpENV() {
const frozenEnvs = {}; const frozenEnvs = {};
const protectedKeys = [ const protectedKeys = [
...Object.values(KEY_MAPPING).map((values) => values.envKey), ...Object.values(KEY_MAPPING).map((values) => values.envKey),
// Manually Add Keys here which are not already defined in KEY_MAPPING
// and are either managed or manually set ENV key:values.
"STORAGE_DIR", "STORAGE_DIR",
"SERVER_PORT", "SERVER_PORT",
// Password Schema Keys if present. // Password Schema Keys if present.
...@@ -765,16 +768,6 @@ async function dumpENV() { ...@@ -765,16 +768,6 @@ async function dumpENV() {
"ENABLE_HTTPS", "ENABLE_HTTPS",
"HTTPS_CERT_PATH", "HTTPS_CERT_PATH",
"HTTPS_KEY_PATH", "HTTPS_KEY_PATH",
// DISABLED TELEMETRY
"DISABLE_TELEMETRY",
// Agent Integrations
// Search engine integrations
"AGENT_GSE_CTX",
"AGENT_GSE_KEY",
"AGENT_SERPER_DEV_KEY",
"AGENT_BING_SEARCH_API_KEY",
"AGENT_SERPLY_API_KEY",
]; ];
// Simple sanitization of each value to prevent ENV injection via newline or quote escaping. // Simple sanitization of each value to prevent ENV injection via newline or quote escaping.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment