Skip to content

Commit 74b4e80

Browse files
[bug] Handle missing runtime.json gracefully
1 parent 806a8d6 commit 74b4e80

File tree

4 files changed

+27
-15
lines changed

4 files changed

+27
-15
lines changed

Common/sources/runtimeConfigManager.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ async function getConfig(ctx) {
8989
async function saveConfig(ctx, config) {
9090
await fs.mkdir(path.dirname(configFilePath), { recursive: true });
9191
let newConfig = await getConfig(ctx);
92-
newConfig = utils.deepMergeObjects(newConfig, config);
92+
newConfig = utils.deepMergeObjects(newConfig || {}, config);
9393
await fs.writeFile(configFilePath, JSON.stringify(newConfig, null, 2), 'utf8');
9494
nodeCache.set(configFileName, newConfig);
9595
return newConfig;

Common/sources/tenantManager.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ async function getTenantConfig(ctx) {
132132
async function setTenantConfig(ctx, config) {
133133
let newConfig = await getTenantConfig(ctx);
134134
if (isMultitenantMode(ctx) && !isDefaultTenant(ctx)) {
135-
newConfig = utils.deepMergeObjects(newConfig, config);
135+
newConfig = utils.deepMergeObjects(newConfig || {}, config);
136136
let tenantPath = utils.removeIllegalCharacters(ctx.tenant);
137137
let configPath = path.join(cfgTenantsBaseDir, tenantPath, cfgTenantsFilenameConfig);
138138
await writeFile(configPath, JSON.stringify(newConfig, null, 2), 'utf8');

DocService/sources/DocsCoServer.js

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3487,19 +3487,7 @@ exports.install = function(server, callbackFunction) {
34873487
}
34883488

34893489
let [licenseInfo] = yield tenantManager.getTenantLicense(ctx);
3490-
let pluginSettings = yield aiProxyHandler.getPluginSettings(ctx);
3491-
//check empty settings
3492-
if (pluginSettings && pluginSettings.actions) {
3493-
let isEmptySettings = true;
3494-
for (let key in pluginSettings.actions) {
3495-
if (pluginSettings.actions[key].model) {
3496-
isEmptySettings = false;
3497-
}
3498-
}
3499-
if (isEmptySettings) {
3500-
pluginSettings = undefined;
3501-
}
3502-
}
3490+
let pluginSettings = yield aiProxyHandler.getPluginSettingsForInterface(ctx);
35033491
sendData(ctx, conn, {
35043492
type: 'license',
35053493
license: {

DocService/sources/ai/aiProxyHandler.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,29 @@ async function getPluginSettings(ctx) {
343343
return result;
344344
}
345345

346+
async function getPluginSettingsForInterface(ctx) {
347+
let pluginSettings = await getPluginSettings(ctx);
348+
//check empty settings
349+
if (pluginSettings && pluginSettings.actions) {
350+
let isEmptySettings = true;
351+
for (let key in pluginSettings.actions) {
352+
if (pluginSettings.actions[key].model) {
353+
isEmptySettings = false;
354+
}
355+
}
356+
if (isEmptySettings) {
357+
pluginSettings = undefined;
358+
}
359+
}
360+
//remove keys from providers
361+
if (pluginSettings && pluginSettings.providers) {
362+
for (let key in pluginSettings.providers) {
363+
pluginSettings.providers[key].key = "";
364+
}
365+
}
366+
return pluginSettings;
367+
}
368+
346369
async function requestSettings(req, res) {
347370
const ctx = new operationContext.Context();
348371
ctx.initFromRequest(req);
@@ -378,6 +401,7 @@ async function requestModels(req, res) {
378401
module.exports = {
379402
proxyRequest,
380403
getPluginSettings,
404+
getPluginSettingsForInterface,
381405
requestSettings,
382406
requestModels
383407
};

0 commit comments

Comments
 (0)