@venizia/ignis 0.2.0-5 → 0.2.0-7

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 (72) hide show
  1. package/dist/components/auth/authenticate/services/service/verifier.service.d.ts.map +1 -1
  2. package/dist/components/auth/authenticate/services/service/verifier.service.js +10 -6
  3. package/dist/components/auth/authenticate/services/service/verifier.service.js.map +1 -1
  4. package/dist/components/auth/authorize/adapters/base-filtered.d.ts.map +1 -1
  5. package/dist/components/auth/authorize/adapters/base-filtered.js +5 -8
  6. package/dist/components/auth/authorize/adapters/base-filtered.js.map +1 -1
  7. package/dist/components/auth/authorize/adapters/connector.d.ts +10 -0
  8. package/dist/components/auth/authorize/adapters/connector.d.ts.map +1 -0
  9. package/dist/components/auth/authorize/adapters/connector.js +20 -0
  10. package/dist/components/auth/authorize/adapters/connector.js.map +1 -0
  11. package/dist/components/auth/authorize/adapters/custom-grant-expander.d.ts +52 -0
  12. package/dist/components/auth/authorize/adapters/custom-grant-expander.d.ts.map +1 -0
  13. package/dist/components/auth/authorize/adapters/custom-grant-expander.js +111 -0
  14. package/dist/components/auth/authorize/adapters/custom-grant-expander.js.map +1 -0
  15. package/dist/components/auth/authorize/adapters/index.d.ts +2 -0
  16. package/dist/components/auth/authorize/adapters/index.d.ts.map +1 -1
  17. package/dist/components/auth/authorize/adapters/index.js +2 -0
  18. package/dist/components/auth/authorize/adapters/index.js.map +1 -1
  19. package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.d.ts +53 -37
  20. package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.d.ts.map +1 -1
  21. package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.js +69 -76
  22. package/dist/components/auth/authorize/adapters/scoped-casbin.adapter.js.map +1 -1
  23. package/dist/components/auth/authorize/component.d.ts.map +1 -1
  24. package/dist/components/auth/authorize/component.js +3 -0
  25. package/dist/components/auth/authorize/component.js.map +1 -1
  26. package/dist/components/auth/authorize/enforcers/casbin.enforcer.d.ts +7 -36
  27. package/dist/components/auth/authorize/enforcers/casbin.enforcer.d.ts.map +1 -1
  28. package/dist/components/auth/authorize/enforcers/casbin.enforcer.js +48 -117
  29. package/dist/components/auth/authorize/enforcers/casbin.enforcer.js.map +1 -1
  30. package/dist/components/auth/authorize/enforcers/index.d.ts +2 -1
  31. package/dist/components/auth/authorize/enforcers/index.d.ts.map +1 -1
  32. package/dist/components/auth/authorize/enforcers/index.js +2 -1
  33. package/dist/components/auth/authorize/enforcers/index.js.map +1 -1
  34. package/dist/components/auth/authorize/enforcers/policy-line-codec.d.ts +26 -0
  35. package/dist/components/auth/authorize/enforcers/policy-line-codec.d.ts.map +1 -0
  36. package/dist/components/auth/authorize/enforcers/policy-line-codec.js +57 -0
  37. package/dist/components/auth/authorize/enforcers/policy-line-codec.js.map +1 -0
  38. package/dist/components/auth/authorize/enforcers/user-policy-line-cache.d.ts +46 -0
  39. package/dist/components/auth/authorize/enforcers/user-policy-line-cache.d.ts.map +1 -0
  40. package/dist/components/auth/authorize/enforcers/user-policy-line-cache.js +98 -0
  41. package/dist/components/auth/authorize/enforcers/user-policy-line-cache.js.map +1 -0
  42. package/dist/components/auth/authorize/index.d.ts +1 -0
  43. package/dist/components/auth/authorize/index.d.ts.map +1 -1
  44. package/dist/components/auth/authorize/index.js +1 -0
  45. package/dist/components/auth/authorize/index.js.map +1 -1
  46. package/dist/components/auth/authorize/role-managers/base.d.ts +34 -0
  47. package/dist/components/auth/authorize/role-managers/base.d.ts.map +1 -0
  48. package/dist/components/auth/authorize/role-managers/base.js +76 -0
  49. package/dist/components/auth/authorize/role-managers/base.js.map +1 -0
  50. package/dist/components/auth/authorize/role-managers/domain-hierarchy.d.ts +28 -0
  51. package/dist/components/auth/authorize/role-managers/domain-hierarchy.d.ts.map +1 -0
  52. package/dist/components/auth/authorize/role-managers/domain-hierarchy.js +77 -0
  53. package/dist/components/auth/authorize/role-managers/domain-hierarchy.js.map +1 -0
  54. package/dist/components/auth/authorize/role-managers/index.d.ts +5 -0
  55. package/dist/components/auth/authorize/role-managers/index.d.ts.map +1 -0
  56. package/dist/components/auth/authorize/role-managers/index.js +21 -0
  57. package/dist/components/auth/authorize/role-managers/index.js.map +1 -0
  58. package/dist/components/auth/authorize/role-managers/membership.d.ts +21 -0
  59. package/dist/components/auth/authorize/role-managers/membership.d.ts.map +1 -0
  60. package/dist/components/auth/authorize/role-managers/membership.js +69 -0
  61. package/dist/components/auth/authorize/role-managers/membership.js.map +1 -0
  62. package/dist/components/auth/authorize/{enforcers/resource-role-manager.d.ts → role-managers/resource.d.ts} +3 -9
  63. package/dist/components/auth/authorize/role-managers/resource.d.ts.map +1 -0
  64. package/dist/components/auth/authorize/{enforcers/resource-role-manager.js → role-managers/resource.js} +9 -21
  65. package/dist/components/auth/authorize/role-managers/resource.js.map +1 -0
  66. package/dist/components/auth/models/entities/policy-definition.model.d.ts +28 -14
  67. package/dist/components/auth/models/entities/policy-definition.model.d.ts.map +1 -1
  68. package/dist/components/auth/models/entities/policy-definition.model.js +18 -10
  69. package/dist/components/auth/models/entities/policy-definition.model.js.map +1 -1
  70. package/package.json +8 -8
  71. package/dist/components/auth/authorize/enforcers/resource-role-manager.d.ts.map +0 -1
  72. package/dist/components/auth/authorize/enforcers/resource-role-manager.js.map +0 -1
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./base"), exports);
18
+ __exportStar(require("./domain-hierarchy"), exports);
19
+ __exportStar(require("./membership"), exports);
20
+ __exportStar(require("./resource"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/role-managers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,qDAAmC;AACnC,+CAA6B;AAC7B,6CAA2B"}
@@ -0,0 +1,21 @@
1
+ import type { RoleManager } from 'casbin';
2
+ import { BaseRoleManager } from './base';
3
+ /** `g2` axis (`g2(r.sub, r.dom)`): membership holds when the user joined the request domain or any
4
+ * ancestor of it, walking the shared per-request domain-hierarchy overlay. Memberships are
5
+ * per-principal and rebuilt every request, so `clear()` wipes all. */
6
+ export declare class MembershipRoleManager extends BaseRoleManager implements RoleManager {
7
+ private readonly overlay?;
8
+ private memberships;
9
+ constructor(opts: {
10
+ overlay?: Map<string, Set<string>>;
11
+ });
12
+ clear(): Promise<void>;
13
+ addLink(user: string, domain: string): Promise<void>;
14
+ deleteLink(user: string, domain: string): Promise<void>;
15
+ /** True when `name1` (user) joined `name2` (request domain) itself, or any ancestor of it. Walks UP from the request domain only - walking down from every joined domain would fan out over the whole subtree. */
16
+ syncedHasLink(name1: string, name2: string): boolean;
17
+ /** Local membership state only, not the shared graph - correct for hasLink, incomplete for casbin's management API. */
18
+ getRoles(name: string): Promise<string[]>;
19
+ getUsers(name: string): Promise<string[]>;
20
+ }
21
+ //# sourceMappingURL=membership.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"membership.d.ts","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/role-managers/membership.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC;;sEAEsE;AACtE,qBAAa,qBAAsB,SAAQ,eAAgB,YAAW,WAAW;IAC/E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAGvB;IACF,OAAO,CAAC,WAAW,CAGf;gBAEQ,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;KAAE;IAKlD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASpD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,kNAAkN;IAClN,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IA2BpD,uHAAuH;IACjH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAWhD"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MembershipRoleManager = void 0;
4
+ const base_1 = require("./base");
5
+ /** `g2` axis (`g2(r.sub, r.dom)`): membership holds when the user joined the request domain or any
6
+ * ancestor of it, walking the shared per-request domain-hierarchy overlay. Memberships are
7
+ * per-principal and rebuilt every request, so `clear()` wipes all. */
8
+ class MembershipRoleManager extends base_1.BaseRoleManager {
9
+ constructor(opts) {
10
+ super({ scope: MembershipRoleManager.name });
11
+ this.memberships = new Map();
12
+ this.overlay = opts.overlay;
13
+ }
14
+ async clear() {
15
+ this.memberships = new Map();
16
+ this.graphReported = false;
17
+ }
18
+ async addLink(user, domain) {
19
+ const existing = this.memberships.get(user);
20
+ if (existing) {
21
+ existing.add(domain);
22
+ }
23
+ else {
24
+ this.memberships.set(user, new Set([domain]));
25
+ }
26
+ }
27
+ async deleteLink(user, domain) {
28
+ this.memberships.get(user)?.delete(domain);
29
+ }
30
+ /** True when `name1` (user) joined `name2` (request domain) itself, or any ancestor of it. Walks UP from the request domain only - walking down from every joined domain would fan out over the whole subtree. */
31
+ syncedHasLink(name1, name2) {
32
+ this.reportGraphOnce(() => {
33
+ const { nodeCount, edgeCount } = MembershipRoleManager.overlayStats(this.overlay);
34
+ return {
35
+ message: 'membership role manager initialized | nodes: %d | edges: %d',
36
+ args: [nodeCount, edgeCount],
37
+ };
38
+ });
39
+ const joined = this.memberships.get(name1);
40
+ if (!joined || joined.size === 0) {
41
+ return false;
42
+ }
43
+ const ancestors = MembershipRoleManager.collectAncestors({
44
+ overlay: this.overlay,
45
+ node: name2,
46
+ });
47
+ for (const ancestor of ancestors) {
48
+ if (joined.has(ancestor)) {
49
+ return true;
50
+ }
51
+ }
52
+ return false;
53
+ }
54
+ /** Local membership state only, not the shared graph - correct for hasLink, incomplete for casbin's management API. */
55
+ async getRoles(name) {
56
+ return [...(this.memberships.get(name) ?? [])];
57
+ }
58
+ async getUsers(name) {
59
+ const users = [];
60
+ for (const [user, domains] of this.memberships) {
61
+ if (domains.has(name)) {
62
+ users.push(user);
63
+ }
64
+ }
65
+ return users;
66
+ }
67
+ }
68
+ exports.MembershipRoleManager = MembershipRoleManager;
69
+ //# sourceMappingURL=membership.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"membership.js","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/role-managers/membership.ts"],"names":[],"mappings":";;;AACA,iCAAyC;AAEzC;;sEAEsE;AACtE,MAAa,qBAAsB,SAAQ,sBAAe;IAUxD,YAAY,IAA4C;QACtD,KAAK,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC;QANvC,gBAAW,GAAG,IAAI,GAAG,EAG1B,CAAC;QAIF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,MAAc;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,MAAc;QAC3C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,kNAAkN;IAClN,aAAa,CAAC,KAAa,EAAE,KAAa;QACxC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE;YACxB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClF,OAAO;gBACL,OAAO,EAAE,6DAA6D;gBACtE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;aAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,gBAAgB,CAAC;YACvD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QACH,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uHAAuH;IACvH,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA7ED,sDA6EC"}
@@ -1,22 +1,16 @@
1
- import { BaseHelper } from '@venizia/ignis-helpers/core';
2
1
  import type { RoleManager } from 'casbin';
2
+ import { BaseRoleManager } from './base';
3
3
  /** Resource-axis (`g4`) role manager: `addMatchingFunc` would set `hasPattern` and disable DefaultRoleManager's O(1) fast path, so prefix ancestors are walked manually; `addLink` must stay idempotent because `buildRoleLinks` re-adds every edge once per request. */
4
- export declare class ResourceRoleManager extends BaseHelper implements RoleManager {
4
+ export declare class ResourceRoleManager extends BaseRoleManager implements RoleManager {
5
5
  private parents;
6
- private graphReported;
7
6
  constructor();
8
7
  clear(): Promise<void>;
9
8
  addLink(child: string, parent: string): Promise<void>;
10
9
  deleteLink(child: string, parent: string): Promise<void>;
11
10
  syncedHasLink(name1: string, name2: string): boolean;
12
- hasLink(name1: string, name2: string): Promise<boolean>;
13
11
  getRoles(name: string): Promise<string[]>;
14
12
  getUsers(name: string): Promise<string[]>;
15
- /** casbin calls this after buildRoleLinks purely as a debug hook; the resource graph is not logged. */
16
- printRoles(): Promise<void>;
17
- getDomains(): Promise<string[]>;
18
- getAllDomains(): Promise<string[]>;
19
13
  /** All stored prefix ancestors of a dotted code (`a.b.c` -> `a.b` -> `a`), not only the deepest, plus a literal stored `'*'` node - `objectMatch(anything, '*')` is always true, so a `g4` edge whose child is `'*'` must stay reachable from every request object. */
20
14
  private collectStoredAncestors;
21
15
  }
22
- //# sourceMappingURL=resource-role-manager.d.ts.map
16
+ //# sourceMappingURL=resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/role-managers/resource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,yQAAyQ;AACzQ,qBAAa,mBAAoB,SAAQ,eAAgB,YAAW,WAAW;IAC7E,OAAO,CAAC,OAAO,CAGX;;IAME,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IA8C9C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAY/C,uQAAuQ;IACvQ,OAAO,CAAC,sBAAsB;CA0B/B"}
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ResourceRoleManager = void 0;
4
- const core_1 = require("@venizia/ignis-helpers/core");
4
+ const base_1 = require("./base");
5
5
  /** Resource-axis (`g4`) role manager: `addMatchingFunc` would set `hasPattern` and disable DefaultRoleManager's O(1) fast path, so prefix ancestors are walked manually; `addLink` must stay idempotent because `buildRoleLinks` re-adds every edge once per request. */
6
- class ResourceRoleManager extends core_1.BaseHelper {
6
+ class ResourceRoleManager extends base_1.BaseRoleManager {
7
7
  constructor() {
8
8
  super({ scope: ResourceRoleManager.name });
9
9
  this.parents = new Map();
10
- this.graphReported = false;
11
10
  }
12
11
  async clear() {
13
12
  this.parents = new Map();
@@ -29,14 +28,14 @@ class ResourceRoleManager extends core_1.BaseHelper {
29
28
  this.parents.get(child)?.delete(parent);
30
29
  }
31
30
  syncedHasLink(name1, name2) {
32
- if (!this.graphReported) {
33
- this.graphReported = true;
31
+ this.reportGraphOnce(() => {
34
32
  const nodeCount = this.parents.size;
35
33
  const edgeCount = Array.from(this.parents.values()).reduce((sum, set) => sum + set.size, 0);
36
- this.logger
37
- .for(this.syncedHasLink.name)
38
- .debug('resource-role initialized | nodes: %d | edges: %d', nodeCount, edgeCount);
39
- }
34
+ return {
35
+ message: 'resource-role initialized | nodes: %d | edges: %d',
36
+ args: [nodeCount, edgeCount],
37
+ };
38
+ });
40
39
  if (name1 === name2) {
41
40
  return true;
42
41
  }
@@ -65,9 +64,6 @@ class ResourceRoleManager extends core_1.BaseHelper {
65
64
  }
66
65
  return false;
67
66
  }
68
- async hasLink(name1, name2) {
69
- return this.syncedHasLink(name1, name2);
70
- }
71
67
  async getRoles(name) {
72
68
  return [...(this.parents.get(name) ?? [])];
73
69
  }
@@ -80,14 +76,6 @@ class ResourceRoleManager extends core_1.BaseHelper {
80
76
  }
81
77
  return users;
82
78
  }
83
- /** casbin calls this after buildRoleLinks purely as a debug hook; the resource graph is not logged. */
84
- async printRoles() { }
85
- async getDomains() {
86
- return [];
87
- }
88
- async getAllDomains() {
89
- return [];
90
- }
91
79
  /** All stored prefix ancestors of a dotted code (`a.b.c` -> `a.b` -> `a`), not only the deepest, plus a literal stored `'*'` node - `objectMatch(anything, '*')` is always true, so a `g4` edge whose child is `'*'` must stay reachable from every request object. */
92
80
  collectStoredAncestors(opts) {
93
81
  const ancestors = [];
@@ -112,4 +100,4 @@ class ResourceRoleManager extends core_1.BaseHelper {
112
100
  }
113
101
  }
114
102
  exports.ResourceRoleManager = ResourceRoleManager;
115
- //# sourceMappingURL=resource-role-manager.js.map
103
+ //# sourceMappingURL=resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/role-managers/resource.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,39 @@
1
- import { integer, jsonb, text } from 'drizzle-orm/pg-core';
2
- export type TPolicyDefinitionOptions = {
1
+ import type { TAuthorizationDecision } from '@venizia/ignis-kernel';
2
+ import { integer, text } from 'drizzle-orm/pg-core';
3
+ export type TPolicyDefinitionOptions<ExtraVariant extends string = never> = {
3
4
  idType?: 'string' | 'number';
5
+ /**
6
+ * App-only edge kinds stored in this same table alongside IGNIS's seven (e.g. `merchant_role`).
7
+ * `ScopedCasbinAdapter` never selects an undeclared variant - it is purely the consumer's data.
8
+ * Pass as an inline array literal; the `const` type parameter below infers the literal union
9
+ * from it without needing `as const`.
10
+ */
11
+ extraVariants?: ReadonlyArray<ExtraVariant>;
4
12
  };
5
- export type TPolicyDefinitionCommonColumns = {
6
- variant: ReturnType<typeof text>;
7
- subjectType: ReturnType<typeof text>;
8
- targetType: ReturnType<typeof text>;
9
- action: ReturnType<typeof text>;
10
- effect: ReturnType<typeof text>;
11
- domain: ReturnType<typeof text>;
12
- metadata: ReturnType<typeof jsonb>;
13
+ /** Extracts the app-declared extra variants from `Opts`, or `never` when none were declared. */
14
+ type TExtraPolicyVariantOf<Opts> = Opts extends {
15
+ extraVariants?: ReadonlyArray<infer ExtraVariant extends string>;
16
+ } ? ExtraVariant : never;
17
+ /** Column shape is inferred, never hand-declared, so it can never drift from the `$type<>()` narrowing below. */
18
+ declare const buildCommonPolicyDefinitionColumns: <ExtraVariant extends string = never>() => {
19
+ variant: import("drizzle-orm").NotNull<import("drizzle-orm").$Type<import("drizzle-orm/pg-core").PgTextBuilderInitial<"variant", [string, ...string[]]>, "join_domain" | "assign_role" | "grant" | "role_inherits" | "domain_inherits" | "resource_inherits" | "action_inherits" | ExtraVariant>>;
20
+ subjectType: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"subject_type", [string, ...string[]]>>;
21
+ targetType: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"target_type", [string, ...string[]]>>;
22
+ action: import("drizzle-orm/pg-core").PgTextBuilderInitial<"action", [string, ...string[]]>;
23
+ effect: import("drizzle-orm").$Type<import("drizzle-orm/pg-core").PgTextBuilderInitial<"effect", [string, ...string[]]>, TAuthorizationDecision>;
24
+ domain: import("drizzle-orm/pg-core").PgTextBuilderInitial<"domain", [string, ...string[]]>;
25
+ metadata: import("drizzle-orm/pg-core").PgJsonbBuilderInitial<"metadata">;
13
26
  };
14
- type TPolicyDefinitionColumnDef<Opts extends TPolicyDefinitionOptions | undefined = undefined> = Opts extends {
27
+ export type TPolicyDefinitionCommonColumns<ExtraVariant extends string = never> = ReturnType<typeof buildCommonPolicyDefinitionColumns<ExtraVariant>>;
28
+ type TPolicyDefinitionColumnDef<Opts extends TPolicyDefinitionOptions<string> | undefined = undefined> = Opts extends {
15
29
  idType: 'string';
16
- } ? TPolicyDefinitionCommonColumns & {
30
+ } ? TPolicyDefinitionCommonColumns<TExtraPolicyVariantOf<Opts>> & {
17
31
  subjectId: ReturnType<typeof text>;
18
32
  targetId: ReturnType<typeof text>;
19
- } : TPolicyDefinitionCommonColumns & {
33
+ } : TPolicyDefinitionCommonColumns<TExtraPolicyVariantOf<Opts>> & {
20
34
  subjectId: ReturnType<typeof integer>;
21
35
  targetId: ReturnType<typeof integer>;
22
36
  };
23
- export declare const extraPolicyDefinitionColumns: <Opts extends TPolicyDefinitionOptions | undefined>(opts?: Opts) => TPolicyDefinitionColumnDef<Opts>;
37
+ export declare const extraPolicyDefinitionColumns: <const Opts extends TPolicyDefinitionOptions<string> | undefined = undefined>(opts?: Opts) => TPolicyDefinitionColumnDef<Opts>;
24
38
  export {};
25
39
  //# sourceMappingURL=policy-definition.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"policy-definition.model.d.ts","sourceRoot":"","sources":["../../../../../src/components/auth/models/entities/policy-definition.model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACjC,WAAW,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACrC,UAAU,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACpC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IAChC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IAChC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IAChC,QAAQ,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;CACpC,CAAC;AAEF,KAAK,0BAA0B,CAAC,IAAI,SAAS,wBAAwB,GAAG,SAAS,GAAG,SAAS,IAC3F,IAAI,SAAS;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GAC7B,8BAA8B,GAAG;IAC/B,SAAS,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACnC,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;CACnC,GACD,8BAA8B,GAAG;IAC/B,SAAS,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;IACtC,QAAQ,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;CACtC,CAAC;AAER,eAAO,MAAM,4BAA4B,GAAI,IAAI,SAAS,wBAAwB,GAAG,SAAS,EAC5F,OAAO,IAAI,KACV,0BAA0B,CAAC,IAAI,CAoCjC,CAAC"}
1
+ {"version":3,"file":"policy-definition.model.d.ts","sourceRoot":"","sources":["../../../../../src/components/auth/models/entities/policy-definition.model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAA+B,MAAM,uBAAuB,CAAC;AACjG,OAAO,EAAE,OAAO,EAAS,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,MAAM,wBAAwB,CAAC,YAAY,SAAS,MAAM,GAAG,KAAK,IAAI;IAC1E,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;CAC7C,CAAC;AAEF,gGAAgG;AAChG,KAAK,qBAAqB,CAAC,IAAI,IAAI,IAAI,SAAS;IAC9C,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,YAAY,SAAS,MAAM,CAAC,CAAC;CAClE,GACG,YAAY,GACZ,KAAK,CAAC;AAEV,iHAAiH;AACjH,QAAA,MAAM,kCAAkC,GAAI,YAAY,SAAS,MAAM,GAAG,KAAK;;;;;;;;CAkB7E,CAAC;AAEH,MAAM,MAAM,8BAA8B,CAAC,YAAY,SAAS,MAAM,GAAG,KAAK,IAAI,UAAU,CAC1F,OAAO,kCAAkC,CAAC,YAAY,CAAC,CACxD,CAAC;AAEF,KAAK,0BAA0B,CAC7B,IAAI,SAAS,wBAAwB,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,SAAS,IACnE,IAAI,SAAS;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GACjC,8BAA8B,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,GAAG;IAC5D,SAAS,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACnC,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;CACnC,GACD,8BAA8B,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,GAAG;IAC5D,SAAS,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;IACtC,QAAQ,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;CACtC,CAAC;AAEN,eAAO,MAAM,4BAA4B,GACvC,KAAK,CAAC,IAAI,SAAS,wBAAwB,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,SAAS,EAE3E,OAAO,IAAI,KACV,0BAA0B,CAAC,IAAI,CA0BjC,CAAC"}
@@ -3,18 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extraPolicyDefinitionColumns = void 0;
4
4
  const core_1 = require("@venizia/ignis-helpers/core");
5
5
  const pg_core_1 = require("drizzle-orm/pg-core");
6
+ /** Column shape is inferred, never hand-declared, so it can never drift from the `$type<>()` narrowing below. */
7
+ const buildCommonPolicyDefinitionColumns = () => ({
8
+ // Narrowed to AuthorizationPolicyVariants.ALL's seven edge kinds plus any app-declared extras -
9
+ // a typo here is a silent 403, not a compile error.
10
+ variant: (0, pg_core_1.text)('variant').$type().notNull(),
11
+ subjectType: (0, pg_core_1.text)('subject_type').notNull(),
12
+ targetType: (0, pg_core_1.text)('target_type').notNull(),
13
+ // Open-ended: grant rows carry a Permission-catalog action code, not a value from a fixed lattice.
14
+ action: (0, pg_core_1.text)('action'),
15
+ // Narrowed to AuthorizationDecisions (allow/deny/abstain) and NOT extensible like `variant`:
16
+ // the casbin effect evaluator itself reads this value, so an unknown effect is a correctness
17
+ // bug in enforcement, not a harmless unselected row.
18
+ effect: (0, pg_core_1.text)('effect').$type(),
19
+ domain: (0, pg_core_1.text)('domain'),
20
+ // Nullable: only subset grants populate it, and a consumer may map its own column instead.
21
+ metadata: (0, pg_core_1.jsonb)('metadata'),
22
+ });
6
23
  const extraPolicyDefinitionColumns = (opts) => {
7
24
  const { idType = 'number' } = opts ?? {};
8
- const common = {
9
- variant: (0, pg_core_1.text)('variant').notNull(),
10
- subjectType: (0, pg_core_1.text)('subject_type').notNull(),
11
- targetType: (0, pg_core_1.text)('target_type').notNull(),
12
- action: (0, pg_core_1.text)('action'),
13
- effect: (0, pg_core_1.text)('effect'),
14
- domain: (0, pg_core_1.text)('domain'),
15
- // Nullable: only subset grants populate it, and a consumer may map its own column instead.
16
- metadata: (0, pg_core_1.jsonb)('metadata'),
17
- };
25
+ const common = buildCommonPolicyDefinitionColumns();
18
26
  switch (idType) {
19
27
  case 'number': {
20
28
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"policy-definition.model.js","sourceRoot":"","sources":["../../../../../src/components/auth/models/entities/policy-definition.model.ts"],"names":[],"mappings":";;;AAAA,sDAAuD;AACvD,iDAA2D;AA2BpD,MAAM,4BAA4B,GAAG,CAC1C,IAAW,EACuB,EAAE;IACpC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IAEzC,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,IAAA,cAAI,EAAC,SAAS,CAAC,CAAC,OAAO,EAAE;QAClC,WAAW,EAAE,IAAA,cAAI,EAAC,cAAc,CAAC,CAAC,OAAO,EAAE;QAC3C,UAAU,EAAE,IAAA,cAAI,EAAC,aAAa,CAAC,CAAC,OAAO,EAAE;QACzC,MAAM,EAAE,IAAA,cAAI,EAAC,QAAQ,CAAC;QACtB,MAAM,EAAE,IAAA,cAAI,EAAC,QAAQ,CAAC;QACtB,MAAM,EAAE,IAAA,cAAI,EAAC,QAAQ,CAAC;QAEtB,2FAA2F;QAC3F,QAAQ,EAAE,IAAA,eAAK,EAAC,UAAU,CAAC;KAC5B,CAAC;IAEF,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO;gBACL,GAAG,MAAM;gBACT,SAAS,EAAE,IAAA,iBAAO,EAAC,YAAY,CAAC,CAAC,OAAO,EAAE;gBAC1C,QAAQ,EAAE,IAAA,iBAAO,EAAC,WAAW,CAAC,CAAC,OAAO,EAAE;aACL,CAAC;QACxC,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO;gBACL,GAAG,MAAM;gBACT,SAAS,EAAE,IAAA,cAAI,EAAC,YAAY,CAAC,CAAC,OAAO,EAAE;gBACvC,QAAQ,EAAE,IAAA,cAAI,EAAC,WAAW,CAAC,CAAC,OAAO,EAAE;aACF,CAAC;QACxC,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,IAAA,eAAQ,EAAC;gBACb,OAAO,EAAE,2DAA2D,MAAM,EAAE;aAC7E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAtCW,QAAA,4BAA4B,gCAsCvC"}
1
+ {"version":3,"file":"policy-definition.model.js","sourceRoot":"","sources":["../../../../../src/components/auth/models/entities/policy-definition.model.ts"],"names":[],"mappings":";;;AAAA,sDAAuD;AAEvD,iDAA2D;AAoB3D,iHAAiH;AACjH,MAAM,kCAAkC,GAAG,GAAwC,EAAE,CAAC,CAAC;IACrF,gGAAgG;IAChG,oDAAoD;IACpD,OAAO,EAAE,IAAA,cAAI,EAAC,SAAS,CAAC,CAAC,KAAK,EAA8C,CAAC,OAAO,EAAE;IACtF,WAAW,EAAE,IAAA,cAAI,EAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC3C,UAAU,EAAE,IAAA,cAAI,EAAC,aAAa,CAAC,CAAC,OAAO,EAAE;IAEzC,mGAAmG;IACnG,MAAM,EAAE,IAAA,cAAI,EAAC,QAAQ,CAAC;IAEtB,6FAA6F;IAC7F,6FAA6F;IAC7F,qDAAqD;IACrD,MAAM,EAAE,IAAA,cAAI,EAAC,QAAQ,CAAC,CAAC,KAAK,EAA0B;IACtD,MAAM,EAAE,IAAA,cAAI,EAAC,QAAQ,CAAC;IAEtB,2FAA2F;IAC3F,QAAQ,EAAE,IAAA,eAAK,EAAC,UAAU,CAAC;CAC5B,CAAC,CAAC;AAkBI,MAAM,4BAA4B,GAAG,CAG1C,IAAW,EACuB,EAAE;IACpC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IAEzC,MAAM,MAAM,GAAG,kCAAkC,EAA+B,CAAC;IAEjF,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO;gBACL,GAAG,MAAM;gBACT,SAAS,EAAE,IAAA,iBAAO,EAAC,YAAY,CAAC,CAAC,OAAO,EAAE;gBAC1C,QAAQ,EAAE,IAAA,iBAAO,EAAC,WAAW,CAAC,CAAC,OAAO,EAAE;aACL,CAAC;QACxC,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO;gBACL,GAAG,MAAM;gBACT,SAAS,EAAE,IAAA,cAAI,EAAC,YAAY,CAAC,CAAC,OAAO,EAAE;gBACvC,QAAQ,EAAE,IAAA,cAAI,EAAC,WAAW,CAAC,CAAC,OAAO,EAAE;aACF,CAAC;QACxC,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,IAAA,eAAQ,EAAC;gBACb,OAAO,EAAE,2DAA2D,MAAM,EAAE;aAC7E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AA9BW,QAAA,4BAA4B,gCA8BvC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@venizia/ignis",
3
- "version": "0.2.0-5",
3
+ "version": "0.2.0-7",
4
4
  "description": "High-performance TypeScript server infrastructure combining LoopBack 4 enterprise architecture (decorator-based DI, repository pattern, component system) with Hono speed (~140k req/s). Features auto-generated OpenAPI docs, Drizzle ORM type-safe SQL, JWT/Basic authentication, Casbin authorization, convention-based bootstrapping, and pluggable components for health checks, Swagger UI, mail, Socket.IO, and static assets. Built for Bun and Node.js.",
5
5
  "keywords": [
6
6
  "access-control",
@@ -198,12 +198,12 @@
198
198
  "prepublishOnly": "bun run rebuild"
199
199
  },
200
200
  "dependencies": {
201
- "@venizia/ignis-boot": "^0.2.0-3",
202
- "@venizia/ignis-connectors": "^0.2.0-5",
203
- "@venizia/ignis-filter": "^0.2.0-1",
204
- "@venizia/ignis-helpers": "^0.2.0-4",
205
- "@venizia/ignis-inversion": "^0.2.0-0",
206
- "@venizia/ignis-kernel": "^0.2.0-5",
201
+ "@venizia/ignis-boot": "^0.2.0-5",
202
+ "@venizia/ignis-connectors": "^0.2.0-7",
203
+ "@venizia/ignis-filter": "^0.2.0-3",
204
+ "@venizia/ignis-helpers": "^0.2.0-6",
205
+ "@venizia/ignis-inversion": "^0.2.0-2",
206
+ "@venizia/ignis-kernel": "^0.2.0-7",
207
207
  "lodash": "^4.18.1",
208
208
  "reflect-metadata": "^0.2.2",
209
209
  "zod": "^4.4.3"
@@ -306,7 +306,7 @@
306
306
  "@types/lodash": "^4.17.23",
307
307
  "@types/nodemailer": "^8.0.1",
308
308
  "@types/pg": "^8.20.0",
309
- "@venizia/dev-configs": "^0.2.0-0",
309
+ "@venizia/dev-configs": "^0.2.0-2",
310
310
  "casbin": "^5.51.1",
311
311
  "drizzle-kit": "^0.31.10",
312
312
  "eslint": "^10.7.0",
@@ -1 +0,0 @@
1
- {"version":3,"file":"resource-role-manager.d.ts","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/enforcers/resource-role-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,yQAAyQ;AACzQ,qBAAa,mBAAoB,SAAQ,UAAW,YAAW,WAAW;IACxE,OAAO,CAAC,OAAO,CAGX;IACJ,OAAO,CAAC,aAAa,CAAS;;IAMxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IA8C9C,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAY/C,uGAAuG;IACjG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAE3B,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI/B,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIxC,uQAAuQ;IACvQ,OAAO,CAAC,sBAAsB;CA0B/B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"resource-role-manager.js","sourceRoot":"","sources":["../../../../../src/components/auth/authorize/enforcers/resource-role-manager.ts"],"names":[],"mappings":"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"}