@decaf-ts/integrations 0.3.5 → 0.3.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 (272) hide show
  1. package/dist/integrations.cjs +1608 -7
  2. package/dist/integrations.js +1841 -5
  3. package/lib/cjs/graph/execution/SwitchGraphNodeExecutor.cjs +13 -5
  4. package/lib/cjs/graph/nodes/base.cjs +35 -0
  5. package/lib/cjs/graph/nodes/flow-control.cjs +31 -3
  6. package/lib/cjs/graph/nodes/index.cjs +3 -2
  7. package/lib/cjs/graph/types.cjs +2 -2
  8. package/lib/cjs/index.cjs +6 -5
  9. package/lib/cjs/namespaces/index.cjs +26 -0
  10. package/lib/cjs/namespaces/models/authorization-model.cjs +12 -0
  11. package/lib/cjs/namespaces/models/effective-permission.model.cjs +95 -0
  12. package/lib/cjs/namespaces/models/group-membership.model.cjs +66 -0
  13. package/lib/cjs/namespaces/models/group.model.cjs +74 -0
  14. package/lib/cjs/namespaces/models/index.cjs +39 -0
  15. package/lib/cjs/namespaces/models/inheritance-block.model.cjs +76 -0
  16. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +66 -0
  17. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +73 -0
  18. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +64 -0
  19. package/lib/cjs/namespaces/models/org-unit.model.cjs +102 -0
  20. package/lib/cjs/namespaces/models/permission.model.cjs +64 -0
  21. package/lib/cjs/namespaces/models/principal.model.cjs +77 -0
  22. package/lib/cjs/namespaces/models/protected-resource.model.cjs +99 -0
  23. package/lib/cjs/namespaces/models/resource-grant.model.cjs +88 -0
  24. package/lib/cjs/namespaces/models/role-assignment.model.cjs +98 -0
  25. package/lib/cjs/namespaces/models/role-permission.model.cjs +55 -0
  26. package/lib/cjs/namespaces/models/role.model.cjs +84 -0
  27. package/lib/cjs/namespaces/models/storage-binding.model.cjs +85 -0
  28. package/lib/cjs/namespaces/models/tenant-membership.model.cjs +67 -0
  29. package/lib/cjs/namespaces/models/tenant-profile.model.cjs +64 -0
  30. package/lib/cjs/namespaces/models/tenant.model.cjs +88 -0
  31. package/lib/cjs/namespaces/models/user.model.cjs +75 -0
  32. package/lib/cjs/namespaces/org-based-authorization-system.cjs +286 -0
  33. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +968 -0
  34. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +1046 -0
  35. package/lib/cjs/namespaces/services/authz.service.cjs +76 -0
  36. package/lib/cjs/namespaces/services/bootstrap.service.cjs +112 -0
  37. package/lib/cjs/namespaces/services/effective-permission.service.cjs +150 -0
  38. package/lib/cjs/namespaces/services/group-membership.service.cjs +42 -0
  39. package/lib/cjs/namespaces/services/group.service.cjs +30 -0
  40. package/lib/cjs/namespaces/services/index.cjs +42 -0
  41. package/lib/cjs/namespaces/services/inheritance-block.service.cjs +32 -0
  42. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +55 -0
  43. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +34 -0
  44. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +23 -0
  45. package/lib/cjs/namespaces/services/org-unit.service.cjs +160 -0
  46. package/lib/cjs/namespaces/services/permission.service.cjs +29 -0
  47. package/lib/cjs/namespaces/services/principal.service.cjs +35 -0
  48. package/lib/cjs/namespaces/services/protected-resource.service.cjs +43 -0
  49. package/lib/cjs/namespaces/services/resource-grant.service.cjs +45 -0
  50. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +24 -0
  51. package/lib/cjs/namespaces/services/role-assignment.service.cjs +41 -0
  52. package/lib/cjs/namespaces/services/role-permission.service.cjs +51 -0
  53. package/lib/cjs/namespaces/services/role.service.cjs +45 -0
  54. package/lib/cjs/namespaces/services/storage-binding.service.cjs +39 -0
  55. package/lib/cjs/namespaces/services/system-management.service.cjs +102 -0
  56. package/lib/cjs/namespaces/services/tenant-membership.service.cjs +33 -0
  57. package/lib/cjs/namespaces/services/tenant-profile.service.cjs +28 -0
  58. package/lib/cjs/namespaces/services/tenant.service.cjs +36 -0
  59. package/lib/cjs/namespaces/services/user.service.cjs +32 -0
  60. package/lib/cjs/namespaces/types.cjs +67 -0
  61. package/lib/cjs/namespaces/utils.cjs +161 -0
  62. package/lib/cjs/nest/authService.cjs +5 -2
  63. package/lib/cjs/nest/graph/GraphExecutionController.cjs +153 -0
  64. package/lib/cjs/nest/graph/GraphExecutionModule.cjs +84 -0
  65. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +82 -0
  66. package/lib/cjs/nest/graph/GraphExecutionResultRepository.cjs +66 -0
  67. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +35 -0
  68. package/lib/cjs/nest/graph/index.cjs +28 -0
  69. package/lib/cjs/nest/index.cjs +3 -2
  70. package/lib/esm/graph/execution/SwitchGraphNodeExecutor.js +12 -4
  71. package/lib/esm/graph/nodes/base.js +30 -0
  72. package/lib/esm/graph/nodes/flow-control.js +31 -3
  73. package/lib/esm/graph/nodes/index.js +2 -1
  74. package/lib/esm/graph/types.js +1 -1
  75. package/lib/esm/index.js +5 -4
  76. package/lib/esm/namespaces/index.js +9 -0
  77. package/lib/esm/namespaces/models/authorization-model.js +7 -0
  78. package/lib/esm/namespaces/models/effective-permission.model.js +86 -0
  79. package/lib/esm/namespaces/models/group-membership.model.js +57 -0
  80. package/lib/esm/namespaces/models/group.model.js +65 -0
  81. package/lib/esm/namespaces/models/index.js +22 -0
  82. package/lib/esm/namespaces/models/inheritance-block.model.js +67 -0
  83. package/lib/esm/namespaces/models/org-unit-closure.model.js +57 -0
  84. package/lib/esm/namespaces/models/org-unit-membership.model.js +64 -0
  85. package/lib/esm/namespaces/models/org-unit-profile.model.js +55 -0
  86. package/lib/esm/namespaces/models/org-unit.model.js +93 -0
  87. package/lib/esm/namespaces/models/permission.model.js +55 -0
  88. package/lib/esm/namespaces/models/principal.model.js +68 -0
  89. package/lib/esm/namespaces/models/protected-resource.model.js +90 -0
  90. package/lib/esm/namespaces/models/resource-grant.model.js +79 -0
  91. package/lib/esm/namespaces/models/role-assignment.model.js +89 -0
  92. package/lib/esm/namespaces/models/role-permission.model.js +46 -0
  93. package/lib/esm/namespaces/models/role.model.js +75 -0
  94. package/lib/esm/namespaces/models/storage-binding.model.js +76 -0
  95. package/lib/esm/namespaces/models/tenant-membership.model.js +58 -0
  96. package/lib/esm/namespaces/models/tenant-profile.model.js +55 -0
  97. package/lib/esm/namespaces/models/tenant.model.js +79 -0
  98. package/lib/esm/namespaces/models/user.model.js +66 -0
  99. package/lib/esm/namespaces/org-based-authorization-system.js +283 -0
  100. package/lib/esm/namespaces/org-based-authorization-system.models.js +958 -0
  101. package/lib/esm/namespaces/org-based-authorization-system.services.js +1014 -0
  102. package/lib/esm/namespaces/services/authz.service.js +71 -0
  103. package/lib/esm/namespaces/services/bootstrap.service.js +102 -0
  104. package/lib/esm/namespaces/services/effective-permission.service.js +140 -0
  105. package/lib/esm/namespaces/services/group-membership.service.js +37 -0
  106. package/lib/esm/namespaces/services/group.service.js +25 -0
  107. package/lib/esm/namespaces/services/index.js +25 -0
  108. package/lib/esm/namespaces/services/inheritance-block.service.js +27 -0
  109. package/lib/esm/namespaces/services/org-unit-closure.service.js +50 -0
  110. package/lib/esm/namespaces/services/org-unit-membership.service.js +29 -0
  111. package/lib/esm/namespaces/services/org-unit-profile.service.js +18 -0
  112. package/lib/esm/namespaces/services/org-unit.service.js +150 -0
  113. package/lib/esm/namespaces/services/permission.service.js +24 -0
  114. package/lib/esm/namespaces/services/principal.service.js +30 -0
  115. package/lib/esm/namespaces/services/protected-resource.service.js +38 -0
  116. package/lib/esm/namespaces/services/resource-grant.service.js +40 -0
  117. package/lib/esm/namespaces/services/resource-lifecycle.service.js +19 -0
  118. package/lib/esm/namespaces/services/role-assignment.service.js +36 -0
  119. package/lib/esm/namespaces/services/role-permission.service.js +46 -0
  120. package/lib/esm/namespaces/services/role.service.js +40 -0
  121. package/lib/esm/namespaces/services/storage-binding.service.js +34 -0
  122. package/lib/esm/namespaces/services/system-management.service.js +92 -0
  123. package/lib/esm/namespaces/services/tenant-membership.service.js +28 -0
  124. package/lib/esm/namespaces/services/tenant-profile.service.js +23 -0
  125. package/lib/esm/namespaces/services/tenant.service.js +31 -0
  126. package/lib/esm/namespaces/services/user.service.js +27 -0
  127. package/lib/esm/namespaces/types.js +71 -0
  128. package/lib/esm/namespaces/utils.js +143 -0
  129. package/lib/esm/nest/authService.js +4 -1
  130. package/lib/esm/nest/graph/GraphExecutionController.js +144 -0
  131. package/lib/esm/nest/graph/GraphExecutionModule.js +76 -0
  132. package/lib/esm/nest/graph/GraphExecutionResultModel.js +73 -0
  133. package/lib/esm/nest/graph/GraphExecutionResultRepository.js +60 -0
  134. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +31 -0
  135. package/lib/esm/nest/graph/index.js +11 -0
  136. package/lib/esm/nest/index.js +2 -1
  137. package/lib/types/graph/nodes/base.d.cts +28 -0
  138. package/lib/types/graph/nodes/base.d.mts +28 -0
  139. package/lib/types/graph/nodes/flow-control.d.cts +9 -1
  140. package/lib/types/graph/nodes/flow-control.d.mts +9 -1
  141. package/lib/types/graph/nodes/index.d.cts +1 -0
  142. package/lib/types/graph/nodes/index.d.mts +1 -0
  143. package/lib/types/graph/types.d.cts +15 -1
  144. package/lib/types/graph/types.d.mts +15 -1
  145. package/lib/types/index.d.cts +3 -2
  146. package/lib/types/index.d.mts +3 -2
  147. package/lib/types/namespaces/index.d.cts +8 -0
  148. package/lib/types/namespaces/index.d.mts +8 -0
  149. package/lib/types/namespaces/models/authorization-model.d.cts +4 -0
  150. package/lib/types/namespaces/models/authorization-model.d.mts +4 -0
  151. package/lib/types/namespaces/models/effective-permission.model.d.cts +18 -0
  152. package/lib/types/namespaces/models/effective-permission.model.d.mts +18 -0
  153. package/lib/types/namespaces/models/group-membership.model.d.cts +13 -0
  154. package/lib/types/namespaces/models/group-membership.model.d.mts +13 -0
  155. package/lib/types/namespaces/models/group.model.d.cts +15 -0
  156. package/lib/types/namespaces/models/group.model.d.mts +15 -0
  157. package/lib/types/namespaces/models/index.d.cts +21 -0
  158. package/lib/types/namespaces/models/index.d.mts +21 -0
  159. package/lib/types/namespaces/models/inheritance-block.model.d.cts +15 -0
  160. package/lib/types/namespaces/models/inheritance-block.model.d.mts +15 -0
  161. package/lib/types/namespaces/models/org-unit-closure.model.d.cts +12 -0
  162. package/lib/types/namespaces/models/org-unit-closure.model.d.mts +12 -0
  163. package/lib/types/namespaces/models/org-unit-membership.model.d.cts +15 -0
  164. package/lib/types/namespaces/models/org-unit-membership.model.d.mts +15 -0
  165. package/lib/types/namespaces/models/org-unit-profile.model.d.cts +11 -0
  166. package/lib/types/namespaces/models/org-unit-profile.model.d.mts +11 -0
  167. package/lib/types/namespaces/models/org-unit.model.d.cts +23 -0
  168. package/lib/types/namespaces/models/org-unit.model.d.mts +23 -0
  169. package/lib/types/namespaces/models/permission.model.d.cts +11 -0
  170. package/lib/types/namespaces/models/permission.model.d.mts +11 -0
  171. package/lib/types/namespaces/models/principal.model.d.cts +16 -0
  172. package/lib/types/namespaces/models/principal.model.d.mts +16 -0
  173. package/lib/types/namespaces/models/protected-resource.model.d.cts +21 -0
  174. package/lib/types/namespaces/models/protected-resource.model.d.mts +21 -0
  175. package/lib/types/namespaces/models/resource-grant.model.d.cts +18 -0
  176. package/lib/types/namespaces/models/resource-grant.model.d.mts +18 -0
  177. package/lib/types/namespaces/models/role-assignment.model.d.cts +20 -0
  178. package/lib/types/namespaces/models/role-assignment.model.d.mts +20 -0
  179. package/lib/types/namespaces/models/role-permission.model.d.cts +10 -0
  180. package/lib/types/namespaces/models/role-permission.model.d.mts +10 -0
  181. package/lib/types/namespaces/models/role.model.d.cts +17 -0
  182. package/lib/types/namespaces/models/role.model.d.mts +17 -0
  183. package/lib/types/namespaces/models/storage-binding.model.d.cts +15 -0
  184. package/lib/types/namespaces/models/storage-binding.model.d.mts +15 -0
  185. package/lib/types/namespaces/models/tenant-membership.model.d.cts +13 -0
  186. package/lib/types/namespaces/models/tenant-membership.model.d.mts +13 -0
  187. package/lib/types/namespaces/models/tenant-profile.model.d.cts +11 -0
  188. package/lib/types/namespaces/models/tenant-profile.model.d.mts +11 -0
  189. package/lib/types/namespaces/models/tenant.model.d.cts +19 -0
  190. package/lib/types/namespaces/models/tenant.model.d.mts +19 -0
  191. package/lib/types/namespaces/models/user.model.d.cts +14 -0
  192. package/lib/types/namespaces/models/user.model.d.mts +14 -0
  193. package/lib/types/namespaces/org-based-authorization-system.d.cts +299 -0
  194. package/lib/types/namespaces/org-based-authorization-system.d.mts +299 -0
  195. package/lib/types/namespaces/org-based-authorization-system.models.d.cts +212 -0
  196. package/lib/types/namespaces/org-based-authorization-system.models.d.mts +212 -0
  197. package/lib/types/namespaces/org-based-authorization-system.services.d.cts +217 -0
  198. package/lib/types/namespaces/org-based-authorization-system.services.d.mts +217 -0
  199. package/lib/types/namespaces/services/authz.service.d.cts +10 -0
  200. package/lib/types/namespaces/services/authz.service.d.mts +10 -0
  201. package/lib/types/namespaces/services/bootstrap.service.d.cts +21 -0
  202. package/lib/types/namespaces/services/bootstrap.service.d.mts +21 -0
  203. package/lib/types/namespaces/services/effective-permission.service.d.cts +13 -0
  204. package/lib/types/namespaces/services/effective-permission.service.d.mts +13 -0
  205. package/lib/types/namespaces/services/group-membership.service.d.cts +10 -0
  206. package/lib/types/namespaces/services/group-membership.service.d.mts +10 -0
  207. package/lib/types/namespaces/services/group.service.d.cts +9 -0
  208. package/lib/types/namespaces/services/group.service.d.mts +9 -0
  209. package/lib/types/namespaces/services/index.d.cts +24 -0
  210. package/lib/types/namespaces/services/index.d.mts +24 -0
  211. package/lib/types/namespaces/services/inheritance-block.service.d.cts +10 -0
  212. package/lib/types/namespaces/services/inheritance-block.service.d.mts +10 -0
  213. package/lib/types/namespaces/services/org-unit-closure.service.d.cts +11 -0
  214. package/lib/types/namespaces/services/org-unit-closure.service.d.mts +11 -0
  215. package/lib/types/namespaces/services/org-unit-membership.service.d.cts +11 -0
  216. package/lib/types/namespaces/services/org-unit-membership.service.d.mts +11 -0
  217. package/lib/types/namespaces/services/org-unit-profile.service.d.cts +7 -0
  218. package/lib/types/namespaces/services/org-unit-profile.service.d.mts +7 -0
  219. package/lib/types/namespaces/services/org-unit.service.d.cts +18 -0
  220. package/lib/types/namespaces/services/org-unit.service.d.mts +18 -0
  221. package/lib/types/namespaces/services/permission.service.d.cts +10 -0
  222. package/lib/types/namespaces/services/permission.service.d.mts +10 -0
  223. package/lib/types/namespaces/services/principal.service.d.cts +11 -0
  224. package/lib/types/namespaces/services/principal.service.d.mts +11 -0
  225. package/lib/types/namespaces/services/protected-resource.service.d.cts +13 -0
  226. package/lib/types/namespaces/services/protected-resource.service.d.mts +13 -0
  227. package/lib/types/namespaces/services/resource-grant.service.d.cts +12 -0
  228. package/lib/types/namespaces/services/resource-grant.service.d.mts +12 -0
  229. package/lib/types/namespaces/services/resource-lifecycle.service.d.cts +10 -0
  230. package/lib/types/namespaces/services/resource-lifecycle.service.d.mts +10 -0
  231. package/lib/types/namespaces/services/role-assignment.service.d.cts +12 -0
  232. package/lib/types/namespaces/services/role-assignment.service.d.mts +12 -0
  233. package/lib/types/namespaces/services/role-permission.service.d.cts +12 -0
  234. package/lib/types/namespaces/services/role-permission.service.d.mts +12 -0
  235. package/lib/types/namespaces/services/role.service.d.cts +12 -0
  236. package/lib/types/namespaces/services/role.service.d.mts +12 -0
  237. package/lib/types/namespaces/services/storage-binding.service.d.cts +12 -0
  238. package/lib/types/namespaces/services/storage-binding.service.d.mts +12 -0
  239. package/lib/types/namespaces/services/system-management.service.d.cts +14 -0
  240. package/lib/types/namespaces/services/system-management.service.d.mts +14 -0
  241. package/lib/types/namespaces/services/tenant-membership.service.d.cts +11 -0
  242. package/lib/types/namespaces/services/tenant-membership.service.d.mts +11 -0
  243. package/lib/types/namespaces/services/tenant-profile.service.d.cts +8 -0
  244. package/lib/types/namespaces/services/tenant-profile.service.d.mts +8 -0
  245. package/lib/types/namespaces/services/tenant.service.d.cts +12 -0
  246. package/lib/types/namespaces/services/tenant.service.d.mts +12 -0
  247. package/lib/types/namespaces/services/user.service.d.cts +11 -0
  248. package/lib/types/namespaces/services/user.service.d.mts +11 -0
  249. package/lib/types/namespaces/types.d.cts +230 -0
  250. package/lib/types/namespaces/types.d.mts +230 -0
  251. package/lib/types/namespaces/utils.d.cts +68 -0
  252. package/lib/types/namespaces/utils.d.mts +68 -0
  253. package/lib/types/nest/authService.d.cts +1 -0
  254. package/lib/types/nest/authService.d.mts +1 -0
  255. package/lib/types/nest/graph/GraphExecutionController.d.cts +62 -0
  256. package/lib/types/nest/graph/GraphExecutionController.d.mts +62 -0
  257. package/lib/types/nest/graph/GraphExecutionModule.d.cts +39 -0
  258. package/lib/types/nest/graph/GraphExecutionModule.d.mts +39 -0
  259. package/lib/types/nest/graph/GraphExecutionResultModel.d.cts +46 -0
  260. package/lib/types/nest/graph/GraphExecutionResultModel.d.mts +46 -0
  261. package/lib/types/nest/graph/GraphExecutionResultRepository.d.cts +38 -0
  262. package/lib/types/nest/graph/GraphExecutionResultRepository.d.mts +38 -0
  263. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.cts +17 -0
  264. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.mts +17 -0
  265. package/lib/types/nest/graph/index.d.cts +10 -0
  266. package/lib/types/nest/graph/index.d.mts +10 -0
  267. package/lib/types/nest/index.d.cts +1 -0
  268. package/lib/types/nest/index.d.mts +1 -0
  269. package/package.json +16 -5
  270. package/sql/001_constraints.sql +11 -0
  271. package/sql/002_rls.sql +20 -0
  272. package/sql/003_indexes.sql +2 -0
@@ -0,0 +1,212 @@
1
+ import { Model } from "@decaf-ts/decorator-validation";
2
+ import { IsolationTier, MembershipStatus, PermissionCategory, PrincipalKind, ResourceVisibility, ScopeKind, StorageBindingKind, StorageKind } from "./org-based-authorization-system.d.mts";
3
+ export declare class AuthorizationModel extends Model {
4
+ constructor(data?: unknown);
5
+ }
6
+ export declare class Tenant extends AuthorizationModel {
7
+ id: string;
8
+ slug: string;
9
+ name: string;
10
+ isolationTier: IsolationTier;
11
+ orgUnits?: OrgUnit[] | string[];
12
+ memberships?: TenantMembership[] | string[];
13
+ principals?: Principal[] | string[];
14
+ storageBindings?: StorageBinding[] | string[];
15
+ createdAt: Date;
16
+ updatedAt: Date;
17
+ }
18
+ export declare class TenantProfile extends AuthorizationModel {
19
+ id: string;
20
+ tenant: Tenant | string;
21
+ profileKey: string;
22
+ metadata?: Record<string, unknown>;
23
+ createdAt: Date;
24
+ updatedAt: Date;
25
+ }
26
+ export declare class OrgUnit extends AuthorizationModel {
27
+ id: string;
28
+ tenant: Tenant | string;
29
+ parent?: OrgUnit | string;
30
+ children?: OrgUnit[] | string[];
31
+ name: string;
32
+ path: string;
33
+ metadata?: Record<string, unknown>;
34
+ memberships?: OrgUnitMembership[] | string[];
35
+ resources?: ProtectedResource[] | string[];
36
+ inheritanceBlocks?: InheritanceBlock[] | string[];
37
+ ancestorLinks?: OrgUnitClosure[] | string[];
38
+ descendantLinks?: OrgUnitClosure[] | string[];
39
+ createdAt: Date;
40
+ updatedAt: Date;
41
+ }
42
+ export declare class OrgUnitProfile extends AuthorizationModel {
43
+ id: string;
44
+ orgUnit: OrgUnit | string;
45
+ profileKey: string;
46
+ metadata?: Record<string, unknown>;
47
+ createdAt: Date;
48
+ updatedAt: Date;
49
+ }
50
+ export declare class OrgUnitClosure extends AuthorizationModel {
51
+ id: string;
52
+ tenant: Tenant | string;
53
+ ancestor: OrgUnit | string;
54
+ descendant: OrgUnit | string;
55
+ depth: number;
56
+ createdAt: Date;
57
+ }
58
+ export declare class User extends AuthorizationModel {
59
+ id: string;
60
+ email?: string;
61
+ phone?: string;
62
+ displayName: string;
63
+ tenantMemberships?: TenantMembership[] | string[];
64
+ orgUnitMemberships?: OrgUnitMembership[] | string[];
65
+ createdAt: Date;
66
+ updatedAt: Date;
67
+ }
68
+ export declare class Group extends AuthorizationModel {
69
+ id: string;
70
+ tenant: Tenant | string;
71
+ orgUnit?: OrgUnit | string;
72
+ name: string;
73
+ metadata?: Record<string, unknown>;
74
+ members?: GroupMembership[] | string[];
75
+ createdAt: Date;
76
+ updatedAt: Date;
77
+ }
78
+ export declare class Principal extends AuthorizationModel {
79
+ id: string;
80
+ tenant: Tenant | string;
81
+ kind: PrincipalKind;
82
+ subjectId: string;
83
+ roleAssignments?: RoleAssignment[] | string[];
84
+ resourceGrants?: ResourceGrant[] | string[];
85
+ createdAt: Date;
86
+ updatedAt: Date;
87
+ }
88
+ export declare class TenantMembership extends AuthorizationModel {
89
+ id: string;
90
+ tenant: Tenant | string;
91
+ user: User | string;
92
+ status: MembershipStatus;
93
+ createdAt: Date;
94
+ updatedAt: Date;
95
+ }
96
+ export declare class OrgUnitMembership extends AuthorizationModel {
97
+ id: string;
98
+ tenant: Tenant | string;
99
+ orgUnit: OrgUnit | string;
100
+ user: User | string;
101
+ status: MembershipStatus;
102
+ createdAt: Date;
103
+ updatedAt: Date;
104
+ }
105
+ export declare class GroupMembership extends AuthorizationModel {
106
+ id: string;
107
+ tenant: Tenant | string;
108
+ group: Group | string;
109
+ principal: Principal | string;
110
+ metadata?: Record<string, unknown>;
111
+ createdAt: Date;
112
+ }
113
+ export declare class Permission extends AuthorizationModel {
114
+ id: string;
115
+ key: string;
116
+ category: PermissionCategory;
117
+ description?: string;
118
+ rolePermissions?: RolePermission[] | string[];
119
+ }
120
+ export declare class Role extends AuthorizationModel {
121
+ id: string;
122
+ tenant?: Tenant | string;
123
+ key: string;
124
+ name: string;
125
+ description?: string;
126
+ metadata?: Record<string, unknown>;
127
+ rolePermissions?: RolePermission[] | string[];
128
+ assignments?: RoleAssignment[] | string[];
129
+ createdAt: Date;
130
+ updatedAt: Date;
131
+ }
132
+ export declare class RolePermission extends AuthorizationModel {
133
+ id: string;
134
+ role: Role | string;
135
+ permission: Permission | string;
136
+ createdAt: Date;
137
+ }
138
+ export declare class RoleAssignment extends AuthorizationModel {
139
+ id: string;
140
+ tenant: Tenant | string;
141
+ principal: Principal | string;
142
+ role: Role | string;
143
+ scopeKind: ScopeKind;
144
+ scopeId: string;
145
+ inheritDown: boolean;
146
+ startsAt?: Date;
147
+ expiresAt?: Date;
148
+ conditions?: Record<string, unknown>;
149
+ createdAt: Date;
150
+ updatedAt: Date;
151
+ }
152
+ export declare class InheritanceBlock extends AuthorizationModel {
153
+ id: string;
154
+ tenant: Tenant | string;
155
+ orgUnit: OrgUnit | string;
156
+ blockedFromAncestor?: OrgUnit | string;
157
+ permissionCategory: PermissionCategory;
158
+ reason?: string;
159
+ createdAt: Date;
160
+ updatedAt: Date;
161
+ }
162
+ export declare class ProtectedResource extends AuthorizationModel {
163
+ id: string;
164
+ tenant: Tenant | string;
165
+ orgUnit: OrgUnit | string;
166
+ resourceType: string;
167
+ resourceId: string;
168
+ visibility: ResourceVisibility;
169
+ owner?: Principal | string;
170
+ sensitivity?: string;
171
+ metadata?: Record<string, unknown>;
172
+ grants?: ResourceGrant[] | string[];
173
+ createdAt: Date;
174
+ updatedAt: Date;
175
+ }
176
+ export declare class ResourceGrant extends AuthorizationModel {
177
+ id: string;
178
+ tenant: Tenant | string;
179
+ resource: ProtectedResource | string;
180
+ principal: Principal | string;
181
+ permissionKey: string;
182
+ startsAt?: Date;
183
+ expiresAt?: Date;
184
+ conditions?: Record<string, unknown>;
185
+ createdBy?: Principal | string;
186
+ createdAt: Date;
187
+ updatedAt: Date;
188
+ }
189
+ export declare class EffectivePermission extends AuthorizationModel {
190
+ id: string;
191
+ tenant: Tenant | string;
192
+ principal: Principal | string;
193
+ permissionKey: string;
194
+ scopeKind: ScopeKind;
195
+ scopeId: string;
196
+ sourceKind: string;
197
+ sourceId: string;
198
+ startsAt?: Date;
199
+ expiresAt?: Date;
200
+ createdAt: Date;
201
+ }
202
+ export declare class StorageBinding extends AuthorizationModel {
203
+ id: string;
204
+ tenant: Tenant | string;
205
+ storageKind: StorageKind;
206
+ bindingKind: StorageBindingKind;
207
+ bindingKey: string;
208
+ region: string;
209
+ config?: Record<string, unknown>;
210
+ createdAt: Date;
211
+ updatedAt: Date;
212
+ }
@@ -0,0 +1,217 @@
1
+ import { BaseModelService, IsolationTier, MembershipStatus, PermissionCategory, PrincipalKind, ResourceVisibility, ScopeKind, StorageKind } from "./org-based-authorization-system.d.cts";
2
+ import type { AssignRoleInput, BootstrapTemplate, CreateOrgUnitInput, CreatePermissionInput, CreateRoleInput, CreateStorageBindingInput, CreateTenantInput, CreateUserInput, GrantResourceInput, RegisterResourceInput } from "./org-based-authorization-system.d.cts";
3
+ import { EffectivePermission, Group, GroupMembership, InheritanceBlock, OrgUnit, OrgUnitClosure, OrgUnitMembership, OrgUnitProfile, Permission, ProtectedResource, Principal, ResourceGrant, Role, RoleAssignment, RolePermission, StorageBinding, Tenant, TenantMembership, TenantProfile, User } from "./org-based-authorization-system.models.d.cts";
4
+ export declare class TenantProfileService extends BaseModelService<TenantProfile> {
5
+ constructor();
6
+ createProfile(tenantId: string, profileKey: string, metadata?: Record<string, unknown>, ...args: any[]): Promise<TenantProfile>;
7
+ listForTenant(tenantId: string, ...args: any[]): Promise<TenantProfile[]>;
8
+ deleteForTenant(tenantId: string, ...args: any[]): Promise<void>;
9
+ }
10
+ export declare class OrgUnitProfileService extends BaseModelService<OrgUnitProfile> {
11
+ constructor();
12
+ createProfile(orgUnitId: string, profileKey: string, metadata?: Record<string, unknown>, ...args: any[]): Promise<OrgUnitProfile>;
13
+ listForOrgUnit(orgUnitId: string, ...args: any[]): Promise<OrgUnitProfile[]>;
14
+ }
15
+ export declare class OrgUnitClosureService extends BaseModelService<OrgUnitClosure> {
16
+ constructor();
17
+ listAncestors(tenantId: string, orgUnitId: string, ...args: any[]): Promise<OrgUnitClosure[]>;
18
+ listDescendants(tenantId: string, orgUnitId: string, ...args: any[]): Promise<OrgUnitClosure[]>;
19
+ isAncestorOf(tenantId: string, ancestorOrgUnitId: string, descendantOrgUnitId: string, ...args: any[]): Promise<boolean>;
20
+ createSelfLink(tenantId: string, orgUnitId: string, ...args: any[]): Promise<OrgUnitClosure>;
21
+ insertAncestorLinksForNewChild(tenantId: string, parentOrgUnitId: string, childOrgUnitId: string, ...args: any[]): Promise<void>;
22
+ deleteLinksForSubtree(tenantId: string, orgUnitId: string, ...args: any[]): Promise<void>;
23
+ }
24
+ export declare class InheritanceBlockService extends BaseModelService<InheritanceBlock> {
25
+ constructor();
26
+ blockCategory(tenantId: string, orgUnitId: string, permissionCategory: PermissionCategory, blockedFromAncestorId?: string, reason?: string, ...args: any[]): Promise<InheritanceBlock>;
27
+ unblockCategory(blockId: string, ...args: any[]): Promise<void>;
28
+ listForOrgUnit(tenantId: string, orgUnitId: string, ...args: any[]): Promise<InheritanceBlock[]>;
29
+ categoryBlockedForAncestor(tenantId: string, orgUnitId: string, ancestorOrgUnitId: string, category: PermissionCategory, ...args: any[]): Promise<boolean>;
30
+ }
31
+ export declare class TenantService extends BaseModelService<Tenant> {
32
+ constructor();
33
+ createTenant(input: CreateTenantInput, ...args: any[]): Promise<Tenant>;
34
+ getBySlug(slug: string, ...args: any[]): Promise<Tenant>;
35
+ renameTenant(tenantId: string, name: string, ...args: any[]): Promise<Tenant>;
36
+ changeSlug(tenantId: string, slug: string, ...args: any[]): Promise<Tenant>;
37
+ setIsolationTier(tenantId: string, isolationTier: IsolationTier, ...args: any[]): Promise<Tenant>;
38
+ deleteTenantControlled(tenantId: string, ...args: any[]): Promise<void>;
39
+ }
40
+ export declare class OrgUnitService extends BaseModelService<OrgUnit> {
41
+ constructor();
42
+ private orgUnitPath;
43
+ private createProfileIfNeeded;
44
+ createRoot(tenantId: string, name: string, metadata?: Record<string, unknown>, profileKey?: string, profileMetadata?: Record<string, unknown>, ...args: any[]): Promise<OrgUnit>;
45
+ createChild(input: CreateOrgUnitInput, ...args: any[]): Promise<OrgUnit>;
46
+ listChildren(parentOrgUnitId: string, ...args: any[]): Promise<OrgUnit[]>;
47
+ listTenantOrgUnits(tenantId: string, ...args: any[]): Promise<OrgUnit[]>;
48
+ listDescendantOrgUnits(tenantId: string, orgUnitId: string, includeSelf?: boolean, ...args: any[]): Promise<OrgUnit[]>;
49
+ listAncestorOrgUnits(tenantId: string, orgUnitId: string, includeSelf?: boolean, ...args: any[]): Promise<OrgUnit[]>;
50
+ renameOrgUnit(orgUnitId: string, name: string, ...args: any[]): Promise<OrgUnit>;
51
+ moveOrgUnit(tenantId: string, orgUnitId: string, newParentOrgUnitId: string, ...args: any[]): Promise<OrgUnit>;
52
+ rebuildTenantClosure(tenantId: string, ...args: any[]): Promise<void>;
53
+ deleteOrgUnitTree(tenantId: string, orgUnitId: string, ...args: any[]): Promise<void>;
54
+ }
55
+ export declare class UserService extends BaseModelService<User> {
56
+ constructor();
57
+ createUser(input: CreateUserInput, ...args: any[]): Promise<User>;
58
+ getByEmail(email: string, ...args: any[]): Promise<User>;
59
+ updateDisplayName(userId: string, displayName: string, ...args: any[]): Promise<User>;
60
+ updateEmail(userId: string, email: string | undefined, ...args: any[]): Promise<User>;
61
+ updatePhone(userId: string, phone: string | undefined, ...args: any[]): Promise<User>;
62
+ }
63
+ export declare class PrincipalService extends BaseModelService<Principal> {
64
+ constructor();
65
+ createPrincipal(tenantId: string, kind: PrincipalKind, subjectId: string, ...args: any[]): Promise<Principal>;
66
+ getForSubject(tenantId: string, kind: PrincipalKind, subjectId: string, ...args: any[]): Promise<Principal | undefined>;
67
+ getOrCreateForSubject(tenantId: string, kind: PrincipalKind, subjectId: string, ...args: any[]): Promise<Principal>;
68
+ getUserPrincipal(tenantId: string, userId: string, ...args: any[]): Promise<Principal>;
69
+ getGroupPrincipal(tenantId: string, groupId: string, ...args: any[]): Promise<Principal>;
70
+ }
71
+ export declare class TenantMembershipService extends BaseModelService<TenantMembership> {
72
+ constructor();
73
+ addUserToTenant(tenantId: string, userId: string, status?: MembershipStatus, ...args: any[]): Promise<TenantMembership>;
74
+ setStatus(membershipId: string, status: MembershipStatus, ...args: any[]): Promise<TenantMembership>;
75
+ listUserTenants(userId: string, ...args: any[]): Promise<TenantMembership[]>;
76
+ listTenantUsers(tenantId: string, ...args: any[]): Promise<TenantMembership[]>;
77
+ removeUserFromTenant(membershipId: string, ...args: any[]): Promise<void>;
78
+ }
79
+ export declare class OrgUnitMembershipService extends BaseModelService<OrgUnitMembership> {
80
+ constructor();
81
+ addUserToOrgUnit(tenantId: string, orgUnitId: string, userId: string, status?: MembershipStatus, ...args: any[]): Promise<OrgUnitMembership>;
82
+ setStatus(membershipId: string, status: MembershipStatus, ...args: any[]): Promise<OrgUnitMembership>;
83
+ listUserOrgUnits(userId: string, ...args: any[]): Promise<OrgUnitMembership[]>;
84
+ listOrgUnitUsers(orgUnitId: string, ...args: any[]): Promise<OrgUnitMembership[]>;
85
+ removeUserFromOrgUnit(membershipId: string, ...args: any[]): Promise<void>;
86
+ }
87
+ export declare class GroupService extends BaseModelService<Group> {
88
+ constructor();
89
+ createGroup(tenantId: string, name: string, orgUnitId?: string, metadata?: Record<string, unknown>, ...args: any[]): Promise<Group>;
90
+ renameGroup(groupId: string, name: string, ...args: any[]): Promise<Group>;
91
+ moveGroupToOrgUnit(groupId: string, orgUnitId: string | undefined, ...args: any[]): Promise<Group>;
92
+ listTenantGroups(tenantId: string, ...args: any[]): Promise<Group[]>;
93
+ }
94
+ export declare class GroupMembershipService extends BaseModelService<GroupMembership> {
95
+ constructor();
96
+ addPrincipalToGroup(tenantId: string, groupId: string, principalId: string, metadata?: Record<string, unknown>, ...args: any[]): Promise<GroupMembership>;
97
+ listGroupMembers(groupId: string, ...args: any[]): Promise<GroupMembership[]>;
98
+ listPrincipalGroups(principalId: string, ...args: any[]): Promise<GroupMembership[]>;
99
+ removePrincipalFromGroup(membershipId: string, ...args: any[]): Promise<void>;
100
+ resolveGroupPrincipalIdsForPrincipal(principalId: string, ...args: any[]): Promise<string[]>;
101
+ }
102
+ export declare class PermissionService extends BaseModelService<Permission> {
103
+ constructor();
104
+ createPermission(input: CreatePermissionInput, ...args: any[]): Promise<Permission>;
105
+ getByKey(key: string, ...args: any[]): Promise<Permission>;
106
+ listByCategory(category: PermissionCategory, ...args: any[]): Promise<Permission[]>;
107
+ updateDescription(permissionId: string, description: string | undefined, ...args: any[]): Promise<Permission>;
108
+ }
109
+ export declare class RoleService extends BaseModelService<Role> {
110
+ constructor();
111
+ createRole(input: CreateRoleInput, ...args: any[]): Promise<Role>;
112
+ getSystemRoleByKey(key: string, ...args: any[]): Promise<Role>;
113
+ getTenantRoleByKey(tenantId: string, key: string, ...args: any[]): Promise<Role>;
114
+ renameRole(roleId: string, name: string, ...args: any[]): Promise<Role>;
115
+ updateRoleMetadata(roleId: string, metadata: Record<string, unknown> | undefined, ...args: any[]): Promise<Role>;
116
+ listTenantRoles(tenantId: string, includeSystem?: boolean, ...args: any[]): Promise<Role[]>;
117
+ }
118
+ export declare class RolePermissionService extends BaseModelService<RolePermission> {
119
+ constructor();
120
+ addPermissionToRole(roleId: string, permissionId: string, ...args: any[]): Promise<RolePermission>;
121
+ addPermissionKeyToRole(roleId: string, permissionKey: string, ...args: any[]): Promise<RolePermission>;
122
+ removePermissionFromRole(rolePermissionId: string, ...args: any[]): Promise<void>;
123
+ listRolePermissions(roleId: string, ...args: any[]): Promise<RolePermission[]>;
124
+ listPermissionRoles(permissionId: string, ...args: any[]): Promise<RolePermission[]>;
125
+ replaceRolePermissions(roleId: string, permissionIds: string[], ...args: any[]): Promise<RolePermission[]>;
126
+ createRoleWithPermissions(input: CreateRoleInput, permissionKeys: string[], ...args: any[]): Promise<Role>;
127
+ }
128
+ export declare class RoleAssignmentService extends BaseModelService<RoleAssignment> {
129
+ constructor();
130
+ assignRole(input: AssignRoleInput, ...args: any[]): Promise<RoleAssignment>;
131
+ revokeAssignment(assignmentId: string, ...args: any[]): Promise<void>;
132
+ listPrincipalAssignments(tenantId: string, principalId: string, ...args: any[]): Promise<RoleAssignment[]>;
133
+ listRoleAssignments(roleId: string, ...args: any[]): Promise<RoleAssignment[]>;
134
+ listTenantAssignments(tenantId: string, ...args: any[]): Promise<RoleAssignment[]>;
135
+ updateAssignmentWindow(assignmentId: string, startsAt: Date | undefined, expiresAt: Date | undefined, ...args: any[]): Promise<RoleAssignment>;
136
+ }
137
+ export declare class EffectivePermissionService extends BaseModelService<EffectivePermission> {
138
+ constructor();
139
+ listForPrincipal(tenantId: string, principalId: string, ...args: any[]): Promise<EffectivePermission[]>;
140
+ listForScope(tenantId: string, scopeKind: ScopeKind, scopeId: string, ...args: any[]): Promise<EffectivePermission[]>;
141
+ hasPermission(tenantId: string, principalId: string, permissionKey: string, scopeKind: ScopeKind, scopeId: string, at?: Date, ...args: any[]): Promise<boolean>;
142
+ deleteForPrincipal(tenantId: string, principalId: string, ...args: any[]): Promise<void>;
143
+ deleteForTenant(tenantId: string, ...args: any[]): Promise<void>;
144
+ rebuildForPrincipal(tenantId: string, principalId: string, ...args: any[]): Promise<EffectivePermission[]>;
145
+ rebuildForTenant(tenantId: string, ...args: any[]): Promise<void>;
146
+ }
147
+ export declare class ProtectedResourceService extends BaseModelService<ProtectedResource> {
148
+ constructor();
149
+ registerResource(input: RegisterResourceInput, ...args: any[]): Promise<ProtectedResource>;
150
+ getByDomainResource(tenantId: string, resourceType: string, resourceId: string, ...args: any[]): Promise<ProtectedResource | undefined>;
151
+ moveResourceToOrgUnit(protectedResourceId: string, orgUnitId: string, ...args: any[]): Promise<ProtectedResource>;
152
+ setVisibility(protectedResourceId: string, visibility: ResourceVisibility, ...args: any[]): Promise<ProtectedResource>;
153
+ transferOwnership(protectedResourceId: string, ownerPrincipalId: string | undefined, ...args: any[]): Promise<ProtectedResource>;
154
+ listOrgUnitResources(orgUnitId: string, ...args: any[]): Promise<ProtectedResource[]>;
155
+ listTenantResources(tenantId: string, ...args: any[]): Promise<ProtectedResource[]>;
156
+ }
157
+ export declare class ResourceGrantService extends BaseModelService<ResourceGrant> {
158
+ constructor();
159
+ grantResource(input: GrantResourceInput, ...args: any[]): Promise<ResourceGrant>;
160
+ revokeGrant(grantId: string, ...args: any[]): Promise<void>;
161
+ listResourceGrants(protectedResourceId: string, ...args: any[]): Promise<ResourceGrant[]>;
162
+ listPrincipalGrants(tenantId: string, principalId: string, ...args: any[]): Promise<ResourceGrant[]>;
163
+ hasGrant(tenantId: string, principalId: string, protectedResourceId: string, permissionKey: string, at?: Date, ...args: any[]): Promise<boolean>;
164
+ deleteAllForResource(protectedResourceId: string, ...args: any[]): Promise<void>;
165
+ }
166
+ export declare class ResourceLifecycleService {
167
+ unregisterResource(protectedResourceId: string, ...args: any[]): Promise<void>;
168
+ resolveResourceScope(protectedResourceId: string, ...args: any[]): Promise<{
169
+ tenantId: string;
170
+ orgUnitId: string;
171
+ visibility: ResourceVisibility;
172
+ ownerPrincipalId?: string;
173
+ }>;
174
+ }
175
+ export declare class StorageBindingService extends BaseModelService<StorageBinding> {
176
+ constructor();
177
+ createBinding(input: CreateStorageBindingInput, ...args: any[]): Promise<StorageBinding>;
178
+ listTenantBindings(tenantId: string, ...args: any[]): Promise<StorageBinding[]>;
179
+ getBinding(tenantId: string, storageKind: StorageKind, ...args: any[]): Promise<StorageBinding | undefined>;
180
+ setBindingConfig(bindingId: string, config: Record<string, unknown> | undefined, ...args: any[]): Promise<StorageBinding>;
181
+ promoteToDedicated(bindingId: string, bindingKey: string, region: string, config?: Record<string, unknown>, ...args: any[]): Promise<StorageBinding>;
182
+ setShared(bindingId: string, bindingKey: string, region: string, config?: Record<string, unknown>, ...args: any[]): Promise<StorageBinding>;
183
+ }
184
+ export declare class BootstrapService {
185
+ private tenantService;
186
+ private tenantProfileService;
187
+ private orgUnitService;
188
+ private orgUnitProfileService;
189
+ private userService;
190
+ private membershipService;
191
+ private principalService;
192
+ private permissionService;
193
+ private roleService;
194
+ private rolePermissionService;
195
+ private roleAssignmentService;
196
+ private effectivePermissionService;
197
+ bootstrapTenantFromTemplate(template: BootstrapTemplate, ...args: any[]): Promise<{
198
+ tenantId: string;
199
+ rootOrgUnitId: string;
200
+ ownerUserId: string;
201
+ ownerPrincipalId: string;
202
+ }>;
203
+ }
204
+ export declare class SystemManagementService {
205
+ private membershipService;
206
+ private orgMembershipService;
207
+ private principalService;
208
+ private roleService;
209
+ private roleAssignmentService;
210
+ private effectivePermissionService;
211
+ onboardUserToTenantAndOrgUnit(tenantId: string, userId: string, orgUnitId: string, roleKey: string, ...args: any[]): Promise<{
212
+ principalId: string;
213
+ }>;
214
+ changeUserOrgRole(tenantId: string, principalId: string, orgUnitId: string, roleKey: string, inheritDown: boolean, ...args: any[]): Promise<void>;
215
+ suspendUserInTenant(tenantMembershipId: string, tenantId: string, principalId: string, ...args: any[]): Promise<void>;
216
+ reactivateUserInTenant(tenantMembershipId: string, tenantId: string, principalId: string, ...args: any[]): Promise<void>;
217
+ }
@@ -0,0 +1,217 @@
1
+ import { BaseModelService, IsolationTier, MembershipStatus, PermissionCategory, PrincipalKind, ResourceVisibility, ScopeKind, StorageKind } from "./org-based-authorization-system.d.mts";
2
+ import type { AssignRoleInput, BootstrapTemplate, CreateOrgUnitInput, CreatePermissionInput, CreateRoleInput, CreateStorageBindingInput, CreateTenantInput, CreateUserInput, GrantResourceInput, RegisterResourceInput } from "./org-based-authorization-system.d.mts";
3
+ import { EffectivePermission, Group, GroupMembership, InheritanceBlock, OrgUnit, OrgUnitClosure, OrgUnitMembership, OrgUnitProfile, Permission, ProtectedResource, Principal, ResourceGrant, Role, RoleAssignment, RolePermission, StorageBinding, Tenant, TenantMembership, TenantProfile, User } from "./org-based-authorization-system.models.d.mts";
4
+ export declare class TenantProfileService extends BaseModelService<TenantProfile> {
5
+ constructor();
6
+ createProfile(tenantId: string, profileKey: string, metadata?: Record<string, unknown>, ...args: any[]): Promise<TenantProfile>;
7
+ listForTenant(tenantId: string, ...args: any[]): Promise<TenantProfile[]>;
8
+ deleteForTenant(tenantId: string, ...args: any[]): Promise<void>;
9
+ }
10
+ export declare class OrgUnitProfileService extends BaseModelService<OrgUnitProfile> {
11
+ constructor();
12
+ createProfile(orgUnitId: string, profileKey: string, metadata?: Record<string, unknown>, ...args: any[]): Promise<OrgUnitProfile>;
13
+ listForOrgUnit(orgUnitId: string, ...args: any[]): Promise<OrgUnitProfile[]>;
14
+ }
15
+ export declare class OrgUnitClosureService extends BaseModelService<OrgUnitClosure> {
16
+ constructor();
17
+ listAncestors(tenantId: string, orgUnitId: string, ...args: any[]): Promise<OrgUnitClosure[]>;
18
+ listDescendants(tenantId: string, orgUnitId: string, ...args: any[]): Promise<OrgUnitClosure[]>;
19
+ isAncestorOf(tenantId: string, ancestorOrgUnitId: string, descendantOrgUnitId: string, ...args: any[]): Promise<boolean>;
20
+ createSelfLink(tenantId: string, orgUnitId: string, ...args: any[]): Promise<OrgUnitClosure>;
21
+ insertAncestorLinksForNewChild(tenantId: string, parentOrgUnitId: string, childOrgUnitId: string, ...args: any[]): Promise<void>;
22
+ deleteLinksForSubtree(tenantId: string, orgUnitId: string, ...args: any[]): Promise<void>;
23
+ }
24
+ export declare class InheritanceBlockService extends BaseModelService<InheritanceBlock> {
25
+ constructor();
26
+ blockCategory(tenantId: string, orgUnitId: string, permissionCategory: PermissionCategory, blockedFromAncestorId?: string, reason?: string, ...args: any[]): Promise<InheritanceBlock>;
27
+ unblockCategory(blockId: string, ...args: any[]): Promise<void>;
28
+ listForOrgUnit(tenantId: string, orgUnitId: string, ...args: any[]): Promise<InheritanceBlock[]>;
29
+ categoryBlockedForAncestor(tenantId: string, orgUnitId: string, ancestorOrgUnitId: string, category: PermissionCategory, ...args: any[]): Promise<boolean>;
30
+ }
31
+ export declare class TenantService extends BaseModelService<Tenant> {
32
+ constructor();
33
+ createTenant(input: CreateTenantInput, ...args: any[]): Promise<Tenant>;
34
+ getBySlug(slug: string, ...args: any[]): Promise<Tenant>;
35
+ renameTenant(tenantId: string, name: string, ...args: any[]): Promise<Tenant>;
36
+ changeSlug(tenantId: string, slug: string, ...args: any[]): Promise<Tenant>;
37
+ setIsolationTier(tenantId: string, isolationTier: IsolationTier, ...args: any[]): Promise<Tenant>;
38
+ deleteTenantControlled(tenantId: string, ...args: any[]): Promise<void>;
39
+ }
40
+ export declare class OrgUnitService extends BaseModelService<OrgUnit> {
41
+ constructor();
42
+ private orgUnitPath;
43
+ private createProfileIfNeeded;
44
+ createRoot(tenantId: string, name: string, metadata?: Record<string, unknown>, profileKey?: string, profileMetadata?: Record<string, unknown>, ...args: any[]): Promise<OrgUnit>;
45
+ createChild(input: CreateOrgUnitInput, ...args: any[]): Promise<OrgUnit>;
46
+ listChildren(parentOrgUnitId: string, ...args: any[]): Promise<OrgUnit[]>;
47
+ listTenantOrgUnits(tenantId: string, ...args: any[]): Promise<OrgUnit[]>;
48
+ listDescendantOrgUnits(tenantId: string, orgUnitId: string, includeSelf?: boolean, ...args: any[]): Promise<OrgUnit[]>;
49
+ listAncestorOrgUnits(tenantId: string, orgUnitId: string, includeSelf?: boolean, ...args: any[]): Promise<OrgUnit[]>;
50
+ renameOrgUnit(orgUnitId: string, name: string, ...args: any[]): Promise<OrgUnit>;
51
+ moveOrgUnit(tenantId: string, orgUnitId: string, newParentOrgUnitId: string, ...args: any[]): Promise<OrgUnit>;
52
+ rebuildTenantClosure(tenantId: string, ...args: any[]): Promise<void>;
53
+ deleteOrgUnitTree(tenantId: string, orgUnitId: string, ...args: any[]): Promise<void>;
54
+ }
55
+ export declare class UserService extends BaseModelService<User> {
56
+ constructor();
57
+ createUser(input: CreateUserInput, ...args: any[]): Promise<User>;
58
+ getByEmail(email: string, ...args: any[]): Promise<User>;
59
+ updateDisplayName(userId: string, displayName: string, ...args: any[]): Promise<User>;
60
+ updateEmail(userId: string, email: string | undefined, ...args: any[]): Promise<User>;
61
+ updatePhone(userId: string, phone: string | undefined, ...args: any[]): Promise<User>;
62
+ }
63
+ export declare class PrincipalService extends BaseModelService<Principal> {
64
+ constructor();
65
+ createPrincipal(tenantId: string, kind: PrincipalKind, subjectId: string, ...args: any[]): Promise<Principal>;
66
+ getForSubject(tenantId: string, kind: PrincipalKind, subjectId: string, ...args: any[]): Promise<Principal | undefined>;
67
+ getOrCreateForSubject(tenantId: string, kind: PrincipalKind, subjectId: string, ...args: any[]): Promise<Principal>;
68
+ getUserPrincipal(tenantId: string, userId: string, ...args: any[]): Promise<Principal>;
69
+ getGroupPrincipal(tenantId: string, groupId: string, ...args: any[]): Promise<Principal>;
70
+ }
71
+ export declare class TenantMembershipService extends BaseModelService<TenantMembership> {
72
+ constructor();
73
+ addUserToTenant(tenantId: string, userId: string, status?: MembershipStatus, ...args: any[]): Promise<TenantMembership>;
74
+ setStatus(membershipId: string, status: MembershipStatus, ...args: any[]): Promise<TenantMembership>;
75
+ listUserTenants(userId: string, ...args: any[]): Promise<TenantMembership[]>;
76
+ listTenantUsers(tenantId: string, ...args: any[]): Promise<TenantMembership[]>;
77
+ removeUserFromTenant(membershipId: string, ...args: any[]): Promise<void>;
78
+ }
79
+ export declare class OrgUnitMembershipService extends BaseModelService<OrgUnitMembership> {
80
+ constructor();
81
+ addUserToOrgUnit(tenantId: string, orgUnitId: string, userId: string, status?: MembershipStatus, ...args: any[]): Promise<OrgUnitMembership>;
82
+ setStatus(membershipId: string, status: MembershipStatus, ...args: any[]): Promise<OrgUnitMembership>;
83
+ listUserOrgUnits(userId: string, ...args: any[]): Promise<OrgUnitMembership[]>;
84
+ listOrgUnitUsers(orgUnitId: string, ...args: any[]): Promise<OrgUnitMembership[]>;
85
+ removeUserFromOrgUnit(membershipId: string, ...args: any[]): Promise<void>;
86
+ }
87
+ export declare class GroupService extends BaseModelService<Group> {
88
+ constructor();
89
+ createGroup(tenantId: string, name: string, orgUnitId?: string, metadata?: Record<string, unknown>, ...args: any[]): Promise<Group>;
90
+ renameGroup(groupId: string, name: string, ...args: any[]): Promise<Group>;
91
+ moveGroupToOrgUnit(groupId: string, orgUnitId: string | undefined, ...args: any[]): Promise<Group>;
92
+ listTenantGroups(tenantId: string, ...args: any[]): Promise<Group[]>;
93
+ }
94
+ export declare class GroupMembershipService extends BaseModelService<GroupMembership> {
95
+ constructor();
96
+ addPrincipalToGroup(tenantId: string, groupId: string, principalId: string, metadata?: Record<string, unknown>, ...args: any[]): Promise<GroupMembership>;
97
+ listGroupMembers(groupId: string, ...args: any[]): Promise<GroupMembership[]>;
98
+ listPrincipalGroups(principalId: string, ...args: any[]): Promise<GroupMembership[]>;
99
+ removePrincipalFromGroup(membershipId: string, ...args: any[]): Promise<void>;
100
+ resolveGroupPrincipalIdsForPrincipal(principalId: string, ...args: any[]): Promise<string[]>;
101
+ }
102
+ export declare class PermissionService extends BaseModelService<Permission> {
103
+ constructor();
104
+ createPermission(input: CreatePermissionInput, ...args: any[]): Promise<Permission>;
105
+ getByKey(key: string, ...args: any[]): Promise<Permission>;
106
+ listByCategory(category: PermissionCategory, ...args: any[]): Promise<Permission[]>;
107
+ updateDescription(permissionId: string, description: string | undefined, ...args: any[]): Promise<Permission>;
108
+ }
109
+ export declare class RoleService extends BaseModelService<Role> {
110
+ constructor();
111
+ createRole(input: CreateRoleInput, ...args: any[]): Promise<Role>;
112
+ getSystemRoleByKey(key: string, ...args: any[]): Promise<Role>;
113
+ getTenantRoleByKey(tenantId: string, key: string, ...args: any[]): Promise<Role>;
114
+ renameRole(roleId: string, name: string, ...args: any[]): Promise<Role>;
115
+ updateRoleMetadata(roleId: string, metadata: Record<string, unknown> | undefined, ...args: any[]): Promise<Role>;
116
+ listTenantRoles(tenantId: string, includeSystem?: boolean, ...args: any[]): Promise<Role[]>;
117
+ }
118
+ export declare class RolePermissionService extends BaseModelService<RolePermission> {
119
+ constructor();
120
+ addPermissionToRole(roleId: string, permissionId: string, ...args: any[]): Promise<RolePermission>;
121
+ addPermissionKeyToRole(roleId: string, permissionKey: string, ...args: any[]): Promise<RolePermission>;
122
+ removePermissionFromRole(rolePermissionId: string, ...args: any[]): Promise<void>;
123
+ listRolePermissions(roleId: string, ...args: any[]): Promise<RolePermission[]>;
124
+ listPermissionRoles(permissionId: string, ...args: any[]): Promise<RolePermission[]>;
125
+ replaceRolePermissions(roleId: string, permissionIds: string[], ...args: any[]): Promise<RolePermission[]>;
126
+ createRoleWithPermissions(input: CreateRoleInput, permissionKeys: string[], ...args: any[]): Promise<Role>;
127
+ }
128
+ export declare class RoleAssignmentService extends BaseModelService<RoleAssignment> {
129
+ constructor();
130
+ assignRole(input: AssignRoleInput, ...args: any[]): Promise<RoleAssignment>;
131
+ revokeAssignment(assignmentId: string, ...args: any[]): Promise<void>;
132
+ listPrincipalAssignments(tenantId: string, principalId: string, ...args: any[]): Promise<RoleAssignment[]>;
133
+ listRoleAssignments(roleId: string, ...args: any[]): Promise<RoleAssignment[]>;
134
+ listTenantAssignments(tenantId: string, ...args: any[]): Promise<RoleAssignment[]>;
135
+ updateAssignmentWindow(assignmentId: string, startsAt: Date | undefined, expiresAt: Date | undefined, ...args: any[]): Promise<RoleAssignment>;
136
+ }
137
+ export declare class EffectivePermissionService extends BaseModelService<EffectivePermission> {
138
+ constructor();
139
+ listForPrincipal(tenantId: string, principalId: string, ...args: any[]): Promise<EffectivePermission[]>;
140
+ listForScope(tenantId: string, scopeKind: ScopeKind, scopeId: string, ...args: any[]): Promise<EffectivePermission[]>;
141
+ hasPermission(tenantId: string, principalId: string, permissionKey: string, scopeKind: ScopeKind, scopeId: string, at?: Date, ...args: any[]): Promise<boolean>;
142
+ deleteForPrincipal(tenantId: string, principalId: string, ...args: any[]): Promise<void>;
143
+ deleteForTenant(tenantId: string, ...args: any[]): Promise<void>;
144
+ rebuildForPrincipal(tenantId: string, principalId: string, ...args: any[]): Promise<EffectivePermission[]>;
145
+ rebuildForTenant(tenantId: string, ...args: any[]): Promise<void>;
146
+ }
147
+ export declare class ProtectedResourceService extends BaseModelService<ProtectedResource> {
148
+ constructor();
149
+ registerResource(input: RegisterResourceInput, ...args: any[]): Promise<ProtectedResource>;
150
+ getByDomainResource(tenantId: string, resourceType: string, resourceId: string, ...args: any[]): Promise<ProtectedResource | undefined>;
151
+ moveResourceToOrgUnit(protectedResourceId: string, orgUnitId: string, ...args: any[]): Promise<ProtectedResource>;
152
+ setVisibility(protectedResourceId: string, visibility: ResourceVisibility, ...args: any[]): Promise<ProtectedResource>;
153
+ transferOwnership(protectedResourceId: string, ownerPrincipalId: string | undefined, ...args: any[]): Promise<ProtectedResource>;
154
+ listOrgUnitResources(orgUnitId: string, ...args: any[]): Promise<ProtectedResource[]>;
155
+ listTenantResources(tenantId: string, ...args: any[]): Promise<ProtectedResource[]>;
156
+ }
157
+ export declare class ResourceGrantService extends BaseModelService<ResourceGrant> {
158
+ constructor();
159
+ grantResource(input: GrantResourceInput, ...args: any[]): Promise<ResourceGrant>;
160
+ revokeGrant(grantId: string, ...args: any[]): Promise<void>;
161
+ listResourceGrants(protectedResourceId: string, ...args: any[]): Promise<ResourceGrant[]>;
162
+ listPrincipalGrants(tenantId: string, principalId: string, ...args: any[]): Promise<ResourceGrant[]>;
163
+ hasGrant(tenantId: string, principalId: string, protectedResourceId: string, permissionKey: string, at?: Date, ...args: any[]): Promise<boolean>;
164
+ deleteAllForResource(protectedResourceId: string, ...args: any[]): Promise<void>;
165
+ }
166
+ export declare class ResourceLifecycleService {
167
+ unregisterResource(protectedResourceId: string, ...args: any[]): Promise<void>;
168
+ resolveResourceScope(protectedResourceId: string, ...args: any[]): Promise<{
169
+ tenantId: string;
170
+ orgUnitId: string;
171
+ visibility: ResourceVisibility;
172
+ ownerPrincipalId?: string;
173
+ }>;
174
+ }
175
+ export declare class StorageBindingService extends BaseModelService<StorageBinding> {
176
+ constructor();
177
+ createBinding(input: CreateStorageBindingInput, ...args: any[]): Promise<StorageBinding>;
178
+ listTenantBindings(tenantId: string, ...args: any[]): Promise<StorageBinding[]>;
179
+ getBinding(tenantId: string, storageKind: StorageKind, ...args: any[]): Promise<StorageBinding | undefined>;
180
+ setBindingConfig(bindingId: string, config: Record<string, unknown> | undefined, ...args: any[]): Promise<StorageBinding>;
181
+ promoteToDedicated(bindingId: string, bindingKey: string, region: string, config?: Record<string, unknown>, ...args: any[]): Promise<StorageBinding>;
182
+ setShared(bindingId: string, bindingKey: string, region: string, config?: Record<string, unknown>, ...args: any[]): Promise<StorageBinding>;
183
+ }
184
+ export declare class BootstrapService {
185
+ private tenantService;
186
+ private tenantProfileService;
187
+ private orgUnitService;
188
+ private orgUnitProfileService;
189
+ private userService;
190
+ private membershipService;
191
+ private principalService;
192
+ private permissionService;
193
+ private roleService;
194
+ private rolePermissionService;
195
+ private roleAssignmentService;
196
+ private effectivePermissionService;
197
+ bootstrapTenantFromTemplate(template: BootstrapTemplate, ...args: any[]): Promise<{
198
+ tenantId: string;
199
+ rootOrgUnitId: string;
200
+ ownerUserId: string;
201
+ ownerPrincipalId: string;
202
+ }>;
203
+ }
204
+ export declare class SystemManagementService {
205
+ private membershipService;
206
+ private orgMembershipService;
207
+ private principalService;
208
+ private roleService;
209
+ private roleAssignmentService;
210
+ private effectivePermissionService;
211
+ onboardUserToTenantAndOrgUnit(tenantId: string, userId: string, orgUnitId: string, roleKey: string, ...args: any[]): Promise<{
212
+ principalId: string;
213
+ }>;
214
+ changeUserOrgRole(tenantId: string, principalId: string, orgUnitId: string, roleKey: string, inheritDown: boolean, ...args: any[]): Promise<void>;
215
+ suspendUserInTenant(tenantMembershipId: string, tenantId: string, principalId: string, ...args: any[]): Promise<void>;
216
+ reactivateUserInTenant(tenantMembershipId: string, tenantId: string, principalId: string, ...args: any[]): Promise<void>;
217
+ }
@@ -0,0 +1,10 @@
1
+ import { AuthzDataSources, CanAccessInput } from "../types.d.cts";
2
+ export declare class AuthzService {
3
+ private readonly dataSources;
4
+ constructor(dataSources?: AuthzDataSources);
5
+ canAccess(input: CanAccessInput, ...args: any[]): Promise<boolean>;
6
+ requireAccess(input: CanAccessInput, ...args: any[]): Promise<void>;
7
+ buildAccessContext(tenantId: string, principalId: string, ...args: any[]): Promise<import("../types.d.cts").AccessContext>;
8
+ buildArangoContext(tenantId: string, principalId: string, permissionKey: string, ...args: any[]): Promise<import("..").ArangoAuthContext>;
9
+ buildQdrantFilter(tenantId: string, principalId: string, permissionKey: string, ...args: any[]): Promise<import("..").QdrantAuthFilter>;
10
+ }