From 686c677edc3a739cd8afdf6d20837fef202cbfe7 Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Wed, 14 Feb 2024 11:19:05 +0000 Subject: chore: Consolidate all config vars in one file --- packages/shared/config.ts | 30 ++++++++++++++++++++++++++++++ packages/shared/logger.ts | 3 ++- packages/shared/queues.ts | 5 +++-- packages/web/server/auth.ts | 2 +- packages/web/server/config.ts | 22 ---------------------- packages/workers/openai.ts | 14 +++++++------- 6 files changed, 43 insertions(+), 33 deletions(-) create mode 100644 packages/shared/config.ts delete mode 100644 packages/web/server/config.ts (limited to 'packages') diff --git a/packages/shared/config.ts b/packages/shared/config.ts new file mode 100644 index 00000000..8cf0d620 --- /dev/null +++ b/packages/shared/config.ts @@ -0,0 +1,30 @@ +function buildAuthentikConfig() { + const { AUTHENTIK_ID, AUTHENTIK_SECRET, AUTHENTIK_ISSUER } = process.env; + + if (!AUTHENTIK_ID || !AUTHENTIK_SECRET || !AUTHENTIK_ISSUER) { + return undefined; + } + + return { + clientId: AUTHENTIK_ID, + clientSecret: AUTHENTIK_SECRET, + issuer: AUTHENTIK_ISSUER, + }; +} + +const serverConfig = { + apiUrl: process.env.API_URL || "http://localhost:3000", + auth: { + authentik: buildAuthentikConfig(), + }, + openAI: { + apiKey: process.env.OPENAI_API_KEY, + }, + bullMQ: { + redisHost: process.env.REDIS_HOST || "localhost", + redisPort: parseInt(process.env.REDIS_PORT || "6379"), + }, + logLevel: process.env.LOG_LEVEL || "debug", +}; + +export default serverConfig; diff --git a/packages/shared/logger.ts b/packages/shared/logger.ts index 8cd2f808..471ec7ab 100644 --- a/packages/shared/logger.ts +++ b/packages/shared/logger.ts @@ -1,7 +1,8 @@ import winston from "winston"; +import serverConfig from "./config"; const logger = winston.createLogger({ - level: process.env.LOG_LEVEL || "debug", + level: serverConfig.logLevel, format: winston.format.combine( winston.format.timestamp(), winston.format.colorize(), diff --git a/packages/shared/queues.ts b/packages/shared/queues.ts index 190aef85..0155b1e7 100644 --- a/packages/shared/queues.ts +++ b/packages/shared/queues.ts @@ -1,9 +1,10 @@ import { Queue } from "bullmq"; import { z } from "zod"; +import serverConfig from "./config"; export const queueConnectionDetails = { - host: process.env.REDIS_HOST || "localhost", - port: parseInt(process.env.REDIS_PORT || "6379"), + host: serverConfig.bullMQ.redisHost, + port: serverConfig.bullMQ.redisPort, }; // Link Crawler diff --git a/packages/web/server/auth.ts b/packages/web/server/auth.ts index 6c00b4b5..c5a81a2d 100644 --- a/packages/web/server/auth.ts +++ b/packages/web/server/auth.ts @@ -1,7 +1,7 @@ import NextAuth, { NextAuthOptions, getServerSession } from "next-auth"; import { PrismaAdapter } from "@next-auth/prisma-adapter"; import AuthentikProvider from "next-auth/providers/authentik"; -import serverConfig from "@/server/config"; +import serverConfig from "@remember/shared/config"; import { prisma } from "@remember/db"; import { DefaultSession } from "next-auth"; import * as bcrypt from "bcrypt"; diff --git a/packages/web/server/config.ts b/packages/web/server/config.ts deleted file mode 100644 index dbf6620e..00000000 --- a/packages/web/server/config.ts +++ /dev/null @@ -1,22 +0,0 @@ -function buildAuthentikConfig() { - const { AUTHENTIK_ID, AUTHENTIK_SECRET, AUTHENTIK_ISSUER } = process.env; - - if (!AUTHENTIK_ID || !AUTHENTIK_SECRET || !AUTHENTIK_ISSUER) { - return undefined; - } - - return { - clientId: AUTHENTIK_ID, - clientSecret: AUTHENTIK_SECRET, - issuer: AUTHENTIK_ISSUER, - }; -} - -const serverConfig = { - api_url: process.env.API_URL || "http://localhost:3000", - auth: { - authentik: buildAuthentikConfig(), - }, -}; - -export default serverConfig; diff --git a/packages/workers/openai.ts b/packages/workers/openai.ts index 7c45b2cb..1e353092 100644 --- a/packages/workers/openai.ts +++ b/packages/workers/openai.ts @@ -1,5 +1,6 @@ import { prisma, BookmarkedLink } from "@remember/db"; import logger from "@remember/shared/logger"; +import serverConfig from "@remember/shared/config"; import { OpenAIQueue, ZOpenAIRequest, @@ -157,20 +158,19 @@ async function connectTags(bookmarkId: string, tagIds: string[]) { async function runOpenAI(job: Job) { const jobId = job.id || "unknown"; - if (!process.env.OPENAI_API_KEY || !process.env.OPENAI_ENABLED) { - return; - } + const { openAI } = serverConfig; - const openai = new OpenAI({ - apiKey: process.env.OPENAI_API_KEY, - }); - if (!openai) { + if (!openAI.apiKey) { logger.debug( `[openai][${jobId}] OpenAI is not configured, nothing to do now`, ); return; } + const openai = new OpenAI({ + apiKey: openAI.apiKey, + }); + const request = zOpenAIRequestSchema.safeParse(job.data); if (!request.success) { throw new Error( -- cgit v1.2.3-70-g09d2