diff --git a/apps/api-gateway/src/controllers/health.controller.ts b/apps/api-gateway/src/controllers/health.controller.ts index d8e95a5..3766ac8 100644 --- a/apps/api-gateway/src/controllers/health.controller.ts +++ b/apps/api-gateway/src/controllers/health.controller.ts @@ -6,8 +6,19 @@ import { CoreGrpcService } from '../core-grpc.service'; export class HealthController { constructor(private readonly core: CoreGrpcService) {} + // Liveness-проба. ВАЖНО: проверяет только то, что HTTP-сервер api-gateway + // поднят, и НЕ зависит от sso-core. Иначе временная недоступность gRPC + // помечает весь api-gateway как unhealthy в Docker healthcheck, что роняет + // зависимые сервисы и приводит к 502 на всех /idp-api/* маршрутах. @Get() - async check() { + check() { + return { status: 'ok', service: 'api-gateway' }; + } + + // Readiness/диагностика связи с sso-core по gRPC. + // НЕ используется в Docker healthcheck, чтобы сбой sso-core не каскадил. + @Get('ready') + async ready() { try { await firstValueFrom(this.core.settings.GetSetting({ key: 'PROJECT_NAME' })); return { status: 'ok', service: 'api-gateway', grpc: 'ok' };