@open-rlb/nestjs-amqp 1.0.28 → 2.0.1

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 (117) hide show
  1. package/README.md +91 -7
  2. package/amqp-lib/amqp/connection.d.ts +1 -1
  3. package/common/errors.d.ts +13 -0
  4. package/common/errors.js +26 -0
  5. package/common/errors.js.map +1 -0
  6. package/common/flatten.util.d.ts +1 -0
  7. package/common/flatten.util.js +29 -0
  8. package/common/flatten.util.js.map +1 -0
  9. package/common/index.d.ts +3 -0
  10. package/common/index.js +20 -0
  11. package/common/index.js.map +1 -0
  12. package/common/pagination.model.d.ts +6 -0
  13. package/common/pagination.model.js +3 -0
  14. package/common/pagination.model.js.map +1 -0
  15. package/index.d.ts +3 -0
  16. package/index.js +3 -0
  17. package/index.js.map +1 -1
  18. package/modules/acl/acl.module.d.ts +5 -0
  19. package/modules/acl/acl.module.js +36 -0
  20. package/modules/acl/acl.module.js.map +1 -0
  21. package/modules/acl/cache/acl-cache.service.d.ts +15 -0
  22. package/modules/acl/cache/acl-cache.service.js +98 -0
  23. package/modules/acl/cache/acl-cache.service.js.map +1 -0
  24. package/modules/acl/cache/cache-store.d.ts +6 -0
  25. package/modules/acl/cache/cache-store.js +3 -0
  26. package/modules/acl/cache/cache-store.js.map +1 -0
  27. package/modules/acl/config/acl.config.d.ts +8 -0
  28. package/modules/acl/config/acl.config.js +3 -0
  29. package/modules/acl/config/acl.config.js.map +1 -0
  30. package/modules/acl/const.d.ts +17 -0
  31. package/modules/acl/const.js +21 -0
  32. package/modules/acl/const.js.map +1 -0
  33. package/modules/acl/index.d.ts +11 -0
  34. package/modules/acl/index.js +28 -0
  35. package/modules/acl/index.js.map +1 -0
  36. package/modules/acl/models.d.ts +19 -0
  37. package/modules/acl/models.js +3 -0
  38. package/modules/acl/models.js.map +1 -0
  39. package/modules/acl/repository/acl-action.repository.d.ts +11 -0
  40. package/modules/acl/repository/acl-action.repository.js +7 -0
  41. package/modules/acl/repository/acl-action.repository.js.map +1 -0
  42. package/modules/acl/repository/acl-grant.repository.d.ts +11 -0
  43. package/modules/acl/repository/acl-grant.repository.js +7 -0
  44. package/modules/acl/repository/acl-grant.repository.js.map +1 -0
  45. package/modules/acl/repository/acl-role.repository.d.ts +10 -0
  46. package/modules/acl/repository/acl-role.repository.js +7 -0
  47. package/modules/acl/repository/acl-role.repository.js.map +1 -0
  48. package/modules/acl/services/acl-management.service.d.ts +26 -0
  49. package/modules/acl/services/acl-management.service.js +202 -0
  50. package/modules/acl/services/acl-management.service.js.map +1 -0
  51. package/modules/acl/services/acl.service.d.ts +11 -0
  52. package/modules/acl/services/acl.service.js +63 -0
  53. package/modules/acl/services/acl.service.js.map +1 -0
  54. package/modules/broker/broker.module.d.ts +1 -7
  55. package/modules/broker/broker.module.js +1 -27
  56. package/modules/broker/broker.module.js.map +1 -1
  57. package/modules/gateway-admin/config/gateway-admin.config.d.ts +3 -0
  58. package/modules/gateway-admin/config/gateway-admin.config.js +3 -0
  59. package/modules/gateway-admin/config/gateway-admin.config.js.map +1 -0
  60. package/modules/gateway-admin/const.d.ts +18 -0
  61. package/modules/gateway-admin/const.js +22 -0
  62. package/modules/gateway-admin/const.js.map +1 -0
  63. package/modules/gateway-admin/gateway-admin.module.d.ts +5 -0
  64. package/modules/gateway-admin/gateway-admin.module.js +35 -0
  65. package/modules/gateway-admin/gateway-admin.module.js.map +1 -0
  66. package/modules/gateway-admin/index.d.ts +11 -0
  67. package/modules/gateway-admin/index.js +28 -0
  68. package/modules/gateway-admin/index.js.map +1 -0
  69. package/modules/gateway-admin/models.d.ts +22 -0
  70. package/modules/gateway-admin/models.js +3 -0
  71. package/modules/gateway-admin/models.js.map +1 -0
  72. package/modules/gateway-admin/repository/auth-provider.repository.d.ts +15 -0
  73. package/modules/gateway-admin/repository/auth-provider.repository.js +7 -0
  74. package/modules/gateway-admin/repository/auth-provider.repository.js.map +1 -0
  75. package/modules/gateway-admin/repository/http-metric.repository.d.ts +7 -0
  76. package/modules/gateway-admin/repository/http-metric.repository.js +7 -0
  77. package/modules/gateway-admin/repository/http-metric.repository.js.map +1 -0
  78. package/modules/gateway-admin/repository/http-path.repository.d.ts +15 -0
  79. package/modules/gateway-admin/repository/http-path.repository.js +7 -0
  80. package/modules/gateway-admin/repository/http-path.repository.js.map +1 -0
  81. package/modules/gateway-admin/services/gateway-auth.service.d.ts +14 -0
  82. package/modules/gateway-admin/services/gateway-auth.service.js +100 -0
  83. package/modules/gateway-admin/services/gateway-auth.service.js.map +1 -0
  84. package/modules/gateway-admin/services/gateway-metrics.service.d.ts +11 -0
  85. package/modules/gateway-admin/services/gateway-metrics.service.js +59 -0
  86. package/modules/gateway-admin/services/gateway-metrics.service.js.map +1 -0
  87. package/modules/gateway-admin/services/gateway-path.service.d.ts +14 -0
  88. package/modules/gateway-admin/services/gateway-path.service.js +106 -0
  89. package/modules/gateway-admin/services/gateway-path.service.js.map +1 -0
  90. package/modules/gateway-admin/util/path-order.d.ts +3 -0
  91. package/modules/gateway-admin/util/path-order.js +36 -0
  92. package/modules/gateway-admin/util/path-order.js.map +1 -0
  93. package/modules/proxy/config/path-definition.config.d.ts +4 -0
  94. package/modules/proxy/proxy.module.d.ts +15 -2
  95. package/modules/proxy/proxy.module.js +24 -4
  96. package/modules/proxy/proxy.module.js.map +1 -1
  97. package/modules/proxy/services/http-auth-handler.service.js +6 -0
  98. package/modules/proxy/services/http-auth-handler.service.js.map +1 -1
  99. package/modules/proxy/services/http-handler.service.d.ts +5 -1
  100. package/modules/proxy/services/http-handler.service.js +70 -7
  101. package/modules/proxy/services/http-handler.service.js.map +1 -1
  102. package/modules/proxy/services/jwt.service.d.ts +3 -0
  103. package/modules/proxy/services/jwt.service.js +66 -9
  104. package/modules/proxy/services/jwt.service.js.map +1 -1
  105. package/modules/proxy/services/websocket.service.d.ts +3 -0
  106. package/modules/proxy/services/websocket.service.js +51 -1
  107. package/modules/proxy/services/websocket.service.js.map +1 -1
  108. package/package.json +27 -27
  109. package/schematics/nest-add/files/skills/rlb-amqp/SKILL.md +2 -1
  110. package/schematics/nest-add/files/skills/rlb-amqp/references/config-schema.md +9 -2
  111. package/schematics/nest-add/files/skills/rlb-amqp/references/gotchas.md +21 -4
  112. package/schematics/nest-add/files/skills/rlb-amqp-add-route/SKILL.md +2 -2
  113. package/schematics/nest-add/files/skills/rlb-amqp-scaffold/SKILL.md +11 -4
  114. package/schematics/nest-add/index.js +15 -6
  115. package/schematics/nest-add/index.js.map +1 -1
  116. package/schematics/nest-add/index.ts +20 -7
  117. package/tsconfig.build.tsbuildinfo +0 -1
@@ -0,0 +1,19 @@
1
+ export interface AclAction<Id = string> {
2
+ _id?: Id;
3
+ name: string;
4
+ description?: string;
5
+ }
6
+ export interface AclRole<Id = string> {
7
+ _id?: Id;
8
+ name: string;
9
+ description?: string;
10
+ actions: string[];
11
+ }
12
+ export interface AclGrant<Id = string> {
13
+ _id?: Id;
14
+ resourceBusinessId?: string;
15
+ friendlyName?: string;
16
+ userId: string;
17
+ resourceId?: string;
18
+ roles: string[];
19
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/acl/models.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { PaginationModel } from '../../../common';
2
+ import { AclAction } from '../models';
3
+ export declare abstract class AclActionRepository {
4
+ abstract insert(model: AclAction): Promise<AclAction>;
5
+ abstract findById(id: string): Promise<AclAction>;
6
+ abstract findOne(filter: Record<string, any>): Promise<AclAction>;
7
+ abstract updateById(id: string, model: Partial<AclAction>): Promise<AclAction>;
8
+ abstract removeById(id: string): Promise<AclAction>;
9
+ abstract filter(filter: Record<string, any>): Promise<AclAction[]>;
10
+ abstract filterPaginated(filter: Record<string, any>, page?: number, limit?: number): Promise<PaginationModel<AclAction>>;
11
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AclActionRepository = void 0;
4
+ class AclActionRepository {
5
+ }
6
+ exports.AclActionRepository = AclActionRepository;
7
+ //# sourceMappingURL=acl-action.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acl-action.repository.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/acl/repository/acl-action.repository.ts"],"names":[],"mappings":";;;AAOA,MAAsB,mBAAmB;CAQxC;AARD,kDAQC"}
@@ -0,0 +1,11 @@
1
+ import { PaginationModel } from '../../../common';
2
+ import { AclGrant } from '../models';
3
+ export declare abstract class AclGrantRepository {
4
+ abstract insert(model: AclGrant): Promise<AclGrant>;
5
+ abstract findOne(filter: Record<string, any>): Promise<AclGrant>;
6
+ abstract updateOne(filter: Record<string, any>, model: Partial<AclGrant>): Promise<AclGrant>;
7
+ abstract removeOne(filter: Record<string, any>): Promise<AclGrant>;
8
+ abstract filter(filter: Record<string, any>): Promise<AclGrant[]>;
9
+ abstract filterPaginated(filter: Record<string, any>, page?: number, limit?: number): Promise<PaginationModel<AclGrant>>;
10
+ abstract checkActions(filter: Record<string, any>, actions: string | string[]): Promise<boolean>;
11
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AclGrantRepository = void 0;
4
+ class AclGrantRepository {
5
+ }
6
+ exports.AclGrantRepository = AclGrantRepository;
7
+ //# sourceMappingURL=acl-grant.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acl-grant.repository.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/acl/repository/acl-grant.repository.ts"],"names":[],"mappings":";;;AAIA,MAAsB,kBAAkB;CAYvC;AAZD,gDAYC"}
@@ -0,0 +1,10 @@
1
+ import { PaginationModel } from '../../../common';
2
+ import { AclRole } from '../models';
3
+ export declare abstract class AclRoleRepository {
4
+ abstract insert(model: AclRole): Promise<AclRole>;
5
+ abstract findOne(filter: Record<string, any>): Promise<AclRole>;
6
+ abstract updateOne(filter: Record<string, any>, model: Partial<AclRole>): Promise<AclRole>;
7
+ abstract removeOne(filter: Record<string, any>): Promise<AclRole>;
8
+ abstract filter(filter: Record<string, any>): Promise<AclRole[]>;
9
+ abstract filterPaginated(filter: Record<string, any>, page?: number, limit?: number): Promise<PaginationModel<AclRole>>;
10
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AclRoleRepository = void 0;
4
+ class AclRoleRepository {
5
+ }
6
+ exports.AclRoleRepository = AclRoleRepository;
7
+ //# sourceMappingURL=acl-role.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acl-role.repository.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/acl/repository/acl-role.repository.ts"],"names":[],"mappings":";;;AAIA,MAAsB,iBAAiB;CAOtC;AAPD,8CAOC"}
@@ -0,0 +1,26 @@
1
+ import { PaginationModel } from '../../../common';
2
+ import { AclCacheService } from '../cache/acl-cache.service';
3
+ import { AclAction, AclGrant, AclRole } from '../models';
4
+ import { AclActionRepository } from '../repository/acl-action.repository';
5
+ import { AclGrantRepository } from '../repository/acl-grant.repository';
6
+ import { AclRoleRepository } from '../repository/acl-role.repository';
7
+ export declare class AclManagementService {
8
+ private readonly actions;
9
+ private readonly roles;
10
+ private readonly grants;
11
+ private readonly cache;
12
+ private readonly logger;
13
+ constructor(actions: AclActionRepository, roles: AclRoleRepository, grants: AclGrantRepository, cache: AclCacheService);
14
+ grant(userId: string, roles: string[], resourceId?: string, resourceBusinessId?: string, friendlyName?: string): Promise<AclGrant>;
15
+ revoke(userId: string, resourceId?: string): Promise<AclGrant>;
16
+ createAction(name: string, description?: string): Promise<AclAction>;
17
+ updateAction(id: string, model: Partial<AclAction>): Promise<AclAction>;
18
+ deleteAction(id: string): Promise<AclAction>;
19
+ listActions(page?: number, limit?: number): Promise<PaginationModel<AclAction>>;
20
+ createRole(name: string, actions: string[], description?: string): Promise<AclRole>;
21
+ updateRole(name: string, model: Partial<AclRole>): Promise<AclRole>;
22
+ deleteRole(name: string): Promise<AclRole>;
23
+ listRoles(page?: number, limit?: number): Promise<PaginationModel<AclRole>>;
24
+ private assertActionsExist;
25
+ private assertRolesExist;
26
+ }
@@ -0,0 +1,202 @@
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 AclManagementService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.AclManagementService = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const common_2 = require("../../../common");
19
+ const broker_1 = require("../../broker");
20
+ const acl_cache_service_1 = require("../cache/acl-cache.service");
21
+ const const_1 = require("../const");
22
+ const acl_action_repository_1 = require("../repository/acl-action.repository");
23
+ const acl_grant_repository_1 = require("../repository/acl-grant.repository");
24
+ const acl_role_repository_1 = require("../repository/acl-role.repository");
25
+ let AclManagementService = AclManagementService_1 = class AclManagementService {
26
+ constructor(actions, roles, grants, cache) {
27
+ this.actions = actions;
28
+ this.roles = roles;
29
+ this.grants = grants;
30
+ this.cache = cache;
31
+ this.logger = new common_1.Logger(AclManagementService_1.name);
32
+ }
33
+ async grant(userId, roles, resourceId, resourceBusinessId, friendlyName) {
34
+ if (!userId)
35
+ throw new common_2.BadRequestError('userId is required');
36
+ if (!roles?.length)
37
+ throw new common_2.BadRequestError('roles are required');
38
+ await this.assertRolesExist(roles);
39
+ const grant = await this.grants.insert({ userId, roles, resourceId, resourceBusinessId, friendlyName });
40
+ await this.cache.invalidate(userId);
41
+ return grant;
42
+ }
43
+ async revoke(userId, resourceId) {
44
+ if (!userId)
45
+ throw new common_2.BadRequestError('userId is required');
46
+ const removed = await this.grants.removeOne({ userId, ...(resourceId !== undefined ? { resourceId } : {}) });
47
+ await this.cache.invalidate(userId);
48
+ return removed;
49
+ }
50
+ async createAction(name, description) {
51
+ if (!name)
52
+ throw new common_2.BadRequestError('name is required');
53
+ const created = await this.actions.insert({ name, description });
54
+ await this.cache.invalidate();
55
+ return created;
56
+ }
57
+ async updateAction(id, model) {
58
+ if (!id)
59
+ throw new common_2.BadRequestError('id is required');
60
+ const updated = await this.actions.updateById(id, model);
61
+ await this.cache.invalidate();
62
+ return updated;
63
+ }
64
+ async deleteAction(id) {
65
+ const removed = await this.actions.removeById(id);
66
+ await this.cache.invalidate();
67
+ return removed;
68
+ }
69
+ async listActions(page, limit) {
70
+ return this.actions.filterPaginated({}, Number(page) || 1, Number(limit) || 10);
71
+ }
72
+ async createRole(name, actions, description) {
73
+ if (!name)
74
+ throw new common_2.BadRequestError('name is required');
75
+ if (!actions?.length)
76
+ throw new common_2.BadRequestError('actions are required');
77
+ await this.assertActionsExist(actions);
78
+ const created = await this.roles.insert({ name, description, actions });
79
+ await this.cache.invalidate();
80
+ return created;
81
+ }
82
+ async updateRole(name, model) {
83
+ if (!name)
84
+ throw new common_2.BadRequestError('name is required');
85
+ if (model?.actions?.length)
86
+ await this.assertActionsExist(model.actions);
87
+ const updated = await this.roles.updateOne({ name }, model);
88
+ await this.cache.invalidate();
89
+ return updated;
90
+ }
91
+ async deleteRole(name) {
92
+ const removed = await this.roles.removeOne({ name });
93
+ await this.cache.invalidate();
94
+ return removed;
95
+ }
96
+ async listRoles(page, limit) {
97
+ return this.roles.filterPaginated({}, Number(page) || 1, Number(limit) || 10);
98
+ }
99
+ async assertActionsExist(names) {
100
+ const found = await this.actions.filter({ name: { $in: names } });
101
+ const missing = names.filter((n) => !found.some((a) => a.name === n));
102
+ if (missing.length)
103
+ throw new common_2.BadRequestError(`Unknown actions: ${missing.join(', ')}`);
104
+ }
105
+ async assertRolesExist(names) {
106
+ const found = await this.roles.filter({ name: { $in: names } });
107
+ const missing = names.filter((n) => !found.some((r) => r.name === n));
108
+ if (missing.length)
109
+ throw new common_2.BadRequestError(`Unknown roles: ${missing.join(', ')}`);
110
+ }
111
+ };
112
+ exports.AclManagementService = AclManagementService;
113
+ __decorate([
114
+ (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.grant, 'rpc'),
115
+ __param(0, (0, broker_1.BrokerParam)('body', 'userId')),
116
+ __param(1, (0, broker_1.BrokerParam)('body', 'roles')),
117
+ __param(2, (0, broker_1.BrokerParam)('body', 'resourceId')),
118
+ __param(3, (0, broker_1.BrokerParam)('body', 'resourceBusinessId')),
119
+ __param(4, (0, broker_1.BrokerParam)('body', 'friendlyName')),
120
+ __metadata("design:type", Function),
121
+ __metadata("design:paramtypes", [String, Array, String, String, String]),
122
+ __metadata("design:returntype", Promise)
123
+ ], AclManagementService.prototype, "grant", null);
124
+ __decorate([
125
+ (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.revoke, 'rpc'),
126
+ __param(0, (0, broker_1.BrokerParam)('body', 'userId')),
127
+ __param(1, (0, broker_1.BrokerParam)('body', 'resourceId')),
128
+ __metadata("design:type", Function),
129
+ __metadata("design:paramtypes", [String, String]),
130
+ __metadata("design:returntype", Promise)
131
+ ], AclManagementService.prototype, "revoke", null);
132
+ __decorate([
133
+ (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.actionCreate, 'rpc'),
134
+ __param(0, (0, broker_1.BrokerParam)('body', 'name')),
135
+ __param(1, (0, broker_1.BrokerParam)('body', 'description')),
136
+ __metadata("design:type", Function),
137
+ __metadata("design:paramtypes", [String, String]),
138
+ __metadata("design:returntype", Promise)
139
+ ], AclManagementService.prototype, "createAction", null);
140
+ __decorate([
141
+ (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.actionUpdate, 'rpc'),
142
+ __param(0, (0, broker_1.BrokerParam)('body', 'id')),
143
+ __param(1, (0, broker_1.BrokerParam)('body-full')),
144
+ __metadata("design:type", Function),
145
+ __metadata("design:paramtypes", [String, Object]),
146
+ __metadata("design:returntype", Promise)
147
+ ], AclManagementService.prototype, "updateAction", null);
148
+ __decorate([
149
+ (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.actionDelete, 'rpc'),
150
+ __param(0, (0, broker_1.BrokerParam)('body', 'id')),
151
+ __metadata("design:type", Function),
152
+ __metadata("design:paramtypes", [String]),
153
+ __metadata("design:returntype", Promise)
154
+ ], AclManagementService.prototype, "deleteAction", null);
155
+ __decorate([
156
+ (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.actionList, 'rpc'),
157
+ __param(0, (0, broker_1.BrokerParam)('body', 'page')),
158
+ __param(1, (0, broker_1.BrokerParam)('body', 'limit')),
159
+ __metadata("design:type", Function),
160
+ __metadata("design:paramtypes", [Number, Number]),
161
+ __metadata("design:returntype", Promise)
162
+ ], AclManagementService.prototype, "listActions", null);
163
+ __decorate([
164
+ (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.roleCreate, 'rpc'),
165
+ __param(0, (0, broker_1.BrokerParam)('body', 'name')),
166
+ __param(1, (0, broker_1.BrokerParam)('body', 'actions')),
167
+ __param(2, (0, broker_1.BrokerParam)('body', 'description')),
168
+ __metadata("design:type", Function),
169
+ __metadata("design:paramtypes", [String, Array, String]),
170
+ __metadata("design:returntype", Promise)
171
+ ], AclManagementService.prototype, "createRole", null);
172
+ __decorate([
173
+ (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.roleUpdate, 'rpc'),
174
+ __param(0, (0, broker_1.BrokerParam)('body', 'name')),
175
+ __param(1, (0, broker_1.BrokerParam)('body-full')),
176
+ __metadata("design:type", Function),
177
+ __metadata("design:paramtypes", [String, Object]),
178
+ __metadata("design:returntype", Promise)
179
+ ], AclManagementService.prototype, "updateRole", null);
180
+ __decorate([
181
+ (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.roleDelete, 'rpc'),
182
+ __param(0, (0, broker_1.BrokerParam)('body', 'name')),
183
+ __metadata("design:type", Function),
184
+ __metadata("design:paramtypes", [String]),
185
+ __metadata("design:returntype", Promise)
186
+ ], AclManagementService.prototype, "deleteRole", null);
187
+ __decorate([
188
+ (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.roleList, 'rpc'),
189
+ __param(0, (0, broker_1.BrokerParam)('body', 'page')),
190
+ __param(1, (0, broker_1.BrokerParam)('body', 'limit')),
191
+ __metadata("design:type", Function),
192
+ __metadata("design:paramtypes", [Number, Number]),
193
+ __metadata("design:returntype", Promise)
194
+ ], AclManagementService.prototype, "listRoles", null);
195
+ exports.AclManagementService = AclManagementService = AclManagementService_1 = __decorate([
196
+ (0, common_1.Injectable)(),
197
+ __metadata("design:paramtypes", [acl_action_repository_1.AclActionRepository,
198
+ acl_role_repository_1.AclRoleRepository,
199
+ acl_grant_repository_1.AclGrantRepository,
200
+ acl_cache_service_1.AclCacheService])
201
+ ], AclManagementService);
202
+ //# sourceMappingURL=acl-management.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acl-management.service.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/acl/services/acl-management.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { IAclRoleService } from '../../proxy/services/acl.service';
2
+ import { AclCacheService } from '../cache/acl-cache.service';
3
+ import { AclGrantRepository } from '../repository/acl-grant.repository';
4
+ export declare class AclService implements IAclRoleService {
5
+ private readonly grants;
6
+ private readonly cache;
7
+ private readonly logger;
8
+ constructor(grants: AclGrantRepository, cache: AclCacheService);
9
+ canUserDo(topic: string, action: string, userId: string): Promise<boolean>;
10
+ handleCanUserDo(userId: string, action: string, topic?: string): Promise<boolean>;
11
+ }
@@ -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 AclService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.AclService = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const broker_1 = require("../../broker");
19
+ const acl_cache_service_1 = require("../cache/acl-cache.service");
20
+ const const_1 = require("../const");
21
+ const acl_grant_repository_1 = require("../repository/acl-grant.repository");
22
+ let AclService = AclService_1 = class AclService {
23
+ constructor(grants, cache) {
24
+ this.grants = grants;
25
+ this.cache = cache;
26
+ this.logger = new common_1.Logger(AclService_1.name);
27
+ }
28
+ async canUserDo(topic, action, userId) {
29
+ if (!userId || !action)
30
+ return false;
31
+ const cached = await this.cache.get(userId, topic, action);
32
+ if (cached !== null)
33
+ return cached;
34
+ const allowed = await this.grants.checkActions({ userId }, action);
35
+ await this.cache.set(userId, topic, action, allowed);
36
+ return allowed;
37
+ }
38
+ async handleCanUserDo(userId, action, topic) {
39
+ try {
40
+ return await this.canUserDo(topic ?? const_1.ACL_TOPIC, action, userId);
41
+ }
42
+ catch (error) {
43
+ this.logger.error(error);
44
+ return false;
45
+ }
46
+ }
47
+ };
48
+ exports.AclService = AclService;
49
+ __decorate([
50
+ (0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.canUserDo, 'rpc'),
51
+ __param(0, (0, broker_1.BrokerParam)('body', 'userId')),
52
+ __param(1, (0, broker_1.BrokerParam)('body', 'action')),
53
+ __param(2, (0, broker_1.BrokerParam)('body', 'topic')),
54
+ __metadata("design:type", Function),
55
+ __metadata("design:paramtypes", [String, String, String]),
56
+ __metadata("design:returntype", Promise)
57
+ ], AclService.prototype, "handleCanUserDo", null);
58
+ exports.AclService = AclService = AclService_1 = __decorate([
59
+ (0, common_1.Injectable)(),
60
+ __metadata("design:paramtypes", [acl_grant_repository_1.AclGrantRepository,
61
+ acl_cache_service_1.AclCacheService])
62
+ ], AclService);
63
+ //# sourceMappingURL=acl.service.js.map
@@ -0,0 +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,yCAAyD;AAEzD,kEAA6D;AAC7D,oCAAkD;AAClD,6EAAwE;AAGjE,IAAM,UAAU,kBAAhB,MAAM,UAAU;IAGrB,YACmB,MAA0B,EAC1B,KAAsB;QADtB,WAAM,GAAN,MAAM,CAAoB;QAC1B,UAAK,GAAL,KAAK,CAAiB;QAJxB,WAAM,GAAG,IAAI,eAAM,CAAC,YAAU,CAAC,IAAI,CAAC,CAAC;IAKlD,CAAC;IAOL,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,MAAc,EAAE,MAAc;QAC3D,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC;IACjB,CAAC;IAGK,AAAN,KAAK,CAAC,eAAe,CACY,MAAc,EACd,MAAc,EACf,KAAc;QAE5C,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,iBAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF,CAAA;AAnCY,gCAAU;AAuBf;IADL,IAAA,qBAAY,EAAC,iBAAS,EAAE,mBAAW,CAAC,SAAS,EAAE,KAAK,CAAC;IAEnD,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC7B,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC7B,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,OAAO,CAAC,CAAA;;;;iDAQ9B;qBAlCU,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAKgB,yCAAkB;QACnB,mCAAe;GAL9B,UAAU,CAmCtB"}
@@ -1,25 +1,19 @@
1
1
  import { DynamicModule, Type } from '@nestjs/common';
2
2
  import { RabbitMQConfig } from '../../amqp-lib/config/rabbitmq.config';
3
- import { GatewayConfig } from '../proxy';
4
- import { HandlerAuthConfig } from './config/handler-auth.config';
5
3
  import { BrokerTopic } from './config/topics.config';
6
4
  import { AppConfig } from './services/utils.service';
7
5
  export declare const ConfigurableModuleClass: import("@nestjs/common").ConfigurableModuleCls<RabbitMQConfig, "forRoot", "create", {}>, MODULE_OPTIONS_TOKEN: string | symbol;
8
6
  export declare class BrokerModule {
9
- static forRoot(options: RabbitMQConfig, topics: BrokerTopic[], appOptions?: AppConfig, authOptions?: HandlerAuthConfig[], gatewayOptions?: GatewayConfig): DynamicModule;
7
+ static forRoot(options: RabbitMQConfig, topics: BrokerTopic[], appOptions?: AppConfig): DynamicModule;
10
8
  static forRootAsync(asyncOptions: {
11
9
  useFactory: (...args: any[]) => Promise<{
12
10
  options: RabbitMQConfig;
13
11
  topics: BrokerTopic[];
14
12
  appOptions?: AppConfig;
15
- authOptions?: HandlerAuthConfig[];
16
- gatewayOptions?: GatewayConfig;
17
13
  }> | {
18
14
  options: RabbitMQConfig;
19
15
  topics: BrokerTopic[];
20
16
  appOptions?: AppConfig;
21
- authOptions?: HandlerAuthConfig[];
22
- gatewayOptions?: GatewayConfig;
23
17
  };
24
18
  inject?: Type<any>[];
25
19
  imports?: Type<any>[];
@@ -20,7 +20,7 @@ const shutdown_state_service_1 = require("./services/shutdown-state.service");
20
20
  const utils_service_1 = require("./services/utils.service");
21
21
  _a = new common_1.ConfigurableModuleBuilder().setClassMethodName('forRoot').build(), exports.ConfigurableModuleClass = _a.ConfigurableModuleClass, exports.MODULE_OPTIONS_TOKEN = _a.MODULE_OPTIONS_TOKEN;
22
22
  let BrokerModule = BrokerModule_1 = class BrokerModule {
23
- static forRoot(options, topics, appOptions, authOptions, gatewayOptions) {
23
+ static forRoot(options, topics, appOptions) {
24
24
  if (!options) {
25
25
  throw new Error('RabbitMQConfig is required');
26
26
  }
@@ -30,23 +30,17 @@ let BrokerModule = BrokerModule_1 = class BrokerModule {
30
30
  const amqpOptionsProvider = { provide: const_1.RLB_AMQP_BROKER_OPTIONS, useValue: options };
31
31
  const topicOptionsProvider = { provide: const_1.RLB_AMQP_TOPIC_CONNECTION, useValue: topics };
32
32
  const appOptionsProvider = { provide: const_1.RLB_AMQP_APP_OPTIONS, useValue: appOptions };
33
- const authOptionsProvider = { provide: const_1.RLB_AMQP_AUTH_OPTIONS, useValue: authOptions };
34
- const gatewayOptionsProvider = { provide: const_1.RLB_AMQP_GATEWAY_OPTIONS, useValue: gatewayOptions };
35
33
  return {
36
34
  module: BrokerModule_1,
37
35
  providers: [
38
36
  amqpOptionsProvider,
39
37
  topicOptionsProvider,
40
38
  appOptionsProvider,
41
- authOptionsProvider,
42
- gatewayOptionsProvider
43
39
  ],
44
40
  exports: [
45
41
  amqpOptionsProvider,
46
42
  topicOptionsProvider,
47
43
  appOptionsProvider,
48
- authOptionsProvider,
49
- gatewayOptionsProvider
50
44
  ],
51
45
  };
52
46
  }
@@ -75,37 +69,17 @@ let BrokerModule = BrokerModule_1 = class BrokerModule {
75
69
  },
76
70
  inject: asyncOptions.inject || [],
77
71
  };
78
- const authOptionsProvider = {
79
- provide: const_1.RLB_AMQP_AUTH_OPTIONS,
80
- useFactory: async (...args) => {
81
- const result = await asyncOptions.useFactory(...args);
82
- return result.authOptions;
83
- },
84
- inject: asyncOptions.inject || [],
85
- };
86
- const gatewayOptionsProvider = {
87
- provide: const_1.RLB_AMQP_GATEWAY_OPTIONS,
88
- useFactory: async (...args) => {
89
- const result = await asyncOptions.useFactory(...args);
90
- return result.gatewayOptions;
91
- },
92
- inject: asyncOptions.inject || [],
93
- };
94
72
  return {
95
73
  module: BrokerModule_1,
96
74
  providers: [
97
75
  amqpOptionsProvider,
98
76
  topicOptionsProvider,
99
77
  appOptionsProvider,
100
- authOptionsProvider,
101
- gatewayOptionsProvider,
102
78
  ],
103
79
  exports: [
104
80
  amqpOptionsProvider,
105
81
  topicOptionsProvider,
106
82
  appOptionsProvider,
107
- authOptionsProvider,
108
- gatewayOptionsProvider,
109
83
  ],
110
84
  };
111
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"broker.module.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/broker/broker.module.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2CAA0G;AAC1G,6DAAgE;AAKhE,mCAAoJ;AACpJ,8EAAyE;AACzE,8DAA0D;AAC1D,kFAA6E;AAC7E,kFAA6E;AAC7E,8EAAyE;AACzE,4DAAmE;AACtD,KACX,IAAI,kCAAyB,EAAkB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EADxE,+BAAuB,+BAAE,4BAAoB,2BAC4B;AAqBjF,IAAM,YAAY,oBAAlB,MAAM,YAAY;IACvB,MAAM,CAAC,OAAO,CACZ,OAAuB,EACvB,MAAqB,EACrB,UAAsB,EACtB,WAAiC,EACjC,cAA8B;QAG9B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,mBAAmB,GAAa,EAAE,OAAO,EAAE,+BAAuB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAC9F,MAAM,oBAAoB,GAAa,EAAE,OAAO,EAAE,iCAAyB,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAChG,MAAM,kBAAkB,GAAa,EAAE,OAAO,EAAE,4BAAoB,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QAC7F,MAAM,mBAAmB,GAAa,EAAE,OAAO,EAAE,6BAAqB,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;QAChG,MAAM,sBAAsB,GAAa,EAAE,OAAO,EAAE,gCAAwB,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;QAEzG,OAAO;YACL,MAAM,EAAE,cAAY;YACpB,SAAS,EAAE;gBACT,mBAAmB;gBACnB,oBAAoB;gBACpB,kBAAkB;gBAClB,mBAAmB;gBACnB,sBAAsB;aACvB;YACD,OAAO,EAAE;gBACP,mBAAmB;gBACnB,oBAAoB;gBACpB,kBAAkB;gBAClB,mBAAmB;gBACnB,sBAAsB;aACvB;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,YAgBnB;QACC,MAAM,mBAAmB,GAAa;YACpC,OAAO,EAAE,+BAAuB;YAChC,UAAU,EAAE,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;gBACnC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;gBACtD,OAAO,MAAM,CAAC,OAAO,CAAC;YACxB,CAAC;YACD,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,EAAE;SAClC,CAAC;QAEF,MAAM,oBAAoB,GAAa;YACrC,OAAO,EAAE,iCAAyB;YAClC,UAAU,EAAE,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;gBACnC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;gBACtD,OAAO,MAAM,CAAC,MAAM,CAAC;YACvB,CAAC;YACD,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,EAAE;SAClC,CAAC;QAEF,MAAM,kBAAkB,GAAa;YACnC,OAAO,EAAE,4BAAoB;YAC7B,UAAU,EAAE,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;gBACnC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;gBACtD,OAAO,MAAM,CAAC,UAAU,CAAC;YAC3B,CAAC;YACD,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,EAAE;SAClC,CAAC;QAEF,MAAM,mBAAmB,GAAa;YACpC,OAAO,EAAE,6BAAqB;YAC9B,UAAU,EAAE,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;gBACnC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;gBACtD,OAAO,MAAM,CAAC,WAAW,CAAC;YAC5B,CAAC;YACD,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,EAAE;SAClC,CAAC;QAEF,MAAM,sBAAsB,GAAa;YACvC,OAAO,EAAE,gCAAwB;YACjC,UAAU,EAAE,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;gBACnC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;gBACtD,OAAO,MAAM,CAAC,cAAc,CAAC;YAC/B,CAAC;YACD,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,EAAE;SAClC,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,cAAY;YACpB,SAAS,EAAE;gBACT,mBAAmB;gBACnB,oBAAoB;gBACpB,kBAAkB;gBAClB,mBAAmB;gBACnB,sBAAsB;aACvB;YACD,OAAO,EAAE;gBACP,mBAAmB;gBACnB,oBAAoB;gBACpB,kBAAkB;gBAClB,mBAAmB;gBACnB,sBAAsB;aACvB;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AA1HY,oCAAY;uBAAZ,YAAY;IAnBxB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT,yBAAc;YACd,8BAAa;YACb,iDAAsB;YACtB,iDAAsB;YACtB,6CAAoB;YACpB,6CAAoB;YACpB,4BAAY;SACb;QACD,OAAO,EAAE;YACP,yBAAc;YACd,4BAAY;YACZ,8BAAa;YACb,6CAAoB;YACpB,6CAAoB;SACrB;KACF,CAAC;GACW,YAAY,CA0HxB"}
1
+ {"version":3,"file":"broker.module.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/broker/broker.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export interface GatewayAdminModuleOptions {
2
+ topic?: string;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=gateway-admin.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-admin.config.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/gateway-admin/config/gateway-admin.config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ export declare const GATEWAY_ADMIN_TOPIC = "rlb-gateway-admin";
2
+ export declare const RLB_GW_ADMIN_OPTIONS = "RLB_GW_ADMIN_OPTIONS";
3
+ export declare const GW_ADMIN_ACTIONS: {
4
+ readonly pathCreate: "gw-path-create";
5
+ readonly pathUpdate: "gw-path-update";
6
+ readonly pathDelete: "gw-path-delete";
7
+ readonly pathGet: "gw-path-get";
8
+ readonly pathList: "gw-path-list";
9
+ readonly pathExport: "gw-path-export";
10
+ readonly authCreate: "gw-auth-create";
11
+ readonly authUpdate: "gw-auth-update";
12
+ readonly authDelete: "gw-auth-delete";
13
+ readonly authGet: "gw-auth-get";
14
+ readonly authList: "gw-auth-list";
15
+ readonly authExport: "gw-auth-export";
16
+ readonly metricsTrack: "gw-metrics-track";
17
+ readonly metricsGet: "gw-metrics-get";
18
+ };
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GW_ADMIN_ACTIONS = exports.RLB_GW_ADMIN_OPTIONS = exports.GATEWAY_ADMIN_TOPIC = void 0;
4
+ exports.GATEWAY_ADMIN_TOPIC = 'rlb-gateway-admin';
5
+ exports.RLB_GW_ADMIN_OPTIONS = 'RLB_GW_ADMIN_OPTIONS';
6
+ exports.GW_ADMIN_ACTIONS = {
7
+ pathCreate: 'gw-path-create',
8
+ pathUpdate: 'gw-path-update',
9
+ pathDelete: 'gw-path-delete',
10
+ pathGet: 'gw-path-get',
11
+ pathList: 'gw-path-list',
12
+ pathExport: 'gw-path-export',
13
+ authCreate: 'gw-auth-create',
14
+ authUpdate: 'gw-auth-update',
15
+ authDelete: 'gw-auth-delete',
16
+ authGet: 'gw-auth-get',
17
+ authList: 'gw-auth-list',
18
+ authExport: 'gw-auth-export',
19
+ metricsTrack: 'gw-metrics-track',
20
+ metricsGet: 'gw-metrics-get',
21
+ };
22
+ //# sourceMappingURL=const.js.map
@@ -0,0 +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;IACxB,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAC5B,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,cAAc;IACxB,UAAU,EAAE,gBAAgB;IAC5B,YAAY,EAAE,kBAAkB;IAChC,UAAU,EAAE,gBAAgB;CACpB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { DynamicModule, Provider } from '@nestjs/common';
2
+ import { GatewayAdminModuleOptions } from './config/gateway-admin.config';
3
+ export declare class GatewayAdminModule {
4
+ static forRoot(providers: Provider[], options?: GatewayAdminModuleOptions): DynamicModule;
5
+ }