@dudousxd/nestjs-authz 0.6.7 → 0.8.0
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/CHANGELOG.md +54 -0
- package/dist/cerbos/cerbos-decision.provider.d.ts +128 -0
- package/dist/cerbos/cerbos-decision.provider.d.ts.map +1 -0
- package/dist/cerbos/cerbos-decision.provider.js +134 -0
- package/dist/cerbos/cerbos-decision.provider.js.map +1 -0
- package/dist/cerbos/index.d.ts +3 -0
- package/dist/cerbos/index.d.ts.map +1 -0
- package/dist/cerbos/index.js +5 -0
- package/dist/cerbos/index.js.map +1 -0
- package/dist/cerbos/plan.d.ts +41 -0
- package/dist/cerbos/plan.d.ts.map +1 -0
- package/dist/cerbos/plan.js +158 -0
- package/dist/cerbos/plan.js.map +1 -0
- package/dist/decision-provider.d.ts +58 -0
- package/dist/decision-provider.d.ts.map +1 -0
- package/dist/decision-provider.js +2 -0
- package/dist/decision-provider.js.map +1 -0
- package/dist/diagnostics.d.ts +1 -1
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js.map +1 -1
- package/dist/gate.d.ts +17 -1
- package/dist/gate.d.ts.map +1 -1
- package/dist/gate.js +83 -13
- package/dist/gate.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/store-kit.d.ts +55 -0
- package/dist/store-kit.d.ts.map +1 -1
- package/dist/store-kit.js +33 -0
- package/dist/store-kit.js.map +1 -1
- package/dist/tokens.d.ts +7 -0
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +7 -0
- package/dist/tokens.js.map +1 -1
- package/dist/types.d.ts +6 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +10 -3
- package/skills/authz-rbac-seams/SKILL.md +8 -1
package/dist/types.d.ts
CHANGED
|
@@ -83,7 +83,12 @@ export type ResourceLoaderMap = Record<string, ResourceLoader>;
|
|
|
83
83
|
* Global super-admin before-hook. Runs before any policy/gate; truthy → allow.
|
|
84
84
|
* `void`/`undefined`/`false` falls through to normal resolution.
|
|
85
85
|
*/
|
|
86
|
-
export type SuperAdminHook = (user: User, ability: string
|
|
86
|
+
export type SuperAdminHook = (user: User, ability: string,
|
|
87
|
+
/**
|
|
88
|
+
* The dispatch target: the resource instance/class of a single check, or the scoped entity
|
|
89
|
+
* class for `gate.scope(...)`. `undefined` for a model-less ability.
|
|
90
|
+
*/
|
|
91
|
+
resource?: Resource) => PolicyResult | undefined | Promise<PolicyResult | undefined>;
|
|
87
92
|
export interface AuthzModuleOptions {
|
|
88
93
|
/**
|
|
89
94
|
* Policy classes to register explicitly. Each must be decorated with
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B;;;GAGG;AACH,MAAM,MAAM,IAAI,GAAG,OAAO,CAAC;AAE3B;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,cAAc,CAAC;AAEpD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,IAAI,EACV,QAAQ,CAAC,EAAE,QAAQ,KAChB,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,KACZ,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;AAElE,4EAA4E;AAC5E,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACrD,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,QAAQ,KAAK,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAE/F;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,SAAS,GAAG,CACtB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,GAAG,SAAS,EAC3B,QAAQ,CAAC,EAAE,QAAQ,KAChB,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;AAElE;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEjF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE/D;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dudousxd/nestjs-authz",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "NestJS authorization — Laravel-style Gates & Policies, @Can guard, resource resolver (zero DB).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
"policy",
|
|
21
21
|
"acl",
|
|
22
22
|
"rbac",
|
|
23
|
-
"tanstack-intent"
|
|
23
|
+
"tanstack-intent",
|
|
24
|
+
"cerbos"
|
|
24
25
|
],
|
|
25
26
|
"author": "Davi Carvalho <davi@goflip.ai>",
|
|
26
27
|
"type": "module",
|
|
@@ -36,6 +37,11 @@
|
|
|
36
37
|
"types": "./dist/store-kit.d.ts",
|
|
37
38
|
"import": "./dist/store-kit.js",
|
|
38
39
|
"default": "./dist/store-kit.js"
|
|
40
|
+
},
|
|
41
|
+
"./cerbos": {
|
|
42
|
+
"types": "./dist/cerbos/index.d.ts",
|
|
43
|
+
"import": "./dist/cerbos/index.js",
|
|
44
|
+
"default": "./dist/cerbos/index.js"
|
|
39
45
|
}
|
|
40
46
|
},
|
|
41
47
|
"files": [
|
|
@@ -59,11 +65,12 @@
|
|
|
59
65
|
}
|
|
60
66
|
},
|
|
61
67
|
"devDependencies": {
|
|
68
|
+
"@cerbos/http": "0.29.0",
|
|
62
69
|
"@nestjs/common": "12.0.1",
|
|
63
|
-
"@tanstack/intent": "0.4.0",
|
|
64
70
|
"@nestjs/core": "12.0.1",
|
|
65
71
|
"@nestjs/platform-express": "12.0.1",
|
|
66
72
|
"@nestjs/testing": "12.0.1",
|
|
73
|
+
"@tanstack/intent": "0.4.0",
|
|
67
74
|
"@types/express": "4.17.25",
|
|
68
75
|
"@types/node": "20.19.43",
|
|
69
76
|
"@types/supertest": "6.0.3",
|
|
@@ -8,7 +8,7 @@ description: >
|
|
|
8
8
|
segment wildcard matching (granted posts.* satisfies posts.update, * satisfies anything).
|
|
9
9
|
ROLE_PROVIDER (a RoleProvider.getRoles) feeds coarse checks gate.hasRole / @Roles, unioned
|
|
10
10
|
with the user-object defaultRoleResolver (reads user.roles / user.role). Both tokens are
|
|
11
|
-
capability symbols the ORM adapters (@dudousxd/nestjs-authz-typeorm / -prisma / -mikro-orm)
|
|
11
|
+
capability symbols the ORM adapters (@dudousxd/nestjs-authz-typeorm / -prisma / -mikro-orm / -drizzle)
|
|
12
12
|
register via AuthzRbacModule; seams are grant-only — a false result never DENIES, it falls
|
|
13
13
|
through. Covers resolveRoles override and zero-table role checks.
|
|
14
14
|
metadata:
|
|
@@ -62,6 +62,13 @@ await gate.forUser(user).allows('posts.publish'); // true via PERMISSION_PROVIDE
|
|
|
62
62
|
await gate.forUser(user).hasRole('editor'); // true via ROLE_PROVIDER
|
|
63
63
|
```
|
|
64
64
|
|
|
65
|
+
Admin-UI management lives on every adapter's store too (same semantics everywhere):
|
|
66
|
+
`syncRolePermissions(role, names)` replaces a role's permission set, `getRolePermissions(roles)`
|
|
67
|
+
returns `{ [role]: permissionNames }` (missing roles absent), `deleteRole(role)` removes the role
|
|
68
|
+
with its links and assignments, `listRoleAssignments({ tenantId?, role?, user?, source? })` lists
|
|
69
|
+
raw `{ userType, userId, role, source, tenantId }` rows (`tenantId: null` = global only, a string =
|
|
70
|
+
that tenant's scoped rows only), and `removeUser(user)` drops all of a user's assignments.
|
|
71
|
+
|
|
65
72
|
## Core patterns
|
|
66
73
|
|
|
67
74
|
### A hand-rolled PermissionProvider
|