@powerhousedao/reactor-api 6.0.0-dev.9 → 6.0.0-dev.90

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 (267) hide show
  1. package/dist/codegen.js +1 -1
  2. package/dist/codegen.js.map +1 -1
  3. package/dist/index.d.ts +4 -2
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +4 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/src/config.d.ts +1 -2
  8. package/dist/src/config.d.ts.map +1 -1
  9. package/dist/src/config.js +1 -5
  10. package/dist/src/config.js.map +1 -1
  11. package/dist/src/graphql/auth/resolvers.d.ts +17 -0
  12. package/dist/src/graphql/auth/resolvers.d.ts.map +1 -1
  13. package/dist/src/graphql/auth/resolvers.js +54 -0
  14. package/dist/src/graphql/auth/resolvers.js.map +1 -1
  15. package/dist/src/graphql/auth/schema.graphql +27 -5
  16. package/dist/src/graphql/auth/subgraph.d.ts +25 -0
  17. package/dist/src/graphql/auth/subgraph.d.ts.map +1 -1
  18. package/dist/src/graphql/auth/subgraph.js +45 -1
  19. package/dist/src/graphql/auth/subgraph.js.map +1 -1
  20. package/dist/src/graphql/base-subgraph.d.ts +12 -4
  21. package/dist/src/graphql/base-subgraph.d.ts.map +1 -1
  22. package/dist/src/graphql/base-subgraph.js +94 -2
  23. package/dist/src/graphql/base-subgraph.js.map +1 -1
  24. package/dist/src/graphql/document-model-subgraph.d.ts +16 -44
  25. package/dist/src/graphql/document-model-subgraph.d.ts.map +1 -1
  26. package/dist/src/graphql/document-model-subgraph.js +285 -87
  27. package/dist/src/graphql/document-model-subgraph.js.map +1 -1
  28. package/dist/src/graphql/graphql-manager.d.ts +28 -6
  29. package/dist/src/graphql/graphql-manager.d.ts.map +1 -1
  30. package/dist/src/graphql/graphql-manager.js +266 -161
  31. package/dist/src/graphql/graphql-manager.js.map +1 -1
  32. package/dist/src/graphql/index.d.ts +2 -1
  33. package/dist/src/graphql/index.d.ts.map +1 -1
  34. package/dist/src/graphql/index.js +2 -1
  35. package/dist/src/graphql/index.js.map +1 -1
  36. package/dist/src/graphql/packages/index.d.ts +2 -0
  37. package/dist/src/graphql/packages/index.d.ts.map +1 -0
  38. package/dist/src/graphql/packages/index.js +2 -0
  39. package/dist/src/graphql/packages/index.js.map +1 -0
  40. package/dist/src/graphql/packages/resolvers.d.ts +31 -0
  41. package/dist/src/graphql/packages/resolvers.d.ts.map +1 -0
  42. package/dist/src/graphql/packages/resolvers.js +37 -0
  43. package/dist/src/graphql/packages/resolvers.js.map +1 -0
  44. package/dist/src/graphql/packages/schema.graphql +50 -0
  45. package/dist/src/graphql/packages/subgraph.d.ts +55 -0
  46. package/dist/src/graphql/packages/subgraph.d.ts.map +1 -0
  47. package/dist/src/graphql/packages/subgraph.js +73 -0
  48. package/dist/src/graphql/packages/subgraph.js.map +1 -0
  49. package/dist/src/graphql/reactor/adapters.d.ts +10 -2
  50. package/dist/src/graphql/reactor/adapters.d.ts.map +1 -1
  51. package/dist/src/graphql/reactor/adapters.js +35 -1
  52. package/dist/src/graphql/reactor/adapters.js.map +1 -1
  53. package/dist/src/graphql/reactor/factory.d.ts +22 -1
  54. package/dist/src/graphql/reactor/factory.d.ts.map +1 -1
  55. package/dist/src/graphql/reactor/factory.js +1 -1
  56. package/dist/src/graphql/reactor/factory.js.map +1 -1
  57. package/dist/src/graphql/reactor/gen/graphql.d.ts +339 -76
  58. package/dist/src/graphql/reactor/gen/graphql.d.ts.map +1 -1
  59. package/dist/src/graphql/reactor/gen/graphql.js +242 -10
  60. package/dist/src/graphql/reactor/gen/graphql.js.map +1 -1
  61. package/dist/src/graphql/reactor/index.d.ts +1 -1
  62. package/dist/src/graphql/reactor/index.d.ts.map +1 -1
  63. package/dist/src/graphql/reactor/index.js +1 -1
  64. package/dist/src/graphql/reactor/index.js.map +1 -1
  65. package/dist/src/graphql/reactor/operations.graphql +188 -1
  66. package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +1 -1
  67. package/dist/src/graphql/reactor/requester.with-zod.js +114 -38
  68. package/dist/src/graphql/reactor/requester.with-zod.js.map +1 -1
  69. package/dist/src/graphql/reactor/resolvers.d.ts +78 -25
  70. package/dist/src/graphql/reactor/resolvers.d.ts.map +1 -1
  71. package/dist/src/graphql/reactor/resolvers.js +197 -74
  72. package/dist/src/graphql/reactor/resolvers.js.map +1 -1
  73. package/dist/src/graphql/reactor/schema.graphql +70 -30
  74. package/dist/src/graphql/reactor/subgraph.d.ts +2 -31
  75. package/dist/src/graphql/reactor/subgraph.d.ts.map +1 -1
  76. package/dist/src/graphql/reactor/subgraph.js +132 -209
  77. package/dist/src/graphql/reactor/subgraph.js.map +1 -1
  78. package/dist/src/graphql/reactor/validation.d.ts +266 -20
  79. package/dist/src/graphql/reactor/validation.d.ts.map +1 -1
  80. package/dist/src/graphql/reactor/validation.js +98 -4
  81. package/dist/src/graphql/reactor/validation.js.map +1 -1
  82. package/dist/src/graphql/system/index.d.ts +0 -1
  83. package/dist/src/graphql/system/index.d.ts.map +1 -1
  84. package/dist/src/graphql/system/index.js +0 -1
  85. package/dist/src/graphql/system/index.js.map +1 -1
  86. package/dist/src/graphql/types.d.ts +6 -8
  87. package/dist/src/graphql/types.d.ts.map +1 -1
  88. package/dist/src/graphql/utils.d.ts +1 -18
  89. package/dist/src/graphql/utils.d.ts.map +1 -1
  90. package/dist/src/graphql/utils.js +7 -35
  91. package/dist/src/graphql/utils.js.map +1 -1
  92. package/dist/src/migrations/002_add_document_protection.d.ts +4 -0
  93. package/dist/src/migrations/002_add_document_protection.d.ts.map +1 -0
  94. package/dist/src/migrations/002_add_document_protection.js +18 -0
  95. package/dist/src/migrations/002_add_document_protection.js.map +1 -0
  96. package/dist/src/migrations/index.d.ts.map +1 -1
  97. package/dist/src/migrations/index.js +2 -0
  98. package/dist/src/migrations/index.js.map +1 -1
  99. package/dist/src/packages/http-loader.d.ts +68 -0
  100. package/dist/src/packages/http-loader.d.ts.map +1 -0
  101. package/dist/src/packages/http-loader.js +176 -0
  102. package/dist/src/packages/http-loader.js.map +1 -0
  103. package/dist/src/packages/https-hooks.d.mts +23 -0
  104. package/dist/src/packages/https-hooks.d.mts.map +1 -0
  105. package/dist/src/packages/https-hooks.mjs +59 -0
  106. package/dist/src/packages/https-hooks.mjs.map +1 -0
  107. package/dist/src/packages/import-loader.d.ts +5 -3
  108. package/dist/src/packages/import-loader.d.ts.map +1 -1
  109. package/dist/src/packages/import-loader.js +19 -10
  110. package/dist/src/packages/import-loader.js.map +1 -1
  111. package/dist/src/packages/package-manager.d.ts +2 -2
  112. package/dist/src/packages/package-manager.d.ts.map +1 -1
  113. package/dist/src/packages/package-manager.js.map +1 -1
  114. package/dist/src/packages/types.d.ts +9 -4
  115. package/dist/src/packages/types.d.ts.map +1 -1
  116. package/dist/src/packages/util.d.ts +3 -2
  117. package/dist/src/packages/util.d.ts.map +1 -1
  118. package/dist/src/packages/util.js +1 -1
  119. package/dist/src/packages/util.js.map +1 -1
  120. package/dist/src/packages/vite-loader.d.ts +10 -8
  121. package/dist/src/packages/vite-loader.d.ts.map +1 -1
  122. package/dist/src/packages/vite-loader.js +33 -10
  123. package/dist/src/packages/vite-loader.js.map +1 -1
  124. package/dist/src/server.d.ts +14 -11
  125. package/dist/src/server.d.ts.map +1 -1
  126. package/dist/src/server.js +153 -92
  127. package/dist/src/server.js.map +1 -1
  128. package/dist/src/services/auth.service.d.ts +0 -12
  129. package/dist/src/services/auth.service.d.ts.map +1 -1
  130. package/dist/src/services/auth.service.js +13 -40
  131. package/dist/src/services/auth.service.js.map +1 -1
  132. package/dist/src/services/authorization.service.d.ts +70 -0
  133. package/dist/src/services/authorization.service.d.ts.map +1 -0
  134. package/dist/src/services/authorization.service.js +155 -0
  135. package/dist/src/services/authorization.service.js.map +1 -0
  136. package/dist/src/services/document-permission.service.d.ts +47 -7
  137. package/dist/src/services/document-permission.service.d.ts.map +1 -1
  138. package/dist/src/services/document-permission.service.js +162 -7
  139. package/dist/src/services/document-permission.service.js.map +1 -1
  140. package/dist/src/services/package-management.service.d.ts +32 -0
  141. package/dist/src/services/package-management.service.d.ts.map +1 -0
  142. package/dist/src/services/package-management.service.js +95 -0
  143. package/dist/src/services/package-management.service.js.map +1 -0
  144. package/dist/src/services/package-storage.d.ts +23 -0
  145. package/dist/src/services/package-storage.d.ts.map +1 -0
  146. package/dist/src/services/package-storage.js +19 -0
  147. package/dist/src/services/package-storage.js.map +1 -0
  148. package/dist/src/tracing.d.ts.map +1 -1
  149. package/dist/src/tracing.js +19 -1
  150. package/dist/src/tracing.js.map +1 -1
  151. package/dist/src/types.d.ts +5 -5
  152. package/dist/src/types.d.ts.map +1 -1
  153. package/dist/src/utils/auth.d.ts +1 -1
  154. package/dist/src/utils/auth.d.ts.map +1 -1
  155. package/dist/src/utils/auth.js +5 -12
  156. package/dist/src/utils/auth.js.map +1 -1
  157. package/dist/src/utils/create-schema.d.ts +25 -6
  158. package/dist/src/utils/create-schema.d.ts.map +1 -1
  159. package/dist/src/utils/create-schema.js +294 -22
  160. package/dist/src/utils/create-schema.js.map +1 -1
  161. package/dist/src/utils/db.d.ts +8 -0
  162. package/dist/src/utils/db.d.ts.map +1 -1
  163. package/dist/src/utils/db.js.map +1 -1
  164. package/dist/src/utils/drive-url.d.ts +2 -0
  165. package/dist/src/utils/drive-url.d.ts.map +1 -0
  166. package/dist/src/utils/drive-url.js +3 -0
  167. package/dist/src/utils/drive-url.js.map +1 -0
  168. package/dist/src/utils/index.d.ts +1 -0
  169. package/dist/src/utils/index.d.ts.map +1 -1
  170. package/dist/src/utils/index.js +1 -0
  171. package/dist/src/utils/index.js.map +1 -1
  172. package/dist/test/authorization.service.test.d.ts +2 -0
  173. package/dist/test/authorization.service.test.d.ts.map +1 -0
  174. package/dist/test/authorization.service.test.js +252 -0
  175. package/dist/test/authorization.service.test.js.map +1 -0
  176. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts +2 -0
  177. package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts.map +1 -0
  178. package/dist/test/connect-switchboard-reshuffle-convergence.test.js +203 -0
  179. package/dist/test/connect-switchboard-reshuffle-convergence.test.js.map +1 -0
  180. package/dist/test/connect-switchboard-sync.test.d.ts +2 -0
  181. package/dist/test/connect-switchboard-sync.test.d.ts.map +1 -0
  182. package/dist/test/connect-switchboard-sync.test.js +581 -0
  183. package/dist/test/connect-switchboard-sync.test.js.map +1 -0
  184. package/dist/test/document-drive-subgraph.test.d.ts +2 -0
  185. package/dist/test/document-drive-subgraph.test.d.ts.map +1 -0
  186. package/dist/test/document-drive-subgraph.test.js +186 -0
  187. package/dist/test/document-drive-subgraph.test.js.map +1 -0
  188. package/dist/test/document-model-subgraph-permissions.test.d.ts +2 -0
  189. package/dist/test/document-model-subgraph-permissions.test.d.ts.map +1 -0
  190. package/dist/test/document-model-subgraph-permissions.test.js +563 -0
  191. package/dist/test/document-model-subgraph-permissions.test.js.map +1 -0
  192. package/dist/test/drive-info-endpoint.test.d.ts +2 -0
  193. package/dist/test/drive-info-endpoint.test.d.ts.map +1 -0
  194. package/dist/test/drive-info-endpoint.test.js +123 -0
  195. package/dist/test/drive-info-endpoint.test.js.map +1 -0
  196. package/dist/test/index.d.ts +0 -1
  197. package/dist/test/index.d.ts.map +1 -1
  198. package/dist/test/index.js +0 -1
  199. package/dist/test/index.js.map +1 -1
  200. package/dist/test/permissions-integration.test.js +6 -20
  201. package/dist/test/permissions-integration.test.js.map +1 -1
  202. package/dist/test/push-backfill.test.d.ts +2 -0
  203. package/dist/test/push-backfill.test.d.ts.map +1 -0
  204. package/dist/test/push-backfill.test.js +298 -0
  205. package/dist/test/push-backfill.test.js.map +1 -0
  206. package/dist/test/reactor-client.test.js +172 -13
  207. package/dist/test/reactor-client.test.js.map +1 -1
  208. package/dist/test/reactor-resolvers.test.js +8 -11
  209. package/dist/test/reactor-resolvers.test.js.map +1 -1
  210. package/dist/test/reactor-subgraph-permissions.test.js +7 -36
  211. package/dist/test/reactor-subgraph-permissions.test.js.map +1 -1
  212. package/dist/test/subscriptions.test.js +2 -0
  213. package/dist/test/subscriptions.test.js.map +1 -1
  214. package/dist/test/utils/gql-resolver-bridge.d.ts +4 -1
  215. package/dist/test/utils/gql-resolver-bridge.d.ts.map +1 -1
  216. package/dist/test/utils/gql-resolver-bridge.js +36 -7
  217. package/dist/test/utils/gql-resolver-bridge.js.map +1 -1
  218. package/dist/tsconfig.tsbuildinfo +1 -1
  219. package/package.json +46 -55
  220. package/dist/src/graphql/drive-subgraph.d.ts +0 -25
  221. package/dist/src/graphql/drive-subgraph.d.ts.map +0 -1
  222. package/dist/src/graphql/drive-subgraph.js +0 -487
  223. package/dist/src/graphql/drive-subgraph.js.map +0 -1
  224. package/dist/src/graphql/system/system-subgraph.d.ts +0 -49
  225. package/dist/src/graphql/system/system-subgraph.d.ts.map +0 -1
  226. package/dist/src/graphql/system/system-subgraph.js +0 -130
  227. package/dist/src/graphql/system/system-subgraph.js.map +0 -1
  228. package/dist/src/sync/types.d.ts +0 -10
  229. package/dist/src/sync/types.d.ts.map +0 -1
  230. package/dist/src/sync/types.js +0 -2
  231. package/dist/src/sync/types.js.map +0 -1
  232. package/dist/src/sync/utils.d.ts +0 -7
  233. package/dist/src/sync/utils.d.ts.map +0 -1
  234. package/dist/src/sync/utils.js +0 -78
  235. package/dist/src/sync/utils.js.map +0 -1
  236. package/dist/test/drive-handlers.d.ts +0 -4
  237. package/dist/test/drive-handlers.d.ts.map +0 -1
  238. package/dist/test/drive-handlers.js +0 -39
  239. package/dist/test/drive-handlers.js.map +0 -1
  240. package/dist/test/drive-subgraph-permissions.test.d.ts +0 -2
  241. package/dist/test/drive-subgraph-permissions.test.d.ts.map +0 -1
  242. package/dist/test/drive-subgraph-permissions.test.js +0 -195
  243. package/dist/test/drive-subgraph-permissions.test.js.map +0 -1
  244. package/dist/test/drive.test.d.ts +0 -2
  245. package/dist/test/drive.test.d.ts.map +0 -1
  246. package/dist/test/drive.test.js +0 -142
  247. package/dist/test/drive.test.js.map +0 -1
  248. package/dist/test/pull-responder-transmitter.test.d.ts +0 -2
  249. package/dist/test/pull-responder-transmitter.test.d.ts.map +0 -1
  250. package/dist/test/pull-responder-transmitter.test.js +0 -220
  251. package/dist/test/pull-responder-transmitter.test.js.map +0 -1
  252. package/dist/test/push-transmitter.test.d.ts +0 -2
  253. package/dist/test/push-transmitter.test.d.ts.map +0 -1
  254. package/dist/test/push-transmitter.test.js +0 -179
  255. package/dist/test/push-transmitter.test.js.map +0 -1
  256. package/dist/test/system.test.d.ts +0 -2
  257. package/dist/test/system.test.d.ts.map +0 -1
  258. package/dist/test/system.test.js +0 -211
  259. package/dist/test/system.test.js.map +0 -1
  260. package/dist/test/three-reactor-gql-sync.test.d.ts +0 -2
  261. package/dist/test/three-reactor-gql-sync.test.d.ts.map +0 -1
  262. package/dist/test/three-reactor-gql-sync.test.js +0 -368
  263. package/dist/test/three-reactor-gql-sync.test.js.map +0 -1
  264. package/dist/test/two-reactor-gql-sync.test.d.ts +0 -2
  265. package/dist/test/two-reactor-gql-sync.test.d.ts.map +0 -1
  266. package/dist/test/two-reactor-gql-sync.test.js +0 -348
  267. package/dist/test/two-reactor-gql-sync.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import type { DocumentPermissionService, GetParentIdsFn } from "./document-permission.service.js";
2
+ export interface AuthorizationConfig {
3
+ admins: string[];
4
+ defaultProtection: boolean;
5
+ }
6
+ /**
7
+ * Central authorization service — single source of truth for all permission checks.
8
+ *
9
+ * Authorization model:
10
+ * 1. Supreme admin (ADMINS env) → ALLOW ALL
11
+ * 2. Is document protected?
12
+ * a. NOT protected:
13
+ * - READ: anyone (even anonymous) → ALLOW
14
+ * - WRITE: authenticated user → ALLOW
15
+ * b. PROTECTED:
16
+ * - READ: requires explicit READ/WRITE/ADMIN grant (direct or via group/parent)
17
+ * - WRITE: requires explicit WRITE/ADMIN grant (direct or via group/parent)
18
+ * 3. Operation restricted? → Check OperationUserPermission
19
+ * 4. Document owner = implicit ADMIN
20
+ * 5. Drive protected = all children effectively protected
21
+ */
22
+ export declare class AuthorizationService {
23
+ private readonly documentPermissionService;
24
+ readonly config: AuthorizationConfig;
25
+ constructor(documentPermissionService: DocumentPermissionService, config: AuthorizationConfig);
26
+ /**
27
+ * Check if a user is a supreme admin (from ADMINS env var).
28
+ */
29
+ isSupremeAdmin(userAddress?: string): boolean;
30
+ /**
31
+ * Check if a user can read a document.
32
+ *
33
+ * - Supreme admin → yes
34
+ * - Not protected → anyone can read (even anonymous)
35
+ * - Protected → requires READ/WRITE/ADMIN grant (direct, group, or parent inheritance)
36
+ * - Owner → yes (implicit ADMIN)
37
+ */
38
+ canRead(documentId: string, userAddress?: string, getParentIds?: GetParentIdsFn): Promise<boolean>;
39
+ /**
40
+ * Check if a user can write to a document.
41
+ *
42
+ * - Supreme admin → yes
43
+ * - Not protected → anyone can write (even anonymous)
44
+ * - Protected → requires authentication + WRITE/ADMIN grant
45
+ * - Owner → yes (implicit ADMIN)
46
+ */
47
+ canWrite(documentId: string, userAddress?: string, getParentIds?: GetParentIdsFn): Promise<boolean>;
48
+ /**
49
+ * Check if a user can manage a document (change permissions, protection, transfer ownership).
50
+ *
51
+ * - Supreme admin → yes
52
+ * - Owner → yes
53
+ * - Has ADMIN grant → yes
54
+ */
55
+ canManage(documentId: string, userAddress?: string, getParentIds?: GetParentIdsFn): Promise<boolean>;
56
+ /**
57
+ * Check if a user can execute a specific operation.
58
+ * If the operation is not restricted, falls through to the standard write check.
59
+ * If the operation is restricted, requires an explicit OperationUserPermission grant.
60
+ */
61
+ canExecuteOperation(documentId: string, operationType: string, userAddress?: string, getParentIds?: GetParentIdsFn): Promise<boolean>;
62
+ /**
63
+ * Combined check for mutations: can the user write + execute the operation?
64
+ * This enables READ-only users with operation grants to execute specific operations.
65
+ * For restricted operations, only the operation grant is checked (bypasses write check),
66
+ * allowing READ-only users with an explicit operation grant to execute that operation.
67
+ */
68
+ canMutate(documentId: string, operationType: string, userAddress?: string, getParentIds?: GetParentIdsFn): Promise<boolean>;
69
+ }
70
+ //# sourceMappingURL=authorization.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorization.service.d.ts","sourceRoot":"","sources":["../../../src/services/authorization.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,cAAc,EACf,MAAM,kCAAkC,CAAC;AAE1C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,oBAAoB;IAI7B,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAH5C,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;gBAGlB,yBAAyB,EAAE,yBAAyB,EACrE,MAAM,EAAE,mBAAmB;IAK7B;;OAEG;IACH,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO;IAK7C;;;;;;;OAOG;IACG,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,cAAc,GAC5B,OAAO,CAAC,OAAO,CAAC;IAqCnB;;;;;;;OAOG;IACG,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,cAAc,GAC5B,OAAO,CAAC,OAAO,CAAC;IAqCnB;;;;;;OAMG;IACG,SAAS,CACb,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,cAAc,GAC5B,OAAO,CAAC,OAAO,CAAC;IAkBnB;;;;OAIG;IACG,mBAAmB,CACvB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,cAAc,GAC5B,OAAO,CAAC,OAAO,CAAC;IAwBnB;;;;;OAKG;IACG,SAAS,CACb,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,cAAc,GAC5B,OAAO,CAAC,OAAO,CAAC;CAwBpB"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Central authorization service — single source of truth for all permission checks.
3
+ *
4
+ * Authorization model:
5
+ * 1. Supreme admin (ADMINS env) → ALLOW ALL
6
+ * 2. Is document protected?
7
+ * a. NOT protected:
8
+ * - READ: anyone (even anonymous) → ALLOW
9
+ * - WRITE: authenticated user → ALLOW
10
+ * b. PROTECTED:
11
+ * - READ: requires explicit READ/WRITE/ADMIN grant (direct or via group/parent)
12
+ * - WRITE: requires explicit WRITE/ADMIN grant (direct or via group/parent)
13
+ * 3. Operation restricted? → Check OperationUserPermission
14
+ * 4. Document owner = implicit ADMIN
15
+ * 5. Drive protected = all children effectively protected
16
+ */
17
+ export class AuthorizationService {
18
+ documentPermissionService;
19
+ config;
20
+ constructor(documentPermissionService, config) {
21
+ this.documentPermissionService = documentPermissionService;
22
+ this.config = config;
23
+ }
24
+ /**
25
+ * Check if a user is a supreme admin (from ADMINS env var).
26
+ */
27
+ isSupremeAdmin(userAddress) {
28
+ if (!userAddress)
29
+ return false;
30
+ return this.config.admins.includes(userAddress.toLowerCase());
31
+ }
32
+ /**
33
+ * Check if a user can read a document.
34
+ *
35
+ * - Supreme admin → yes
36
+ * - Not protected → anyone can read (even anonymous)
37
+ * - Protected → requires READ/WRITE/ADMIN grant (direct, group, or parent inheritance)
38
+ * - Owner → yes (implicit ADMIN)
39
+ */
40
+ async canRead(documentId, userAddress, getParentIds) {
41
+ // Supreme admin bypasses all
42
+ if (this.isSupremeAdmin(userAddress))
43
+ return true;
44
+ // Check protection status (walks parent chain if getParentIds provided)
45
+ const isProtected = getParentIds
46
+ ? await this.documentPermissionService.isProtectedWithAncestors(documentId, getParentIds)
47
+ : await this.documentPermissionService.isDocumentProtected(documentId);
48
+ // Unprotected documents are readable by anyone
49
+ if (!isProtected)
50
+ return true;
51
+ // Protected document — requires authentication
52
+ if (!userAddress)
53
+ return false;
54
+ // Owner has implicit ADMIN
55
+ const owner = await this.documentPermissionService.getDocumentOwner(documentId);
56
+ if (owner && owner === userAddress.toLowerCase())
57
+ return true;
58
+ // Check grant (READ/WRITE/ADMIN all allow reading)
59
+ if (getParentIds) {
60
+ return this.documentPermissionService.canRead(documentId, userAddress, getParentIds);
61
+ }
62
+ return this.documentPermissionService.canReadDocument(documentId, userAddress);
63
+ }
64
+ /**
65
+ * Check if a user can write to a document.
66
+ *
67
+ * - Supreme admin → yes
68
+ * - Not protected → anyone can write (even anonymous)
69
+ * - Protected → requires authentication + WRITE/ADMIN grant
70
+ * - Owner → yes (implicit ADMIN)
71
+ */
72
+ async canWrite(documentId, userAddress, getParentIds) {
73
+ // Supreme admin bypasses all
74
+ if (this.isSupremeAdmin(userAddress))
75
+ return true;
76
+ // Check protection status
77
+ const isProtected = getParentIds
78
+ ? await this.documentPermissionService.isProtectedWithAncestors(documentId, getParentIds)
79
+ : await this.documentPermissionService.isDocumentProtected(documentId);
80
+ // Unprotected documents are writable by anyone (even anonymous)
81
+ if (!isProtected)
82
+ return true;
83
+ // Protected document — requires authentication
84
+ if (!userAddress)
85
+ return false;
86
+ // Owner has implicit ADMIN
87
+ const owner = await this.documentPermissionService.getDocumentOwner(documentId);
88
+ if (owner && owner === userAddress.toLowerCase())
89
+ return true;
90
+ // Check grant (WRITE/ADMIN allow writing)
91
+ if (getParentIds) {
92
+ return this.documentPermissionService.canWrite(documentId, userAddress, getParentIds);
93
+ }
94
+ return this.documentPermissionService.canWriteDocument(documentId, userAddress);
95
+ }
96
+ /**
97
+ * Check if a user can manage a document (change permissions, protection, transfer ownership).
98
+ *
99
+ * - Supreme admin → yes
100
+ * - Owner → yes
101
+ * - Has ADMIN grant → yes
102
+ */
103
+ async canManage(documentId, userAddress, getParentIds) {
104
+ // Supreme admin bypasses all
105
+ if (this.isSupremeAdmin(userAddress))
106
+ return true;
107
+ if (!userAddress)
108
+ return false;
109
+ // Owner has implicit ADMIN
110
+ const owner = await this.documentPermissionService.getDocumentOwner(documentId);
111
+ if (owner && owner === userAddress.toLowerCase())
112
+ return true;
113
+ // Check ADMIN grant
114
+ return this.documentPermissionService.canManageDocument(documentId, userAddress);
115
+ }
116
+ /**
117
+ * Check if a user can execute a specific operation.
118
+ * If the operation is not restricted, falls through to the standard write check.
119
+ * If the operation is restricted, requires an explicit OperationUserPermission grant.
120
+ */
121
+ async canExecuteOperation(documentId, operationType, userAddress, getParentIds) {
122
+ // Supreme admin bypasses all
123
+ if (this.isSupremeAdmin(userAddress))
124
+ return true;
125
+ // Check if operation is restricted
126
+ const isRestricted = await this.documentPermissionService.isOperationRestricted(documentId, operationType);
127
+ if (!isRestricted) {
128
+ // Operation not restricted — standard write check applies
129
+ return this.canWrite(documentId, userAddress, getParentIds);
130
+ }
131
+ // Operation is restricted — user needs explicit operation grant
132
+ return this.documentPermissionService.canExecuteOperation(documentId, operationType, userAddress?.toLowerCase());
133
+ }
134
+ /**
135
+ * Combined check for mutations: can the user write + execute the operation?
136
+ * This enables READ-only users with operation grants to execute specific operations.
137
+ * For restricted operations, only the operation grant is checked (bypasses write check),
138
+ * allowing READ-only users with an explicit operation grant to execute that operation.
139
+ */
140
+ async canMutate(documentId, operationType, userAddress, getParentIds) {
141
+ // Supreme admin bypasses all
142
+ if (this.isSupremeAdmin(userAddress))
143
+ return true;
144
+ // Check if the operation is restricted
145
+ const isRestricted = await this.documentPermissionService.isOperationRestricted(documentId, operationType);
146
+ if (isRestricted) {
147
+ // For restricted operations, only the operation grant matters
148
+ // This allows READ-only users with operation grants to execute
149
+ return this.documentPermissionService.canExecuteOperation(documentId, operationType, userAddress?.toLowerCase());
150
+ }
151
+ // For unrestricted operations, standard write check applies
152
+ return this.canWrite(documentId, userAddress, getParentIds);
153
+ }
154
+ }
155
+ //# sourceMappingURL=authorization.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorization.service.js","sourceRoot":"","sources":["../../../src/services/authorization.service.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,12 @@ export interface OperationGroupPermissionEntry {
42
42
  * This is injected to avoid circular dependencies with the reactor client
43
43
  */
44
44
  export type GetParentIdsFn = (documentId: string) => Promise<string[]>;
45
+ /**
46
+ * Configuration for the DocumentPermissionService
47
+ */
48
+ export interface DocumentPermissionConfig {
49
+ defaultProtection: boolean;
50
+ }
45
51
  /**
46
52
  * Service for managing document-level permissions.
47
53
  *
@@ -52,16 +58,11 @@ export type GetParentIdsFn = (documentId: string) => Promise<string[]>;
52
58
  *
53
59
  * Operation permissions:
54
60
  * - Users and groups can be granted permission to execute specific operations
55
- *
56
- * Global roles (via environment variables):
57
- * - AUTH_ENABLED: Enables authorization checks
58
- * - ADMINS: Comma-separated list of admin addresses (full access)
59
- * - USERS: Comma-separated list of user addresses (read/write access)
60
- * - GUESTS: Comma-separated list of guest addresses (read access)
61
61
  */
62
62
  export declare class DocumentPermissionService {
63
63
  private readonly db;
64
- constructor(db: Kysely<DocumentPermissionDatabase>);
64
+ readonly config: DocumentPermissionConfig;
65
+ constructor(db: Kysely<DocumentPermissionDatabase>, config?: DocumentPermissionConfig);
65
66
  /**
66
67
  * Get the permission level for a user on a specific document.
67
68
  * Returns null if no permission is set.
@@ -197,5 +198,44 @@ export declare class DocumentPermissionService {
197
198
  * Check if an operation has any permissions set (is restricted)
198
199
  */
199
200
  isOperationRestricted(documentId: string, operationType: string): Promise<boolean>;
201
+ /**
202
+ * Check if a specific document has a protection row set to true.
203
+ * Falls back to `config.defaultProtection` if no row exists.
204
+ */
205
+ isDocumentProtected(documentId: string): Promise<boolean>;
206
+ /**
207
+ * Walk the parent chain: if the document itself or any ancestor is protected, return true.
208
+ * Collects all ancestor IDs first (with cycle detection), then batch-checks protection.
209
+ */
210
+ isProtectedWithAncestors(documentId: string, getParentIds: GetParentIdsFn): Promise<boolean>;
211
+ /**
212
+ * Collect all ancestor IDs (including the document itself) with cycle detection.
213
+ */
214
+ private collectAncestorIds;
215
+ /**
216
+ * Upsert protection status for a document.
217
+ */
218
+ setDocumentProtection(documentId: string, isProtected: boolean): Promise<void>;
219
+ /**
220
+ * Get the owner address for a document, or null if not set.
221
+ */
222
+ getDocumentOwner(documentId: string): Promise<string | null>;
223
+ /**
224
+ * Upsert owner address for a document.
225
+ */
226
+ setDocumentOwner(documentId: string, ownerAddress: string): Promise<void>;
227
+ /**
228
+ * Initialize protection for a newly created document.
229
+ * Sets protection status and grants ADMIN to the owner.
230
+ */
231
+ initializeDocumentProtection(documentId: string, ownerAddress: string, defaultProtection?: boolean): Promise<void>;
232
+ /**
233
+ * Get the full protection info for a document.
234
+ */
235
+ getDocumentProtection(documentId: string): Promise<{
236
+ documentId: string;
237
+ protected: boolean;
238
+ ownerAddress: string | null;
239
+ }>;
200
240
  }
201
241
  //# sourceMappingURL=document-permission.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"document-permission.service.d.ts","sourceRoot":"","sources":["../../../src/services/document-permission.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-permission.service.d.ts","sourceRoot":"","sources":["../../../src/services/document-permission.service.ts"],"names":[],"mappings":"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"}
@@ -9,17 +9,13 @@ import { sql } from "kysely";
9
9
  *
10
10
  * Operation permissions:
11
11
  * - Users and groups can be granted permission to execute specific operations
12
- *
13
- * Global roles (via environment variables):
14
- * - AUTH_ENABLED: Enables authorization checks
15
- * - ADMINS: Comma-separated list of admin addresses (full access)
16
- * - USERS: Comma-separated list of user addresses (read/write access)
17
- * - GUESTS: Comma-separated list of guest addresses (read access)
18
12
  */
19
13
  export class DocumentPermissionService {
20
14
  db;
21
- constructor(db) {
15
+ config;
16
+ constructor(db, config = { defaultProtection: false }) {
22
17
  this.db = db;
18
+ this.config = config;
23
19
  }
24
20
  // ============================================
25
21
  // User Permission Operations
@@ -632,5 +628,164 @@ export class DocumentPermissionService {
632
628
  .executeTakeFirst();
633
629
  return groupPermCount !== undefined && Number(groupPermCount.count) > 0;
634
630
  }
631
+ // ============================================
632
+ // Document Protection
633
+ // ============================================
634
+ /**
635
+ * Check if a specific document has a protection row set to true.
636
+ * Falls back to `config.defaultProtection` if no row exists.
637
+ */
638
+ async isDocumentProtected(documentId) {
639
+ const row = await this.db
640
+ .selectFrom("DocumentProtection")
641
+ .select("protected")
642
+ .where("documentId", "=", documentId)
643
+ .executeTakeFirst();
644
+ if (row === undefined) {
645
+ return this.config.defaultProtection;
646
+ }
647
+ return row.protected;
648
+ }
649
+ /**
650
+ * Walk the parent chain: if the document itself or any ancestor is protected, return true.
651
+ * Collects all ancestor IDs first (with cycle detection), then batch-checks protection.
652
+ */
653
+ async isProtectedWithAncestors(documentId, getParentIds) {
654
+ // Collect all IDs in the hierarchy (document + all ancestors)
655
+ const allIds = await this.collectAncestorIds(documentId, getParentIds);
656
+ // Batch-check protection for all IDs at once
657
+ if (allIds.length === 0) {
658
+ return this.config.defaultProtection;
659
+ }
660
+ const rows = await this.db
661
+ .selectFrom("DocumentProtection")
662
+ .select(["documentId", "protected"])
663
+ .where("documentId", "in", allIds)
664
+ .execute();
665
+ const protectionMap = new Map(rows.map((r) => [r.documentId, r.protected]));
666
+ for (const id of allIds) {
667
+ const isProtected = protectionMap.get(id);
668
+ // If no row exists, fall back to defaultProtection
669
+ if (isProtected ?? this.config.defaultProtection) {
670
+ return true;
671
+ }
672
+ }
673
+ return false;
674
+ }
675
+ /**
676
+ * Collect all ancestor IDs (including the document itself) with cycle detection.
677
+ */
678
+ async collectAncestorIds(documentId, getParentIds) {
679
+ const visited = new Set();
680
+ const queue = [documentId];
681
+ while (queue.length > 0) {
682
+ const current = queue.shift();
683
+ if (visited.has(current))
684
+ continue;
685
+ visited.add(current);
686
+ const parentIds = await getParentIds(current);
687
+ for (const parentId of parentIds) {
688
+ if (!visited.has(parentId)) {
689
+ queue.push(parentId);
690
+ }
691
+ }
692
+ }
693
+ return Array.from(visited);
694
+ }
695
+ /**
696
+ * Upsert protection status for a document.
697
+ */
698
+ async setDocumentProtection(documentId, isProtected) {
699
+ const now = new Date();
700
+ await this.db
701
+ .insertInto("DocumentProtection")
702
+ .values({
703
+ documentId,
704
+ protected: isProtected,
705
+ ownerAddress: null,
706
+ createdAt: now,
707
+ updatedAt: now,
708
+ })
709
+ .onConflict((oc) => oc.column("documentId").doUpdateSet({
710
+ protected: isProtected,
711
+ updatedAt: now,
712
+ }))
713
+ .execute();
714
+ }
715
+ /**
716
+ * Get the owner address for a document, or null if not set.
717
+ */
718
+ async getDocumentOwner(documentId) {
719
+ const row = await this.db
720
+ .selectFrom("DocumentProtection")
721
+ .select("ownerAddress")
722
+ .where("documentId", "=", documentId)
723
+ .executeTakeFirst();
724
+ return row?.ownerAddress ?? null;
725
+ }
726
+ /**
727
+ * Upsert owner address for a document.
728
+ */
729
+ async setDocumentOwner(documentId, ownerAddress) {
730
+ const now = new Date();
731
+ const normalizedAddress = ownerAddress.toLowerCase();
732
+ await this.db
733
+ .insertInto("DocumentProtection")
734
+ .values({
735
+ documentId,
736
+ protected: this.config.defaultProtection,
737
+ ownerAddress: normalizedAddress,
738
+ createdAt: now,
739
+ updatedAt: now,
740
+ })
741
+ .onConflict((oc) => oc.column("documentId").doUpdateSet({
742
+ ownerAddress: normalizedAddress,
743
+ updatedAt: now,
744
+ }))
745
+ .execute();
746
+ }
747
+ /**
748
+ * Initialize protection for a newly created document.
749
+ * Sets protection status and grants ADMIN to the owner.
750
+ */
751
+ async initializeDocumentProtection(documentId, ownerAddress, defaultProtection) {
752
+ const now = new Date();
753
+ const normalizedAddress = ownerAddress.toLowerCase();
754
+ const isProtected = defaultProtection ?? this.config.defaultProtection;
755
+ await this.db
756
+ .insertInto("DocumentProtection")
757
+ .values({
758
+ documentId,
759
+ protected: isProtected,
760
+ ownerAddress: normalizedAddress,
761
+ createdAt: now,
762
+ updatedAt: now,
763
+ })
764
+ .onConflict((oc) => oc.column("documentId").doUpdateSet({
765
+ ownerAddress: normalizedAddress,
766
+ updatedAt: now,
767
+ }))
768
+ .execute();
769
+ // Grant ADMIN permission to the owner
770
+ await this.grantPermission(documentId, normalizedAddress, "ADMIN", normalizedAddress);
771
+ }
772
+ /**
773
+ * Get the full protection info for a document.
774
+ */
775
+ async getDocumentProtection(documentId) {
776
+ const row = await this.db
777
+ .selectFrom("DocumentProtection")
778
+ .select(["documentId", "protected", "ownerAddress"])
779
+ .where("documentId", "=", documentId)
780
+ .executeTakeFirst();
781
+ if (!row) {
782
+ return {
783
+ documentId,
784
+ protected: this.config.defaultProtection,
785
+ ownerAddress: null,
786
+ };
787
+ }
788
+ return row;
789
+ }
635
790
  }
636
791
  //# sourceMappingURL=document-permission.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"document-permission.service.js","sourceRoot":"","sources":["../../../src/services/document-permission.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-permission.service.js","sourceRoot":"","sources":["../../../src/services/document-permission.service.ts"],"names":[],"mappings":"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"}