@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.
Files changed (110) hide show
  1. package/README.md +44 -45
  2. package/modules/acl/auth-match.d.ts +6 -0
  3. package/modules/acl/auth-match.js +10 -0
  4. package/modules/acl/auth-match.js.map +1 -0
  5. package/modules/acl/config/acl.config.d.ts +1 -0
  6. package/modules/acl/const.d.ts +5 -2
  7. package/modules/acl/const.js +6 -3
  8. package/modules/acl/const.js.map +1 -1
  9. package/modules/acl/index.d.ts +1 -0
  10. package/modules/acl/index.js +1 -0
  11. package/modules/acl/index.js.map +1 -1
  12. package/modules/acl/repository/acl-action.repository.d.ts +1 -0
  13. package/modules/acl/repository/acl-action.repository.js.map +1 -1
  14. package/modules/acl/repository/acl-grant.repository.d.ts +1 -0
  15. package/modules/acl/repository/acl-grant.repository.js.map +1 -1
  16. package/modules/acl/repository/acl-role.repository.d.ts +1 -0
  17. package/modules/acl/repository/acl-role.repository.js.map +1 -1
  18. package/modules/acl/services/acl-management.service.d.ts +10 -3
  19. package/modules/acl/services/acl-management.service.js +60 -10
  20. package/modules/acl/services/acl-management.service.js.map +1 -1
  21. package/modules/acl/services/acl.service.d.ts +3 -4
  22. package/modules/acl/services/acl.service.js +24 -46
  23. package/modules/acl/services/acl.service.js.map +1 -1
  24. package/modules/broker/config/decorator-paths.js +2 -2
  25. package/modules/broker/config/decorator-paths.js.map +1 -1
  26. package/modules/broker/decorators/broker-action.decorator.d.ts +1 -1
  27. package/modules/broker/decorators/broker-action.decorator.js +2 -2
  28. package/modules/broker/decorators/broker-action.decorator.js.map +1 -1
  29. package/modules/broker/services/shutdown-state.service.d.ts +1 -0
  30. package/modules/broker/services/shutdown-state.service.js +12 -12
  31. package/modules/broker/services/shutdown-state.service.js.map +1 -1
  32. package/modules/gateway-admin/config/gateway-admin.config.d.ts +2 -0
  33. package/modules/gateway-admin/const.d.ts +7 -0
  34. package/modules/gateway-admin/const.js +7 -0
  35. package/modules/gateway-admin/const.js.map +1 -1
  36. package/modules/gateway-admin/gateway-admin.module.js +4 -1
  37. package/modules/gateway-admin/gateway-admin.module.js.map +1 -1
  38. package/modules/gateway-admin/health.d.ts +14 -0
  39. package/modules/gateway-admin/health.js +5 -0
  40. package/modules/gateway-admin/health.js.map +1 -0
  41. package/modules/gateway-admin/index.d.ts +5 -0
  42. package/modules/gateway-admin/index.js +5 -0
  43. package/modules/gateway-admin/index.js.map +1 -1
  44. package/modules/gateway-admin/models.d.ts +61 -0
  45. package/modules/gateway-admin/repository/auth-provider.repository.d.ts +1 -0
  46. package/modules/gateway-admin/repository/auth-provider.repository.js.map +1 -1
  47. package/modules/gateway-admin/repository/http-metric.repository.d.ts +6 -2
  48. package/modules/gateway-admin/repository/http-metric.repository.js.map +1 -1
  49. package/modules/gateway-admin/repository/http-path.repository.d.ts +3 -0
  50. package/modules/gateway-admin/repository/http-path.repository.js.map +1 -1
  51. package/modules/gateway-admin/repository/route-sync-log.repository.d.ts +4 -1
  52. package/modules/gateway-admin/repository/route-sync-log.repository.js.map +1 -1
  53. package/modules/gateway-admin/services/gateway-auth.service.d.ts +1 -0
  54. package/modules/gateway-admin/services/gateway-auth.service.js +12 -0
  55. package/modules/gateway-admin/services/gateway-auth.service.js.map +1 -1
  56. package/modules/gateway-admin/services/gateway-health.service.d.ts +10 -0
  57. package/modules/gateway-admin/services/gateway-health.service.js +64 -0
  58. package/modules/gateway-admin/services/gateway-health.service.js.map +1 -0
  59. package/modules/gateway-admin/services/gateway-metrics-rollup.service.d.ts +13 -0
  60. package/modules/gateway-admin/services/gateway-metrics-rollup.service.js +63 -0
  61. package/modules/gateway-admin/services/gateway-metrics-rollup.service.js.map +1 -0
  62. package/modules/gateway-admin/services/gateway-metrics.service.d.ts +5 -4
  63. package/modules/gateway-admin/services/gateway-metrics.service.js +56 -17
  64. package/modules/gateway-admin/services/gateway-metrics.service.js.map +1 -1
  65. package/modules/gateway-admin/services/gateway-path.service.d.ts +11 -4
  66. package/modules/gateway-admin/services/gateway-path.service.js +79 -11
  67. package/modules/gateway-admin/services/gateway-path.service.js.map +1 -1
  68. package/modules/gateway-admin/services/gateway-retention.service.d.ts +16 -0
  69. package/modules/gateway-admin/services/gateway-retention.service.js +71 -0
  70. package/modules/gateway-admin/services/gateway-retention.service.js.map +1 -0
  71. package/modules/gateway-admin/services/route-sync.service.js +12 -5
  72. package/modules/gateway-admin/services/route-sync.service.js.map +1 -1
  73. package/modules/gateway-admin/util/metrics.d.ts +10 -0
  74. package/modules/gateway-admin/util/metrics.js +170 -0
  75. package/modules/gateway-admin/util/metrics.js.map +1 -0
  76. package/modules/gateway-admin/util/route-diff.d.ts +7 -0
  77. package/modules/gateway-admin/util/route-diff.js +7 -2
  78. package/modules/gateway-admin/util/route-diff.js.map +1 -1
  79. package/modules/gateway-admin/util/route-manifest.d.ts +3 -0
  80. package/modules/gateway-admin/util/route-manifest.js +36 -1
  81. package/modules/gateway-admin/util/route-manifest.js.map +1 -1
  82. package/modules/proxy/config/path-definition.config.d.ts +2 -2
  83. package/modules/proxy/services/acl.service.d.ts +2 -2
  84. package/modules/proxy/services/acl.service.js.map +1 -1
  85. package/modules/proxy/services/http-auth-handler.service.d.ts +6 -4
  86. package/modules/proxy/services/http-auth-handler.service.js +15 -9
  87. package/modules/proxy/services/http-auth-handler.service.js.map +1 -1
  88. package/modules/proxy/services/http-handler.service.d.ts +1 -0
  89. package/modules/proxy/services/http-handler.service.js +28 -35
  90. package/modules/proxy/services/http-handler.service.js.map +1 -1
  91. package/modules/proxy/services/metrics-hook.d.ts +1 -0
  92. package/modules/proxy/services/websocket.service.js +5 -5
  93. package/modules/proxy/services/websocket.service.js.map +1 -1
  94. package/package.json +1 -1
  95. package/schematics/nest-add/files/acl/src/modules/database/repository/acl.repository.ts +3 -0
  96. package/schematics/nest-add/files/db-core/src/modules/database/repository/in-memory-collection.ts +29 -0
  97. package/schematics/nest-add/files/gateway-admin/src/modules/database/repository/gateway.repository.ts +48 -20
  98. package/schematics/nest-add/files/gateway-admin/src/modules/database/repository/route-sync.repository.ts +24 -1
  99. package/schematics/nest-add/files/skills/rlb-amqp/SKILL.md +3 -3
  100. package/schematics/nest-add/files/skills/rlb-amqp/references/config-schema.md +18 -14
  101. package/schematics/nest-add/files/skills/rlb-amqp/references/gotchas.md +42 -17
  102. package/schematics/nest-add/files/skills/rlb-amqp-acl/SKILL.md +57 -39
  103. package/schematics/nest-add/files/skills/rlb-amqp-add-action/SKILL.md +4 -3
  104. package/schematics/nest-add/files/skills/rlb-amqp-add-route/SKILL.md +20 -14
  105. package/schematics/nest-add/files/skills/rlb-amqp-add-ws-event/SKILL.md +7 -6
  106. package/schematics/nest-add/files/skills/rlb-amqp-gateway-admin/SKILL.md +49 -9
  107. package/schematics/nest-add/files/skills/rlb-amqp-scaffold/SKILL.md +4 -4
  108. package/schematics/nest-add/index.js +78 -9
  109. package/schematics/nest-add/index.js.map +1 -1
  110. package/schematics/nest-add/index.ts +78 -9
@@ -44,6 +44,9 @@ let GatewayAuthService = GatewayAuthService_1 = class GatewayAuthService {
44
44
  async list(page, limit) {
45
45
  return this.repo.filterPaginated({}, Number(page) || 1, Number(limit) || 10);
46
46
  }
47
+ async search(q, page, limit) {
48
+ return this.repo.search(q, Number(page) || 1, Number(limit) || 10);
49
+ }
47
50
  async export() {
48
51
  return this.repo.listEnabled();
49
52
  }
@@ -79,6 +82,15 @@ __decorate([
79
82
  __metadata("design:paramtypes", [Number, Number]),
80
83
  __metadata("design:returntype", Promise)
81
84
  ], GatewayAuthService.prototype, "list", null);
85
+ __decorate([
86
+ (0, broker_1.BrokerAction)(const_1.GATEWAY_ADMIN_TOPIC, const_1.GW_ADMIN_ACTIONS.authSearch, 'rpc'),
87
+ __param(0, (0, broker_1.BrokerParam)('body', 'q')),
88
+ __param(1, (0, broker_1.BrokerParam)('body', 'page')),
89
+ __param(2, (0, broker_1.BrokerParam)('body', 'limit')),
90
+ __metadata("design:type", Function),
91
+ __metadata("design:paramtypes", [String, Number, Number]),
92
+ __metadata("design:returntype", Promise)
93
+ ], GatewayAuthService.prototype, "search", null);
82
94
  __decorate([
83
95
  (0, broker_1.BrokerAction)(const_1.GATEWAY_ADMIN_TOPIC, const_1.GW_ADMIN_ACTIONS.authExport, 'rpc'),
84
96
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-auth.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/services/gateway-auth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,4CAAmE;AAEnE,yCAAyD;AACzD,oCAAiE;AACjE,qFAAoG;AAG7F,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAG7B,YAA6B,IAA4B;QAA5B,SAAI,GAAJ,IAAI,CAAwB;QAFxC,WAAM,GAAG,IAAI,eAAM,CAAC,oBAAkB,CAAC,IAAI,CAAC,CAAC;IAED,CAAC;IAIxD,AAAN,KAAK,CAAC,MAAM,CAA8B,IAAY,EAA4B,KAAyB;QACzG,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,wBAAe,CAAC,kBAAkB,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,EAAE,IAAI;YAAE,MAAM,IAAI,wBAAe,CAAC,kBAAkB,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAA8B,IAAY;QACpD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,wBAAe,CAAC,kBAAkB,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAGK,AAAN,KAAK,CAAC,GAAG,CAA8B,IAAY;QACjD,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,wBAAe,CAAC,kBAAkB,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAGK,AAAN,KAAK,CAAC,IAAI,CAA8B,IAAa,EAAgC,KAAc;QACjG,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/E,CAAC;IAIK,AAAN,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;CACF,CAAA;AAnCY,gDAAkB;AAOvB;IADL,IAAA,qBAAY,EAAC,2BAAmB,EAAE,wBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC;IACxD,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAAgB,WAAA,IAAA,oBAAW,EAAC,WAAW,CAAC,CAAA;;;;gDAIhF;AAGK;IADL,IAAA,qBAAY,EAAC,2BAAmB,EAAE,wBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC;IACxD,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;;;;gDAGxC;AAGK;IADL,IAAA,qBAAY,EAAC,2BAAmB,EAAE,wBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC;IACxD,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;;;;6CAGrC;AAGK;IADL,IAAA,qBAAY,EAAC,2BAAmB,EAAE,wBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC;IACxD,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAAiB,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,OAAO,CAAC,CAAA;;;;8CAEnF;AAIK;IADL,IAAA,qBAAY,EAAC,2BAAmB,EAAE,wBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC;;;;gDAGrE;6BAlCU,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAIwB,iDAAsB;GAH9C,kBAAkB,CAmC9B"}
1
+ {"version":3,"file":"gateway-auth.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/services/gateway-auth.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { AmqpConnection } from '../../../amqp-lib';
2
+ import { GatewayHealthIndicator, GatewayHealthReport } from '../health';
3
+ export declare class GatewayHealthService {
4
+ private readonly amqp;
5
+ private readonly indicators?;
6
+ private readonly logger;
7
+ constructor(amqp: AmqpConnection, indicators?: GatewayHealthIndicator[]);
8
+ health(): Promise<GatewayHealthReport>;
9
+ private brokerStatus;
10
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var GatewayHealthService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.GatewayHealthService = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const amqp_lib_1 = require("../../../amqp-lib");
19
+ const broker_1 = require("../../broker");
20
+ const const_1 = require("../const");
21
+ const health_1 = require("../health");
22
+ let GatewayHealthService = GatewayHealthService_1 = class GatewayHealthService {
23
+ constructor(amqp, indicators) {
24
+ this.amqp = amqp;
25
+ this.indicators = indicators;
26
+ this.logger = new common_1.Logger(GatewayHealthService_1.name);
27
+ }
28
+ async health() {
29
+ const broker = this.brokerStatus();
30
+ const dependencies = {};
31
+ for (const indicator of this.indicators ?? []) {
32
+ try {
33
+ dependencies[indicator.name] = await indicator.check();
34
+ }
35
+ catch (e) {
36
+ dependencies[indicator.name] = { status: 'down', detail: e?.message };
37
+ }
38
+ }
39
+ const allUp = broker.status === 'up' && Object.values(dependencies).every((d) => d.status === 'up');
40
+ return { status: allUp ? 'up' : 'down', broker, dependencies };
41
+ }
42
+ brokerStatus() {
43
+ try {
44
+ return { status: this.amqp.connected ? 'up' : 'down' };
45
+ }
46
+ catch (e) {
47
+ return { status: 'down', detail: e?.message };
48
+ }
49
+ }
50
+ };
51
+ exports.GatewayHealthService = GatewayHealthService;
52
+ __decorate([
53
+ (0, broker_1.BrokerAction)(const_1.GATEWAY_ADMIN_TOPIC, const_1.GW_ADMIN_ACTIONS.health, 'rpc'),
54
+ __metadata("design:type", Function),
55
+ __metadata("design:paramtypes", []),
56
+ __metadata("design:returntype", Promise)
57
+ ], GatewayHealthService.prototype, "health", null);
58
+ exports.GatewayHealthService = GatewayHealthService = GatewayHealthService_1 = __decorate([
59
+ (0, common_1.Injectable)(),
60
+ __param(1, (0, common_1.Optional)()),
61
+ __param(1, (0, common_1.Inject)(health_1.RLB_GW_HEALTH_INDICATORS)),
62
+ __metadata("design:paramtypes", [amqp_lib_1.AmqpConnection, Array])
63
+ ], GatewayHealthService);
64
+ //# sourceMappingURL=gateway-health.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-health.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/services/gateway-health.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAsE;AACtE,gDAAmD;AACnD,yCAA4C;AAC5C,oCAAiE;AACjE,sCAAsH;AAG/G,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAG/B,YACmB,IAAoB,EACS,UAAsD;QADnF,SAAI,GAAJ,IAAI,CAAgB;QAC0B,eAAU,GAAV,UAAU,CAA2B;QAJrF,WAAM,GAAG,IAAI,eAAM,CAAC,sBAAoB,CAAC,IAAI,CAAC,CAAC;IAK5D,CAAC;IASC,AAAN,KAAK,CAAC,MAAM;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACnC,MAAM,YAAY,GAAuC,EAAE,CAAC;QAC5D,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;YACzD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAG,CAAW,EAAE,OAAO,EAAE,CAAC;YACnF,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;QACpG,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACjE,CAAC;IAGO,YAAY;QAClB,IAAI,CAAC;YACH,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACzD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAG,CAAW,EAAE,OAAO,EAAE,CAAC;QAC3D,CAAC;IACH,CAAC;CACF,CAAA;AArCY,oDAAoB;AAezB;IADL,IAAA,qBAAY,EAAC,2BAAmB,EAAE,wBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC;;;;kDAajE;+BA3BU,oBAAoB;IADhC,IAAA,mBAAU,GAAE;IAMR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,eAAM,EAAC,iCAAwB,CAAC,CAAA;qCADtB,yBAAc;GAJ5B,oBAAoB,CAqChC"}
@@ -0,0 +1,13 @@
1
+ import { OnApplicationBootstrap, OnModuleDestroy } from '@nestjs/common';
2
+ import { GatewayAdminModuleOptions } from '../config/gateway-admin.config';
3
+ import { HttpMetricRepository } from '../repository/http-metric.repository';
4
+ export declare class GatewayMetricsRollupService implements OnApplicationBootstrap, OnModuleDestroy {
5
+ private readonly metrics;
6
+ private readonly logger;
7
+ private readonly enabled;
8
+ private timer?;
9
+ constructor(metrics: HttpMetricRepository, options?: GatewayAdminModuleOptions);
10
+ onApplicationBootstrap(): void;
11
+ onModuleDestroy(): void;
12
+ private rollup;
13
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var GatewayMetricsRollupService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.GatewayMetricsRollupService = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const const_1 = require("../const");
19
+ const http_metric_repository_1 = require("../repository/http-metric.repository");
20
+ const metrics_1 = require("../util/metrics");
21
+ const HOUR_MS = 3_600_000;
22
+ const DEFAULT_ROLLUP_RETENTION_DAYS = 365;
23
+ let GatewayMetricsRollupService = GatewayMetricsRollupService_1 = class GatewayMetricsRollupService {
24
+ constructor(metrics, options) {
25
+ this.metrics = metrics;
26
+ this.logger = new common_1.Logger(GatewayMetricsRollupService_1.name);
27
+ this.enabled = (options?.rollupRetentionDays ?? DEFAULT_ROLLUP_RETENTION_DAYS) > 0;
28
+ }
29
+ onApplicationBootstrap() {
30
+ if (!this.enabled) {
31
+ this.logger.log('[rollup] disabled (rollupRetentionDays <= 0)');
32
+ return;
33
+ }
34
+ this.timer = setInterval(() => void this.rollup(), HOUR_MS);
35
+ this.timer.unref?.();
36
+ }
37
+ onModuleDestroy() {
38
+ if (this.timer)
39
+ clearInterval(this.timer);
40
+ }
41
+ async rollup() {
42
+ const hourStart = Math.floor(Date.now() / HOUR_MS) * HOUR_MS - HOUR_MS;
43
+ try {
44
+ const points = await this.metrics.points({ from: hourStart, to: hourStart + HOUR_MS - 1 });
45
+ if (!points.length)
46
+ return;
47
+ const rollups = (0, metrics_1.aggregateRollups)(points, HOUR_MS);
48
+ await this.metrics.recordRollups(rollups);
49
+ this.logger.log(`[rollup] ${points.length} point(s) → ${rollups.length} hourly rollup(s) for ${new Date(hourStart).toISOString()}`);
50
+ }
51
+ catch (e) {
52
+ this.logger.warn(`[rollup] failed: ${e?.message}`);
53
+ }
54
+ }
55
+ };
56
+ exports.GatewayMetricsRollupService = GatewayMetricsRollupService;
57
+ exports.GatewayMetricsRollupService = GatewayMetricsRollupService = GatewayMetricsRollupService_1 = __decorate([
58
+ (0, common_1.Injectable)(),
59
+ __param(1, (0, common_1.Optional)()),
60
+ __param(1, (0, common_1.Inject)(const_1.RLB_GW_ADMIN_OPTIONS)),
61
+ __metadata("design:paramtypes", [http_metric_repository_1.HttpMetricRepository, Object])
62
+ ], GatewayMetricsRollupService);
63
+ //# sourceMappingURL=gateway-metrics-rollup.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-metrics-rollup.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/services/gateway-metrics-rollup.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA+G;AAE/G,oCAAgD;AAChD,iFAA4E;AAC5E,6CAAmD;AAEnD,MAAM,OAAO,GAAG,SAAS,CAAC;AAC1B,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAQnC,IAAM,2BAA2B,mCAAjC,MAAM,2BAA2B;IAKtC,YACmB,OAA6B,EACJ,OAAmC;QAD5D,YAAO,GAAP,OAAO,CAAsB;QAL/B,WAAM,GAAG,IAAI,eAAM,CAAC,6BAA2B,CAAC,IAAI,CAAC,CAAC;QAQrE,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,mBAAmB,IAAI,6BAA6B,CAAC,GAAG,CAAC,CAAC;IACrF,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IACvB,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,KAAK;YAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAGO,KAAK,CAAC,MAAM;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3F,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,OAAO;YAC3B,MAAM,OAAO,GAAG,IAAA,0BAAgB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,MAAM,eAAe,OAAO,CAAC,MAAM,yBAAyB,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACtI,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAqB,CAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF,CAAA;AAtCY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;IAQR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,eAAM,EAAC,4BAAoB,CAAC,CAAA;qCADf,6CAAoB;GANrC,2BAA2B,CAsCvC"}
@@ -1,4 +1,4 @@
1
- import { HttpMetric, HttpMetricPoint, MetricSeriesBucket, TrackCallInput } from '../models';
1
+ import { HttpMetric, HttpMetricPoint, HttpMetricRollup, MetricSeriesBucket, MetricSummary, TrackCallInput } from '../models';
2
2
  import { HttpMetricRepository } from '../repository/http-metric.repository';
3
3
  export declare class GatewayMetricsService {
4
4
  private readonly repo;
@@ -7,10 +7,11 @@ export declare class GatewayMetricsService {
7
7
  track(input: TrackCallInput): Promise<void>;
8
8
  get(route?: string): Promise<(HttpMetric & {
9
9
  avgDurationMs: number;
10
+ errorRate: number;
10
11
  })[]>;
11
- health(): Promise<{
12
- status: string;
13
- }>;
14
12
  series(bucketMs?: number | string, from?: number | string, to?: number | string, method?: string, route?: string, name?: string): Promise<MetricSeriesBucket[]>;
15
13
  points(method?: string, route?: string, from?: number | string, to?: number | string, limit?: number | string): Promise<HttpMetricPoint[]>;
14
+ summary(from?: number | string, to?: number | string, method?: string, route?: string, name?: string, topN?: number | string): Promise<MetricSummary>;
15
+ prometheus(route?: string): Promise<string>;
16
+ rollups(bucketMs?: number | string, from?: number | string, to?: number | string, method?: string, route?: string, name?: string): Promise<HttpMetricRollup[]>;
16
17
  }
@@ -18,6 +18,7 @@ const common_1 = require("@nestjs/common");
18
18
  const broker_1 = require("../../broker");
19
19
  const const_1 = require("../const");
20
20
  const http_metric_repository_1 = require("../repository/http-metric.repository");
21
+ const metrics_1 = require("../util/metrics");
21
22
  let GatewayMetricsService = GatewayMetricsService_1 = class GatewayMetricsService {
22
23
  constructor(repo) {
23
24
  this.repo = repo;
@@ -38,6 +39,7 @@ let GatewayMetricsService = GatewayMetricsService_1 = class GatewayMetricsServic
38
39
  mode: input.mode,
39
40
  status: input.status,
40
41
  durationMs: input.durationMs,
42
+ code: input.code,
41
43
  });
42
44
  }
43
45
  catch (error) {
@@ -47,18 +49,11 @@ let GatewayMetricsService = GatewayMetricsService_1 = class GatewayMetricsServic
47
49
  async get(route) {
48
50
  return this.repo.list(route);
49
51
  }
50
- async health() {
51
- return { status: 'ok' };
52
- }
53
52
  async series(bucketMs, from, to, method, route, name) {
54
- return this.repo.series({
55
- bucketMs: Number(bucketMs) || 60_000,
56
- from: from != null ? Number(from) : undefined,
57
- to: to != null ? Number(to) : undefined,
58
- method,
59
- route,
60
- name,
61
- });
53
+ const f = from != null ? Number(from) : undefined;
54
+ const t = to != null ? Number(to) : undefined;
55
+ const points = await this.repo.points({ method, route, name, from: f, to: t });
56
+ return (0, metrics_1.buildSeries)(points, { bucketMs: Number(bucketMs) || 60_000, from: f, to: t, method, route, name });
62
57
  }
63
58
  async points(method, route, from, to, limit) {
64
59
  return this.repo.points({
@@ -69,6 +64,25 @@ let GatewayMetricsService = GatewayMetricsService_1 = class GatewayMetricsServic
69
64
  limit: limit != null ? Number(limit) : undefined,
70
65
  });
71
66
  }
67
+ async summary(from, to, method, route, name, topN) {
68
+ const points = await this.repo.points({
69
+ method, route, name,
70
+ from: from != null ? Number(from) : undefined,
71
+ to: to != null ? Number(to) : undefined,
72
+ });
73
+ return (0, metrics_1.buildSummary)(points, Number(topN) || 10);
74
+ }
75
+ async prometheus(route) {
76
+ return (0, metrics_1.toPrometheus)(await this.repo.list(route));
77
+ }
78
+ async rollups(bucketMs, from, to, method, route, name) {
79
+ return this.repo.rollupSeries({
80
+ bucketMs: Number(bucketMs) || 3_600_000,
81
+ from: from != null ? Number(from) : undefined,
82
+ to: to != null ? Number(to) : undefined,
83
+ method, route, name,
84
+ });
85
+ }
72
86
  };
73
87
  exports.GatewayMetricsService = GatewayMetricsService;
74
88
  __decorate([
@@ -85,12 +99,6 @@ __decorate([
85
99
  __metadata("design:paramtypes", [String]),
86
100
  __metadata("design:returntype", Promise)
87
101
  ], GatewayMetricsService.prototype, "get", null);
88
- __decorate([
89
- (0, broker_1.BrokerAction)(const_1.GATEWAY_ADMIN_TOPIC, const_1.GW_ADMIN_ACTIONS.health, 'rpc'),
90
- __metadata("design:type", Function),
91
- __metadata("design:paramtypes", []),
92
- __metadata("design:returntype", Promise)
93
- ], GatewayMetricsService.prototype, "health", null);
94
102
  __decorate([
95
103
  (0, broker_1.BrokerAction)(const_1.GATEWAY_ADMIN_TOPIC, const_1.GW_ADMIN_ACTIONS.metricsSeries, 'rpc'),
96
104
  __param(0, (0, broker_1.BrokerParam)('body', 'bucketMs')),
@@ -114,6 +122,37 @@ __decorate([
114
122
  __metadata("design:paramtypes", [String, String, Object, Object, Object]),
115
123
  __metadata("design:returntype", Promise)
116
124
  ], GatewayMetricsService.prototype, "points", null);
125
+ __decorate([
126
+ (0, broker_1.BrokerAction)(const_1.GATEWAY_ADMIN_TOPIC, const_1.GW_ADMIN_ACTIONS.metricsSummary, 'rpc'),
127
+ __param(0, (0, broker_1.BrokerParam)('body', 'from')),
128
+ __param(1, (0, broker_1.BrokerParam)('body', 'to')),
129
+ __param(2, (0, broker_1.BrokerParam)('body', 'method')),
130
+ __param(3, (0, broker_1.BrokerParam)('body', 'route')),
131
+ __param(4, (0, broker_1.BrokerParam)('body', 'name')),
132
+ __param(5, (0, broker_1.BrokerParam)('body', 'topN')),
133
+ __metadata("design:type", Function),
134
+ __metadata("design:paramtypes", [Object, Object, String, String, String, Object]),
135
+ __metadata("design:returntype", Promise)
136
+ ], GatewayMetricsService.prototype, "summary", null);
137
+ __decorate([
138
+ (0, broker_1.BrokerAction)(const_1.GATEWAY_ADMIN_TOPIC, const_1.GW_ADMIN_ACTIONS.metricsPrometheus, 'rpc'),
139
+ __param(0, (0, broker_1.BrokerParam)('body', 'route')),
140
+ __metadata("design:type", Function),
141
+ __metadata("design:paramtypes", [String]),
142
+ __metadata("design:returntype", Promise)
143
+ ], GatewayMetricsService.prototype, "prometheus", null);
144
+ __decorate([
145
+ (0, broker_1.BrokerAction)(const_1.GATEWAY_ADMIN_TOPIC, const_1.GW_ADMIN_ACTIONS.metricsRollups, 'rpc'),
146
+ __param(0, (0, broker_1.BrokerParam)('body', 'bucketMs')),
147
+ __param(1, (0, broker_1.BrokerParam)('body', 'from')),
148
+ __param(2, (0, broker_1.BrokerParam)('body', 'to')),
149
+ __param(3, (0, broker_1.BrokerParam)('body', 'method')),
150
+ __param(4, (0, broker_1.BrokerParam)('body', 'route')),
151
+ __param(5, (0, broker_1.BrokerParam)('body', 'name')),
152
+ __metadata("design:type", Function),
153
+ __metadata("design:paramtypes", [Object, Object, Object, String, String, String]),
154
+ __metadata("design:returntype", Promise)
155
+ ], GatewayMetricsService.prototype, "rollups", null);
117
156
  exports.GatewayMetricsService = GatewayMetricsService = GatewayMetricsService_1 = __decorate([
118
157
  (0, common_1.Injectable)(),
119
158
  __metadata("design:paramtypes", [http_metric_repository_1.HttpMetricRepository])
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-metrics.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/services/gateway-metrics.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway-metrics.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/services/gateway-metrics.service.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,22 @@
1
1
  import { PaginationModel } from '../../../common';
2
2
  import { PathDefinition } from '../../proxy/config/path-definition.config';
3
+ import { RouteSyncLogEntry } from '../models';
3
4
  import { HttpPathRepository, StoredHttpPath } from '../repository/http-path.repository';
5
+ import { RouteSyncLogRepository } from '../repository/route-sync-log.repository';
4
6
  export declare class GatewayPathService {
5
7
  private readonly repo;
8
+ private readonly logs;
6
9
  private readonly logger;
7
- constructor(repo: HttpPathRepository);
8
- create(model: StoredHttpPath): Promise<StoredHttpPath>;
9
- update(id: string, model: StoredHttpPath): Promise<StoredHttpPath>;
10
+ constructor(repo: HttpPathRepository, logs: RouteSyncLogRepository);
11
+ create(model: StoredHttpPath, currentUser?: string): Promise<StoredHttpPath>;
12
+ update(id: string, model: StoredHttpPath, currentUser?: string): Promise<StoredHttpPath>;
10
13
  private assertNoRouteConflict;
11
- remove(id: string): Promise<StoredHttpPath>;
14
+ remove(id: string, currentUser?: string): Promise<StoredHttpPath>;
12
15
  get(id: string): Promise<StoredHttpPath>;
13
16
  list(page?: number, limit?: number): Promise<PaginationModel<StoredHttpPath>>;
17
+ searchRoutes(q?: string, page?: number, limit?: number): Promise<PaginationModel<StoredHttpPath>>;
14
18
  export(): Promise<PathDefinition[]>;
19
+ logList(limit?: number): Promise<RouteSyncLogEntry[]>;
20
+ logSearch(actor?: string, service?: string, event?: string, routeKey?: string, from?: number, to?: number, page?: number, limit?: number): Promise<PaginationModel<RouteSyncLogEntry>>;
21
+ private journal;
15
22
  }
@@ -19,14 +19,16 @@ const common_2 = require("../../../common");
19
19
  const broker_1 = require("../../broker");
20
20
  const const_1 = require("../const");
21
21
  const http_path_repository_1 = require("../repository/http-path.repository");
22
+ const route_sync_log_repository_1 = require("../repository/route-sync-log.repository");
22
23
  const path_order_1 = require("../util/path-order");
23
24
  const route_manifest_1 = require("../util/route-manifest");
24
25
  let GatewayPathService = GatewayPathService_1 = class GatewayPathService {
25
- constructor(repo) {
26
+ constructor(repo, logs) {
26
27
  this.repo = repo;
28
+ this.logs = logs;
27
29
  this.logger = new common_1.Logger(GatewayPathService_1.name);
28
30
  }
29
- async create(model) {
31
+ async create(model, currentUser) {
30
32
  if (!model?.name)
31
33
  throw new common_2.BadRequestError('name is required');
32
34
  if (!model?.method)
@@ -37,17 +39,28 @@ let GatewayPathService = GatewayPathService_1 = class GatewayPathService {
37
39
  throw new common_2.BadRequestError('topic is required');
38
40
  const routeKey = (0, route_manifest_1.routeKeyOf)(model);
39
41
  await this.assertNoRouteConflict(routeKey);
40
- return this.repo.insert({ ...model, routeKey });
42
+ const created = await this.repo.insert({ ...model, routeKey, source: 'user', modified: false });
43
+ const actor = currentUser ?? 'unknown';
44
+ await this.journal({ service: created.owner ?? 'manual', actor, level: 'info', event: 'created', routeKey, method: created.method, path: created.path, topic: created.topic, action: created.action });
45
+ this.logger.log(`[gw-path] ${actor} created '${routeKey}'`);
46
+ return created;
41
47
  }
42
- async update(id, model) {
48
+ async update(id, model, currentUser) {
43
49
  if (!id)
44
50
  throw new common_2.BadRequestError('id is required');
51
+ const existing = await this.repo.findById(id);
45
52
  if (model?.method && model?.path) {
46
53
  const routeKey = (0, route_manifest_1.routeKeyOf)(model);
47
54
  await this.assertNoRouteConflict(routeKey, id);
48
55
  model = { ...model, routeKey };
49
56
  }
50
- return this.repo.updateById(id, model);
57
+ const changes = existing ? (0, route_manifest_1.diffRouteFields)(existing, { ...existing, ...model }) : [];
58
+ const updated = await this.repo.updateById(id, { ...model, modified: true });
59
+ const actor = currentUser ?? 'unknown';
60
+ const rendered = (0, route_manifest_1.renderChanges)(changes);
61
+ await this.journal({ service: updated?.owner ?? existing?.owner ?? 'manual', actor, level: 'info', event: 'updated', routeKey: updated?.routeKey ?? existing?.routeKey, method: updated?.method ?? existing?.method, path: updated?.path ?? existing?.path, changes, message: rendered });
62
+ this.logger.log(`[gw-path] ${actor} updated '${updated?.routeKey ?? existing?.routeKey}'${rendered ? ` → ${rendered}` : ''}`);
63
+ return updated;
51
64
  }
52
65
  async assertNoRouteConflict(routeKey, excludeId) {
53
66
  const clashes = await this.repo.findByRouteKey(routeKey);
@@ -56,8 +69,12 @@ let GatewayPathService = GatewayPathService_1 = class GatewayPathService {
56
69
  throw new common_2.ConflictError(`A route '${routeKey}' already exists (owner '${conflict.owner ?? 'manual'}', id ${conflict._id}).`);
57
70
  }
58
71
  }
59
- async remove(id) {
60
- return this.repo.removeById(id);
72
+ async remove(id, currentUser) {
73
+ const removed = await this.repo.removeById(id);
74
+ const actor = currentUser ?? 'unknown';
75
+ await this.journal({ service: removed?.owner ?? 'manual', actor, level: 'info', event: 'deleted', routeKey: removed?.routeKey, method: removed?.method, path: removed?.path });
76
+ this.logger.log(`[gw-path] ${actor} deleted '${removed?.routeKey ?? id}'`);
77
+ return removed;
61
78
  }
62
79
  async get(id) {
63
80
  return this.repo.findById(id);
@@ -65,32 +82,52 @@ let GatewayPathService = GatewayPathService_1 = class GatewayPathService {
65
82
  async list(page, limit) {
66
83
  return this.repo.filterPaginated({}, Number(page) || 1, Number(limit) || 10);
67
84
  }
85
+ async searchRoutes(q, page, limit) {
86
+ return this.repo.search(q, Number(page) || 1, Number(limit) || 10);
87
+ }
68
88
  async export() {
69
89
  const paths = await this.repo.listEnabled();
70
90
  return (0, path_order_1.orderPaths)(paths);
71
91
  }
92
+ async logList(limit) {
93
+ return this.logs.list(Number(limit) || 100);
94
+ }
95
+ async logSearch(actor, service, event, routeKey, from, to, page, limit) {
96
+ return this.logs.query({ actor, service, event, routeKey, from: from != null ? Number(from) : undefined, to: to != null ? Number(to) : undefined }, Number(page) || 1, Number(limit) || 20);
97
+ }
98
+ async journal(entry) {
99
+ try {
100
+ await this.logs.insert({ ts: Date.now(), ...entry });
101
+ }
102
+ catch (e) {
103
+ this.logger.warn(`[gw-path] journal write failed: ${e?.message}`);
104
+ }
105
+ }
72
106
  };
73
107
  exports.GatewayPathService = GatewayPathService;
74
108
  __decorate([
75
109
  (0, broker_1.BrokerAction)(const_1.GATEWAY_ADMIN_TOPIC, const_1.GW_ADMIN_ACTIONS.pathCreate, 'rpc'),
76
110
  __param(0, (0, broker_1.BrokerParam)('body-full')),
111
+ __param(1, (0, broker_1.BrokerParam)('header', 'X-GTW-AUTH-USERID')),
77
112
  __metadata("design:type", Function),
78
- __metadata("design:paramtypes", [Object]),
113
+ __metadata("design:paramtypes", [Object, String]),
79
114
  __metadata("design:returntype", Promise)
80
115
  ], GatewayPathService.prototype, "create", null);
81
116
  __decorate([
82
117
  (0, broker_1.BrokerAction)(const_1.GATEWAY_ADMIN_TOPIC, const_1.GW_ADMIN_ACTIONS.pathUpdate, 'rpc'),
83
118
  __param(0, (0, broker_1.BrokerParam)('body', 'id')),
84
119
  __param(1, (0, broker_1.BrokerParam)('body-full')),
120
+ __param(2, (0, broker_1.BrokerParam)('header', 'X-GTW-AUTH-USERID')),
85
121
  __metadata("design:type", Function),
86
- __metadata("design:paramtypes", [String, Object]),
122
+ __metadata("design:paramtypes", [String, Object, String]),
87
123
  __metadata("design:returntype", Promise)
88
124
  ], GatewayPathService.prototype, "update", null);
89
125
  __decorate([
90
126
  (0, broker_1.BrokerAction)(const_1.GATEWAY_ADMIN_TOPIC, const_1.GW_ADMIN_ACTIONS.pathDelete, 'rpc'),
91
127
  __param(0, (0, broker_1.BrokerParam)('body', 'id')),
128
+ __param(1, (0, broker_1.BrokerParam)('header', 'X-GTW-AUTH-USERID')),
92
129
  __metadata("design:type", Function),
93
- __metadata("design:paramtypes", [String]),
130
+ __metadata("design:paramtypes", [String, String]),
94
131
  __metadata("design:returntype", Promise)
95
132
  ], GatewayPathService.prototype, "remove", null);
96
133
  __decorate([
@@ -108,14 +145,45 @@ __decorate([
108
145
  __metadata("design:paramtypes", [Number, Number]),
109
146
  __metadata("design:returntype", Promise)
110
147
  ], GatewayPathService.prototype, "list", null);
148
+ __decorate([
149
+ (0, broker_1.BrokerAction)(const_1.GATEWAY_ADMIN_TOPIC, const_1.GW_ADMIN_ACTIONS.pathSearch, 'rpc'),
150
+ __param(0, (0, broker_1.BrokerParam)('body', 'q')),
151
+ __param(1, (0, broker_1.BrokerParam)('body', 'page')),
152
+ __param(2, (0, broker_1.BrokerParam)('body', 'limit')),
153
+ __metadata("design:type", Function),
154
+ __metadata("design:paramtypes", [String, Number, Number]),
155
+ __metadata("design:returntype", Promise)
156
+ ], GatewayPathService.prototype, "searchRoutes", null);
111
157
  __decorate([
112
158
  (0, broker_1.BrokerAction)(const_1.GATEWAY_ADMIN_TOPIC, const_1.GW_ADMIN_ACTIONS.pathExport, 'rpc'),
113
159
  __metadata("design:type", Function),
114
160
  __metadata("design:paramtypes", []),
115
161
  __metadata("design:returntype", Promise)
116
162
  ], GatewayPathService.prototype, "export", null);
163
+ __decorate([
164
+ (0, broker_1.BrokerAction)(const_1.GATEWAY_ADMIN_TOPIC, const_1.GW_ADMIN_ACTIONS.routeLogList, 'rpc'),
165
+ __param(0, (0, broker_1.BrokerParam)('body', 'limit')),
166
+ __metadata("design:type", Function),
167
+ __metadata("design:paramtypes", [Number]),
168
+ __metadata("design:returntype", Promise)
169
+ ], GatewayPathService.prototype, "logList", null);
170
+ __decorate([
171
+ (0, broker_1.BrokerAction)(const_1.GATEWAY_ADMIN_TOPIC, const_1.GW_ADMIN_ACTIONS.routeLogSearch, 'rpc'),
172
+ __param(0, (0, broker_1.BrokerParam)('body', 'actor')),
173
+ __param(1, (0, broker_1.BrokerParam)('body', 'service')),
174
+ __param(2, (0, broker_1.BrokerParam)('body', 'event')),
175
+ __param(3, (0, broker_1.BrokerParam)('body', 'routeKey')),
176
+ __param(4, (0, broker_1.BrokerParam)('body', 'from')),
177
+ __param(5, (0, broker_1.BrokerParam)('body', 'to')),
178
+ __param(6, (0, broker_1.BrokerParam)('body', 'page')),
179
+ __param(7, (0, broker_1.BrokerParam)('body', 'limit')),
180
+ __metadata("design:type", Function),
181
+ __metadata("design:paramtypes", [String, String, String, String, Number, Number, Number, Number]),
182
+ __metadata("design:returntype", Promise)
183
+ ], GatewayPathService.prototype, "logSearch", null);
117
184
  exports.GatewayPathService = GatewayPathService = GatewayPathService_1 = __decorate([
118
185
  (0, common_1.Injectable)(),
119
- __metadata("design:paramtypes", [http_path_repository_1.HttpPathRepository])
186
+ __metadata("design:paramtypes", [http_path_repository_1.HttpPathRepository,
187
+ route_sync_log_repository_1.RouteSyncLogRepository])
120
188
  ], GatewayPathService);
121
189
  //# sourceMappingURL=gateway-path.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-path.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/services/gateway-path.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway-path.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/services/gateway-path.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { OnApplicationBootstrap, OnModuleDestroy } from '@nestjs/common';
2
+ import { GatewayAdminModuleOptions } from '../config/gateway-admin.config';
3
+ import { HttpMetricRepository } from '../repository/http-metric.repository';
4
+ import { RouteSyncLogRepository } from '../repository/route-sync-log.repository';
5
+ export declare class GatewayRetentionService implements OnApplicationBootstrap, OnModuleDestroy {
6
+ private readonly logs;
7
+ private readonly metrics;
8
+ private readonly logger;
9
+ private readonly windowMs;
10
+ private readonly rollupWindowMs;
11
+ private timer?;
12
+ constructor(logs: RouteSyncLogRepository, metrics: HttpMetricRepository, options?: GatewayAdminModuleOptions);
13
+ onApplicationBootstrap(): void;
14
+ onModuleDestroy(): void;
15
+ private prune;
16
+ }