Загрузка данных


dmitriev-aal@VDI-Dmitriev-A:~/Desktop/rshbintech/it-corp/rprul/ecp/acquiring/backend/ms-acquiring-manage-b2c-limits$ sed -n '1,110p' src/main.ts
import { NestFactory } from '@nestjs/core';
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
import { DefaultLogger } from '@rshbintech.rprul.ecp/core-nodejs-starter-lib';
import {
  RequestMethod,
  ValidationPipe,
  ValidationError,
  HttpException,
  HttpStatus,
} from '@nestjs/common';
import { AppModule } from './app.module';

const extractMessages = (errs: ValidationError[]): string[] =>
  errs.flatMap((e) => [
    ...Object.values(e.constraints ?? {}),
    ...extractMessages(e.children ?? []),
  ]);

async function bootstrap(): Promise<void> {
  const app = await NestFactory.create(AppModule, {
    bufferLogs: true,
  });

  app.useLogger(app.get(DefaultLogger));

  // Глобальный ValidationPipe с единым форматом ошибок
  app.useGlobalPipes(
    new ValidationPipe({
      transform: true,
      whitelist: true,
      exceptionFactory: (errors: ValidationError[]) => {
        const messages = extractMessages(errors);
        throw new HttpException(
          {
            errorsMessages: messages.map((message) => ({
              message,
              error: 'Bad Request',
              statusCode: HttpStatus.BAD_REQUEST,
            })),
          },
          HttpStatus.BAD_REQUEST,
        );
      },
    }),
  );

  // Добавление префикса и исключительных ендпоинтов вне этого префикса
  app.setGlobalPrefix('api', {
    exclude: [
      { path: 'metrics', method: RequestMethod.GET },
      { path: 'health', method: RequestMethod.GET },
      { path: 'health/readiness', method: RequestMethod.GET },
      { path: 'health/liveness', method: RequestMethod.GET },
      { path: 'loggers', method: RequestMethod.GET },
      { path: 'loggers/:name', method: RequestMethod.GET },
      { path: 'loggers/:name', method: RequestMethod.POST },
    ],
  });

  const config = new DocumentBuilder()
    .setTitle('ms-acquiring-manage-b2c-limits')
    .setDescription('Микросервис управления лимитами B2C')
    .setVersion('1.0')
    .addBearerAuth(
      {
        type: 'http',
        scheme: 'bearer',
        bearerFormat: 'JWT',
        name: 'Authorization',
        in: 'header',
      },
      'Access Token',
    )
    .build();

  const document = SwaggerModule.createDocument(app, config);
  SwaggerModule.setup('api/doc', app, document, {
    jsonDocumentUrl: 'api/json',
    yamlDocumentUrl: 'api/yaml',
    swaggerOptions: {
      operationsSorter: 'method',
    },
  });

  await app.listen(8080);
}

bootstrap();
dmitriev-aal@VDI-Dmitriev-A:~/Desktop/rshbintech/it-corp/rprul/ecp/acquiring/backend/ms-acquiring-manage-b2c-limits$ kubectl --context devstbl -n isys-ecp-dev \
>   exec ms-acquiring-manage-b2c-limits-b797f8858-b2xdb -c app -- \
>   netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:15000         0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:15004         0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:15006           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:15006           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:15001           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:15001           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:15021           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:15021           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:15090           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:15090           0.0.0.0:*               LISTEN      -
tcp        0      0 :::8080                 :::*                    LISTEN      18/node
tcp        0      0 :::15020                :::*                    LISTEN      -
dmitriev-aal@VDI-Dmitriev-A:~/Desktop/rshbintech/it-corp/rprul/ecp/acquiring/backend/ms-acquiring-manage-b2c-limits$ kubectl --context rcsdstbl -n isys-ecp-rc \
>   get deploy ms-acquiring-manage-b2c-limits -o yaml | \
>   grep -A5 -B3 -E 'envFrom:|configMapRef:|secretRef:'
Error from server (NotFound): deployments.apps "ms-acquiring-manage-b2c-limits" not found
dmitriev-aal@VDI-Dmitriev-A:~/Desktop/rshbintech/it-corp/rprul/ecp/acquiring/backend/ms-acquiring-manage-b2c-limits$ kubectl --context devstbl -n isys-ecp-dev \
>   get deploy ms-acquiring-manage-b2c-limits -o yaml | \
>   grep -A5 -B3 -E 'envFrom:|configMapRef:|secretRef:'
    spec:
      automountServiceAccountToken: false
      containers:
      - envFrom:
        - configMapRef:
            name: ms-acquiring-manage-b2c-limits-app-cm-env
        - secretRef:
            name: ms-acquiring-manage-b2c-limits-app-secret-env
        image: registry.rshbdev.ru/rshbintech/it-corp/rprul/ecp/acquiring/backend/ms-acquiring-manage-b2c-limits:master
        imagePullPolicy: Always
        livenessProbe:
          failureThreshold: 5
dmitriev-aal@VDI-Dmitriev-A:~/Desktop/rshbintech/it-corp/rprul/ecp/acquiring/backend/ms-acquiring-manage-b2c-limits$