diff --git a/README.md b/README.md index ed7a8ae..7f247b3 100644 --- a/README.md +++ b/README.md @@ -13,3 +13,10 @@ Guild Node service for Fabric. - API skeleton (NestJS) - Chat domain models - Seq allocator and range query endpoints + +## Required env (startup hard checks) +- `CENTER_BASE_URL` +- `CENTER_API_KEY` +- `GUILD_NODE_ID` + +If any of the above is missing, service startup fails immediately. diff --git a/src/main.ts b/src/main.ts index d55d4a8..273f5c8 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,7 +6,23 @@ import { AppModule } from './app.module'; import { createRequestContextMiddleware } from './common/request-context.middleware'; import { MetricsService } from './common/metrics.service'; +function requireEnv(name: string): string { + const value = process.env[name]; + if (!value || value.trim() === '') { + throw new Error(`Missing required env: ${name}`); + } + return value; +} + +function validateEnv(): void { + requireEnv('CENTER_BASE_URL'); + requireEnv('CENTER_API_KEY'); + requireEnv('GUILD_NODE_ID'); +} + async function bootstrap() { + validateEnv(); + const app = await NestFactory.create(AppModule); app.setGlobalPrefix('api'); const metrics = app.get(MetricsService);