@open-rlb/nestjs-amqp 2.0.8 → 2.0.10
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/README.md +44 -45
- package/modules/acl/auth-match.d.ts +6 -0
- package/modules/acl/auth-match.js +10 -0
- package/modules/acl/auth-match.js.map +1 -0
- package/modules/acl/config/acl.config.d.ts +1 -0
- package/modules/acl/const.d.ts +5 -2
- package/modules/acl/const.js +6 -3
- package/modules/acl/const.js.map +1 -1
- package/modules/acl/index.d.ts +1 -0
- package/modules/acl/index.js +1 -0
- package/modules/acl/index.js.map +1 -1
- package/modules/acl/repository/acl-action.repository.d.ts +1 -0
- package/modules/acl/repository/acl-action.repository.js.map +1 -1
- package/modules/acl/repository/acl-grant.repository.d.ts +1 -0
- package/modules/acl/repository/acl-grant.repository.js.map +1 -1
- package/modules/acl/repository/acl-role.repository.d.ts +1 -0
- package/modules/acl/repository/acl-role.repository.js.map +1 -1
- package/modules/acl/services/acl-management.service.d.ts +10 -3
- package/modules/acl/services/acl-management.service.js +60 -10
- package/modules/acl/services/acl-management.service.js.map +1 -1
- package/modules/acl/services/acl.service.d.ts +3 -4
- package/modules/acl/services/acl.service.js +24 -46
- package/modules/acl/services/acl.service.js.map +1 -1
- package/modules/broker/config/decorator-paths.js +2 -2
- package/modules/broker/config/decorator-paths.js.map +1 -1
- package/modules/broker/decorators/broker-action.decorator.d.ts +1 -1
- package/modules/broker/decorators/broker-action.decorator.js +2 -2
- package/modules/broker/decorators/broker-action.decorator.js.map +1 -1
- package/modules/broker/services/shutdown-state.service.d.ts +1 -0
- package/modules/broker/services/shutdown-state.service.js +12 -12
- package/modules/broker/services/shutdown-state.service.js.map +1 -1
- package/modules/gateway-admin/config/gateway-admin.config.d.ts +2 -0
- package/modules/gateway-admin/const.d.ts +7 -0
- package/modules/gateway-admin/const.js +7 -0
- package/modules/gateway-admin/const.js.map +1 -1
- package/modules/gateway-admin/gateway-admin.module.js +4 -1
- package/modules/gateway-admin/gateway-admin.module.js.map +1 -1
- package/modules/gateway-admin/health.d.ts +14 -0
- package/modules/gateway-admin/health.js +5 -0
- package/modules/gateway-admin/health.js.map +1 -0
- package/modules/gateway-admin/index.d.ts +5 -0
- package/modules/gateway-admin/index.js +5 -0
- package/modules/gateway-admin/index.js.map +1 -1
- package/modules/gateway-admin/models.d.ts +61 -0
- package/modules/gateway-admin/repository/auth-provider.repository.d.ts +1 -0
- package/modules/gateway-admin/repository/auth-provider.repository.js.map +1 -1
- package/modules/gateway-admin/repository/http-metric.repository.d.ts +6 -2
- package/modules/gateway-admin/repository/http-metric.repository.js.map +1 -1
- package/modules/gateway-admin/repository/http-path.repository.d.ts +3 -0
- package/modules/gateway-admin/repository/http-path.repository.js.map +1 -1
- package/modules/gateway-admin/repository/route-sync-log.repository.d.ts +4 -1
- package/modules/gateway-admin/repository/route-sync-log.repository.js.map +1 -1
- package/modules/gateway-admin/services/gateway-auth.service.d.ts +1 -0
- package/modules/gateway-admin/services/gateway-auth.service.js +12 -0
- package/modules/gateway-admin/services/gateway-auth.service.js.map +1 -1
- package/modules/gateway-admin/services/gateway-health.service.d.ts +10 -0
- package/modules/gateway-admin/services/gateway-health.service.js +64 -0
- package/modules/gateway-admin/services/gateway-health.service.js.map +1 -0
- package/modules/gateway-admin/services/gateway-metrics-rollup.service.d.ts +13 -0
- package/modules/gateway-admin/services/gateway-metrics-rollup.service.js +63 -0
- package/modules/gateway-admin/services/gateway-metrics-rollup.service.js.map +1 -0
- package/modules/gateway-admin/services/gateway-metrics.service.d.ts +5 -4
- package/modules/gateway-admin/services/gateway-metrics.service.js +56 -17
- package/modules/gateway-admin/services/gateway-metrics.service.js.map +1 -1
- package/modules/gateway-admin/services/gateway-path.service.d.ts +11 -4
- package/modules/gateway-admin/services/gateway-path.service.js +79 -11
- package/modules/gateway-admin/services/gateway-path.service.js.map +1 -1
- package/modules/gateway-admin/services/gateway-retention.service.d.ts +16 -0
- package/modules/gateway-admin/services/gateway-retention.service.js +71 -0
- package/modules/gateway-admin/services/gateway-retention.service.js.map +1 -0
- package/modules/gateway-admin/services/route-sync.service.js +12 -5
- package/modules/gateway-admin/services/route-sync.service.js.map +1 -1
- package/modules/gateway-admin/util/metrics.d.ts +10 -0
- package/modules/gateway-admin/util/metrics.js +170 -0
- package/modules/gateway-admin/util/metrics.js.map +1 -0
- package/modules/gateway-admin/util/route-diff.d.ts +7 -0
- package/modules/gateway-admin/util/route-diff.js +7 -2
- package/modules/gateway-admin/util/route-diff.js.map +1 -1
- package/modules/gateway-admin/util/route-manifest.d.ts +3 -0
- package/modules/gateway-admin/util/route-manifest.js +36 -1
- package/modules/gateway-admin/util/route-manifest.js.map +1 -1
- package/modules/proxy/config/path-definition.config.d.ts +2 -2
- package/modules/proxy/services/acl.service.d.ts +2 -2
- package/modules/proxy/services/acl.service.js.map +1 -1
- package/modules/proxy/services/http-auth-handler.service.d.ts +6 -4
- package/modules/proxy/services/http-auth-handler.service.js +15 -9
- package/modules/proxy/services/http-auth-handler.service.js.map +1 -1
- package/modules/proxy/services/http-handler.service.d.ts +1 -0
- package/modules/proxy/services/http-handler.service.js +28 -35
- package/modules/proxy/services/http-handler.service.js.map +1 -1
- package/modules/proxy/services/metrics-hook.d.ts +1 -0
- package/modules/proxy/services/websocket.service.js +5 -5
- package/modules/proxy/services/websocket.service.js.map +1 -1
- package/package.json +1 -1
- package/schematics/nest-add/files/acl/src/modules/database/repository/acl.repository.ts +3 -0
- package/schematics/nest-add/files/db-core/src/modules/database/repository/in-memory-collection.ts +29 -0
- package/schematics/nest-add/files/gateway-admin/src/modules/database/repository/gateway.repository.ts +48 -20
- package/schematics/nest-add/files/gateway-admin/src/modules/database/repository/route-sync.repository.ts +24 -1
- package/schematics/nest-add/files/skills/rlb-amqp/SKILL.md +3 -3
- package/schematics/nest-add/files/skills/rlb-amqp/references/config-schema.md +18 -14
- package/schematics/nest-add/files/skills/rlb-amqp/references/gotchas.md +42 -17
- package/schematics/nest-add/files/skills/rlb-amqp-acl/SKILL.md +57 -39
- package/schematics/nest-add/files/skills/rlb-amqp-add-action/SKILL.md +4 -3
- package/schematics/nest-add/files/skills/rlb-amqp-add-route/SKILL.md +20 -14
- package/schematics/nest-add/files/skills/rlb-amqp-add-ws-event/SKILL.md +7 -6
- package/schematics/nest-add/files/skills/rlb-amqp-gateway-admin/SKILL.md +49 -9
- package/schematics/nest-add/files/skills/rlb-amqp-scaffold/SKILL.md +4 -4
- package/schematics/nest-add/index.js +78 -9
- package/schematics/nest-add/index.js.map +1 -1
- package/schematics/nest-add/index.ts +78 -9
|
@@ -17,6 +17,7 @@ exports.AclService = void 0;
|
|
|
17
17
|
const common_1 = require("@nestjs/common");
|
|
18
18
|
const common_2 = require("../../../common");
|
|
19
19
|
const broker_1 = require("../../broker");
|
|
20
|
+
const auth_match_1 = require("../auth-match");
|
|
20
21
|
const acl_cache_service_1 = require("../cache/acl-cache.service");
|
|
21
22
|
const const_1 = require("../const");
|
|
22
23
|
const acl_grant_repository_1 = require("../repository/acl-grant.repository");
|
|
@@ -28,48 +29,32 @@ let AclService = AclService_1 = class AclService {
|
|
|
28
29
|
this.cache = cache;
|
|
29
30
|
this.logger = new common_1.Logger(AclService_1.name);
|
|
30
31
|
}
|
|
31
|
-
toList(
|
|
32
|
-
return Array.isArray(
|
|
32
|
+
toList(value) {
|
|
33
|
+
return Array.isArray(value) ? value : (value ? [value] : []);
|
|
33
34
|
}
|
|
34
|
-
async
|
|
35
|
-
const
|
|
36
|
-
if (!userId || !
|
|
35
|
+
async checkAction(userId, ctx, action) {
|
|
36
|
+
const actions = this.toList(action);
|
|
37
|
+
if (!userId || !actions.length)
|
|
37
38
|
return false;
|
|
38
|
-
const
|
|
39
|
+
const scopeKey = ctx === undefined ? 'agnostic' : `${ctx.companyId ?? '*'}|${ctx.resourceId ?? '*'}`;
|
|
40
|
+
const cacheAction = `act:${scopeKey}:${[...actions].sort().join(',')}`;
|
|
39
41
|
const cached = await this.cache.get(userId, cacheAction);
|
|
40
42
|
if (cached !== null)
|
|
41
43
|
return cached;
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return false;
|
|
51
|
-
const cacheAction = `role-res:${resourceId ?? '*'}:${[...list].sort().join(',')}`;
|
|
52
|
-
const cached = await this.cache.get(userId, cacheAction);
|
|
53
|
-
if (cached !== null)
|
|
54
|
-
return cached;
|
|
55
|
-
const grants = await this.grants.filter({ userId });
|
|
56
|
-
const scoped = grants.filter((g) => g.resourceId == null || g.resourceId === resourceId);
|
|
57
|
-
const allowed = scoped.some((g) => (g.roles || []).some((r) => list.includes(r)));
|
|
44
|
+
const allRoles = await this.roles.list();
|
|
45
|
+
const roleNames = new Set((allRoles || []).filter((r) => (r.actions || []).some((a) => actions.includes(a))).map((r) => r.name));
|
|
46
|
+
let allowed = false;
|
|
47
|
+
if (roleNames.size) {
|
|
48
|
+
const grants = await this.grants.filter({ userId });
|
|
49
|
+
const scoped = ctx === undefined ? grants : grants.filter((g) => (0, auth_match_1.grantMatchesResource)(g, ctx));
|
|
50
|
+
allowed = scoped.some((g) => (g.roles || []).some((r) => roleNames.has(r)));
|
|
51
|
+
}
|
|
58
52
|
await this.cache.set(userId, cacheAction, allowed);
|
|
59
53
|
return allowed;
|
|
60
54
|
}
|
|
61
|
-
async
|
|
55
|
+
async handleCheckAction(userId, action, companyId, resourceId) {
|
|
62
56
|
try {
|
|
63
|
-
return await this.
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
this.logger.error(error);
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
async handleCanUserDo(userId, resource, roles) {
|
|
71
|
-
try {
|
|
72
|
-
return await this.canUserDo(roles ?? [], userId, resource);
|
|
57
|
+
return await this.checkAction(userId, { companyId, resourceId }, action);
|
|
73
58
|
}
|
|
74
59
|
catch (error) {
|
|
75
60
|
this.logger.error(error);
|
|
@@ -107,22 +92,15 @@ let AclService = AclService_1 = class AclService {
|
|
|
107
92
|
};
|
|
108
93
|
exports.AclService = AclService;
|
|
109
94
|
__decorate([
|
|
110
|
-
(0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.
|
|
111
|
-
__param(0, (0, broker_1.BrokerParam)('body', 'userId')),
|
|
112
|
-
__param(1, (0, broker_1.BrokerParam)('body', 'roles')),
|
|
113
|
-
__metadata("design:type", Function),
|
|
114
|
-
__metadata("design:paramtypes", [String, Object]),
|
|
115
|
-
__metadata("design:returntype", Promise)
|
|
116
|
-
], AclService.prototype, "handleCanUserDoGtw", null);
|
|
117
|
-
__decorate([
|
|
118
|
-
(0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.canUserDo, 'rpc'),
|
|
95
|
+
(0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.checkAction, 'rpc'),
|
|
119
96
|
__param(0, (0, broker_1.BrokerParam)('body', 'userId')),
|
|
120
|
-
__param(1, (0, broker_1.BrokerParam)('body', '
|
|
121
|
-
__param(2, (0, broker_1.BrokerParam)('body', '
|
|
97
|
+
__param(1, (0, broker_1.BrokerParam)('body', 'action')),
|
|
98
|
+
__param(2, (0, broker_1.BrokerParam)('body', 'companyId')),
|
|
99
|
+
__param(3, (0, broker_1.BrokerParam)('body', 'resourceId')),
|
|
122
100
|
__metadata("design:type", Function),
|
|
123
|
-
__metadata("design:paramtypes", [String, String,
|
|
101
|
+
__metadata("design:paramtypes", [String, Object, String, String]),
|
|
124
102
|
__metadata("design:returntype", Promise)
|
|
125
|
-
], AclService.prototype, "
|
|
103
|
+
], AclService.prototype, "handleCheckAction", null);
|
|
126
104
|
__decorate([
|
|
127
105
|
(0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.listResourcesByUser, 'rpc'),
|
|
128
106
|
__param(0, (0, broker_1.BrokerParam)('header', 'X-GTW-AUTH-USERID')),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acl.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/acl/services/acl.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,4CAAoD;AACpD,yCAAyD;AAEzD,kEAA6D;AAC7D,oCAAkD;AAElD,6EAAwE;AACxE,2EAAsE;AAG/D,IAAM,UAAU,kBAAhB,MAAM,UAAU;IAGrB,YACmB,MAA0B,EAC1B,KAAwB,EACxB,KAAsB;QAFtB,WAAM,GAAN,MAAM,CAAoB;QAC1B,UAAK,GAAL,KAAK,CAAmB;QACxB,UAAK,GAAL,KAAK,CAAiB;QALxB,WAAM,GAAG,IAAI,eAAM,CAAC,YAAU,CAAC,IAAI,CAAC,CAAC;IAMlD,CAAC;IAEG,MAAM,CAAC,KAAwB;QACrC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;
|
|
1
|
+
{"version":3,"file":"acl.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/acl/services/acl.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ function buildPathDefinitionsFromMeta(meta) {
|
|
|
18
18
|
mode: h.mode ?? (entry.type === 'event' ? 'event' : 'rpc'),
|
|
19
19
|
auth: h.auth,
|
|
20
20
|
allowAnonymous: h.allowAnonymous,
|
|
21
|
-
|
|
21
|
+
actions: h.actions ?? [],
|
|
22
22
|
successStatusCode: h.successStatusCode,
|
|
23
23
|
timeout: h.timeout,
|
|
24
24
|
parseRaw: h.parseRaw,
|
|
@@ -44,7 +44,7 @@ function pairAuthToRoutes(allHttp, allAuth, where = '') {
|
|
|
44
44
|
if (paired) {
|
|
45
45
|
h.auth = paired.authName;
|
|
46
46
|
h.allowAnonymous = paired.allowAnonymous;
|
|
47
|
-
h.
|
|
47
|
+
h.actions = paired.actions;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
if (multiHttp) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorator-paths.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/broker/config/decorator-paths.ts"],"names":[],"mappings":";;AAOA,oEA6BC;AAUD,4CA6BC;AApED,SAAgB,4BAA4B,CAAC,IAAS;IACpD,MAAM,GAAG,GAAU,EAAE,CAAC;IACtB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACxC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;gBACjC,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG,KAAK,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE;oBAC1D,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,MAAM;oBAClC,KAAK;oBACL,MAAM;oBACN,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC1D,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,cAAc,EAAE,CAAC,CAAC,cAAc;oBAChC,
|
|
1
|
+
{"version":3,"file":"decorator-paths.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/broker/config/decorator-paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,5 +19,5 @@ export declare function BrokerHTTP(method: BrokerHttpMethod, path: string, dataS
|
|
|
19
19
|
[k: string]: string | number | boolean;
|
|
20
20
|
};
|
|
21
21
|
}): MethodDecorator;
|
|
22
|
-
export declare function BrokerAuth(authName: string, allowAnonymous?: boolean,
|
|
22
|
+
export declare function BrokerAuth(authName: string, allowAnonymous?: boolean, actions?: string | string[], httpName?: string): MethodDecorator;
|
|
23
23
|
export declare function BrokerParam(source: BrokerParamSource, name?: string, pipe?: PipeTransform): ParameterDecorator;
|
|
@@ -35,7 +35,7 @@ function BrokerHTTP(method, path, dataSource, options) {
|
|
|
35
35
|
Reflect.defineMetadata(const_1.RLB_BROKER_HTTP_METADATA_KEY, existingMetadata, target.constructor);
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
|
-
function BrokerAuth(authName, allowAnonymous,
|
|
38
|
+
function BrokerAuth(authName, allowAnonymous, actions, httpName) {
|
|
39
39
|
return (target, propertyKey, descriptor) => {
|
|
40
40
|
const existingMetadata = Reflect.getMetadata(const_1.RLB_BROKER_AUTH_METADATA_KEY, target.constructor) || [];
|
|
41
41
|
const params = getParamNames(descriptor.value);
|
|
@@ -43,7 +43,7 @@ function BrokerAuth(authName, allowAnonymous, roles, httpName) {
|
|
|
43
43
|
methodName: propertyKey,
|
|
44
44
|
authName,
|
|
45
45
|
allowAnonymous,
|
|
46
|
-
|
|
46
|
+
actions,
|
|
47
47
|
httpName,
|
|
48
48
|
});
|
|
49
49
|
Reflect.defineMetadata(const_1.RLB_BROKER_AUTH_METADATA_KEY, existingMetadata, target.constructor);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker-action.decorator.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/broker/decorators/broker-action.decorator.ts"],"names":[],"mappings":";;AAUA,oCAaC;AAED,gCAgCC;AAOD,gCAaC;AACD,kCASC;AAtFD,oCAAqJ;AAErJ,MAAM,cAAc,GAAG,kCAAkC,CAAC;AAC1D,MAAM,cAAc,GAAG,YAAY,CAAC;AAMpC,SAAgB,YAAY,CAAC,KAAa,EAAE,MAAc,EAAE,IAAuB;IACjF,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;QACzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,sCAA8B,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACvG,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/C,gBAAgB,CAAC,IAAI,CAAC;YACpB,UAAU,EAAE,WAAW;YACvB,KAAK;YACL,MAAM;YACN,IAAI;YACJ,MAAM;SACP,CAAC,CAAC;QACH,OAAO,CAAC,cAAc,CAAC,sCAA8B,EAAE,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/F,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,UAAU,CACxB,MAAwB,EAAE,IAAY,EAAE,UAAgC,EAAE,OAiBzE;IAED,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;QACzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,oCAA4B,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACrG,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/C,gBAAgB,CAAC,IAAI,CAAC;YACpB,UAAU,EAAE,WAAW;YACvB,MAAM;YACN,IAAI;YACJ,UAAU;YACV,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,cAAc,CAAC,oCAA4B,EAAE,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC7F,CAAC,CAAC;AACJ,CAAC;AAOD,SAAgB,UAAU,CAAC,QAAgB,EAAE,cAAwB,EAAE,
|
|
1
|
+
{"version":3,"file":"broker-action.decorator.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/broker/decorators/broker-action.decorator.ts"],"names":[],"mappings":";;AAUA,oCAaC;AAED,gCAgCC;AAOD,gCAaC;AACD,kCASC;AAtFD,oCAAqJ;AAErJ,MAAM,cAAc,GAAG,kCAAkC,CAAC;AAC1D,MAAM,cAAc,GAAG,YAAY,CAAC;AAMpC,SAAgB,YAAY,CAAC,KAAa,EAAE,MAAc,EAAE,IAAuB;IACjF,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;QACzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,sCAA8B,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACvG,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/C,gBAAgB,CAAC,IAAI,CAAC;YACpB,UAAU,EAAE,WAAW;YACvB,KAAK;YACL,MAAM;YACN,IAAI;YACJ,MAAM;SACP,CAAC,CAAC;QACH,OAAO,CAAC,cAAc,CAAC,sCAA8B,EAAE,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/F,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,UAAU,CACxB,MAAwB,EAAE,IAAY,EAAE,UAAgC,EAAE,OAiBzE;IAED,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;QACzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,oCAA4B,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACrG,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/C,gBAAgB,CAAC,IAAI,CAAC;YACpB,UAAU,EAAE,WAAW;YACvB,MAAM;YACN,IAAI;YACJ,UAAU;YACV,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,cAAc,CAAC,oCAA4B,EAAE,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC7F,CAAC,CAAC;AACJ,CAAC;AAOD,SAAgB,UAAU,CAAC,QAAgB,EAAE,cAAwB,EAAE,OAA2B,EAAE,QAAiB;IACnH,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE;QACzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,oCAA4B,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACrG,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/C,gBAAgB,CAAC,IAAI,CAAC;YACpB,UAAU,EAAE,WAAW;YACvB,QAAQ;YACR,cAAc;YACd,OAAO;YACP,QAAQ;SACT,CAAC,CAAC;QACH,OAAO,CAAC,cAAc,CAAC,oCAA4B,EAAE,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC7F,CAAC,CAAC;AACJ,CAAC;AACD,SAAgB,WAAW,CAAC,MAAyB,EAAE,IAAa,EAAE,IAAoB;IAExF,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE;QAC7C,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,qCAA6B,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;QAEvG,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAErE,OAAO,CAAC,cAAc,CAAC,qCAA6B,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/F,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAAI;IACzB,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACxD,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC3F,IAAI,MAAM,KAAK,IAAI;QACjB,MAAM,GAAG,EAAE,CAAC;IACd,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -9,6 +9,7 @@ export declare class ShutdownStateService implements OnModuleInit, OnModuleDestr
|
|
|
9
9
|
get isShuttingDown(): boolean;
|
|
10
10
|
register(name: string, drain: () => Promise<void>): void;
|
|
11
11
|
onModuleInit(): void;
|
|
12
|
+
private handleSignal;
|
|
12
13
|
onModuleDestroy(): Promise<void>;
|
|
13
14
|
private drainAll;
|
|
14
15
|
}
|
|
@@ -28,18 +28,18 @@ let ShutdownStateService = ShutdownStateService_1 = class ShutdownStateService {
|
|
|
28
28
|
this.drainers.push({ name, drain });
|
|
29
29
|
}
|
|
30
30
|
onModuleInit() {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
31
|
+
process.once('SIGINT', () => this.handleSignal('SIGINT'));
|
|
32
|
+
process.once('SIGTERM', () => this.handleSignal('SIGTERM'));
|
|
33
|
+
}
|
|
34
|
+
handleSignal(signal) {
|
|
35
|
+
if (this._isShuttingDown)
|
|
36
|
+
return;
|
|
37
|
+
this._isShuttingDown = true;
|
|
38
|
+
this.logger.log(`Shutdown signal '${signal}' received.`);
|
|
39
|
+
setTimeout(() => {
|
|
40
|
+
this.logger.error(`Graceful shutdown timed out after ${SHUTDOWN_TIMEOUT_MS}ms on ${signal}, forcing exit.`);
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}, SHUTDOWN_TIMEOUT_MS).unref();
|
|
43
43
|
}
|
|
44
44
|
async onModuleDestroy() {
|
|
45
45
|
await this.brokerService.unregisterAll();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shutdown-state.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/broker/services/shutdown-state.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAmF;AACnF,qDAAiD;AAEjD,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAG5B,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAK/B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAJxC,WAAM,GAAG,IAAI,eAAM,CAAC,sBAAoB,CAAC,IAAI,CAAC,CAAC;QACxD,oBAAe,GAAG,KAAK,CAAC;QACf,aAAQ,GAAyD,EAAE,CAAC;IAExB,CAAC;IAE9D,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,KAA0B;QAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,YAAY;QACV,
|
|
1
|
+
{"version":3,"file":"shutdown-state.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/broker/services/shutdown-state.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAmF;AACnF,qDAAiD;AAEjD,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAG5B,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAK/B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAJxC,WAAM,GAAG,IAAI,eAAM,CAAC,sBAAoB,CAAC,IAAI,CAAC,CAAC;QACxD,oBAAe,GAAG,KAAK,CAAC;QACf,aAAQ,GAAyD,EAAE,CAAC;IAExB,CAAC;IAE9D,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,KAA0B;QAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,YAAY;QACV,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEO,YAAY,CAAC,MAAsB;QACzC,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QACjC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,MAAM,aAAa,CAAC,CAAC;QACzD,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,mBAAmB,SAAS,MAAM,iBAAiB,CAAC,CAAC;YAC5G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,EAAE,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,iBAAiB,CAAC,CAAC;QACnE,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACtC,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CACxF,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;CACF,CAAA;AA3CY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAMiC,8BAAa;GAL9C,oBAAoB,CA2ChC"}
|
|
@@ -6,15 +6,22 @@ export declare const GW_ADMIN_ACTIONS: {
|
|
|
6
6
|
readonly pathDelete: "gw-path-delete";
|
|
7
7
|
readonly pathGet: "gw-path-get";
|
|
8
8
|
readonly pathList: "gw-path-list";
|
|
9
|
+
readonly pathSearch: "gw-path-search";
|
|
9
10
|
readonly pathExport: "gw-path-export";
|
|
11
|
+
readonly routeLogList: "gw-route-log-list";
|
|
12
|
+
readonly routeLogSearch: "gw-route-log-search";
|
|
10
13
|
readonly authUpdate: "gw-auth-update";
|
|
11
14
|
readonly authDelete: "gw-auth-delete";
|
|
12
15
|
readonly authGet: "gw-auth-get";
|
|
13
16
|
readonly authList: "gw-auth-list";
|
|
17
|
+
readonly authSearch: "gw-auth-search";
|
|
14
18
|
readonly authExport: "gw-auth-export";
|
|
15
19
|
readonly metricsTrack: "gw-metrics-track";
|
|
16
20
|
readonly metricsGet: "gw-metrics-get";
|
|
17
21
|
readonly metricsSeries: "gw-metrics-series";
|
|
18
22
|
readonly metricsPoints: "gw-metrics-points";
|
|
23
|
+
readonly metricsSummary: "gw-metrics-summary";
|
|
24
|
+
readonly metricsPrometheus: "gw-metrics-prometheus";
|
|
25
|
+
readonly metricsRollups: "gw-metrics-rollups";
|
|
19
26
|
readonly health: "gw-health";
|
|
20
27
|
};
|
|
@@ -9,16 +9,23 @@ exports.GW_ADMIN_ACTIONS = {
|
|
|
9
9
|
pathDelete: 'gw-path-delete',
|
|
10
10
|
pathGet: 'gw-path-get',
|
|
11
11
|
pathList: 'gw-path-list',
|
|
12
|
+
pathSearch: 'gw-path-search',
|
|
12
13
|
pathExport: 'gw-path-export',
|
|
14
|
+
routeLogList: 'gw-route-log-list',
|
|
15
|
+
routeLogSearch: 'gw-route-log-search',
|
|
13
16
|
authUpdate: 'gw-auth-update',
|
|
14
17
|
authDelete: 'gw-auth-delete',
|
|
15
18
|
authGet: 'gw-auth-get',
|
|
16
19
|
authList: 'gw-auth-list',
|
|
20
|
+
authSearch: 'gw-auth-search',
|
|
17
21
|
authExport: 'gw-auth-export',
|
|
18
22
|
metricsTrack: 'gw-metrics-track',
|
|
19
23
|
metricsGet: 'gw-metrics-get',
|
|
20
24
|
metricsSeries: 'gw-metrics-series',
|
|
21
25
|
metricsPoints: 'gw-metrics-points',
|
|
26
|
+
metricsSummary: 'gw-metrics-summary',
|
|
27
|
+
metricsPrometheus: 'gw-metrics-prometheus',
|
|
28
|
+
metricsRollups: 'gw-metrics-rollups',
|
|
22
29
|
health: 'gw-health',
|
|
23
30
|
};
|
|
24
31
|
//# sourceMappingURL=const.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/const.ts"],"names":[],"mappings":";;;AAEa,QAAA,mBAAmB,GAAG,mBAAmB,CAAC;AAE1C,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAE9C,QAAA,gBAAgB,GAAG;IAC9B,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAC5B,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,cAAc;
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/const.ts"],"names":[],"mappings":";;;AAEa,QAAA,mBAAmB,GAAG,mBAAmB,CAAC;AAE1C,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAE9C,QAAA,gBAAgB,GAAG;IAC9B,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAC5B,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,cAAc;IAExB,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAE5B,YAAY,EAAE,mBAAmB;IAEjC,cAAc,EAAE,qBAAqB;IAErC,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAC5B,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,cAAc;IAExB,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAC5B,YAAY,EAAE,kBAAkB;IAChC,UAAU,EAAE,gBAAgB;IAC5B,aAAa,EAAE,mBAAmB;IAClC,aAAa,EAAE,mBAAmB;IAElC,cAAc,EAAE,oBAAoB;IAEpC,iBAAiB,EAAE,uBAAuB;IAE1C,cAAc,EAAE,oBAAoB;IAEpC,MAAM,EAAE,WAAW;CACX,CAAC"}
|
|
@@ -11,10 +11,13 @@ exports.GatewayAdminModule = void 0;
|
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const const_1 = require("./const");
|
|
13
13
|
const gateway_auth_service_1 = require("./services/gateway-auth.service");
|
|
14
|
+
const gateway_health_service_1 = require("./services/gateway-health.service");
|
|
15
|
+
const gateway_metrics_rollup_service_1 = require("./services/gateway-metrics-rollup.service");
|
|
14
16
|
const gateway_metrics_service_1 = require("./services/gateway-metrics.service");
|
|
15
17
|
const gateway_path_service_1 = require("./services/gateway-path.service");
|
|
18
|
+
const gateway_retention_service_1 = require("./services/gateway-retention.service");
|
|
16
19
|
const route_sync_service_1 = require("./services/route-sync.service");
|
|
17
|
-
const SERVICES = [gateway_path_service_1.GatewayPathService, gateway_auth_service_1.GatewayAuthService, gateway_metrics_service_1.GatewayMetricsService, route_sync_service_1.RouteSyncService];
|
|
20
|
+
const SERVICES = [gateway_path_service_1.GatewayPathService, gateway_auth_service_1.GatewayAuthService, gateway_metrics_service_1.GatewayMetricsService, gateway_metrics_rollup_service_1.GatewayMetricsRollupService, gateway_health_service_1.GatewayHealthService, gateway_retention_service_1.GatewayRetentionService, route_sync_service_1.RouteSyncService];
|
|
18
21
|
const MODULE_EXPORTS = [gateway_path_service_1.GatewayPathService, gateway_auth_service_1.GatewayAuthService, gateway_metrics_service_1.GatewayMetricsService];
|
|
19
22
|
let GatewayAdminModule = GatewayAdminModule_1 = class GatewayAdminModule {
|
|
20
23
|
static forRoot(providers, options = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-admin.module.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/gateway-admin.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuE;AAEvE,mCAA+C;AAC/C,0EAAqE;AACrE,gFAA2E;AAC3E,0EAAqE;AACrE,sEAAiE;AAEjE,MAAM,QAAQ,GAAe,CAAC,yCAAkB,EAAE,yCAAkB,EAAE,+CAAqB,EAAE,qCAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"gateway-admin.module.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/gateway-admin.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuE;AAEvE,mCAA+C;AAC/C,0EAAqE;AACrE,8EAAyE;AACzE,8FAAwF;AACxF,gFAA2E;AAC3E,0EAAqE;AACrE,oFAA+E;AAC/E,sEAAiE;AAEjE,MAAM,QAAQ,GAAe,CAAC,yCAAkB,EAAE,yCAAkB,EAAE,+CAAqB,EAAE,4DAA2B,EAAE,6CAAoB,EAAE,mDAAuB,EAAE,qCAAgB,CAAC,CAAC;AAC3L,MAAM,cAAc,GAAG,CAAC,yCAAkB,EAAE,yCAAkB,EAAE,+CAAqB,CAAC,CAAC;AAGhF,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAK7B,MAAM,CAAC,OAAO,CAAC,SAAqB,EAAE,UAAqC,EAAE;QAC3E,OAAO;YACL,MAAM,EAAE,oBAAkB;YAC1B,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,4BAAoB,EAAE,QAAQ,EAAE,OAAO,EAAE;gBACpD,GAAG,SAAS;gBACZ,GAAG,QAAQ;aACZ;YACD,OAAO,EAAE,cAAc;SACxB,CAAC;IACJ,CAAC;IAMD,MAAM,CAAC,YAAY,CAAC,YAKnB;QACC,MAAM,eAAe,GAAa;YAChC,OAAO,EAAE,4BAAoB;YAC7B,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,EAAE;SAClC,CAAC;QACF,OAAO;YACL,MAAM,EAAE,oBAAkB;YAC1B,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,EAAE;YACnC,SAAS,EAAE,CAAC,eAAe,EAAE,GAAG,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC;YAC5E,OAAO,EAAE,cAAc;SACxB,CAAC;IACJ,CAAC;CACF,CAAA;AAvCY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,kBAAkB,CAuC9B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const RLB_GW_HEALTH_INDICATORS = "RLB_GW_HEALTH_INDICATORS";
|
|
2
|
+
export interface GatewayHealthCheck {
|
|
3
|
+
status: 'up' | 'down';
|
|
4
|
+
detail?: any;
|
|
5
|
+
}
|
|
6
|
+
export interface GatewayHealthIndicator {
|
|
7
|
+
name: string;
|
|
8
|
+
check(): Promise<GatewayHealthCheck>;
|
|
9
|
+
}
|
|
10
|
+
export interface GatewayHealthReport {
|
|
11
|
+
status: 'up' | 'down';
|
|
12
|
+
broker: GatewayHealthCheck;
|
|
13
|
+
dependencies: Record<string, GatewayHealthCheck>;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/health.ts"],"names":[],"mappings":";;;AAGa,QAAA,wBAAwB,GAAG,0BAA0B,CAAC"}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
export * from './config/gateway-admin.config';
|
|
2
2
|
export * from './const';
|
|
3
3
|
export * from './gateway-admin.module';
|
|
4
|
+
export * from './health';
|
|
4
5
|
export * from './models';
|
|
5
6
|
export * from './repository/auth-provider.repository';
|
|
6
7
|
export * from './repository/http-metric.repository';
|
|
7
8
|
export * from './repository/http-path.repository';
|
|
8
9
|
export * from './repository/route-sync-log.repository';
|
|
9
10
|
export * from './services/gateway-auth.service';
|
|
11
|
+
export * from './services/gateway-health.service';
|
|
12
|
+
export * from './services/gateway-metrics-rollup.service';
|
|
10
13
|
export * from './services/gateway-metrics.service';
|
|
11
14
|
export * from './services/gateway-path.service';
|
|
15
|
+
export * from './services/gateway-retention.service';
|
|
12
16
|
export * from './services/route-sync.service';
|
|
17
|
+
export * from './util/metrics';
|
|
13
18
|
export * from './util/path-order';
|
|
14
19
|
export * from './util/route-diff';
|
|
15
20
|
export * from './util/route-manifest';
|
|
@@ -17,15 +17,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./config/gateway-admin.config"), exports);
|
|
18
18
|
__exportStar(require("./const"), exports);
|
|
19
19
|
__exportStar(require("./gateway-admin.module"), exports);
|
|
20
|
+
__exportStar(require("./health"), exports);
|
|
20
21
|
__exportStar(require("./models"), exports);
|
|
21
22
|
__exportStar(require("./repository/auth-provider.repository"), exports);
|
|
22
23
|
__exportStar(require("./repository/http-metric.repository"), exports);
|
|
23
24
|
__exportStar(require("./repository/http-path.repository"), exports);
|
|
24
25
|
__exportStar(require("./repository/route-sync-log.repository"), exports);
|
|
25
26
|
__exportStar(require("./services/gateway-auth.service"), exports);
|
|
27
|
+
__exportStar(require("./services/gateway-health.service"), exports);
|
|
28
|
+
__exportStar(require("./services/gateway-metrics-rollup.service"), exports);
|
|
26
29
|
__exportStar(require("./services/gateway-metrics.service"), exports);
|
|
27
30
|
__exportStar(require("./services/gateway-path.service"), exports);
|
|
31
|
+
__exportStar(require("./services/gateway-retention.service"), exports);
|
|
28
32
|
__exportStar(require("./services/route-sync.service"), exports);
|
|
33
|
+
__exportStar(require("./util/metrics"), exports);
|
|
29
34
|
__exportStar(require("./util/path-order"), exports);
|
|
30
35
|
__exportStar(require("./util/route-diff"), exports);
|
|
31
36
|
__exportStar(require("./util/route-manifest"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,0CAAwB;AACxB,yDAAuC;AACvC,2CAAyB;AACzB,wEAAsD;AACtD,sEAAoD;AACpD,oEAAkD;AAClD,yEAAuD;AACvD,kEAAgD;AAChD,qEAAmD;AACnD,kEAAgD;AAChD,gEAA8C;AAC9C,oDAAkC;AAClC,oDAAkC;AAClC,wDAAsC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,0CAAwB;AACxB,yDAAuC;AACvC,2CAAyB;AACzB,2CAAyB;AACzB,wEAAsD;AACtD,sEAAoD;AACpD,oEAAkD;AAClD,yEAAuD;AACvD,kEAAgD;AAChD,oEAAkD;AAClD,4EAA0D;AAC1D,qEAAmD;AACnD,kEAAgD;AAChD,uEAAqD;AACrD,gEAA8C;AAC9C,iDAA+B;AAC/B,oDAAkC;AAClC,oDAAkC;AAClC,wDAAsC"}
|
|
@@ -10,6 +10,7 @@ export interface HttpMetric<Id = string> {
|
|
|
10
10
|
lastStatus?: number;
|
|
11
11
|
lastCalledAt?: number;
|
|
12
12
|
totalDurationMs: number;
|
|
13
|
+
lastErrorCode?: string;
|
|
13
14
|
}
|
|
14
15
|
export interface TrackCallInput {
|
|
15
16
|
method: string;
|
|
@@ -20,6 +21,7 @@ export interface TrackCallInput {
|
|
|
20
21
|
mode?: string;
|
|
21
22
|
status?: number;
|
|
22
23
|
durationMs?: number;
|
|
24
|
+
code?: string;
|
|
23
25
|
ts?: number;
|
|
24
26
|
}
|
|
25
27
|
export interface HttpMetricPoint<Id = string> {
|
|
@@ -33,6 +35,7 @@ export interface HttpMetricPoint<Id = string> {
|
|
|
33
35
|
mode?: string;
|
|
34
36
|
status?: number;
|
|
35
37
|
durationMs?: number;
|
|
38
|
+
code?: string;
|
|
36
39
|
}
|
|
37
40
|
export interface MetricQuery {
|
|
38
41
|
method?: string;
|
|
@@ -53,12 +56,69 @@ export interface MetricSeriesBucket {
|
|
|
53
56
|
avgDurationMs: number;
|
|
54
57
|
minDurationMs?: number;
|
|
55
58
|
maxDurationMs?: number;
|
|
59
|
+
p50?: number;
|
|
60
|
+
p95?: number;
|
|
61
|
+
p99?: number;
|
|
62
|
+
byStatus?: MetricStatusClasses;
|
|
63
|
+
}
|
|
64
|
+
export type MetricStatusClass = '2xx' | '3xx' | '4xx' | '5xx';
|
|
65
|
+
export type MetricStatusClasses = Record<MetricStatusClass, number>;
|
|
66
|
+
export interface MetricTopEntry {
|
|
67
|
+
method: string;
|
|
68
|
+
route: string;
|
|
69
|
+
name?: string;
|
|
70
|
+
count: number;
|
|
71
|
+
errorCount: number;
|
|
72
|
+
errorRate: number;
|
|
73
|
+
avgDurationMs: number;
|
|
74
|
+
p95?: number;
|
|
75
|
+
}
|
|
76
|
+
export interface MetricSummary {
|
|
77
|
+
totalRequests: number;
|
|
78
|
+
totalErrors: number;
|
|
79
|
+
errorRate: number;
|
|
80
|
+
avgDurationMs: number;
|
|
81
|
+
p50?: number;
|
|
82
|
+
p95?: number;
|
|
83
|
+
p99?: number;
|
|
84
|
+
byStatus: MetricStatusClasses;
|
|
85
|
+
topByTraffic: MetricTopEntry[];
|
|
86
|
+
topByErrors: MetricTopEntry[];
|
|
87
|
+
topByLatency: MetricTopEntry[];
|
|
88
|
+
}
|
|
89
|
+
export interface HttpMetricRollup<Id = string> {
|
|
90
|
+
_id?: Id;
|
|
91
|
+
bucketStart: number;
|
|
92
|
+
granularityMs: number;
|
|
93
|
+
method?: string;
|
|
94
|
+
route?: string;
|
|
95
|
+
name?: string;
|
|
96
|
+
count: number;
|
|
97
|
+
errorCount: number;
|
|
98
|
+
totalDurationMs: number;
|
|
99
|
+
minDurationMs?: number;
|
|
100
|
+
maxDurationMs?: number;
|
|
101
|
+
byStatus?: MetricStatusClasses;
|
|
102
|
+
}
|
|
103
|
+
export interface RouteFieldChange {
|
|
104
|
+
field: string;
|
|
105
|
+
added: any[];
|
|
106
|
+
removed: any[];
|
|
107
|
+
}
|
|
108
|
+
export interface RouteSyncLogQuery {
|
|
109
|
+
actor?: string;
|
|
110
|
+
service?: string;
|
|
111
|
+
event?: string;
|
|
112
|
+
routeKey?: string;
|
|
113
|
+
from?: number;
|
|
114
|
+
to?: number;
|
|
56
115
|
}
|
|
57
116
|
export interface RouteSyncLogEntry<Id = string> {
|
|
58
117
|
_id?: Id;
|
|
59
118
|
ts: number;
|
|
60
119
|
service: string;
|
|
61
120
|
level: 'info' | 'warn' | 'error';
|
|
121
|
+
actor?: string;
|
|
62
122
|
event: string;
|
|
63
123
|
routeKey?: string;
|
|
64
124
|
method?: string;
|
|
@@ -67,5 +127,6 @@ export interface RouteSyncLogEntry<Id = string> {
|
|
|
67
127
|
action?: string;
|
|
68
128
|
owner?: string;
|
|
69
129
|
conflictWith?: string;
|
|
130
|
+
changes?: RouteFieldChange[];
|
|
70
131
|
message?: string;
|
|
71
132
|
}
|
|
@@ -11,4 +11,5 @@ export declare abstract class AuthProviderRepository {
|
|
|
11
11
|
abstract removeByName(name: string): Promise<StoredAuthProvider>;
|
|
12
12
|
abstract listEnabled(): Promise<HandlerAuthConfig[]>;
|
|
13
13
|
abstract filterPaginated(filter: Record<string, any>, page?: number, limit?: number): Promise<PaginationModel<StoredAuthProvider>>;
|
|
14
|
+
abstract search(q?: string, page?: number, limit?: number): Promise<PaginationModel<StoredAuthProvider>>;
|
|
14
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-provider.repository.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/repository/auth-provider.repository.ts"],"names":[],"mappings":";;;AAOA,MAAsB,sBAAsB;
|
|
1
|
+
{"version":3,"file":"auth-provider.repository.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/repository/auth-provider.repository.ts"],"names":[],"mappings":";;;AAOA,MAAsB,sBAAsB;CAY3C;AAZD,wDAYC"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import { HttpMetric, HttpMetricPoint,
|
|
1
|
+
import { HttpMetric, HttpMetricPoint, HttpMetricRollup, MetricQuery, MetricSeriesQuery, TrackCallInput } from '../models';
|
|
2
2
|
export declare abstract class HttpMetricRepository {
|
|
3
3
|
abstract increment(input: TrackCallInput): Promise<void>;
|
|
4
4
|
abstract list(route?: string): Promise<(HttpMetric & {
|
|
5
5
|
avgDurationMs: number;
|
|
6
|
+
errorRate: number;
|
|
6
7
|
})[]>;
|
|
7
8
|
abstract record(point: HttpMetricPoint): Promise<void>;
|
|
8
9
|
abstract points(query: MetricQuery): Promise<HttpMetricPoint[]>;
|
|
9
|
-
abstract
|
|
10
|
+
abstract recordRollups(rollups: HttpMetricRollup[]): Promise<void>;
|
|
11
|
+
abstract rollupSeries(query: MetricSeriesQuery): Promise<HttpMetricRollup[]>;
|
|
12
|
+
abstract pruneRollups(olderThanTs: number): Promise<number>;
|
|
13
|
+
abstract prunePoints(olderThanTs: number): Promise<number>;
|
|
10
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-metric.repository.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/repository/http-metric.repository.ts"],"names":[],"mappings":";;;AASA,MAAsB,oBAAoB;
|
|
1
|
+
{"version":3,"file":"http-metric.repository.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/repository/http-metric.repository.ts"],"names":[],"mappings":";;;AASA,MAAsB,oBAAoB;CAyBzC;AAzBD,oDAyBC"}
|
|
@@ -5,6 +5,8 @@ export type StoredHttpPath = Partial<PathDefinition> & {
|
|
|
5
5
|
enabled?: boolean;
|
|
6
6
|
owner?: string;
|
|
7
7
|
routeKey?: string;
|
|
8
|
+
source?: 'microservice' | 'user';
|
|
9
|
+
modified?: boolean;
|
|
8
10
|
};
|
|
9
11
|
export declare abstract class HttpPathRepository {
|
|
10
12
|
abstract insert(model: StoredHttpPath): Promise<StoredHttpPath>;
|
|
@@ -15,6 +17,7 @@ export declare abstract class HttpPathRepository {
|
|
|
15
17
|
abstract listEnabled(): Promise<PathDefinition[]>;
|
|
16
18
|
abstract filterPaginated(filter: Record<string, any>, page?: number, limit?: number): Promise<PaginationModel<StoredHttpPath>>;
|
|
17
19
|
abstract filter(filter: Record<string, any>): Promise<StoredHttpPath[]>;
|
|
20
|
+
abstract search(q?: string, page?: number, limit?: number): Promise<PaginationModel<StoredHttpPath>>;
|
|
18
21
|
findByOwner(owner: string): Promise<StoredHttpPath[]>;
|
|
19
22
|
findByRouteKey(routeKey: string): Promise<StoredHttpPath[]>;
|
|
20
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-path.repository.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/repository/http-path.repository.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"http-path.repository.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/repository/http-path.repository.ts"],"names":[],"mappings":";;;AAmBA,MAAsB,kBAAkB;IActC,WAAW,CAAC,KAAa;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAChC,CAAC;IAID,cAAc,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnC,CAAC;CACF;AAvBD,gDAuBC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PaginationModel } from '../../../common';
|
|
2
|
+
import { RouteSyncLogEntry, RouteSyncLogQuery } from '../models';
|
|
2
3
|
export declare abstract class RouteSyncLogRepository {
|
|
3
4
|
abstract insert(entry: RouteSyncLogEntry): Promise<RouteSyncLogEntry>;
|
|
4
5
|
abstract list(limit?: number): Promise<RouteSyncLogEntry[]>;
|
|
6
|
+
abstract query(filter: RouteSyncLogQuery, page?: number, limit?: number): Promise<PaginationModel<RouteSyncLogEntry>>;
|
|
7
|
+
abstract prune(olderThanTs: number): Promise<number>;
|
|
5
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-sync-log.repository.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/repository/route-sync-log.repository.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"route-sync-log.repository.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/repository/route-sync-log.repository.ts"],"names":[],"mappings":";;;AAOA,MAAsB,sBAAsB;CAO3C;AAPD,wDAOC"}
|
|
@@ -9,5 +9,6 @@ export declare class GatewayAuthService {
|
|
|
9
9
|
remove(name: string): Promise<StoredAuthProvider>;
|
|
10
10
|
get(name: string): Promise<StoredAuthProvider>;
|
|
11
11
|
list(page?: number, limit?: number): Promise<PaginationModel<StoredAuthProvider>>;
|
|
12
|
+
search(q?: string, page?: number, limit?: number): Promise<PaginationModel<StoredAuthProvider>>;
|
|
12
13
|
export(): Promise<HandlerAuthConfig[]>;
|
|
13
14
|
}
|