@open-rlb/nestjs-amqp 2.0.8 → 2.0.9
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 +9 -10
- package/modules/acl/authz-match.d.ts +6 -0
- package/modules/acl/authz-match.js +10 -0
- package/modules/acl/authz-match.js.map +1 -0
- package/modules/acl/config/acl.config.d.ts +1 -0
- package/modules/acl/const.d.ts +2 -2
- package/modules/acl/const.js +3 -3
- package/modules/acl/const.js.map +1 -1
- package/modules/acl/index.d.ts +1 -0
- package/modules/acl/index.js +1 -0
- package/modules/acl/index.js.map +1 -1
- package/modules/acl/services/acl-management.service.d.ts +7 -3
- package/modules/acl/services/acl-management.service.js +24 -10
- package/modules/acl/services/acl-management.service.js.map +1 -1
- package/modules/acl/services/acl.service.d.ts +3 -4
- package/modules/acl/services/acl.service.js +24 -46
- package/modules/acl/services/acl.service.js.map +1 -1
- package/modules/broker/config/decorator-paths.js +2 -2
- package/modules/broker/config/decorator-paths.js.map +1 -1
- package/modules/broker/decorators/broker-action.decorator.d.ts +1 -1
- package/modules/broker/decorators/broker-action.decorator.js +2 -2
- package/modules/broker/decorators/broker-action.decorator.js.map +1 -1
- package/modules/broker/services/shutdown-state.service.d.ts +1 -0
- package/modules/broker/services/shutdown-state.service.js +12 -12
- package/modules/broker/services/shutdown-state.service.js.map +1 -1
- package/modules/gateway-admin/util/route-manifest.js +1 -1
- package/modules/gateway-admin/util/route-manifest.js.map +1 -1
- package/modules/proxy/config/path-definition.config.d.ts +2 -2
- package/modules/proxy/services/acl.service.d.ts +2 -2
- package/modules/proxy/services/acl.service.js.map +1 -1
- package/modules/proxy/services/http-auth-handler.service.d.ts +6 -4
- package/modules/proxy/services/http-auth-handler.service.js +15 -9
- package/modules/proxy/services/http-auth-handler.service.js.map +1 -1
- package/modules/proxy/services/http-handler.service.js +4 -3
- package/modules/proxy/services/http-handler.service.js.map +1 -1
- package/modules/proxy/services/websocket.service.js +5 -5
- package/modules/proxy/services/websocket.service.js.map +1 -1
- package/package.json +1 -1
- package/schematics/nest-add/files/skills/rlb-amqp/SKILL.md +3 -3
- package/schematics/nest-add/files/skills/rlb-amqp/references/config-schema.md +18 -14
- package/schematics/nest-add/files/skills/rlb-amqp/references/gotchas.md +42 -17
- package/schematics/nest-add/files/skills/rlb-amqp-acl/SKILL.md +51 -38
- package/schematics/nest-add/files/skills/rlb-amqp-add-action/SKILL.md +4 -3
- package/schematics/nest-add/files/skills/rlb-amqp-add-route/SKILL.md +20 -14
- package/schematics/nest-add/files/skills/rlb-amqp-add-ws-event/SKILL.md +7 -6
- package/schematics/nest-add/files/skills/rlb-amqp-gateway-admin/SKILL.md +1 -1
- package/schematics/nest-add/files/skills/rlb-amqp-scaffold/SKILL.md +4 -4
- package/schematics/nest-add/index.js +8 -12
- package/schematics/nest-add/index.js.map +1 -1
- package/schematics/nest-add/index.ts +8 -12
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rlb-amqp-acl
|
|
3
|
-
description: Manage
|
|
3
|
+
description: Manage access control (ACL) with @open-rlb/nestjs-amqp — actions, roles, grants/revokes, and "can user do X" checks. Use when wiring AclModule, gating gateway routes by actions, granting/revoking a user's roles, listing a user's resources, or answering authorization/permission questions (actions, roles, grants, acl-check).
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Manage ACL (@open-rlb/nestjs-amqp)
|
|
@@ -11,15 +11,16 @@ Read first when you need depth:
|
|
|
11
11
|
- `sample/config-sample/acl.yaml` (annotated broker + gateway reference)
|
|
12
12
|
- `sample/config-sample/gateway-in-memory/src/app.module.ts` (forRoot wiring)
|
|
13
13
|
|
|
14
|
-
Use when: managing **actions/roles/grants**, wiring `AclModule`,
|
|
15
|
-
(`
|
|
14
|
+
Use when: managing **actions/roles/grants**, wiring `AclModule`, action-gating routes
|
|
15
|
+
(`actions: [...]`), or answering "can user do X".
|
|
16
16
|
|
|
17
17
|
## Model (3 entities)
|
|
18
18
|
|
|
19
19
|
- **Action** — atomic capability (`read-doc`). Name-keyed.
|
|
20
20
|
- **Role** — bundle of action names (`editor = [read-doc, write-doc]`). Name-keyed.
|
|
21
|
-
- **Grant** — binds a `userId` → role names; one record per `(userId, resourceId)`.
|
|
22
|
-
- **Checks**
|
|
21
|
+
- **Grant** — binds a `userId` → role names; one record per `(userId, companyId, resourceId)`.
|
|
22
|
+
- **Checks** resolve the requested **action** → roles-that-include-it, then match the
|
|
23
|
+
user's grants. The route/gate names **actions**; grants still assign **roles**.
|
|
23
24
|
|
|
24
25
|
## Decorator-bound (NOT configurable)
|
|
25
26
|
|
|
@@ -28,8 +29,8 @@ reference them literally. The queue / exchange / routingKey that carry the topic
|
|
|
28
29
|
|
|
29
30
|
`ACL_ACTIONS`: `acl-action-list`, `acl-action-get`, `acl-action-update`,
|
|
30
31
|
`acl-action-delete`, `acl-role-list`, `acl-role-get`, `acl-role-update`,
|
|
31
|
-
`acl-role-delete`, `acl-grant`, `acl-revoke`, `acl-
|
|
32
|
-
`acl-
|
|
32
|
+
`acl-role-delete`, `acl-grant`, `acl-revoke`, `acl-check-action`,
|
|
33
|
+
`acl-list-resources-by-user`, `acl-invalidate`.
|
|
33
34
|
|
|
34
35
|
> **Removed in 2.0.5:** `acl-list-by-user`, `acl-verify-access`, `acl-create` /
|
|
35
36
|
> id-based ACL CRUD. Entities are name-keyed: **PUT upserts, no POST.**
|
|
@@ -40,28 +41,36 @@ No id, no POST. `PUT` upserts by `name` (idempotent), `GET` lists (`?page=&limit
|
|
|
40
41
|
`GET …/get?name=` reads one, `DELETE` removes by `name`. Role upsert: every referenced
|
|
41
42
|
action must already exist (else **400**).
|
|
42
43
|
|
|
43
|
-
## Grants — dual grant/revoke
|
|
44
|
+
## Grants — dual grant/revoke (now GATED)
|
|
44
45
|
|
|
45
|
-
One record per `(userId, resourceId)`. Both ops **require `userId` + `roles`**;
|
|
46
|
-
`resourceId` + `companyId` are **optional
|
|
46
|
+
One record per `(userId, companyId, resourceId)`. Both ops **require `userId` + `roles`**;
|
|
47
|
+
`resourceId` + `companyId` are **optional** but PART of the record identity.
|
|
47
48
|
|
|
48
|
-
- `acl-grant` — merges roles into the
|
|
49
|
+
- `acl-grant` — merges roles into the triple (creates if absent; idempotent).
|
|
49
50
|
- `acl-revoke` — removes roles; deletes the record once empty.
|
|
50
51
|
- Both validate every role exists (unknown role → **400**) and invalidate the user's cache.
|
|
51
|
-
- `companyId` (replaced `resourceBusinessId`) is **
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
`
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
52
|
+
- `companyId` (replaced `resourceBusinessId`) is **load-bearing**: it is part of the grant
|
|
53
|
+
identity AND part of authorization (a grant matches only when its `companyId` equals the
|
|
54
|
+
request's). It also groups `acl-list-resources-by-user` output.
|
|
55
|
+
- **Caller gating:** `acl-grant`/`acl-revoke` require the caller (forwarded
|
|
56
|
+
`X-GTW-AUTH-USERID`) to hold the `role-management` action on the TARGET
|
|
57
|
+
`(companyId, resourceId)`, else **403**. The gate action defaults to `role-management`,
|
|
58
|
+
overridable via `AclModuleOptions.roleManagementAction`. Bootstrap by seeding the first
|
|
59
|
+
`role-management` grant directly in the DB (no caller can grant it otherwise).
|
|
60
|
+
|
|
61
|
+
## Checks — single primitive, GET → 200 with `true`/`false`
|
|
62
|
+
|
|
63
|
+
`false` is real content; only `null`/`undefined` collapses to 204. Returns `false`
|
|
64
|
+
(never throws) on missing input or error.
|
|
65
|
+
|
|
66
|
+
- `acl-check-action` → `checkAction(userId, ctx, action)`, `ctx = { companyId?, resourceId? }`,
|
|
67
|
+
`action = string | string[]` (OR). Resolves the action(s) → roles-that-include-it, then
|
|
68
|
+
matches the user's grants. A grant authorizes **iff** `grant.companyId === req.companyId &&
|
|
69
|
+
grant.resourceId === req.resourceId` (undefined/null/`''` all count as absent). The ONLY
|
|
70
|
+
carve-out: both ids absent on the request AND on the grant. **No wildcard** — a `null`
|
|
71
|
+
`resourceId` no longer matches everything; `companyId` is load-bearing.
|
|
72
|
+
Query: `?userId=&action=read-doc&companyId=acme&resourceId=doc-1`.
|
|
73
|
+
- `acl-list-resources-by-user` — **auth-gated** (needs `auth`, no actions): reads `userId`
|
|
65
74
|
from the forwarded `X-GTW-AUTH-USERID` header; lists accessible resources grouped by
|
|
66
75
|
`companyId` with resolved actions.
|
|
67
76
|
|
|
@@ -88,8 +97,9 @@ AclModule.forRoot(
|
|
|
88
97
|
);
|
|
89
98
|
```
|
|
90
99
|
|
|
91
|
-
Gateway side — let route `
|
|
92
|
-
binding the gateway token to the same `AclService
|
|
100
|
+
Gateway side — let route `actions: [...]` gates run **in-process** (no broker hop) by
|
|
101
|
+
binding the gateway token to the same `AclService` (implements
|
|
102
|
+
`IAclRoleService.checkAction(userId, ctx, action)`):
|
|
93
103
|
|
|
94
104
|
```ts
|
|
95
105
|
import { ProxyModule, AclService, RLB_GTW_ACL_ROLE_SERVICE } from '@open-rlb/nestjs-amqp';
|
|
@@ -99,8 +109,9 @@ ProxyModule.forRoot({
|
|
|
99
109
|
});
|
|
100
110
|
```
|
|
101
111
|
|
|
102
|
-
Same process → `useExisting`. Separate services → gateway RPCs `acl-
|
|
103
|
-
`rlb-acl` instead. A route's `
|
|
112
|
+
Same process → `useExisting`. Separate services → gateway RPCs `acl-check-action` on
|
|
113
|
+
`rlb-acl` instead. A route's `actions` are ACTION NAMES; the caller is authorized if it
|
|
114
|
+
holds **≥1** of them on the request's `(companyId, resourceId)`.
|
|
104
115
|
|
|
105
116
|
## YAML — topic + queue (names fixed, transport yours)
|
|
106
117
|
|
|
@@ -135,10 +146,9 @@ the fixed library string.
|
|
|
135
146
|
| acl-role-get | GET | /acl/roles/get | query | acl-role-get |
|
|
136
147
|
| acl-role-upsert | PUT | /acl/roles | body | acl-role-update |
|
|
137
148
|
| acl-role-delete | DELETE | /acl/roles | body | acl-role-delete |
|
|
138
|
-
| acl-grant | POST | /acl/grants | body | acl-grant |
|
|
139
|
-
| acl-revoke | DELETE | /acl/grants | body | acl-revoke |
|
|
140
|
-
| acl-check
|
|
141
|
-
| acl-check-resource | GET | /acl/check-resource | query | acl-can-user-do |
|
|
149
|
+
| acl-grant | POST | /acl/grants | body | acl-grant (gated: caller needs `role-management`) |
|
|
150
|
+
| acl-revoke | DELETE | /acl/grants | body | acl-revoke (gated: caller needs `role-management`) |
|
|
151
|
+
| acl-check | GET | /acl/check | query | acl-check-action |
|
|
142
152
|
| acl-list-resources-by-user | GET | /acl/resources | query | acl-list-resources-by-user (+ `auth:`) |
|
|
143
153
|
|
|
144
154
|
```yaml
|
|
@@ -153,18 +163,18 @@ gateway:
|
|
|
153
163
|
action: acl-role-update
|
|
154
164
|
mode: rpc
|
|
155
165
|
- name: acl-grant # body: { userId, roles, resourceId?, companyId?, friendlyName? }
|
|
156
|
-
method: POST
|
|
166
|
+
method: POST # gated: caller (X-GTW-AUTH-USERID) needs role-management on target
|
|
157
167
|
path: /acl/grants
|
|
158
168
|
dataSource: body
|
|
159
169
|
topic: rlb-acl
|
|
160
170
|
action: acl-grant
|
|
161
171
|
mode: rpc
|
|
162
|
-
- name: acl-check
|
|
172
|
+
- name: acl-check # ?userId=&action=read-doc&companyId=&resourceId= → 200 true/false
|
|
163
173
|
method: GET
|
|
164
174
|
path: /acl/check
|
|
165
175
|
dataSource: query
|
|
166
176
|
topic: rlb-acl
|
|
167
|
-
action: acl-
|
|
177
|
+
action: acl-check-action
|
|
168
178
|
mode: rpc
|
|
169
179
|
- name: acl-list-resources-by-user # auth-gated; userId from X-GTW-AUTH-USERID
|
|
170
180
|
method: GET
|
|
@@ -180,6 +190,9 @@ gateway:
|
|
|
180
190
|
|
|
181
191
|
- topic `rlb-acl` + its queue declared on the consuming service; gateway paths use the
|
|
182
192
|
literal `action` strings above.
|
|
183
|
-
-
|
|
184
|
-
`IAclRoleService` (`AclService`). Auth-provider needs `uidClaim`
|
|
193
|
+
- action-gated routes (`actions: [...]`) → `RLB_GTW_ACL_ROLE_SERVICE` bound to an
|
|
194
|
+
`IAclRoleService` (`AclService`, `checkAction`). Auth-provider needs `uidClaim`
|
|
195
|
+
(+ `headerPrefix`).
|
|
196
|
+
- `acl-grant`/`acl-revoke` are gated — seed the first `role-management` grant directly in
|
|
197
|
+
the DB or every caller gets `403`.
|
|
185
198
|
- a check returning `false` is a **200**, not an error.
|
|
@@ -97,8 +97,9 @@ Two independent pairings sit on the method, each only needed in the multi case:
|
|
|
97
97
|
`@BrokerAuth` is **public**.
|
|
98
98
|
|
|
99
99
|
Auth lives in a separate, decoupled decorator —
|
|
100
|
-
`@BrokerAuth(authName, allowAnonymous?,
|
|
101
|
-
This lets two HTTP paths for the SAME
|
|
100
|
+
`@BrokerAuth(authName, allowAnonymous?, actions?, httpName?)` — never inside `@BrokerHTTP`'s options.
|
|
101
|
+
The 3rd param is `actions` (ACL action names, was `roles`). This lets two HTTP paths for the SAME
|
|
102
|
+
action carry DIFFERENT auth.
|
|
102
103
|
|
|
103
104
|
Simple case — one route, auth auto-pairs (no names needed):
|
|
104
105
|
|
|
@@ -118,7 +119,7 @@ Multi case — two routes for ONE action, each name-paired to its own auth:
|
|
|
118
119
|
@BrokerHTTP('GET', '/bookings/:id', 'params', { name: 'get-booking' })
|
|
119
120
|
@BrokerAuth('cust-jwks', true, undefined, 'get-booking') // httpName ⇄ route name
|
|
120
121
|
@BrokerHTTP('GET', '/admin/bookings/:id', 'params', { name: 'admin-get-booking' })
|
|
121
|
-
@BrokerAuth('admin-jwks', undefined, ['admin'], 'admin-get-booking')
|
|
122
|
+
@BrokerAuth('admin-jwks', undefined, ['booking.admin'], 'admin-get-booking') // 3rd param = ACL actions
|
|
122
123
|
async getBooking(@BrokerParam('params', 'id') id: string) {
|
|
123
124
|
return this.bookings.find(id);
|
|
124
125
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rlb-amqp-add-route
|
|
3
|
-
description: Expose a broker action over HTTP through the @open-rlb/nestjs-amqp gateway by adding a gateway.paths[] entry. Use when the user wants a new HTTP endpoint/REST route that forwards to a topic/action, choosing rpc (wait reply) vs event (fire-and-forget with confirm), with auth,
|
|
3
|
+
description: Expose a broker action over HTTP through the @open-rlb/nestjs-amqp gateway by adding a gateway.paths[] entry. Use when the user wants a new HTTP endpoint/REST route that forwards to a topic/action, choosing rpc (wait reply) vs event (fire-and-forget with confirm), with auth, actions (ACL gate), dataSource, timeout, file upload or raw body. Generates the YAML path fragment and flags required bootstrap/ACL wiring.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Add an HTTP gateway route (gateway.paths[])
|
|
@@ -20,7 +20,9 @@ Canonical example: `sample/config-sample/gateway-in-memory/config/config.yaml`.
|
|
|
20
20
|
- **dataSource**: how the payload is assembled — `req.params` are ALWAYS merged in, plus:
|
|
21
21
|
`body` | `query` | `params` | `body-query` (body wins) | `query-body` (query wins).
|
|
22
22
|
- **auth**: an `auth-provider` name (validates the request, maps claims to `X-GTW-AUTH-*`
|
|
23
|
-
headers). `allowAnonymous: true` skips the gate. `
|
|
23
|
+
headers). `allowAnonymous: true` skips the gate. `actions: [...]` adds an ACL action check
|
|
24
|
+
scoped to the request's `(companyId, resourceId)` (read from the canonical fields,
|
|
25
|
+
params → query → body).
|
|
24
26
|
- Extras: `timeout` (rpc), `successStatusCode`, `binary`, `redirect`, `parseRaw`, static
|
|
25
27
|
`headers`, `forwardHeaders`.
|
|
26
28
|
|
|
@@ -36,7 +38,7 @@ Canonical example: `sample/config-sample/gateway-in-memory/config/config.yaml`.
|
|
|
36
38
|
| `dataSource` | `body` \| `query` \| `params` \| `body-query` \| `query-body`. |
|
|
37
39
|
| `auth` | Auth-provider name; validates + maps claims. |
|
|
38
40
|
| `allowAnonymous` | `true` → gate skipped (token still mapped if present & valid). |
|
|
39
|
-
| `
|
|
41
|
+
| `actions` | ACTION NAMES; caller passes holding AT LEAST ONE on the request's `(companyId, resourceId)`. Requires `auth`. |
|
|
40
42
|
| `timeout` | RPC timeout (ms), `rpc` only. |
|
|
41
43
|
| `binary` | Treat a raw (non-JSON) RPC reply as base64 → binary body. |
|
|
42
44
|
| `parseRaw` | Adds the raw request body as `$raw` (needs `rawBody: true`). |
|
|
@@ -60,7 +62,7 @@ gateway:
|
|
|
60
62
|
action: <action>
|
|
61
63
|
mode: rpc # or event
|
|
62
64
|
auth: gateway-jwks # optional
|
|
63
|
-
|
|
65
|
+
actions: [resource.write] # optional → needs RLB_GTW_ACL_ROLE_SERVICE; checked on (companyId, resourceId)
|
|
64
66
|
timeout: 7000 # rpc only
|
|
65
67
|
successStatusCode: 201
|
|
66
68
|
```
|
|
@@ -71,15 +73,18 @@ For every request the gateway runs `processAuthData` (best-effort), then:
|
|
|
71
73
|
|
|
72
74
|
1. **`allowAnonymous: true`** → gate SKIPPED. A valid token still gets its claims mapped &
|
|
73
75
|
forwarded; a missing/invalid token is NOT blocked.
|
|
74
|
-
2. **`auth` set, no `
|
|
76
|
+
2. **`auth` set, no `actions`** → authentication only. Provider must validate (else `401`);
|
|
75
77
|
on success the `X-GTW-AUTH-*` headers are forwarded downstream.
|
|
76
|
-
3. **`auth` + `
|
|
77
|
-
id from the provider's `uidClaim
|
|
78
|
-
|
|
78
|
+
3. **`auth` + `actions`** → authn + action authz. After a valid token the gateway reads the
|
|
79
|
+
user id from the provider's `uidClaim`, extracts `(companyId, resourceId)` from the request
|
|
80
|
+
(canonical fields, params → query → body), and calls
|
|
81
|
+
`IAclRoleService.checkAction(userId, { companyId, resourceId }, actions)` in-process. Passes
|
|
82
|
+
if the caller holds at least one of `actions` on that pair, else `403`. The check is
|
|
83
|
+
**exact-match on `(companyId, resourceId)` — there is no wildcard**, and `companyId` is
|
|
84
|
+
load-bearing.
|
|
79
85
|
|
|
80
|
-
> `
|
|
81
|
-
> `403`, logged loudly at boot).
|
|
82
|
-
> the gateway — it lives on the target microservice.
|
|
86
|
+
> `actions` WITHOUT `auth` is a misconfiguration: no identity → fails closed (every request
|
|
87
|
+
> `403`, logged loudly at boot).
|
|
83
88
|
|
|
84
89
|
## Status mapping
|
|
85
90
|
|
|
@@ -109,9 +114,10 @@ For every request the gateway runs `processAuthData` (best-effort), then:
|
|
|
109
114
|
## Required wiring to flag
|
|
110
115
|
|
|
111
116
|
- If `parseRaw: true` → bootstrap with `NestFactory.create(AppModule, { rawBody: true })`.
|
|
112
|
-
- If `
|
|
113
|
-
|
|
114
|
-
|
|
117
|
+
- If `actions` is used → an `IAclRoleService` (`checkAction`) must be registered via
|
|
118
|
+
`RLB_GTW_ACL_ROLE_SERVICE` in
|
|
119
|
+
`ProxyModule.forRootAsync({ providers: [{ provide: RLB_GTW_ACL_ROLE_SERVICE, useExisting: AclService }] })`.
|
|
120
|
+
If a path declares `actions` and the service is NOT registered → request DENIED (`403`) +
|
|
115
121
|
error logged. The auth-provider needs a `uidClaim` (+ `headerPrefix`) to resolve the userId.
|
|
116
122
|
- Forwarded auth claims reach the handler as prefixed/uppercased headers
|
|
117
123
|
(e.g. `X-GTW-AUTH-USERID`) — read them with `@BrokerParam('header', ...)`. Request headers
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rlb-amqp-add-ws-event
|
|
3
|
-
description: Add a secure WebSocket event (or HTTP webhook) to the @open-rlb/nestjs-amqp gateway by adding a gateway.events[] entry. Use when the user wants to push broker messages to connected WebSocket clients or to a webhook, with authentication (token in subprotocol), per-event
|
|
3
|
+
description: Add a secure WebSocket event (or HTTP webhook) to the @open-rlb/nestjs-amqp gateway by adding a gateway.events[] entry. Use when the user wants to push broker messages to connected WebSocket clients or to a webhook, with authentication (token in subprotocol), per-event actions/ACL, and per-user scoping to avoid leaking other users' data. Generates the YAML event fragment plus the exchange/queue and ws options, and flags the security wiring.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Add a WebSocket / webhook event (gateway.events[])
|
|
@@ -27,14 +27,15 @@ each message out to the connected clients of EVERY gateway instance. Secure it b
|
|
|
27
27
|
required to subscribe.
|
|
28
28
|
- `requireAuth: false` → makes `auth` optional (anonymous allowed; claims mapped if a token
|
|
29
29
|
is present — handy with `scopeClaim`). Defaults to `true` when `auth` is set.
|
|
30
|
-
- `
|
|
30
|
+
- `actions: [...]` → ACL action check via `IAclRoleService.checkAction` (needs `IAclRoleService`);
|
|
31
|
+
requires `auth` for the identity. WS events gate **resource-agnostically** (both ids absent).
|
|
31
32
|
- `scopeClaim` + `payloadKey` → per-user isolation: a client only receives messages where
|
|
32
33
|
`payload[payloadKey] === claims[scopeClaim]`. `scopeClaim` is the MAPPED claim
|
|
33
34
|
(with `headerPrefix`, e.g. `X-GTW-AUTH-USERID`). Without `payloadKey` it denies all
|
|
34
35
|
(gotcha 16). With `auth` but no `scopeClaim`/`payloadKey`, every authorized subscriber
|
|
35
36
|
gets ALL messages (warned at boot).
|
|
36
37
|
|
|
37
|
-
> Auth/
|
|
38
|
+
> Auth/actions/scope are declared PER-EVENT. `gateway.ws` only holds connection-level limits,
|
|
38
39
|
> heartbeat, origin allowlist and message-size cap (no auth fields). Different events may use
|
|
39
40
|
> different providers.
|
|
40
41
|
|
|
@@ -57,7 +58,7 @@ gateway:
|
|
|
57
58
|
routingKey: orders.#
|
|
58
59
|
auth: gateway-jwks # verifies token + maps claims for this event
|
|
59
60
|
requireAuth: true # default true when auth is set; false → optional
|
|
60
|
-
|
|
61
|
+
actions: [orders.read] # optional → needs IAclRoleService (checkAction); resource-agnostic for WS
|
|
61
62
|
scopeClaim: X-GTW-AUTH-USERID # optional per-user scoping (MAPPED claim)
|
|
62
63
|
payloadKey: userId # message field compared to scopeClaim
|
|
63
64
|
|
|
@@ -89,8 +90,8 @@ broker:
|
|
|
89
90
|
`sample/config-sample/gateway-in-memory/src/main.ts`).
|
|
90
91
|
- `events[].auth` must reference a `jwt`/`jwks` provider; subscribing without a valid token
|
|
91
92
|
yields `{ topic:'onError', data:{ event, error:'unauthorized' } }` (unless `requireAuth:false`).
|
|
92
|
-
A failed
|
|
93
|
-
- `
|
|
93
|
+
A failed action check yields `error:'forbidden'`.
|
|
94
|
+
- `actions` → `IAclRoleService` (`checkAction`) via `RLB_GTW_ACL_ROLE_SERVICE` in
|
|
94
95
|
`ProxyModule.forRootAsync({ providers: [...] })` (gotcha 15).
|
|
95
96
|
- Do NOT add a fixed durable queue for the event — the lib creates a per-instance exclusive
|
|
96
97
|
ephemeral auto-delete queue for fan-out (gotcha 17).
|
|
@@ -203,7 +203,7 @@ routes over the same action can publish with different auth — a route with no
|
|
|
203
203
|
|
|
204
204
|
```ts
|
|
205
205
|
@BrokerHTTP('GET', '/admin/bookings/:id', 'params', { name: 'admin-get-booking' })
|
|
206
|
-
@BrokerAuth('admin-jwks', undefined, ['admin'], 'admin-get-booking') // pairs by httpName
|
|
206
|
+
@BrokerAuth('admin-jwks', undefined, ['booking.admin'], 'admin-get-booking') // 3rd param = ACL actions; pairs by httpName
|
|
207
207
|
```
|
|
208
208
|
|
|
209
209
|
### Consumer (gateway ← microservice) — `GatewayAdminModule` `routeDiscovery`
|
|
@@ -277,10 +277,10 @@ export class AppService {
|
|
|
277
277
|
}
|
|
278
278
|
```
|
|
279
279
|
|
|
280
|
-
Add auth with `@BrokerAuth(authName, allowAnonymous?,
|
|
281
|
-
`@BrokerHTTP
|
|
282
|
-
each `@BrokerHTTP` sets a `name` and each `@BrokerAuth`
|
|
283
|
-
with no `@BrokerAuth` is public.
|
|
280
|
+
Add auth with `@BrokerAuth(authName, allowAnonymous?, actions?, httpName?)` — decoupled from
|
|
281
|
+
`@BrokerHTTP` (3rd param is ACL action names). With one `@BrokerHTTP` it auto-pairs (no
|
|
282
|
+
`httpName` needed); with multiple, each `@BrokerHTTP` sets a `name` and each `@BrokerAuth`
|
|
283
|
+
targets it via `httpName`. A route with no `@BrokerAuth` is public.
|
|
284
284
|
|
|
285
285
|
## Verify
|
|
286
286
|
- topic/queue/exchange names line up across `broker`/`topics`/paths (gotchas 5–7);
|
|
@@ -237,7 +237,7 @@ function buildGatewayBlock(sel) {
|
|
|
237
237
|
events: []
|
|
238
238
|
ws:
|
|
239
239
|
heartbeatIntervalMs: 30000
|
|
240
|
-
# Auth is declared per-event (events[].auth / requireAuth /
|
|
240
|
+
# Auth is declared per-event (events[].auth / requireAuth / actions / scopeClaim).
|
|
241
241
|
paths:
|
|
242
242
|
${paths.join('\n')}`;
|
|
243
243
|
if (anyAdmin) {
|
|
@@ -329,20 +329,16 @@ const ACL_PATHS = ` # --- ACL management: actions (name is the key — PUT up
|
|
|
329
329
|
topic: rlb-acl
|
|
330
330
|
action: acl-revoke
|
|
331
331
|
mode: rpc
|
|
332
|
-
# --- ACL
|
|
333
|
-
|
|
332
|
+
# --- ACL check (GET → 200 with true/false) ---
|
|
333
|
+
# checkAction(userId, {companyId?, resourceId?}, action): true if the user holds the action
|
|
334
|
+
# via any role on the EXACT (companyId, resourceId). companyId/resourceId are optional;
|
|
335
|
+
# when both are absent the check matches resource-less grants only (no wildcard).
|
|
336
|
+
- name: acl-check-action
|
|
334
337
|
method: GET
|
|
335
338
|
path: /acl/check
|
|
336
339
|
dataSource: query
|
|
337
340
|
topic: rlb-acl
|
|
338
|
-
action: acl-
|
|
339
|
-
mode: rpc
|
|
340
|
-
- name: acl-check-resource
|
|
341
|
-
method: GET
|
|
342
|
-
path: /acl/check-resource
|
|
343
|
-
dataSource: query
|
|
344
|
-
topic: rlb-acl
|
|
345
|
-
action: acl-can-user-do
|
|
341
|
+
action: acl-check-action
|
|
346
342
|
mode: rpc
|
|
347
343
|
# Lists the caller's accessible resources. Add an 'auth: <provider>' line once you declare an auth-provider.
|
|
348
344
|
- name: acl-list-resources-by-user
|
|
@@ -503,7 +499,7 @@ function brokerForRootAsync() {
|
|
|
503
499
|
function proxyForRootAsync(sel) {
|
|
504
500
|
const providers = sel.acl
|
|
505
501
|
? `[
|
|
506
|
-
//
|
|
502
|
+
// Action-gated paths resolve the caller's identity via AclService (in-process, no broker hop).
|
|
507
503
|
{ provide: RLB_GTW_ACL_ROLE_SERVICE, useExisting: AclService },
|
|
508
504
|
]`
|
|
509
505
|
: `[]`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/schematics/nest-add/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/rlb-nestjs-amqp/src/schematics/nest-add/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -290,7 +290,7 @@ function buildGatewayBlock(sel: Resolved): string {
|
|
|
290
290
|
events: []
|
|
291
291
|
ws:
|
|
292
292
|
heartbeatIntervalMs: 30000
|
|
293
|
-
# Auth is declared per-event (events[].auth / requireAuth /
|
|
293
|
+
# Auth is declared per-event (events[].auth / requireAuth / actions / scopeClaim).
|
|
294
294
|
paths:
|
|
295
295
|
${paths.join('\n')}`;
|
|
296
296
|
|
|
@@ -384,20 +384,16 @@ const ACL_PATHS = ` # --- ACL management: actions (name is the key — PUT up
|
|
|
384
384
|
topic: rlb-acl
|
|
385
385
|
action: acl-revoke
|
|
386
386
|
mode: rpc
|
|
387
|
-
# --- ACL
|
|
388
|
-
|
|
387
|
+
# --- ACL check (GET → 200 with true/false) ---
|
|
388
|
+
# checkAction(userId, {companyId?, resourceId?}, action): true if the user holds the action
|
|
389
|
+
# via any role on the EXACT (companyId, resourceId). companyId/resourceId are optional;
|
|
390
|
+
# when both are absent the check matches resource-less grants only (no wildcard).
|
|
391
|
+
- name: acl-check-action
|
|
389
392
|
method: GET
|
|
390
393
|
path: /acl/check
|
|
391
394
|
dataSource: query
|
|
392
395
|
topic: rlb-acl
|
|
393
|
-
action: acl-
|
|
394
|
-
mode: rpc
|
|
395
|
-
- name: acl-check-resource
|
|
396
|
-
method: GET
|
|
397
|
-
path: /acl/check-resource
|
|
398
|
-
dataSource: query
|
|
399
|
-
topic: rlb-acl
|
|
400
|
-
action: acl-can-user-do
|
|
396
|
+
action: acl-check-action
|
|
401
397
|
mode: rpc
|
|
402
398
|
# Lists the caller's accessible resources. Add an 'auth: <provider>' line once you declare an auth-provider.
|
|
403
399
|
- name: acl-list-resources-by-user
|
|
@@ -563,7 +559,7 @@ function brokerForRootAsync(): string {
|
|
|
563
559
|
function proxyForRootAsync(sel: Resolved): string {
|
|
564
560
|
const providers = sel.acl
|
|
565
561
|
? `[
|
|
566
|
-
//
|
|
562
|
+
// Action-gated paths resolve the caller's identity via AclService (in-process, no broker hop).
|
|
567
563
|
{ provide: RLB_GTW_ACL_ROLE_SERVICE, useExisting: AclService },
|
|
568
564
|
]`
|
|
569
565
|
: `[]`;
|