move enable redis to flag

This commit is contained in:
miloschwartz 2025-06-15 13:24:51 -04:00
parent 139c9d2ce3
commit af32dfbbcd
No known key found for this signature in database
2 changed files with 233 additions and 222 deletions

View file

@ -14,7 +14,7 @@ class RedisManager {
> = new Map(); > = new Map();
private constructor() { private constructor() {
this.isEnabled = config.getRawConfig().redis?.enabled || false; this.isEnabled = config.getRawConfig().flags?.enable_redis || false;
if (this.isEnabled) { if (this.isEnabled) {
this.initializeClients(); this.initializeClients();
} }

View file

@ -12,7 +12,8 @@ const getEnvOrYaml = (envVar: string) => (valFromYaml: any) => {
return process.env[envVar] ?? valFromYaml; return process.env[envVar] ?? valFromYaml;
}; };
export const configSchema = z.object({ export const configSchema = z
.object({
app: z.object({ app: z.object({
dashboard_url: z dashboard_url: z
.string() .string()
@ -79,8 +80,14 @@ export const configSchema = z.object({
.optional() .optional()
.default("pangolin") .default("pangolin")
.transform((url) => url.toLowerCase()), .transform((url) => url.toLowerCase()),
session_cookie_name: z.string().optional().default("p_session_token"), session_cookie_name: z
resource_access_token_param: z.string().optional().default("p_token"), .string()
.optional()
.default("p_session_token"),
resource_access_token_param: z
.string()
.optional()
.default("p_token"),
resource_access_token_headers: z resource_access_token_headers: z
.object({ .object({
id: z.string().optional().default("P-Access-Token-Id"), id: z.string().optional().default("P-Access-Token-Id"),
@ -133,9 +140,8 @@ export const configSchema = z.object({
.optional(), .optional(),
redis: z redis: z
.object({ .object({
enabled: z.boolean(), host: z.string(),
host: z.string().optional(), port: portSchema,
port: portSchema.optional(),
password: z.string().optional(), password: z.string().optional(),
db: z.number().int().nonnegative().optional().default(0), db: z.number().int().nonnegative().optional().default(0),
tls: z tls: z
@ -144,18 +150,6 @@ export const configSchema = z.object({
}) })
.optional() .optional()
}) })
.refine(
(redis) => {
if (!redis.enabled) {
return true;
}
return redis.host !== undefined && redis.port !== undefined;
},
{
message:
"If Redis is enabled, connection details must be provided"
}
)
.optional(), .optional(),
traefik: z traefik: z
.object({ .object({
@ -180,7 +174,12 @@ export const configSchema = z.object({
use_subdomain: z.boolean().optional().default(false), use_subdomain: z.boolean().optional().default(false),
subnet_group: z.string().optional().default("100.89.137.0/20"), subnet_group: z.string().optional().default("100.89.137.0/20"),
block_size: z.number().positive().gt(0).optional().default(24), block_size: z.number().positive().gt(0).optional().default(24),
site_block_size: z.number().positive().gt(0).optional().default(30) site_block_size: z
.number()
.positive()
.gt(0)
.optional()
.default(30)
}) })
.optional() .optional()
.default({}), .default({}),
@ -246,10 +245,22 @@ export const configSchema = z.object({
allow_raw_resources: z.boolean().optional(), allow_raw_resources: z.boolean().optional(),
allow_base_domain_resources: z.boolean().optional(), allow_base_domain_resources: z.boolean().optional(),
allow_local_sites: z.boolean().optional(), allow_local_sites: z.boolean().optional(),
enable_integration_api: z.boolean().optional() enable_integration_api: z.boolean().optional(),
enable_redis: z.boolean().optional()
}) })
.optional() .optional()
}); })
.refine(
(data) => {
if (data.flags?.enable_redis) {
return data?.redis !== undefined;
}
return true;
},
{
message: "If Redis is enabled, configuration details must be provided"
}
);
export function readConfigFile() { export function readConfigFile() {
const loadConfig = (configPath: string) => { const loadConfig = (configPath: string) => {