mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-09-22 08:12:00 +02:00
🗄️ refactor: Make APP_CONFIG
a Dedicated Cache Store (#9558)
- This allows use APP_CONFIG in FORCED_IN_MEMORY_CACHE_NAMESPACES - Remove the complexity of nested namespace (e.g. we no longer have to worry about the prefix of every role key)
This commit is contained in:
parent
f125f5bd32
commit
c0f95f971a
2 changed files with 7 additions and 4 deletions
1
api/cache/getLogStores.js
vendored
1
api/cache/getLogStores.js
vendored
|
@ -31,6 +31,7 @@ const namespaces = {
|
||||||
[CacheKeys.SAML_SESSION]: sessionCache(CacheKeys.SAML_SESSION),
|
[CacheKeys.SAML_SESSION]: sessionCache(CacheKeys.SAML_SESSION),
|
||||||
|
|
||||||
[CacheKeys.ROLES]: standardCache(CacheKeys.ROLES),
|
[CacheKeys.ROLES]: standardCache(CacheKeys.ROLES),
|
||||||
|
[CacheKeys.APP_CONFIG]: standardCache(CacheKeys.APP_CONFIG),
|
||||||
[CacheKeys.CONFIG_STORE]: standardCache(CacheKeys.CONFIG_STORE),
|
[CacheKeys.CONFIG_STORE]: standardCache(CacheKeys.CONFIG_STORE),
|
||||||
[CacheKeys.STATIC_CONFIG]: standardCache(CacheKeys.STATIC_CONFIG),
|
[CacheKeys.STATIC_CONFIG]: standardCache(CacheKeys.STATIC_CONFIG),
|
||||||
[CacheKeys.PENDING_REQ]: standardCache(CacheKeys.PENDING_REQ),
|
[CacheKeys.PENDING_REQ]: standardCache(CacheKeys.PENDING_REQ),
|
||||||
|
|
|
@ -4,6 +4,8 @@ const AppService = require('~/server/services/AppService');
|
||||||
const { setCachedTools } = require('./getCachedTools');
|
const { setCachedTools } = require('./getCachedTools');
|
||||||
const getLogStores = require('~/cache/getLogStores');
|
const getLogStores = require('~/cache/getLogStores');
|
||||||
|
|
||||||
|
const BASE_CONFIG_KEY = '_BASE_';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the app configuration based on user context
|
* Get the app configuration based on user context
|
||||||
* @param {Object} [options]
|
* @param {Object} [options]
|
||||||
|
@ -14,8 +16,8 @@ const getLogStores = require('~/cache/getLogStores');
|
||||||
async function getAppConfig(options = {}) {
|
async function getAppConfig(options = {}) {
|
||||||
const { role, refresh } = options;
|
const { role, refresh } = options;
|
||||||
|
|
||||||
const cache = getLogStores(CacheKeys.CONFIG_STORE);
|
const cache = getLogStores(CacheKeys.APP_CONFIG);
|
||||||
const cacheKey = role ? `${CacheKeys.APP_CONFIG}:${role}` : CacheKeys.APP_CONFIG;
|
const cacheKey = role ? role : BASE_CONFIG_KEY;
|
||||||
|
|
||||||
if (!refresh) {
|
if (!refresh) {
|
||||||
const cached = await cache.get(cacheKey);
|
const cached = await cache.get(cacheKey);
|
||||||
|
@ -24,7 +26,7 @@ async function getAppConfig(options = {}) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let baseConfig = await cache.get(CacheKeys.APP_CONFIG);
|
let baseConfig = await cache.get(BASE_CONFIG_KEY);
|
||||||
if (!baseConfig) {
|
if (!baseConfig) {
|
||||||
logger.info('[getAppConfig] App configuration not initialized. Initializing AppService...');
|
logger.info('[getAppConfig] App configuration not initialized. Initializing AppService...');
|
||||||
baseConfig = await AppService();
|
baseConfig = await AppService();
|
||||||
|
@ -37,7 +39,7 @@ async function getAppConfig(options = {}) {
|
||||||
await setCachedTools(baseConfig.availableTools, { isGlobal: true });
|
await setCachedTools(baseConfig.availableTools, { isGlobal: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
await cache.set(CacheKeys.APP_CONFIG, baseConfig);
|
await cache.set(BASE_CONFIG_KEY, baseConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
// For now, return the base config
|
// For now, return the base config
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue