feat(center): validate required env on startup
This commit is contained in:
@@ -2,7 +2,28 @@ import 'reflect-metadata';
|
|||||||
import { NestFactory } from '@nestjs/core';
|
import { NestFactory } from '@nestjs/core';
|
||||||
import { AppModule } from './app.module';
|
import { AppModule } from './app.module';
|
||||||
|
|
||||||
|
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('DB_HOST');
|
||||||
|
requireEnv('DB_PORT');
|
||||||
|
requireEnv('DB_USER');
|
||||||
|
requireEnv('DB_PASSWORD');
|
||||||
|
requireEnv('DB_NAME');
|
||||||
|
requireEnv('CENTER_SHARED_SECRET');
|
||||||
|
requireEnv('JWT_ACCESS_SECRET');
|
||||||
|
requireEnv('JWT_REFRESH_SECRET');
|
||||||
|
}
|
||||||
|
|
||||||
async function bootstrap() {
|
async function bootstrap() {
|
||||||
|
validateEnv();
|
||||||
|
|
||||||
const app = await NestFactory.create(AppModule);
|
const app = await NestFactory.create(AppModule);
|
||||||
app.setGlobalPrefix('api');
|
app.setGlobalPrefix('api');
|
||||||
const port = process.env.PORT ? Number(process.env.PORT) : 7001;
|
const port = process.env.PORT ? Number(process.env.PORT) : 7001;
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
### 1.3 Center 运维能力
|
### 1.3 Center 运维能力
|
||||||
- [ ] 审计日志(auth/node 关键操作)
|
- [ ] 审计日志(auth/node 关键操作)
|
||||||
- [ ] 健康检查深化(DB ready)
|
- [ ] 健康检查深化(DB ready)
|
||||||
- [ ] 配置校验(启动时必填项检查)
|
- [x] 配置校验(启动时必填项检查)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user