@alacard-project/shared 1.1.9 → 1.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.d.ts +1 -6
- package/dist/browser.js +1 -6
- package/dist/browser.js.map +1 -1
- package/dist/constants/iam.constants.d.ts +12 -0
- package/dist/constants/iam.constants.js +16 -0
- package/dist/constants/iam.constants.js.map +1 -0
- package/dist/constants/index.d.ts +4 -0
- package/dist/constants/index.js +4 -0
- package/dist/constants/index.js.map +1 -1
- package/dist/constants/microservices.constants.d.ts +10 -0
- package/dist/constants/microservices.constants.js +10 -0
- package/dist/constants/microservices.constants.js.map +1 -1
- package/dist/constants/orchestrator-messages.constants.d.ts +5 -0
- package/dist/constants/orchestrator-messages.constants.js +9 -0
- package/dist/constants/orchestrator-messages.constants.js.map +1 -0
- package/dist/constants/partner-messages.constants.d.ts +7 -0
- package/dist/constants/partner-messages.constants.js +11 -0
- package/dist/constants/partner-messages.constants.js.map +1 -0
- package/dist/constants/user.constants.d.ts +10 -0
- package/dist/constants/user.constants.js +14 -0
- package/dist/constants/user.constants.js.map +1 -0
- package/dist/contracts/card.contract.d.ts +38 -0
- package/dist/contracts/index.d.ts +1 -0
- package/dist/contracts/index.js +1 -0
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/invoice.contract.d.ts +137 -0
- package/dist/contracts/invoice.contract.js +3 -0
- package/dist/contracts/invoice.contract.js.map +1 -0
- package/dist/contracts/terminal.contract.d.ts +43 -1
- package/dist/contracts/transaction.contract.d.ts +12 -0
- package/dist/decorators/permissions.decorator.d.ts +2 -2
- package/dist/decorators/permissions.decorator.js.map +1 -1
- package/dist/decorators/roles.decorator.d.ts +1 -1
- package/dist/dto/auth.dto.d.ts +1 -0
- package/dist/dto/auth.dto.js +5 -0
- package/dist/dto/auth.dto.js.map +1 -1
- package/dist/dto/card.dto.d.ts +5 -1
- package/dist/dto/card.dto.js +20 -0
- package/dist/dto/card.dto.js.map +1 -1
- package/dist/dto/iam.dto.d.ts +24 -0
- package/dist/dto/iam.dto.js +76 -0
- package/dist/dto/iam.dto.js.map +1 -0
- package/dist/dto/index.d.ts +1 -0
- package/dist/dto/index.js +1 -0
- package/dist/dto/index.js.map +1 -1
- package/dist/dto/invoice.dto.d.ts +29 -2
- package/dist/dto/invoice.dto.js +70 -4
- package/dist/dto/invoice.dto.js.map +1 -1
- package/dist/dto/partner.dto.d.ts +29 -0
- package/dist/dto/partner.dto.js +106 -1
- package/dist/dto/partner.dto.js.map +1 -1
- package/dist/dto/transaction.dto.d.ts +7 -0
- package/dist/dto/transaction.dto.js +35 -0
- package/dist/dto/transaction.dto.js.map +1 -1
- package/dist/enums/iam.enum.d.ts +5 -0
- package/dist/enums/iam.enum.js +7 -1
- package/dist/enums/iam.enum.js.map +1 -1
- package/dist/enums/index.d.ts +1 -0
- package/dist/enums/index.js +1 -0
- package/dist/enums/index.js.map +1 -1
- package/dist/enums/job.enum.d.ts +6 -1
- package/dist/enums/job.enum.js +5 -0
- package/dist/enums/job.enum.js.map +1 -1
- package/dist/enums/partner.enum.d.ts +5 -0
- package/dist/enums/partner.enum.js +10 -0
- package/dist/enums/partner.enum.js.map +1 -0
- package/dist/enums/permission.enum.d.ts +1 -1
- package/dist/enums/permission.enum.js +20 -20
- package/dist/enums/permission.enum.js.map +1 -1
- package/dist/filters/global-exception.filter.d.ts +1 -1
- package/dist/index.d.ts +3 -9
- package/dist/index.js +3 -9
- package/dist/index.js.map +1 -1
- package/dist/middleware/prisma-logging.middleware.d.ts +1 -1
- package/dist/resilience/circuit-breaker.service.js +6 -0
- package/dist/resilience/circuit-breaker.service.js.map +1 -1
- package/dist/resilience/redis-throttler-storage.d.ts +11 -0
- package/dist/resilience/redis-throttler-storage.js +76 -0
- package/dist/resilience/redis-throttler-storage.js.map +1 -0
- package/dist/resilience/resilience.module.js +3 -2
- package/dist/resilience/resilience.module.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/client.types.d.ts +8 -0
- package/dist/types/client.types.js +3 -0
- package/dist/types/client.types.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/orchestrator.types.d.ts +24 -0
- package/dist/types/orchestrator.types.js +3 -0
- package/dist/types/orchestrator.types.js.map +1 -0
- package/dist/utils/app.utils.js +62 -2
- package/dist/utils/app.utils.js.map +1 -1
- package/dist/utils/grpc-tracing.interceptor.d.ts +3 -1
- package/dist/utils/grpc-tracing.interceptor.js +20 -2
- package/dist/utils/grpc-tracing.interceptor.js.map +1 -1
- package/dist/utils/health.utils.d.ts +1 -1
- package/dist/utils/proto-path.js +14 -7
- package/dist/utils/proto-path.js.map +1 -1
- package/dist/utils/tracing.service.js +5 -1
- package/dist/utils/tracing.service.js.map +1 -1
- package/dist/utils/tracing.utils.js +40 -1
- package/dist/utils/tracing.utils.js.map +1 -1
- package/package.json +16 -4
- package/proto/account.proto +0 -32
- package/proto/attachment.proto +0 -12
- package/proto/auth.proto +0 -152
- package/proto/card.proto +0 -140
- package/proto/client.proto +0 -99
- package/proto/config.proto +0 -39
- package/proto/dbf.proto +0 -183
- package/proto/iam.proto +0 -70
- package/proto/logging.proto +0 -153
- package/proto/notification.proto +0 -44
- package/proto/partner.proto +0 -68
- package/proto/terminal.proto +0 -34
- package/proto/transaction.proto +0 -95
- package/proto/user.proto +0 -137
- package/proto/wallet.proto +0 -138
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type ClientOPF = 'РГП на ПХВ' | 'ГКП на ПХВ' | 'КГП на ПХВ' | 'ГККП' | 'КГКП' | 'РГКП' | 'Представительство' | 'Филиал' | 'Учреждение' | 'ТОО' | 'ИП' | 'АО' | 'ЗАО' | 'ОАО' | 'ГКП' | 'КГП' | 'РГП' | 'РГУ' | 'ГУ' | 'КГУ' | 'ЧУ' | 'ПКСК' | 'КСК' | 'ОСИ' | 'ПК' | 'КХ' | 'ФХ' | 'ОО' | 'ОФ' | 'Физ. лицо' | 'Другое';
|
|
2
|
+
export interface ClientTypeDto {
|
|
3
|
+
id: string;
|
|
4
|
+
code: ClientOPF;
|
|
5
|
+
name: string;
|
|
6
|
+
createdAt: string;
|
|
7
|
+
updatedAt: string;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.types.js","sourceRoot":"","sources":["../../src/types/client.types.ts"],"names":[],"mappings":""}
|
package/dist/types/index.d.ts
CHANGED
package/dist/types/index.js
CHANGED
|
@@ -21,4 +21,6 @@ __exportStar(require("./user.types"), exports);
|
|
|
21
21
|
__exportStar(require("./common.types"), exports);
|
|
22
22
|
__exportStar(require("./monitoring.types"), exports);
|
|
23
23
|
__exportStar(require("./saga.types"), exports);
|
|
24
|
+
__exportStar(require("./orchestrator.types"), exports);
|
|
25
|
+
__exportStar(require("./client.types"), exports);
|
|
24
26
|
//# sourceMappingURL=index.js.map
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,+CAA6B;AAC7B,8CAA4B;AAC5B,+CAA6B;AAC7B,iDAA+B;AAC/B,qDAAmC;AACnC,+CAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,+CAA6B;AAC7B,8CAA4B;AAC5B,+CAA6B;AAC7B,iDAA+B;AAC/B,qDAAmC;AACnC,+CAA6B;AAC7B,uDAAqC;AACrC,iDAA+B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface EmployeeOnboardingData {
|
|
2
|
+
email: string;
|
|
3
|
+
password: string;
|
|
4
|
+
fullName: string;
|
|
5
|
+
position?: string;
|
|
6
|
+
department?: string;
|
|
7
|
+
roleId: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ClientOnboardingData {
|
|
10
|
+
username: string;
|
|
11
|
+
password: string;
|
|
12
|
+
firstName: string;
|
|
13
|
+
lastName: string;
|
|
14
|
+
companyId?: string;
|
|
15
|
+
roleId: string;
|
|
16
|
+
}
|
|
17
|
+
export interface PartnerOnboardingData {
|
|
18
|
+
username: string;
|
|
19
|
+
password: string;
|
|
20
|
+
firstName: string;
|
|
21
|
+
lastName: string;
|
|
22
|
+
companyId?: string;
|
|
23
|
+
roleId: string;
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.types.js","sourceRoot":"","sources":["../../src/types/orchestrator.types.ts"],"names":[],"mappings":""}
|
package/dist/utils/app.utils.js
CHANGED
|
@@ -5,12 +5,72 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.setupStandardApp = setupStandardApp;
|
|
7
7
|
const common_1 = require("@nestjs/common");
|
|
8
|
-
const
|
|
8
|
+
const shared_dto_1 = require("@alacard-project/shared-dto");
|
|
9
9
|
const helmet_1 = __importDefault(require("helmet"));
|
|
10
10
|
const filters_1 = require("../filters");
|
|
11
11
|
const swagger_1 = require("@nestjs/swagger");
|
|
12
|
+
const uuid_1 = require("uuid");
|
|
13
|
+
const tracing_service_1 = require("./tracing.service");
|
|
14
|
+
const grpc_tracing_server_interceptor_1 = require("./grpc-tracing-server.interceptor");
|
|
12
15
|
function setupStandardApp(app, options = {}) {
|
|
13
|
-
const { corsOrigins = ['*'], apiPrefix =
|
|
16
|
+
const { corsOrigins = ['*'], apiPrefix = shared_dto_1.API_PREFIX.V1, helmet: useHelmet = true, validation = true, shutdownHooks = true, enableTelemetry = true, remoteLogger, logger, swagger, } = options;
|
|
17
|
+
app.use((req, res, next) => {
|
|
18
|
+
const headerId = req.headers['x-request-id'] || req.headers['X-Request-ID'];
|
|
19
|
+
const traceId = (Array.isArray(headerId) ? headerId[0] : headerId) || (0, uuid_1.v4)();
|
|
20
|
+
res.setHeader('x-request-id', traceId);
|
|
21
|
+
tracing_service_1.TracingService.getStorage().run(new Map(), () => {
|
|
22
|
+
tracing_service_1.TracingService.setTraceId(traceId);
|
|
23
|
+
next();
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
try {
|
|
27
|
+
const tracingService = app.get(tracing_service_1.TracingService);
|
|
28
|
+
if (tracingService) {
|
|
29
|
+
app.useGlobalInterceptors(new grpc_tracing_server_interceptor_1.GrpcTracingServerInterceptor(tracingService));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const { HttpService } = require('@nestjs/axios');
|
|
36
|
+
if (HttpService) {
|
|
37
|
+
let hasHttpService = false;
|
|
38
|
+
try {
|
|
39
|
+
const container = app.container;
|
|
40
|
+
if (container) {
|
|
41
|
+
const modules = container.getModules();
|
|
42
|
+
for (const [_, moduleInstance] of modules) {
|
|
43
|
+
if (moduleInstance.providers && moduleInstance.providers.has(HttpService)) {
|
|
44
|
+
hasHttpService = true;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
}
|
|
52
|
+
if (hasHttpService) {
|
|
53
|
+
const httpService = app.get(HttpService, { strict: false });
|
|
54
|
+
if (httpService && httpService.axiosRef) {
|
|
55
|
+
httpService.axiosRef.interceptors.request.use((config) => {
|
|
56
|
+
try {
|
|
57
|
+
const traceId = tracing_service_1.TracingService.getTraceId();
|
|
58
|
+
if (traceId && traceId !== 'no-trace-id') {
|
|
59
|
+
config.headers = config.headers || {};
|
|
60
|
+
config.headers['x-request-id'] = traceId;
|
|
61
|
+
config.headers['X-Request-ID'] = traceId;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
}
|
|
66
|
+
return config;
|
|
67
|
+
}, (err) => Promise.reject(err));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
}
|
|
14
74
|
if (logger) {
|
|
15
75
|
app.useLogger(logger);
|
|
16
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.utils.js","sourceRoot":"","sources":["../../src/utils/app.utils.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"app.utils.js","sourceRoot":"","sources":["../../src/utils/app.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
import { TracingService } from '
|
|
3
|
+
import { TracingService } from './tracing.service';
|
|
4
|
+
import { Interceptor } from '@grpc/grpc-js';
|
|
4
5
|
export declare class GrpcTracingInterceptor implements NestInterceptor {
|
|
5
6
|
private readonly tracingService;
|
|
6
7
|
constructor(tracingService: TracingService);
|
|
7
8
|
intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
|
|
8
9
|
}
|
|
10
|
+
export declare const grpcClientTracingInterceptor: Interceptor;
|
|
@@ -9,9 +9,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.GrpcTracingInterceptor = void 0;
|
|
12
|
+
exports.grpcClientTracingInterceptor = exports.GrpcTracingInterceptor = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
|
-
const tracing_service_1 = require("
|
|
14
|
+
const tracing_service_1 = require("./tracing.service");
|
|
15
|
+
const grpc_js_1 = require("@grpc/grpc-js");
|
|
15
16
|
let GrpcTracingInterceptor = class GrpcTracingInterceptor {
|
|
16
17
|
constructor(tracingService) {
|
|
17
18
|
this.tracingService = tracingService;
|
|
@@ -32,4 +33,21 @@ exports.GrpcTracingInterceptor = GrpcTracingInterceptor = __decorate([
|
|
|
32
33
|
(0, common_1.Injectable)(),
|
|
33
34
|
__metadata("design:paramtypes", [tracing_service_1.TracingService])
|
|
34
35
|
], GrpcTracingInterceptor);
|
|
36
|
+
const grpcClientTracingInterceptor = (options, nextCall) => {
|
|
37
|
+
return new grpc_js_1.InterceptingCall(nextCall(options), {
|
|
38
|
+
start: (metadata, listener, next) => {
|
|
39
|
+
let traceId = 'no-trace-id';
|
|
40
|
+
try {
|
|
41
|
+
traceId = tracing_service_1.TracingService.getTraceId();
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
}
|
|
45
|
+
if (traceId && traceId !== 'no-trace-id') {
|
|
46
|
+
metadata.set('x-request-id', traceId);
|
|
47
|
+
}
|
|
48
|
+
next(metadata, listener);
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
exports.grpcClientTracingInterceptor = grpcClientTracingInterceptor;
|
|
35
53
|
//# sourceMappingURL=grpc-tracing.interceptor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc-tracing.interceptor.js","sourceRoot":"","sources":["../../src/utils/grpc-tracing.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AAExB,
|
|
1
|
+
{"version":3,"file":"grpc-tracing.interceptor.js","sourceRoot":"","sources":["../../src/utils/grpc-tracing.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AAExB,uDAAmD;AACnD,2CAAwE;AAGjE,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAC/B,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAE/D,SAAS,CAAC,OAAyB,EAAE,IAAiB;QAClD,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,KAAK,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,EAAc,CAAC;YAChE,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;gBACjD,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;CACJ,CAAA;AAbY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAEoC,gCAAc;GADlD,sBAAsB,CAalC;AAEM,MAAM,4BAA4B,GAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;IAC3E,OAAO,IAAI,0BAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAC3C,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;YAChC,IAAI,OAAO,GAAG,aAAa,CAAC;YAC5B,IAAI,CAAC;gBACD,OAAO,GAAG,gCAAc,CAAC,UAAU,EAAE,CAAC;YAC1C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;YAEb,CAAC;YACD,IAAI,OAAO,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;gBACvC,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC7B,CAAC;KACJ,CAAC,CAAC;AACP,CAAC,CAAC;AAfW,QAAA,4BAA4B,gCAevC"}
|
package/dist/utils/proto-path.js
CHANGED
|
@@ -7,23 +7,30 @@ function getProtoPath(serviceName) {
|
|
|
7
7
|
if (process.env.PROTO_PATH_OVERRIDE) {
|
|
8
8
|
return (0, path_1.join)(process.env.PROTO_PATH_OVERRIDE, `${serviceName}.proto`);
|
|
9
9
|
}
|
|
10
|
-
const dockerProtoPath = '/app/sdks/shared/proto';
|
|
11
|
-
if (process.platform === 'linux' || process.env.NODE_ENV === 'production' || process.env.KUBERNETES_SERVICE_HOST) {
|
|
12
|
-
return (0, path_1.join)(dockerProtoPath, `${serviceName}.proto`);
|
|
13
|
-
}
|
|
14
10
|
try {
|
|
15
|
-
const
|
|
16
|
-
const protoPath = (0, path_1.join)((0, path_1.dirname)(sharedPath), 'proto', `${serviceName}.proto`);
|
|
11
|
+
const protoPath = require.resolve(`@alacard-project/shared/proto/${serviceName}.proto`);
|
|
17
12
|
if ((0, fs_1.existsSync)(protoPath)) {
|
|
18
13
|
return protoPath;
|
|
19
14
|
}
|
|
20
15
|
}
|
|
21
16
|
catch (e) {
|
|
22
17
|
}
|
|
18
|
+
const dockerProtoPath = '/app/sdks/shared/proto';
|
|
19
|
+
const dockerFile = (0, path_1.join)(dockerProtoPath, `${serviceName}.proto`);
|
|
20
|
+
if ((0, fs_1.existsSync)(dockerFile)) {
|
|
21
|
+
return dockerFile;
|
|
22
|
+
}
|
|
23
23
|
const monorepoProtoPath = (0, path_1.join)(process.cwd(), '..', '..', 'sdks', 'shared', 'proto', `${serviceName}.proto`);
|
|
24
24
|
if ((0, fs_1.existsSync)(monorepoProtoPath)) {
|
|
25
25
|
return monorepoProtoPath;
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
const localProtoPath = (0, path_1.join)(process.cwd(), 'proto', `${serviceName}.proto`);
|
|
28
|
+
if ((0, fs_1.existsSync)(localProtoPath)) {
|
|
29
|
+
return localProtoPath;
|
|
30
|
+
}
|
|
31
|
+
if (process.platform === 'linux' || process.env.NODE_ENV === 'production' || process.env.KUBERNETES_SERVICE_HOST) {
|
|
32
|
+
return dockerFile;
|
|
33
|
+
}
|
|
34
|
+
return monorepoProtoPath;
|
|
28
35
|
}
|
|
29
36
|
//# sourceMappingURL=proto-path.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proto-path.js","sourceRoot":"","sources":["../../src/utils/proto-path.ts"],"names":[],"mappings":";;AAGA,
|
|
1
|
+
{"version":3,"file":"proto-path.js","sourceRoot":"","sources":["../../src/utils/proto-path.ts"],"names":[],"mappings":";;AAGA,oCAwCC;AA3CD,+BAAqC;AACrC,2BAAgC;AAEhC,SAAgB,YAAY,CAAC,WAAmB;IAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAClC,OAAO,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,WAAW,QAAQ,CAAC,CAAC;IACzE,CAAC;IAGD,IAAI,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,iCAAiC,WAAW,QAAQ,CAAC,CAAC;QACxF,IAAI,IAAA,eAAU,EAAC,SAAS,CAAC,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;IAEb,CAAC;IAGD,MAAM,eAAe,GAAG,wBAAwB,CAAC;IACjD,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,eAAe,EAAE,GAAG,WAAW,QAAQ,CAAC,CAAC;IACjE,IAAI,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC;IACtB,CAAC;IAGD,MAAM,iBAAiB,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,WAAW,QAAQ,CAAC,CAAC;IAC7G,IAAI,IAAA,eAAU,EAAC,iBAAiB,CAAC,EAAE,CAAC;QAChC,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAGD,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,WAAW,QAAQ,CAAC,CAAC;IAC5E,IAAI,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE,CAAC;QAC7B,OAAO,cAAc,CAAC;IAC1B,CAAC;IAGD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;QAC/G,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC7B,CAAC"}
|
|
@@ -11,6 +11,10 @@ exports.TracingService = void 0;
|
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const async_hooks_1 = require("async_hooks");
|
|
13
13
|
const uuid_1 = require("uuid");
|
|
14
|
+
const globalStore = global;
|
|
15
|
+
if (!globalStore.__tracing_storage) {
|
|
16
|
+
globalStore.__tracing_storage = new async_hooks_1.AsyncLocalStorage();
|
|
17
|
+
}
|
|
14
18
|
let TracingService = TracingService_1 = class TracingService {
|
|
15
19
|
static getStorage() {
|
|
16
20
|
return this.storage;
|
|
@@ -36,7 +40,7 @@ let TracingService = TracingService_1 = class TracingService {
|
|
|
36
40
|
}
|
|
37
41
|
};
|
|
38
42
|
exports.TracingService = TracingService;
|
|
39
|
-
TracingService.storage =
|
|
43
|
+
TracingService.storage = globalStore.__tracing_storage;
|
|
40
44
|
exports.TracingService = TracingService = TracingService_1 = __decorate([
|
|
41
45
|
(0, common_1.Injectable)()
|
|
42
46
|
], TracingService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.service.js","sourceRoot":"","sources":["../../src/utils/tracing.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAgD;AAChD,+BAAoC;
|
|
1
|
+
{"version":3,"file":"tracing.service.js","sourceRoot":"","sources":["../../src/utils/tracing.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAgD;AAChD,+BAAoC;AAEpC,MAAM,WAAW,GAAG,MAAa,CAAC;AAClC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;IACjC,WAAW,CAAC,iBAAiB,GAAG,IAAI,+BAAiB,EAAuB,CAAC;AACjF,CAAC;AAGM,IAAM,cAAc,sBAApB,MAAM,cAAc;IAGvB,MAAM,CAAC,UAAU;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,OAAe;QAC7B,MAAM,KAAK,GAAG,gBAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAChD,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,UAAU;QACb,MAAM,KAAK,GAAG,gBAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC;IAClD,CAAC;IAED,UAAU,CAAC,OAAe;QACtB,gBAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,UAAU;QACN,OAAO,gBAAc,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;IAED,eAAe;QACX,OAAO,IAAA,SAAM,GAAE,CAAC;IACpB,CAAC;;AA7BQ,wCAAc;AACC,sBAAO,GAAG,WAAW,CAAC,iBAAiB,AAAhC,CAAiC;yBADvD,cAAc;IAD1B,IAAA,mBAAU,GAAE;GACA,cAAc,CA8B1B"}
|
|
@@ -1,7 +1,46 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.initTracing = initTracing;
|
|
4
|
+
const sdk_node_1 = require("@opentelemetry/sdk-node");
|
|
5
|
+
const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
|
|
6
|
+
const auto_instrumentations_node_1 = require("@opentelemetry/auto-instrumentations-node");
|
|
7
|
+
const resources_1 = require("@opentelemetry/resources");
|
|
8
|
+
let sdk = null;
|
|
4
9
|
function initTracing(serviceName) {
|
|
5
|
-
|
|
10
|
+
if (sdk) {
|
|
11
|
+
console.log(`[Tracing] OpenTelemetry already initialized for ${serviceName}`);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
console.log(`[Tracing] Initializing OpenTelemetry for ${serviceName}...`);
|
|
15
|
+
const otlpEndpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT || 'http://jaeger:4318/v1/traces';
|
|
16
|
+
const traceExporter = new exporter_trace_otlp_http_1.OTLPTraceExporter({
|
|
17
|
+
url: otlpEndpoint,
|
|
18
|
+
});
|
|
19
|
+
sdk = new sdk_node_1.NodeSDK({
|
|
20
|
+
resource: new resources_1.Resource({
|
|
21
|
+
'service.name': serviceName,
|
|
22
|
+
}),
|
|
23
|
+
traceExporter: traceExporter,
|
|
24
|
+
instrumentations: [
|
|
25
|
+
(0, auto_instrumentations_node_1.getNodeAutoInstrumentations)({
|
|
26
|
+
'@opentelemetry/instrumentation-fs': {
|
|
27
|
+
enabled: false,
|
|
28
|
+
},
|
|
29
|
+
}),
|
|
30
|
+
],
|
|
31
|
+
});
|
|
32
|
+
try {
|
|
33
|
+
sdk.start();
|
|
34
|
+
console.log(`[Tracing] OpenTelemetry successfully started for ${serviceName}. Exporting to ${otlpEndpoint}`);
|
|
35
|
+
process.on('SIGTERM', () => {
|
|
36
|
+
sdk?.shutdown()
|
|
37
|
+
.then(() => console.log('[Tracing] OpenTelemetry SDK terminated'))
|
|
38
|
+
.catch((error) => console.log('[Tracing] Error terminating OpenTelemetry SDK', error))
|
|
39
|
+
.finally(() => process.exit(0));
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
console.error('[Tracing] Error starting OpenTelemetry SDK', error);
|
|
44
|
+
}
|
|
6
45
|
}
|
|
7
46
|
//# sourceMappingURL=tracing.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.utils.js","sourceRoot":"","sources":["../../src/utils/tracing.utils.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"tracing.utils.js","sourceRoot":"","sources":["../../src/utils/tracing.utils.ts"],"names":[],"mappings":";;AAOA,kCAyCC;AAhDD,sDAAkD;AAClD,sFAA4E;AAC5E,0FAAwF;AACxF,wDAAoD;AAEpD,IAAI,GAAG,GAAmB,IAAI,CAAC;AAE/B,SAAgB,WAAW,CAAC,WAAmB;IAC3C,IAAI,GAAG,EAAE,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,mDAAmD,WAAW,EAAE,CAAC,CAAC;QAC9E,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,4CAA4C,WAAW,KAAK,CAAC,CAAC;IAE1E,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,8BAA8B,CAAC;IAE/F,MAAM,aAAa,GAAG,IAAI,4CAAiB,CAAC;QACxC,GAAG,EAAE,YAAY;KACpB,CAAC,CAAC;IAEH,GAAG,GAAG,IAAI,kBAAO,CAAC;QACd,QAAQ,EAAE,IAAI,oBAAQ,CAAC;YACnB,cAAc,EAAE,WAAW;SAC9B,CAAC;QACF,aAAa,EAAE,aAAoB;QACnC,gBAAgB,EAAE;YACd,IAAA,wDAA2B,EAAC;gBACxB,mCAAmC,EAAE;oBACjC,OAAO,EAAE,KAAK;iBACjB;aACJ,CAAC;SACL;KACJ,CAAC,CAAC;IAEH,IAAI,CAAC;QACD,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,oDAAoD,WAAW,kBAAkB,YAAY,EAAE,CAAC,CAAC;QAE7G,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACvB,GAAG,EAAE,QAAQ,EAAE;iBACV,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;iBACjE,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;iBACrF,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alacard-project/shared",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.13",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">=22.0.0"
|
|
6
6
|
},
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
"types": "dist/index.d.ts",
|
|
10
10
|
"exports": {
|
|
11
11
|
".": "./dist/index.js",
|
|
12
|
+
"./package.json": "./package.json",
|
|
12
13
|
"./dist/*": "./dist/*",
|
|
13
14
|
"./*": "./dist/*.js"
|
|
14
15
|
},
|
|
15
16
|
"files": [
|
|
16
17
|
"dist",
|
|
17
|
-
"proto",
|
|
18
18
|
"README.md"
|
|
19
19
|
],
|
|
20
20
|
"scripts": {
|
|
@@ -25,10 +25,13 @@
|
|
|
25
25
|
"@nestjs/common": "10.4.15",
|
|
26
26
|
"@nestjs/core": "10.4.15",
|
|
27
27
|
"@nestjs/microservices": "10.4.15",
|
|
28
|
+
"@nestjs/throttler": "5.1.2",
|
|
28
29
|
"reflect-metadata": "0.2.2",
|
|
29
30
|
"rxjs": "7.8.1"
|
|
30
31
|
},
|
|
31
32
|
"dependencies": {
|
|
33
|
+
"@alacard-project/shared-proto": "^1.1.13",
|
|
34
|
+
"@alacard-project/shared-dto": "^1.1.13",
|
|
32
35
|
"@types/opossum": "8.1.9",
|
|
33
36
|
"axios": "^1.7.9",
|
|
34
37
|
"class-transformer": "0.5.1",
|
|
@@ -36,16 +39,25 @@
|
|
|
36
39
|
"helmet": "8.1.0",
|
|
37
40
|
"opossum": "8.1.4",
|
|
38
41
|
"uuid": "^11.0.0",
|
|
39
|
-
"@nestjs/swagger": "8.0.0"
|
|
42
|
+
"@nestjs/swagger": "8.0.0",
|
|
43
|
+
"@nestjs/throttler": "5.1.2",
|
|
44
|
+
"ioredis": "5.3.2",
|
|
45
|
+
"@grpc/grpc-js": "1.12.5",
|
|
46
|
+
"@opentelemetry/api": "^1.9.0",
|
|
47
|
+
"@opentelemetry/auto-instrumentations-node": "^0.50.0",
|
|
48
|
+
"@opentelemetry/sdk-node": "^0.52.0",
|
|
49
|
+
"@opentelemetry/exporter-trace-otlp-http": "^0.52.0"
|
|
40
50
|
},
|
|
41
|
-
|
|
42
51
|
"devDependencies": {
|
|
43
52
|
"@types/uuid": "^10.0.0",
|
|
44
53
|
"@nestjs/common": "10.4.15",
|
|
45
54
|
"@nestjs/config": "3.3.0",
|
|
46
55
|
"@nestjs/core": "10.4.15",
|
|
47
56
|
"@nestjs/microservices": "10.4.15",
|
|
57
|
+
"@nestjs/throttler": "5.1.2",
|
|
58
|
+
"ioredis": "5.3.2",
|
|
48
59
|
"@types/node": "22.10.10",
|
|
60
|
+
"@types/express": "5.0.0",
|
|
49
61
|
"reflect-metadata": "0.2.2",
|
|
50
62
|
"rxjs": "7.8.1",
|
|
51
63
|
"typescript": "~5.9.3"
|
package/proto/account.proto
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
syntax = "proto3";
|
|
2
|
-
|
|
3
|
-
package account;
|
|
4
|
-
|
|
5
|
-
service AccountService {
|
|
6
|
-
rpc Create (CreateAccountRequest) returns (Account) {}
|
|
7
|
-
rpc FindAll (FindAllRequest) returns (stream Account) {}
|
|
8
|
-
rpc FindOne (FindOneRequest) returns (Account) {}
|
|
9
|
-
rpc Update (UpdateAccountRequest) returns (Account) {}
|
|
10
|
-
rpc Remove (FindOneRequest) returns (Account) {}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
message Account {
|
|
14
|
-
string id = 1;
|
|
15
|
-
string name = 2;
|
|
16
|
-
// Add other fields as needed
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
message CreateAccountRequest {
|
|
20
|
-
string name = 1;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
message FindAllRequest {}
|
|
24
|
-
|
|
25
|
-
message FindOneRequest {
|
|
26
|
-
string id = 1;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
message UpdateAccountRequest {
|
|
30
|
-
string id = 1;
|
|
31
|
-
string name = 2;
|
|
32
|
-
}
|
package/proto/attachment.proto
DELETED
package/proto/auth.proto
DELETED
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
syntax = "proto3";
|
|
2
|
-
|
|
3
|
-
package auth;
|
|
4
|
-
|
|
5
|
-
service AuthService {
|
|
6
|
-
rpc CreateIdentity (CreateIdentityRequest) returns (TokenResponse);
|
|
7
|
-
rpc Login (LoginRequest) returns (TokenResponse);
|
|
8
|
-
rpc Verify2FA (Verify2faRequest) returns (TokenResponse);
|
|
9
|
-
rpc RequestPasswordReset (PasswordResetRequestRequest) returns (GenericResponse);
|
|
10
|
-
rpc ResetPassword (ResetPasswordRequest) returns (GenericResponse);
|
|
11
|
-
rpc ChangePassword (ChangePasswordRequest) returns (GenericResponse);
|
|
12
|
-
rpc Validate (ValidateRequest) returns (ValidateResponse);
|
|
13
|
-
rpc GetUserById (GetUserByIdRequest) returns (UserResponse);
|
|
14
|
-
rpc GetUserByEmail (GetUserByEmailRequest) returns (UserResponse);
|
|
15
|
-
rpc ValidateToken (ValidateTokenRequest) returns (ValidateTokenResponse);
|
|
16
|
-
rpc RefreshToken (RefreshTokenRequest) returns (TokenResponse);
|
|
17
|
-
rpc RevokeToken (RevokeTokenRequest) returns (RevokeTokenResponse);
|
|
18
|
-
rpc GenerateTokens (GenerateTokensRequest) returns (TokenResponse);
|
|
19
|
-
rpc CheckPermission (CheckPermissionRequest) returns (CheckPermissionResponse);
|
|
20
|
-
rpc GetUserPermissions (GetUserPermissionsRequest) returns (GetUserPermissionsResponse);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
message GenerateTokensRequest {
|
|
24
|
-
string userId = 1;
|
|
25
|
-
string email = 2;
|
|
26
|
-
string role = 3;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
message CreateIdentityRequest {
|
|
30
|
-
string email = 1;
|
|
31
|
-
string password = 2;
|
|
32
|
-
string name = 3;
|
|
33
|
-
string userId = 4;
|
|
34
|
-
string role = 5;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
message LoginRequest {
|
|
38
|
-
string email = 1;
|
|
39
|
-
string password = 2;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
message TokenResponse {
|
|
43
|
-
string accessToken = 1;
|
|
44
|
-
string refreshToken = 2;
|
|
45
|
-
int32 expiresIn = 3;
|
|
46
|
-
string userId = 4;
|
|
47
|
-
string role = 5;
|
|
48
|
-
string email = 6;
|
|
49
|
-
string status = 7;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
message ValidateRequest {
|
|
53
|
-
string token = 1;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
message ValidateResponse {
|
|
57
|
-
bool valid = 1;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
message GetUserByIdRequest {
|
|
61
|
-
string userId = 1;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
message GetUserByEmailRequest {
|
|
65
|
-
string email = 1;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
message UserResponse {
|
|
69
|
-
string id = 1;
|
|
70
|
-
string email = 2;
|
|
71
|
-
string name = 3;
|
|
72
|
-
string role = 4;
|
|
73
|
-
bool isActive = 5;
|
|
74
|
-
bool emailVerified = 6;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
message ValidateTokenRequest {
|
|
78
|
-
string token = 1;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
message ValidateTokenResponse {
|
|
82
|
-
bool valid = 1;
|
|
83
|
-
string userId = 2;
|
|
84
|
-
string email = 3;
|
|
85
|
-
string role = 4;
|
|
86
|
-
string status = 5;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
message RefreshTokenRequest {
|
|
90
|
-
string refreshToken = 1;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
message RevokeTokenRequest {
|
|
94
|
-
string refreshToken = 1;
|
|
95
|
-
string userId = 2;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
message RevokeTokenResponse {
|
|
99
|
-
bool success = 1;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
message CheckPermissionRequest {
|
|
103
|
-
string userId = 1;
|
|
104
|
-
string resource = 2;
|
|
105
|
-
string action = 3;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
message CheckPermissionResponse {
|
|
109
|
-
bool hasPermission = 1;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
message GetUserPermissionsRequest {
|
|
113
|
-
string userId = 1;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
message Permission {
|
|
117
|
-
string id = 1;
|
|
118
|
-
string name = 2;
|
|
119
|
-
string resource = 3;
|
|
120
|
-
string action = 4;
|
|
121
|
-
string description = 5;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
message GetUserPermissionsResponse {
|
|
125
|
-
repeated Permission permissions = 1;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
message Verify2faRequest {
|
|
130
|
-
string challengeId = 1;
|
|
131
|
-
string code = 2;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
message PasswordResetRequestRequest {
|
|
135
|
-
string email = 1;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
message ResetPasswordRequest {
|
|
139
|
-
string token = 1;
|
|
140
|
-
string newPassword = 2;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
message GenericResponse {
|
|
144
|
-
bool success = 1;
|
|
145
|
-
string message = 2;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
message ChangePasswordRequest {
|
|
149
|
-
string identityId = 1;
|
|
150
|
-
string oldPassword = 2;
|
|
151
|
-
string newPassword = 3;
|
|
152
|
-
}
|