refactor: Speed up Config fetching and Setup Config Groundwork 👷🚧 (#1297)

* refactor: move endpoint services to own directory

* refactor: make endpointconfig handling more concise, separate logic, and cache result for subsequent serving

* refactor: ModelController gets same treatment as EndpointController, draft OverrideController

* wip: flesh out override controller more to return real value

* refactor: client/api changes in anticipation of override
This commit is contained in:
Danny Avila 2023-12-06 19:36:57 -05:00 committed by GitHub
parent 9b2359fc27
commit 0bae503a0a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
27 changed files with 405 additions and 138 deletions

View file

@ -1,7 +1,8 @@
const Keyv = require('keyv');
const keyvMongo = require('./keyvMongo');
const keyvRedis = require('./keyvRedis');
const { math, isEnabled } = require('../server/utils');
const { CacheKeys } = require('~/common/enums');
const { math, isEnabled } = require('~/server/utils');
const { logFile, violationFile } = require('./keyvFiles');
const { BAN_DURATION, USE_REDIS } = process.env ?? {};
@ -17,7 +18,12 @@ const pending_req = isEnabled(USE_REDIS)
? new Keyv({ store: keyvRedis })
: new Keyv({ namespace: 'pending_req' });
const config = isEnabled(USE_REDIS)
? new Keyv({ store: keyvRedis })
: new Keyv({ namespace: CacheKeys.CONFIG });
const namespaces = {
config,
pending_req,
ban: new Keyv({ store: keyvMongo, namespace: 'bans', ttl: duration }),
general: new Keyv({ store: logFile, namespace: 'violations' }),