Загрузка данных
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$