37 lines
2.0 KiB
TypeScript
37 lines
2.0 KiB
TypeScript
import { z } from 'zod';
|
|
import { baseBackendConfigSchema } from '@bytelyst/backend-config';
|
|
import { PRODUCT_ID } from './product-config.js';
|
|
|
|
const envSchema = baseBackendConfigSchema.extend({
|
|
PORT: baseBackendConfigSchema.shape.PORT.default(4016),
|
|
SERVICE_NAME: baseBackendConfigSchema.shape.SERVICE_NAME.default('notelett-backend'),
|
|
DB_PROVIDER: baseBackendConfigSchema.shape.DB_PROVIDER.default('memory'),
|
|
JWT_SECRET: z.string().default('dev-secret-do-not-use-in-prod'),
|
|
COSMOS_DATABASE: baseBackendConfigSchema.shape.COSMOS_DATABASE.default('bytelyst'),
|
|
PRODUCT_ID: z.string().default(PRODUCT_ID),
|
|
PLATFORM_SERVICE_URL: z.string().default('http://localhost:4003'),
|
|
EXTRACTION_SERVICE_URL: z.string().default('http://localhost:4005'),
|
|
MCP_SERVER_URL: z.string().default('http://localhost:4007'),
|
|
TELEMETRY_ENABLED: z.coerce.boolean().default(false),
|
|
FEATURE_FLAGS_ENABLED: z.coerce.boolean().default(false),
|
|
// ── LLM (@bytelyst/llm) ──
|
|
LLM_PROVIDER: z.enum(['azure', 'openai', 'mock']).default('mock'),
|
|
LLM_DEFAULT_MODEL: z.string().default('gpt-4o-mini'),
|
|
LLM_VISION_MODEL: z.string().default('gpt-4o'),
|
|
LLM_EMBEDDING_MODEL: z.string().default('text-embedding-3-small'),
|
|
// ── Field Encryption (@bytelyst/field-encrypt) ──
|
|
FIELD_ENCRYPT_ENABLED: z.coerce.boolean().default(true),
|
|
FIELD_ENCRYPT_KEY_PROVIDER: z.enum(['akv', 'env', 'memory']).default('memory'),
|
|
FIELD_ENCRYPT_KEY: z.string().default(''),
|
|
FIELD_ENCRYPT_MEK_NAME: z.string().default('notelett-mek'),
|
|
AZURE_KEYVAULT_URL: z.string().default(''),
|
|
// ── Palace (MemPalace) ──
|
|
PALACE_ENABLED: z.coerce.boolean().default(true),
|
|
PALACE_EXTRACTION_ENABLED: z.coerce.boolean().default(true),
|
|
PALACE_WAKE_UP_BUDGET: z.coerce.number().int().min(100).default(600),
|
|
PALACE_RELEVANCE_HALF_LIFE_DAYS: z.coerce.number().int().min(1).default(90),
|
|
PALACE_DEDUP_THRESHOLD: z.coerce.number().min(0).max(1).default(0.90),
|
|
});
|
|
|
|
export const config = envSchema.parse(process.env);
|