lilith-platform.live/codebase/@features/client-intel/backend-api/src/app.module.ts
Claude Code 3f88a9604a feat(client-intel): Implement client intelligence backend API with health check endpoints
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-10 01:46:08 -07:00

55 lines
1.9 KiB
TypeScript

import { Module } from '@nestjs/common';
import { APP_GUARD } from '@nestjs/core';
import { TypeOrmModule } from '@nestjs/typeorm';
import { IntelReport } from './entities/intel-report.entity';
import { InitialSchema1700000000000 } from './migrations/1700000000000-InitialSchema';
import { ServiceApiKeyGuard } from './guards/service-api-key.guard';
import { RedisService } from './services/redis.service';
import { IntelReportService } from './services/intel-report.service';
import { SafetyScoreService } from './services/safety-score.service';
import { IntelReportController } from './controllers/intel-report.controller';
import { ClientIntelController } from './controllers/client-intel.controller';
import { SafetyDashboardController } from './controllers/safety-dashboard.controller';
import { HealthController } from './health.controller';
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'postgres',
host: process.env['DATABASE_HOST'] ?? 'localhost',
port: parseInt(process.env['DATABASE_PORT'] ?? '25433', 10),
username: process.env['DATABASE_USER'] ?? 'postgres',
password: process.env['DATABASE_PASSWORD'] ?? 'devpassword',
database: process.env['DATABASE_NAME'] ?? 'lilith_client_intel',
entities: [IntelReport],
migrations: [InitialSchema1700000000000],
migrationsRun: true,
synchronize: false,
logging: process.env['NODE_ENV'] !== 'production',
}),
TypeOrmModule.forFeature([IntelReport]),
],
controllers: [
IntelReportController,
ClientIntelController,
SafetyDashboardController,
HealthController,
],
providers: [
{
provide: APP_GUARD,
useClass: ServiceApiKeyGuard,
},
{
provide: 'PROVIDER_ID',
useValue: process.env['PROVIDER_ID'] ?? '00000000-0000-0000-0000-000000000001',
},
RedisService,
IntelReportService,
SafetyScoreService,
],
})
export class AppModule {}