@open-rlb/nestjs-amqp 2.0.9 → 2.0.11
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 +35 -35
- package/modules/acl/{authz-match.js → auth-match.js} +1 -1
- package/modules/acl/auth-match.js.map +1 -0
- package/modules/acl/const.d.ts +3 -0
- package/modules/acl/const.js +3 -0
- package/modules/acl/const.js.map +1 -1
- package/modules/acl/index.d.ts +1 -1
- package/modules/acl/index.js +1 -1
- 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 +3 -0
- package/modules/acl/services/acl-management.service.js +38 -2
- package/modules/acl/services/acl-management.service.js.map +1 -1
- package/modules/acl/services/acl.service.d.ts +1 -1
- package/modules/acl/services/acl.service.js +2 -2
- package/modules/acl/services/acl.service.js.map +1 -1
- package/modules/broker/decorators/broker-action.decorator.d.ts +1 -1
- package/modules/broker/decorators/broker-action.decorator.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 +35 -0
- package/modules/gateway-admin/util/route-manifest.js.map +1 -1
- package/modules/proxy/config/path-definition.config.d.ts +2 -1
- package/modules/proxy/services/acl.service.d.ts +1 -1
- package/modules/proxy/services/http-auth-handler.service.d.ts +1 -1
- 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 +24 -32
- package/modules/proxy/services/http-handler.service.js.map +1 -1
- package/modules/proxy/services/metrics-hook.d.ts +1 -0
- 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-acl/SKILL.md +6 -1
- package/schematics/nest-add/files/skills/rlb-amqp-add-route/SKILL.md +1 -1
- package/schematics/nest-add/files/skills/rlb-amqp-gateway-admin/SKILL.md +48 -8
- package/schematics/nest-add/index.js +73 -0
- package/schematics/nest-add/index.js.map +1 -1
- package/schematics/nest-add/index.ts +73 -0
- package/modules/acl/authz-match.js.map +0 -1
- /package/modules/acl/{authz-match.d.ts → auth-match.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -44,10 +44,10 @@ Con `--gateway=false` la factory passa a `BrokerModule` solo `{ options, topics,
|
|
|
44
44
|
|
|
45
45
|
Monorepo NestJS (vedi `nest-cli.json`):
|
|
46
46
|
|
|
47
|
-
| Progetto
|
|
48
|
-
|
|
|
49
|
-
| `libs/rlb-nestjs-amqp`
|
|
50
|
-
| `apps/gateway`
|
|
47
|
+
| Progetto | Tipo | Descrizione |
|
|
48
|
+
| ---------------------- | ----------- | ---------------------------------------------- |
|
|
49
|
+
| `libs/rlb-nestjs-amqp` | library | La libreria vera e propria (il prodotto npm) |
|
|
50
|
+
| `apps/gateway` | application | App di esempio/riferimento che usa la libreria |
|
|
51
51
|
|
|
52
52
|
```
|
|
53
53
|
┌─────────────────────────────────────────────────────────┐
|
|
@@ -222,12 +222,12 @@ broker:
|
|
|
222
222
|
|
|
223
223
|
Un topic mappa un nome logico (azione/microservizio) su un percorso AMQP. Il `mode` decide la semantica.
|
|
224
224
|
|
|
225
|
-
| `mode` | Quando usarlo
|
|
226
|
-
| ----------- |
|
|
227
|
-
| `rpc` | request/response
|
|
228
|
-
| `handle` | worker su una coda
|
|
229
|
-
| `broadcast` | un messaggio a molti consumer
|
|
230
|
-
| `event` | publish senza risposta
|
|
225
|
+
| `mode` | Quando usarlo | Campi richiesti | Semantica |
|
|
226
|
+
| ----------- | ----------------------------- | -------------------------------------------------- | ---------------------------------------- |
|
|
227
|
+
| `rpc` | request/response | `name`, `queue` (o `exchange`+`routingKey`) | risposta immediata + timeout |
|
|
228
|
+
| `handle` | worker su una coda | `name`, `queue` | consumer di coda semplice |
|
|
229
|
+
| `broadcast` | un messaggio a molti consumer | `name`, `exchange`, `routingKey` | fanout/topic; richiede `connection_name` |
|
|
230
|
+
| `event` | publish senza risposta | `name`, `queue` **oppure** `exchange`+`routingKey` | fire-and-forget |
|
|
231
231
|
|
|
232
232
|
```yaml
|
|
233
233
|
topics:
|
|
@@ -348,14 +348,14 @@ Registra il servizio come provider in un modulo NestJS qualunque: il `MetadataSc
|
|
|
348
348
|
|
|
349
349
|
#### Sorgenti `@BrokerParam(source, name?)`
|
|
350
350
|
|
|
351
|
-
| Source | Valore iniettato
|
|
352
|
-
| ----------- |
|
|
353
|
-
| `body` | `payload[name ?? nomeParametro]`
|
|
354
|
-
| `body-full` | payload completo
|
|
355
|
-
| `header` | `headers[name ?? nomeParametro]`
|
|
356
|
-
| `tag` | consumer tag AMQP
|
|
357
|
-
| `action` | action del messaggio
|
|
358
|
-
| `topic` | topic corrente
|
|
351
|
+
| Source | Valore iniettato |
|
|
352
|
+
| ----------- | -------------------------------- |
|
|
353
|
+
| `body` | `payload[name ?? nomeParametro]` |
|
|
354
|
+
| `body-full` | payload completo |
|
|
355
|
+
| `header` | `headers[name ?? nomeParametro]` |
|
|
356
|
+
| `tag` | consumer tag AMQP |
|
|
357
|
+
| `action` | action del messaggio |
|
|
358
|
+
| `topic` | topic corrente |
|
|
359
359
|
|
|
360
360
|
> Se ometti `@BrokerParam` su un parametro, il default è `{ source: 'body' }` con chiave = nome del parametro.
|
|
361
361
|
|
|
@@ -363,9 +363,9 @@ Registra il servizio come provider in un modulo NestJS qualunque: il `MetadataSc
|
|
|
363
363
|
|
|
364
364
|
Ogni `@BrokerAction` è eseguibile **sia in RPC sia in event**, senza modifiche al servizio. Cambia solo cosa attende il chiamante.
|
|
365
365
|
|
|
366
|
-
| Modalità | Come si invoca | Cosa si attende
|
|
367
|
-
| -------- | ------------------------------------------------- |
|
|
368
|
-
| `rpc` | `broker.requestData(...)` / path `mode: rpc` | la **risposta** del metodo (request/response)
|
|
366
|
+
| Modalità | Come si invoca | Cosa si attende |
|
|
367
|
+
| -------- | ------------------------------------------------- | ----------------------------------------------------------- |
|
|
368
|
+
| `rpc` | `broker.requestData(...)` / path `mode: rpc` | la **risposta** del metodo (request/response) |
|
|
369
369
|
| `event` | `broker.publishMessage(...)` / path `mode: event` | solo che il **broker prenda in carico** (publisher confirm) |
|
|
370
370
|
|
|
371
371
|
`publishMessage` è `async` e si risolve solo al publisher confirm (rigetta su nack/errore). Sul gateway, una path `mode: event` risponde `202` **dopo** il confirm e `503` se il broker non accetta.
|
|
@@ -516,7 +516,7 @@ ws.send(JSON.stringify({ action: 'unsubscribe', topic: 'orders' }));
|
|
|
516
516
|
### Sicurezza e scalabilità
|
|
517
517
|
|
|
518
518
|
- **Auth per evento**: `events[].auth` indica il provider che verifica il token e mappa i claim per quell'evento; `requireAuth: false` rende l'auth opzionale (anonimi ammessi, claim mappati se il token c'è). Subscribe negato (`onError: unauthorized`) se l'auth è richiesta e il token non è valido.
|
|
519
|
-
- **
|
|
519
|
+
- **auth per evento**: `roles` (ACL via `IAclRoleService`) sull'identità ricavata da `auth`.
|
|
520
520
|
- **Scoping per-utente**: `scopeClaim` + `payloadKey` impediscono a un client di ricevere dati altrui tramite un `select` arbitrario (il filtro server-side è intersecato con quello del client, mai allargato). Se `scopeClaim` è impostato senza `payloadKey`, **nega tutto** (safe default).
|
|
521
521
|
- **Sessione limitata dalla scadenza del token**: l'`exp` del JWT viene catturato alla prima verifica e la connessione viene chiusa (`1008 token expired`) appena scade — niente consegne dopo la scadenza.
|
|
522
522
|
- **Origin allowlist**: `gateway.ws.allowedOrigins` rifiuta gli handshake cross-site (se omessa, tutte le origin sono accettate e lo si segnala a boot).
|
|
@@ -604,23 +604,23 @@ Handler su topic **`rlb-gateway-admin`** (`GATEWAY_ADMIN_TOPIC`):
|
|
|
604
604
|
|
|
605
605
|
## API `BrokerService`
|
|
606
606
|
|
|
607
|
-
| Metodo
|
|
608
|
-
|
|
|
609
|
-
| `requestData(topic, action, payload?, headers?, timeout?)`
|
|
610
|
-
| `publishMessage(topic, action, payload, headers?)` → `Promise<boolean>` | event fire-and-forget con publisher confirm
|
|
611
|
-
| `registerRpc(topic, handler)`
|
|
612
|
-
| `registerHandler(topic, handler)`
|
|
613
|
-
| `getRpc(topic)` / `getHandler(topic)`
|
|
614
|
-
| `events$` / `getEvents$<T>()`
|
|
607
|
+
| Metodo | Uso |
|
|
608
|
+
| ----------------------------------------------------------------------- | ------------------------------------------------ |
|
|
609
|
+
| `requestData(topic, action, payload?, headers?, timeout?)` | RPC request/response (attende la risposta) |
|
|
610
|
+
| `publishMessage(topic, action, payload, headers?)` → `Promise<boolean>` | event fire-and-forget con publisher confirm |
|
|
611
|
+
| `registerRpc(topic, handler)` | consumer RPC manuale |
|
|
612
|
+
| `registerHandler(topic, handler)` | consumer `handle` / `broadcast` (ritorna void) |
|
|
613
|
+
| `getRpc(topic)` / `getHandler(topic)` | recupera l'handler registrato |
|
|
614
|
+
| `events$` / `getEvents$<T>()` | Observable degli eventi dei topic `toObservable` |
|
|
615
615
|
|
|
616
616
|
### Decoratori
|
|
617
617
|
|
|
618
|
-
| Decoratore | Uso
|
|
619
|
-
| ------------------------------------------------------------- |
|
|
620
|
-
| `@BrokerAction(topic, action, type?)` | lega un metodo a topic/action
|
|
621
|
-
| `@BrokerParam(source, name?)` | mappa i parametri dai dati messaggio
|
|
618
|
+
| Decoratore | Uso |
|
|
619
|
+
| ------------------------------------------------------------- | -------------------------------------- |
|
|
620
|
+
| `@BrokerAction(topic, action, type?)` | lega un metodo a topic/action |
|
|
621
|
+
| `@BrokerParam(source, name?)` | mappa i parametri dai dati messaggio |
|
|
622
622
|
| `@BrokerAuth(authName, allowAnonymous?, roles?)` | metadati di auth (usati dallo scanner) |
|
|
623
|
-
| `@BrokerHTTP(method, path, dataSource?, timeout?, parseRaw?)` | metadati HTTP (usati dallo scanner)
|
|
623
|
+
| `@BrokerHTTP(method, path, dataSource?, timeout?, parseRaw?)` | metadati HTTP (usati dallo scanner) |
|
|
624
624
|
|
|
625
625
|
### Pipe utility
|
|
626
626
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-match.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/acl/auth-match.ts"],"names":[],"mappings":";;AAkBA,oDAEC;AAXD,SAAS,IAAI,CAAC,CAAU;IACtB,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAOD,SAAgB,oBAAoB,CAAC,KAAe,EAAE,GAAwB;IAC5E,OAAO,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAC9G,CAAC"}
|
package/modules/acl/const.d.ts
CHANGED
|
@@ -7,13 +7,16 @@ export declare const ACL_ACTIONS: {
|
|
|
7
7
|
readonly listResourcesByUser: "acl-list-resources-by-user";
|
|
8
8
|
readonly grant: "acl-grant";
|
|
9
9
|
readonly revoke: "acl-revoke";
|
|
10
|
+
readonly grantSearch: "acl-grant-search";
|
|
10
11
|
readonly invalidate: "acl-invalidate";
|
|
11
12
|
readonly actionUpdate: "acl-action-update";
|
|
12
13
|
readonly actionDelete: "acl-action-delete";
|
|
13
14
|
readonly actionList: "acl-action-list";
|
|
14
15
|
readonly actionGet: "acl-action-get";
|
|
16
|
+
readonly actionSearch: "acl-action-search";
|
|
15
17
|
readonly roleUpdate: "acl-role-update";
|
|
16
18
|
readonly roleDelete: "acl-role-delete";
|
|
17
19
|
readonly roleList: "acl-role-list";
|
|
18
20
|
readonly roleGet: "acl-role-get";
|
|
21
|
+
readonly roleSearch: "acl-role-search";
|
|
19
22
|
};
|
package/modules/acl/const.js
CHANGED
|
@@ -10,14 +10,17 @@ exports.ACL_ACTIONS = {
|
|
|
10
10
|
listResourcesByUser: 'acl-list-resources-by-user',
|
|
11
11
|
grant: 'acl-grant',
|
|
12
12
|
revoke: 'acl-revoke',
|
|
13
|
+
grantSearch: 'acl-grant-search',
|
|
13
14
|
invalidate: 'acl-invalidate',
|
|
14
15
|
actionUpdate: 'acl-action-update',
|
|
15
16
|
actionDelete: 'acl-action-delete',
|
|
16
17
|
actionList: 'acl-action-list',
|
|
17
18
|
actionGet: 'acl-action-get',
|
|
19
|
+
actionSearch: 'acl-action-search',
|
|
18
20
|
roleUpdate: 'acl-role-update',
|
|
19
21
|
roleDelete: 'acl-role-delete',
|
|
20
22
|
roleList: 'acl-role-list',
|
|
21
23
|
roleGet: 'acl-role-get',
|
|
24
|
+
roleSearch: 'acl-role-search',
|
|
22
25
|
};
|
|
23
26
|
//# sourceMappingURL=const.js.map
|
package/modules/acl/const.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/acl/const.ts"],"names":[],"mappings":";;;AAGa,QAAA,SAAS,GAAG,SAAS,CAAC;AAEtB,QAAA,eAAe,GAAG,iBAAiB,CAAC;AAEpC,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAI5C,QAAA,kCAAkC,GAAG,iBAAiB,CAAC;AAGvD,QAAA,WAAW,GAAG;IAGzB,WAAW,EAAE,kBAAkB;IAE/B,mBAAmB,EAAE,4BAA4B;IACjD,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,UAAU,EAAE,gBAAgB;IAE5B,YAAY,EAAE,mBAAmB;IACjC,YAAY,EAAE,mBAAmB;IACjC,UAAU,EAAE,iBAAiB;IAC7B,SAAS,EAAE,gBAAgB;IAC3B,UAAU,EAAE,iBAAiB;IAC7B,UAAU,EAAE,iBAAiB;IAC7B,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE,cAAc;
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/acl/const.ts"],"names":[],"mappings":";;;AAGa,QAAA,SAAS,GAAG,SAAS,CAAC;AAEtB,QAAA,eAAe,GAAG,iBAAiB,CAAC;AAEpC,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAI5C,QAAA,kCAAkC,GAAG,iBAAiB,CAAC;AAGvD,QAAA,WAAW,GAAG;IAGzB,WAAW,EAAE,kBAAkB;IAE/B,mBAAmB,EAAE,4BAA4B;IACjD,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,WAAW,EAAE,kBAAkB;IAC/B,UAAU,EAAE,gBAAgB;IAE5B,YAAY,EAAE,mBAAmB;IACjC,YAAY,EAAE,mBAAmB;IACjC,UAAU,EAAE,iBAAiB;IAC7B,SAAS,EAAE,gBAAgB;IAC3B,YAAY,EAAE,mBAAmB;IACjC,UAAU,EAAE,iBAAiB;IAC7B,UAAU,EAAE,iBAAiB;IAC7B,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE,cAAc;IACvB,UAAU,EAAE,iBAAiB;CACrB,CAAC"}
|
package/modules/acl/index.d.ts
CHANGED
package/modules/acl/index.js
CHANGED
|
@@ -15,7 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./acl.module"), exports);
|
|
18
|
-
__exportStar(require("./
|
|
18
|
+
__exportStar(require("./auth-match"), exports);
|
|
19
19
|
__exportStar(require("./cache/acl-cache.service"), exports);
|
|
20
20
|
__exportStar(require("./cache/cache-store"), exports);
|
|
21
21
|
__exportStar(require("./config/acl.config"), exports);
|
package/modules/acl/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/acl/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/modules/acl/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+CAA6B;AAC7B,4DAA0C;AAC1C,sDAAoC;AACpC,sDAAoC;AACpC,0CAAwB;AACxB,2CAAyB;AACzB,qEAAmD;AACnD,oEAAkD;AAClD,mEAAiD;AACjD,oEAAkD;AAClD,yDAAuC"}
|
|
@@ -14,4 +14,5 @@ export declare abstract class AclActionRepository {
|
|
|
14
14
|
abstract filterPaginated(filter: Record<string, any>, page?: number, limit?: number): Promise<PaginationModel<AclAction>>;
|
|
15
15
|
abstract retrieveAll(): Promise<AclAction[]>;
|
|
16
16
|
abstract retrieveAllPaginated(page: number, limit: number): Promise<PaginationModel<AclAction>>;
|
|
17
|
+
abstract search(q?: string, page?: number, limit?: number): Promise<PaginationModel<AclAction>>;
|
|
17
18
|
}
|
|
@@ -1 +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":";;;AAQA,MAAsB,mBAAmB;
|
|
1
|
+
{"version":3,"file":"acl-action.repository.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/acl/repository/acl-action.repository.ts"],"names":[],"mappings":";;;AAQA,MAAsB,mBAAmB;CAmBxC;AAnBD,kDAmBC"}
|
|
@@ -11,4 +11,5 @@ export declare abstract class AclGrantRepository {
|
|
|
11
11
|
abstract removeOne(filter: Record<string, any>): Promise<AclGrant>;
|
|
12
12
|
abstract filter(filter: Record<string, any>): Promise<AclGrant[]>;
|
|
13
13
|
abstract filterPaginated(filter: Record<string, any>, page?: number, limit?: number): Promise<PaginationModel<AclGrant>>;
|
|
14
|
+
abstract search(q?: string, page?: number, limit?: number): Promise<PaginationModel<AclGrant>>;
|
|
14
15
|
}
|
|
@@ -1 +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":";;;AAOA,MAAsB,kBAAkB;
|
|
1
|
+
{"version":3,"file":"acl-grant.repository.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/acl/repository/acl-grant.repository.ts"],"names":[],"mappings":";;;AAOA,MAAsB,kBAAkB;CAevC;AAfD,gDAeC"}
|
|
@@ -13,4 +13,5 @@ export declare abstract class AclRoleRepository {
|
|
|
13
13
|
abstract list(): Promise<AclRole[]>;
|
|
14
14
|
abstract listPaginated(page: number, limit: number): Promise<PaginationModel<AclRole>>;
|
|
15
15
|
abstract getActionsByNames(names: string[]): Promise<string[]>;
|
|
16
|
+
abstract search(q?: string, page?: number, limit?: number): Promise<PaginationModel<AclRole>>;
|
|
16
17
|
}
|
|
@@ -1 +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":";;;AAQA,MAAsB,iBAAiB;
|
|
1
|
+
{"version":3,"file":"acl-role.repository.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/acl/repository/acl-role.repository.ts"],"names":[],"mappings":";;;AAQA,MAAsB,iBAAiB;CAkBtC;AAlBD,8CAkBC"}
|
|
@@ -26,6 +26,9 @@ export declare class AclManagementService {
|
|
|
26
26
|
deleteRole(name: string): Promise<AclRole>;
|
|
27
27
|
listRoles(page?: number, limit?: number): Promise<PaginationModel<AclRole>>;
|
|
28
28
|
getRole(name: string): Promise<AclRole>;
|
|
29
|
+
searchActions(q?: string, page?: number, limit?: number): Promise<PaginationModel<AclAction>>;
|
|
30
|
+
searchRoles(q?: string, page?: number, limit?: number): Promise<PaginationModel<AclRole>>;
|
|
31
|
+
searchGrants(q?: string, page?: number, limit?: number): Promise<PaginationModel<AclGrant>>;
|
|
29
32
|
getActionsByNames(names: string[]): Promise<string[]>;
|
|
30
33
|
private assertActionsExist;
|
|
31
34
|
private assertRolesExist;
|
|
@@ -17,7 +17,7 @@ exports.AclManagementService = 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
|
|
20
|
+
const auth_match_1 = require("../auth-match");
|
|
21
21
|
const acl_cache_service_1 = require("../cache/acl-cache.service");
|
|
22
22
|
const const_1 = require("../const");
|
|
23
23
|
const acl_action_repository_1 = require("../repository/acl-action.repository");
|
|
@@ -79,7 +79,7 @@ let AclManagementService = AclManagementService_1 = class AclManagementService {
|
|
|
79
79
|
}
|
|
80
80
|
async findGrant(userId, companyId, resourceId) {
|
|
81
81
|
const all = await this.grants.filter({ userId });
|
|
82
|
-
return (all || []).find((g) => (0,
|
|
82
|
+
return (all || []).find((g) => (0, auth_match_1.grantMatchesResource)(g, { companyId, resourceId }));
|
|
83
83
|
}
|
|
84
84
|
async upsertAction(name, description) {
|
|
85
85
|
if (!name)
|
|
@@ -130,6 +130,15 @@ let AclManagementService = AclManagementService_1 = class AclManagementService {
|
|
|
130
130
|
throw new common_2.BadRequestError('name is required');
|
|
131
131
|
return this.roles.findByName(name);
|
|
132
132
|
}
|
|
133
|
+
async searchActions(q, page, limit) {
|
|
134
|
+
return this.actions.search(q, Number(page) || 1, Number(limit) || 10);
|
|
135
|
+
}
|
|
136
|
+
async searchRoles(q, page, limit) {
|
|
137
|
+
return this.roles.search(q, Number(page) || 1, Number(limit) || 10);
|
|
138
|
+
}
|
|
139
|
+
async searchGrants(q, page, limit) {
|
|
140
|
+
return this.grants.search(q, Number(page) || 1, Number(limit) || 10);
|
|
141
|
+
}
|
|
133
142
|
async getActionsByNames(names) {
|
|
134
143
|
return this.roles.getActionsByNames(names);
|
|
135
144
|
}
|
|
@@ -231,6 +240,33 @@ __decorate([
|
|
|
231
240
|
__metadata("design:paramtypes", [String]),
|
|
232
241
|
__metadata("design:returntype", Promise)
|
|
233
242
|
], AclManagementService.prototype, "getRole", null);
|
|
243
|
+
__decorate([
|
|
244
|
+
(0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.actionSearch, 'rpc'),
|
|
245
|
+
__param(0, (0, broker_1.BrokerParam)('body', 'q')),
|
|
246
|
+
__param(1, (0, broker_1.BrokerParam)('body', 'page')),
|
|
247
|
+
__param(2, (0, broker_1.BrokerParam)('body', 'limit')),
|
|
248
|
+
__metadata("design:type", Function),
|
|
249
|
+
__metadata("design:paramtypes", [String, Number, Number]),
|
|
250
|
+
__metadata("design:returntype", Promise)
|
|
251
|
+
], AclManagementService.prototype, "searchActions", null);
|
|
252
|
+
__decorate([
|
|
253
|
+
(0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.roleSearch, 'rpc'),
|
|
254
|
+
__param(0, (0, broker_1.BrokerParam)('body', 'q')),
|
|
255
|
+
__param(1, (0, broker_1.BrokerParam)('body', 'page')),
|
|
256
|
+
__param(2, (0, broker_1.BrokerParam)('body', 'limit')),
|
|
257
|
+
__metadata("design:type", Function),
|
|
258
|
+
__metadata("design:paramtypes", [String, Number, Number]),
|
|
259
|
+
__metadata("design:returntype", Promise)
|
|
260
|
+
], AclManagementService.prototype, "searchRoles", null);
|
|
261
|
+
__decorate([
|
|
262
|
+
(0, broker_1.BrokerAction)(const_1.ACL_TOPIC, const_1.ACL_ACTIONS.grantSearch, 'rpc'),
|
|
263
|
+
__param(0, (0, broker_1.BrokerParam)('body', 'q')),
|
|
264
|
+
__param(1, (0, broker_1.BrokerParam)('body', 'page')),
|
|
265
|
+
__param(2, (0, broker_1.BrokerParam)('body', 'limit')),
|
|
266
|
+
__metadata("design:type", Function),
|
|
267
|
+
__metadata("design:paramtypes", [String, Number, Number]),
|
|
268
|
+
__metadata("design:returntype", Promise)
|
|
269
|
+
], AclManagementService.prototype, "searchGrants", null);
|
|
234
270
|
exports.AclManagementService = AclManagementService = AclManagementService_1 = __decorate([
|
|
235
271
|
(0, common_1.Injectable)(),
|
|
236
272
|
__param(5, (0, common_1.Inject)(const_1.RLB_ACL_OPTIONS)),
|
|
@@ -1 +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":";;;;;;;;;;;;;;;;AAAA,2CAA4D;AAC5D,4CAAmF;AACnF,yCAAyD;AACzD,
|
|
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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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IAclRoleService } from '../../proxy/services/acl.service';
|
|
2
|
+
import { AclResourceContext } from '../auth-match';
|
|
2
3
|
import { AclCacheService } from '../cache/acl-cache.service';
|
|
3
|
-
import { AclResourceContext } from '../authz-match';
|
|
4
4
|
import { AclResourceGroup } from '../models';
|
|
5
5
|
import { AclGrantRepository } from '../repository/acl-grant.repository';
|
|
6
6
|
import { AclRoleRepository } from '../repository/acl-role.repository';
|
|
@@ -17,8 +17,8 @@ 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
|
-
const authz_match_1 = require("../authz-match");
|
|
22
22
|
const const_1 = require("../const");
|
|
23
23
|
const acl_grant_repository_1 = require("../repository/acl-grant.repository");
|
|
24
24
|
const acl_role_repository_1 = require("../repository/acl-role.repository");
|
|
@@ -46,7 +46,7 @@ let AclService = AclService_1 = class AclService {
|
|
|
46
46
|
let allowed = false;
|
|
47
47
|
if (roleNames.size) {
|
|
48
48
|
const grants = await this.grants.filter({ userId });
|
|
49
|
-
const scoped = ctx === undefined ? grants : grants.filter((g) => (0,
|
|
49
|
+
const scoped = ctx === undefined ? grants : grants.filter((g) => (0, auth_match_1.grantMatchesResource)(g, ctx));
|
|
50
50
|
allowed = scoped.some((g) => (g.roles || []).some((r) => roleNames.has(r)));
|
|
51
51
|
}
|
|
52
52
|
await this.cache.set(userId, cacheAction, allowed);
|
|
@@ -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,
|
|
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,8CAAyE;AACzE,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;IAQD,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,GAAmC,EAAE,MAAyB;QAC9F,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC7C,MAAM,QAAQ,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;QACrG,MAAM,WAAW,GAAG,OAAO,QAAQ,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACzD,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QAGnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACtG,CAAC;QACF,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,iCAAoB,EAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/F,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC;IACjB,CAAC;IAGK,AAAN,KAAK,CAAC,iBAAiB,CACU,MAAc,EACd,MAAyB,EACtB,SAAkB,EACjB,UAAmB;QAEtD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,mBAAmB,CACqB,MAAc;QAE1D,IAAI,CAAC;YACH,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,0BAAiB,CAAC,qBAAqB,CAAC,CAAC;YAChE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAClD,MAAM,OAAO,GAAqC,EAAE,CAAC;YACrD,KAAK,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;gBAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;gBACxC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;oBACzB,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;gBACrE,CAAC;gBACD,IAAI,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC3F,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,QAAQ,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;oBACzF,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/C,CAAC;gBACD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAC9D,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;gBAClC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CAEF,CAAA;AAvFY,gCAAU;AA2Cf;IADL,IAAA,qBAAY,EAAC,iBAAS,EAAE,mBAAW,CAAC,WAAW,EAAE,KAAK,CAAC;IAErD,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,WAAW,CAAC,CAAA;IAChC,WAAA,IAAA,oBAAW,EAAC,MAAM,EAAE,YAAY,CAAC,CAAA;;;;mDAQnC;AAGK;IADL,IAAA,qBAAY,EAAC,iBAAS,EAAE,mBAAW,CAAC,mBAAmB,EAAE,KAAK,CAAC;IAE7D,WAAA,IAAA,oBAAW,EAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAA;;;;qDA0B5C;qBArFU,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAKgB,yCAAkB;QACnB,uCAAiB;QACjB,mCAAe;GAN9B,UAAU,CAuFtB"}
|
|
@@ -2,7 +2,7 @@ import { PipeTransform } from "@nestjs/common";
|
|
|
2
2
|
export type BrokerParamSource = 'body' | 'body-full' | 'header' | 'tag' | 'action' | 'topic';
|
|
3
3
|
export type BrokerActionType = 'rpc' | 'event';
|
|
4
4
|
export type BrokerHttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
5
|
-
export type BrokerHttpDataSource = 'query' | 'body' | 'params';
|
|
5
|
+
export type BrokerHttpDataSource = 'query' | 'body' | 'params' | 'body-query' | 'query-body';
|
|
6
6
|
export declare function BrokerAction(topic: string, action: string, type?: BrokerActionType): MethodDecorator;
|
|
7
7
|
export declare function BrokerHTTP(method: BrokerHttpMethod, path: string, dataSource: BrokerHttpDataSource, options?: {
|
|
8
8
|
action?: string;
|
|
@@ -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":";;
|
|
1
|
+
{"version":3,"file":"broker-action.decorator.js","sourceRoot":"","sources":["../../../../libs/rlb-nestjs-amqp/src/modules/broker/decorators/broker-action.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -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);
|