@powerhousedao/reactor-api 5.1.0-staging.0 → 5.2.0-staging.1

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 (106) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/graphql/auth/index.d.ts +2 -0
  6. package/dist/src/graphql/auth/index.d.ts.map +1 -0
  7. package/dist/src/graphql/auth/index.js +2 -0
  8. package/dist/src/graphql/auth/index.js.map +1 -0
  9. package/dist/src/graphql/auth/resolvers.d.ts +149 -0
  10. package/dist/src/graphql/auth/resolvers.d.ts.map +1 -0
  11. package/dist/src/graphql/auth/resolvers.js +173 -0
  12. package/dist/src/graphql/auth/resolvers.js.map +1 -0
  13. package/dist/src/graphql/auth/schema.graphql +173 -0
  14. package/dist/src/graphql/auth/subgraph.d.ts +177 -0
  15. package/dist/src/graphql/auth/subgraph.d.ts.map +1 -0
  16. package/dist/src/graphql/auth/subgraph.js +340 -0
  17. package/dist/src/graphql/auth/subgraph.js.map +1 -0
  18. package/dist/src/graphql/base-subgraph.d.ts +3 -1
  19. package/dist/src/graphql/base-subgraph.d.ts.map +1 -1
  20. package/dist/src/graphql/base-subgraph.js +2 -0
  21. package/dist/src/graphql/base-subgraph.js.map +1 -1
  22. package/dist/src/graphql/document-model-subgraph.d.ts +51 -0
  23. package/dist/src/graphql/document-model-subgraph.d.ts.map +1 -0
  24. package/dist/src/graphql/document-model-subgraph.js +104 -0
  25. package/dist/src/graphql/document-model-subgraph.js.map +1 -0
  26. package/dist/src/graphql/drive-subgraph.d.ts.map +1 -1
  27. package/dist/src/graphql/drive-subgraph.js +51 -10
  28. package/dist/src/graphql/drive-subgraph.js.map +1 -1
  29. package/dist/src/graphql/graphql-manager.d.ts +11 -3
  30. package/dist/src/graphql/graphql-manager.d.ts.map +1 -1
  31. package/dist/src/graphql/graphql-manager.js +72 -16
  32. package/dist/src/graphql/graphql-manager.js.map +1 -1
  33. package/dist/src/graphql/index.d.ts +1 -0
  34. package/dist/src/graphql/index.d.ts.map +1 -1
  35. package/dist/src/graphql/index.js +1 -0
  36. package/dist/src/graphql/index.js.map +1 -1
  37. package/dist/src/graphql/reactor/resolvers.d.ts +6 -1
  38. package/dist/src/graphql/reactor/resolvers.d.ts.map +1 -1
  39. package/dist/src/graphql/reactor/resolvers.js +18 -2
  40. package/dist/src/graphql/reactor/resolvers.js.map +1 -1
  41. package/dist/src/graphql/reactor/schema.graphql +4 -4
  42. package/dist/src/graphql/reactor/subgraph.d.ts +34 -0
  43. package/dist/src/graphql/reactor/subgraph.d.ts.map +1 -1
  44. package/dist/src/graphql/reactor/subgraph.js +258 -21
  45. package/dist/src/graphql/reactor/subgraph.js.map +1 -1
  46. package/dist/src/graphql/reactor/validation.d.ts +62 -62
  47. package/dist/src/graphql/system/system-subgraph.d.ts.map +1 -1
  48. package/dist/src/graphql/types.d.ts +4 -1
  49. package/dist/src/graphql/types.d.ts.map +1 -1
  50. package/dist/src/graphql/utils.js +1 -1
  51. package/dist/src/graphql/utils.js.map +1 -1
  52. package/dist/src/migrations/001_create_document_permissions.d.ts +4 -0
  53. package/dist/src/migrations/001_create_document_permissions.d.ts.map +1 -0
  54. package/dist/src/migrations/001_create_document_permissions.js +91 -0
  55. package/dist/src/migrations/001_create_document_permissions.js.map +1 -0
  56. package/dist/src/migrations/index.d.ts +10 -0
  57. package/dist/src/migrations/index.d.ts.map +1 -0
  58. package/dist/src/migrations/index.js +59 -0
  59. package/dist/src/migrations/index.js.map +1 -0
  60. package/dist/src/packages/util.js +1 -1
  61. package/dist/src/packages/util.js.map +1 -1
  62. package/dist/src/server.d.ts +17 -4
  63. package/dist/src/server.d.ts.map +1 -1
  64. package/dist/src/server.js +45 -16
  65. package/dist/src/server.js.map +1 -1
  66. package/dist/src/services/auth.service.d.ts +1 -0
  67. package/dist/src/services/auth.service.d.ts.map +1 -1
  68. package/dist/src/services/auth.service.js +30 -16
  69. package/dist/src/services/auth.service.js.map +1 -1
  70. package/dist/src/services/document-permission.service.d.ts +201 -0
  71. package/dist/src/services/document-permission.service.d.ts.map +1 -0
  72. package/dist/src/services/document-permission.service.js +636 -0
  73. package/dist/src/services/document-permission.service.js.map +1 -0
  74. package/dist/src/utils/create-schema.d.ts +4 -3
  75. package/dist/src/utils/create-schema.d.ts.map +1 -1
  76. package/dist/src/utils/create-schema.js +100 -3
  77. package/dist/src/utils/create-schema.js.map +1 -1
  78. package/dist/src/utils/db.d.ts +65 -1
  79. package/dist/src/utils/db.d.ts.map +1 -1
  80. package/dist/src/utils/db.js.map +1 -1
  81. package/dist/test/document-permission.service.test.d.ts +2 -0
  82. package/dist/test/document-permission.service.test.d.ts.map +1 -0
  83. package/dist/test/document-permission.service.test.js +480 -0
  84. package/dist/test/document-permission.service.test.js.map +1 -0
  85. package/dist/test/drive-subgraph-permissions.test.d.ts +2 -0
  86. package/dist/test/drive-subgraph-permissions.test.d.ts.map +1 -0
  87. package/dist/test/drive-subgraph-permissions.test.js +195 -0
  88. package/dist/test/drive-subgraph-permissions.test.js.map +1 -0
  89. package/dist/test/identity-integration.test.d.ts +2 -0
  90. package/dist/test/identity-integration.test.d.ts.map +1 -0
  91. package/dist/test/identity-integration.test.js +349 -0
  92. package/dist/test/identity-integration.test.js.map +1 -0
  93. package/dist/test/permissions-integration.test.d.ts +2 -0
  94. package/dist/test/permissions-integration.test.d.ts.map +1 -0
  95. package/dist/test/permissions-integration.test.js +421 -0
  96. package/dist/test/permissions-integration.test.js.map +1 -0
  97. package/dist/test/reactor-subgraph-permissions.test.d.ts +2 -0
  98. package/dist/test/reactor-subgraph-permissions.test.d.ts.map +1 -0
  99. package/dist/test/reactor-subgraph-permissions.test.js +400 -0
  100. package/dist/test/reactor-subgraph-permissions.test.js.map +1 -0
  101. package/dist/test/two-reactor-gql-sync.test.js +11 -9
  102. package/dist/test/two-reactor-gql-sync.test.js.map +1 -1
  103. package/dist/test/utils/gql-resolver-bridge.js +4 -4
  104. package/dist/test/utils/gql-resolver-bridge.js.map +1 -1
  105. package/dist/tsconfig.tsbuildinfo +1 -1
  106. package/package.json +9 -8
@@ -354,7 +354,7 @@ export async function deleteDocuments(reactorClient, args) {
354
354
  throw new GraphQLError(`Failed to delete documents: ${error instanceof Error ? error.message : "Unknown error"}`);
355
355
  }
356
356
  }
357
- export async function createChannel(syncManager, args) {
357
+ export async function touchChannel(syncManager, args) {
358
358
  try {
359
359
  const existing = syncManager.getById(args.input.id);
360
360
  if (existing) {
@@ -371,7 +371,7 @@ export async function createChannel(syncManager, args) {
371
371
  };
372
372
  try {
373
373
  await syncManager.add(args.input.name, args.input.collectionId, {
374
- type: "gql",
374
+ type: "internal",
375
375
  parameters: {},
376
376
  }, filter, {}, args.input.id);
377
377
  }
@@ -430,6 +430,7 @@ export function pushSyncEnvelope(syncManager, args) {
430
430
  documentType: op.context.documentType,
431
431
  scope: op.context.scope,
432
432
  branch: op.context.branch,
433
+ ordinal: 0,
433
434
  },
434
435
  }));
435
436
  const syncOp = new SyncOperation(syncOpId, remote.name, firstOp.context.documentId, scopes, firstOp.context.branch, operations);
@@ -441,4 +442,19 @@ export function pushSyncEnvelope(syncManager, args) {
441
442
  }
442
443
  return Promise.resolve(true);
443
444
  }
445
+ /**
446
+ * Create a getParentIds function using the reactor client
447
+ */
448
+ export function createGetParentIdsFn(reactorClient) {
449
+ return async (documentId) => {
450
+ try {
451
+ const result = await reactorClient.getParents(documentId);
452
+ return result.results.map((doc) => doc.header.id);
453
+ }
454
+ catch {
455
+ // If document has no parents or error, return empty array
456
+ return [];
457
+ }
458
+ };
459
+ }
444
460
  //# sourceMappingURL=resolvers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../../../src/graphql/reactor/resolvers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../../../src/graphql/reactor/resolvers.ts"],"names":[],"mappings":"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"}
@@ -284,7 +284,7 @@ input RemoteFilterInput {
284
284
  branch: String!
285
285
  }
286
286
 
287
- input CreateChannelInput {
287
+ input TouchChannelInput {
288
288
  id: String!
289
289
  name: String!
290
290
  collectionId: String!
@@ -403,9 +403,9 @@ type Mutation {
403
403
  propagate: PropagationMode
404
404
  ): Boolean!
405
405
 
406
- # Create or update a channel for sync
407
- createChannel(
408
- input: CreateChannelInput!
406
+ # Touch (create or update) a channel for sync
407
+ touchChannel(
408
+ input: TouchChannelInput!
409
409
  ): Boolean!
410
410
 
411
411
  # Push sync envelope to a channel
@@ -6,6 +6,40 @@ export declare class ReactorSubgraph extends BaseSubgraph {
6
6
  constructor(args: SubgraphArgs);
7
7
  name: string;
8
8
  hasSubscriptions: boolean;
9
+ /**
10
+ * Check if user has global read access (admin, user, or guest)
11
+ */
12
+ private hasGlobalReadAccess;
13
+ /**
14
+ * Check if user has global write access (admin or user, not guest)
15
+ */
16
+ private hasGlobalWriteAccess;
17
+ /**
18
+ * Get the parent IDs function for hierarchical permission checks
19
+ */
20
+ private getParentIdsFn;
21
+ /**
22
+ * Check if user can read a document (with hierarchy)
23
+ */
24
+ private canReadDocument;
25
+ /**
26
+ * Check if user can write to a document (with hierarchy)
27
+ */
28
+ private canWriteDocument;
29
+ /**
30
+ * Throw an error if user cannot read the document
31
+ */
32
+ private assertCanRead;
33
+ /**
34
+ * Throw an error if user cannot write to the document
35
+ */
36
+ private assertCanWrite;
37
+ /**
38
+ * Check if user can execute specific operations on a document.
39
+ * Only checks operations that have restrictions set.
40
+ * Throws an error if any operation is restricted and user lacks permission.
41
+ */
42
+ private assertCanExecuteOperations;
9
43
  typeDefs: import("graphql").DocumentNode;
10
44
  resolvers: Resolvers;
11
45
  onSetup(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"subgraph.d.ts","sourceRoot":"","sources":["../../../../src/graphql/reactor/subgraph.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAclD,qBAAa,eAAgB,SAAQ,YAAY;IAE/C,OAAO,CAAC,MAAM,CAA0C;gBAE5C,IAAI,EAAE,YAAY;IAK9B,IAAI,SAAgB;IACpB,gBAAgB,UAAQ;IAGxB,QAAQ,iCAEN;IAEF,SAAS,EAAE,SAAS,CA4TlB;IAEF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAKzB"}
1
+ {"version":3,"file":"subgraph.d.ts","sourceRoot":"","sources":["../../../../src/graphql/reactor/subgraph.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAW,YAAY,EAAE,MAAM,aAAa,CAAC;AAMzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAclD,qBAAa,eAAgB,SAAQ,YAAY;IAE/C,OAAO,CAAC,MAAM,CAA0C;gBAE5C,IAAI,EAAE,YAAY;IAK9B,IAAI,SAAgB;IACpB,gBAAgB,UAAQ;IAExB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;YACW,eAAe;IAqB7B;;OAEG;YACW,gBAAgB;IAqB9B;;OAEG;YACW,aAAa;IAS3B;;OAEG;YACW,cAAc;IAY5B;;;;OAIG;YACW,0BAA0B;IAqDxC,QAAQ,iCAEN;IAEF,SAAS,EAAE,SAAS,CAkdlB;IAEF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAKzB"}
@@ -1,5 +1,6 @@
1
1
  import { ConsoleLogger } from "@powerhousedao/reactor";
2
2
  import fs from "fs";
3
+ import { GraphQLError } from "graphql";
3
4
  import { withFilter } from "graphql-subscriptions";
4
5
  import { gql } from "graphql-tag";
5
6
  import path from "path";
@@ -19,6 +20,110 @@ export class ReactorSubgraph extends BaseSubgraph {
19
20
  }
20
21
  name = "r/:reactor";
21
22
  hasSubscriptions = true;
23
+ /**
24
+ * Check if user has global read access (admin, user, or guest)
25
+ */
26
+ hasGlobalReadAccess(ctx) {
27
+ const isGlobalAdmin = ctx.isAdmin?.(ctx.user?.address ?? "");
28
+ const isGlobalUser = ctx.isUser?.(ctx.user?.address ?? "");
29
+ const isGlobalGuest = ctx.isGuest?.(ctx.user?.address ?? "") ||
30
+ process.env.FREE_ENTRY === "true";
31
+ return !!(isGlobalAdmin || isGlobalUser || isGlobalGuest);
32
+ }
33
+ /**
34
+ * Check if user has global write access (admin or user, not guest)
35
+ */
36
+ hasGlobalWriteAccess(ctx) {
37
+ const isGlobalAdmin = ctx.isAdmin?.(ctx.user?.address ?? "");
38
+ const isGlobalUser = ctx.isUser?.(ctx.user?.address ?? "");
39
+ return !!(isGlobalAdmin || isGlobalUser);
40
+ }
41
+ /**
42
+ * Get the parent IDs function for hierarchical permission checks
43
+ */
44
+ getParentIdsFn() {
45
+ return resolvers.createGetParentIdsFn(this.reactorClient);
46
+ }
47
+ /**
48
+ * Check if user can read a document (with hierarchy)
49
+ */
50
+ async canReadDocument(documentId, ctx) {
51
+ // Global access allows reading
52
+ if (this.hasGlobalReadAccess(ctx)) {
53
+ return true;
54
+ }
55
+ // Check document-level permissions with hierarchy
56
+ if (this.documentPermissionService) {
57
+ return this.documentPermissionService.canRead(documentId, ctx.user?.address, this.getParentIdsFn());
58
+ }
59
+ return false;
60
+ }
61
+ /**
62
+ * Check if user can write to a document (with hierarchy)
63
+ */
64
+ async canWriteDocument(documentId, ctx) {
65
+ // Global write access allows writing
66
+ if (this.hasGlobalWriteAccess(ctx)) {
67
+ return true;
68
+ }
69
+ // Check document-level permissions with hierarchy
70
+ if (this.documentPermissionService) {
71
+ return this.documentPermissionService.canWrite(documentId, ctx.user?.address, this.getParentIdsFn());
72
+ }
73
+ return false;
74
+ }
75
+ /**
76
+ * Throw an error if user cannot read the document
77
+ */
78
+ async assertCanRead(documentId, ctx) {
79
+ const canRead = await this.canReadDocument(documentId, ctx);
80
+ if (!canRead) {
81
+ throw new GraphQLError("Forbidden: insufficient permissions to read this document");
82
+ }
83
+ }
84
+ /**
85
+ * Throw an error if user cannot write to the document
86
+ */
87
+ async assertCanWrite(documentId, ctx) {
88
+ const canWrite = await this.canWriteDocument(documentId, ctx);
89
+ if (!canWrite) {
90
+ throw new GraphQLError("Forbidden: insufficient permissions to write to this document");
91
+ }
92
+ }
93
+ /**
94
+ * Check if user can execute specific operations on a document.
95
+ * Only checks operations that have restrictions set.
96
+ * Throws an error if any operation is restricted and user lacks permission.
97
+ */
98
+ async assertCanExecuteOperations(documentId, actions, ctx) {
99
+ // Skip if no permission service
100
+ if (!this.documentPermissionService) {
101
+ return;
102
+ }
103
+ // Global admins bypass operation-level restrictions
104
+ if (ctx.isAdmin?.(ctx.user?.address ?? "")) {
105
+ return;
106
+ }
107
+ for (const action of actions) {
108
+ if (!action || typeof action !== "object") {
109
+ continue;
110
+ }
111
+ const actionObj = action;
112
+ const operationType = actionObj.type;
113
+ if (typeof operationType !== "string") {
114
+ continue;
115
+ }
116
+ // Check if this operation has any restrictions set
117
+ const isRestricted = await this.documentPermissionService.isOperationRestricted(documentId, operationType);
118
+ if (isRestricted) {
119
+ // Operation is restricted, check if user has permission
120
+ const canExecute = await this.documentPermissionService.canExecuteOperation(documentId, operationType, ctx.user?.address);
121
+ if (!canExecute) {
122
+ throw new GraphQLError(`Forbidden: insufficient permissions to execute operation "${operationType}" on this document`);
123
+ }
124
+ }
125
+ }
126
+ }
22
127
  // Load schema from file
23
128
  typeDefs = gql(fs.readFileSync(path.join(__dirname, "schema.graphql"), "utf-8"));
24
129
  resolvers = {
@@ -33,19 +138,32 @@ export class ReactorSubgraph extends BaseSubgraph {
33
138
  throw error;
34
139
  }
35
140
  },
36
- document: async (_parent, args) => {
141
+ document: async (_parent, args, ctx) => {
37
142
  this.logger.debug("document", args);
38
143
  try {
39
- return await resolvers.document(this.reactorClient, args);
144
+ // Resolve the document ID first
145
+ const doc = await resolvers.document(this.reactorClient, args);
146
+ if (doc) {
147
+ await this.assertCanRead(doc.document.id, ctx);
148
+ }
149
+ return doc;
40
150
  }
41
151
  catch (error) {
42
152
  this.logger.error("Error in document:", error);
43
153
  throw error;
44
154
  }
45
155
  },
46
- documentChildren: async (_parent, args) => {
156
+ documentChildren: async (_parent, args, ctx) => {
47
157
  this.logger.debug("documentChildren", args);
48
158
  try {
159
+ // First resolve the parent to get its ID and check permission
160
+ const parent = await resolvers.document(this.reactorClient, {
161
+ identifier: args.parentIdentifier,
162
+ view: args.view,
163
+ });
164
+ if (parent) {
165
+ await this.assertCanRead(parent.document.id, ctx);
166
+ }
49
167
  return await resolvers.documentChildren(this.reactorClient, args);
50
168
  }
51
169
  catch (error) {
@@ -53,9 +171,17 @@ export class ReactorSubgraph extends BaseSubgraph {
53
171
  throw error;
54
172
  }
55
173
  },
56
- documentParents: async (_parent, args) => {
174
+ documentParents: async (_parent, args, ctx) => {
57
175
  this.logger.debug("documentParents", args);
58
176
  try {
177
+ // First resolve the child to get its ID and check permission
178
+ const child = await resolvers.document(this.reactorClient, {
179
+ identifier: args.childIdentifier,
180
+ view: args.view,
181
+ });
182
+ if (child) {
183
+ await this.assertCanRead(child.document.id, ctx);
184
+ }
59
185
  return await resolvers.documentParents(this.reactorClient, args);
60
186
  }
61
187
  catch (error) {
@@ -63,10 +189,27 @@ export class ReactorSubgraph extends BaseSubgraph {
63
189
  throw error;
64
190
  }
65
191
  },
66
- findDocuments: async (_parent, args) => {
192
+ findDocuments: async (_parent, args, ctx) => {
67
193
  this.logger.debug("findDocuments", args);
68
194
  try {
69
- return await resolvers.findDocuments(this.reactorClient, args);
195
+ const result = await resolvers.findDocuments(this.reactorClient, args);
196
+ // Filter results to only include documents the user can read
197
+ if (!this.hasGlobalReadAccess(ctx) &&
198
+ this.documentPermissionService) {
199
+ const filteredItems = [];
200
+ for (const item of result.items) {
201
+ const canRead = await this.canReadDocument(item.id, ctx);
202
+ if (canRead) {
203
+ filteredItems.push(item);
204
+ }
205
+ }
206
+ return {
207
+ ...result,
208
+ items: filteredItems,
209
+ totalCount: filteredItems.length,
210
+ };
211
+ }
212
+ return result;
70
213
  }
71
214
  catch (error) {
72
215
  this.logger.error("Error in findDocuments:", error);
@@ -99,9 +242,21 @@ export class ReactorSubgraph extends BaseSubgraph {
99
242
  },
100
243
  },
101
244
  Mutation: {
102
- createDocument: async (_parent, args) => {
245
+ createDocument: async (_parent, args, ctx) => {
103
246
  this.logger.debug("createDocument", args);
104
247
  try {
248
+ // If creating under a parent, check write permission on parent
249
+ if (args.parentIdentifier) {
250
+ const parent = await resolvers.document(this.reactorClient, {
251
+ identifier: args.parentIdentifier,
252
+ });
253
+ if (parent) {
254
+ await this.assertCanWrite(parent.document.id, ctx);
255
+ }
256
+ }
257
+ else if (!this.hasGlobalWriteAccess(ctx)) {
258
+ throw new GraphQLError("Forbidden: insufficient permissions to create documents");
259
+ }
105
260
  return await resolvers.createDocument(this.reactorClient, args);
106
261
  }
107
262
  catch (error) {
@@ -109,9 +264,21 @@ export class ReactorSubgraph extends BaseSubgraph {
109
264
  throw error;
110
265
  }
111
266
  },
112
- createEmptyDocument: async (_parent, args) => {
267
+ createEmptyDocument: async (_parent, args, ctx) => {
113
268
  this.logger.debug("createEmptyDocument", args);
114
269
  try {
270
+ // If creating under a parent, check write permission on parent
271
+ if (args.parentIdentifier) {
272
+ const parent = await resolvers.document(this.reactorClient, {
273
+ identifier: args.parentIdentifier,
274
+ });
275
+ if (parent) {
276
+ await this.assertCanWrite(parent.document.id, ctx);
277
+ }
278
+ }
279
+ else if (!this.hasGlobalWriteAccess(ctx)) {
280
+ throw new GraphQLError("Forbidden: insufficient permissions to create documents");
281
+ }
115
282
  return await resolvers.createEmptyDocument(this.reactorClient, args);
116
283
  }
117
284
  catch (error) {
@@ -119,9 +286,19 @@ export class ReactorSubgraph extends BaseSubgraph {
119
286
  throw error;
120
287
  }
121
288
  },
122
- mutateDocument: async (_parent, args) => {
289
+ mutateDocument: async (_parent, args, ctx) => {
123
290
  this.logger.debug("mutateDocument", args);
124
291
  try {
292
+ // Resolve document and check write permission
293
+ const doc = await resolvers.document(this.reactorClient, {
294
+ identifier: args.documentIdentifier,
295
+ view: args.view,
296
+ });
297
+ if (doc) {
298
+ await this.assertCanWrite(doc.document.id, ctx);
299
+ // Check operation-level permissions for each action
300
+ await this.assertCanExecuteOperations(doc.document.id, args.actions, ctx);
301
+ }
125
302
  return await resolvers.mutateDocument(this.reactorClient, args);
126
303
  }
127
304
  catch (error) {
@@ -129,9 +306,19 @@ export class ReactorSubgraph extends BaseSubgraph {
129
306
  throw error;
130
307
  }
131
308
  },
132
- mutateDocumentAsync: async (_parent, args) => {
309
+ mutateDocumentAsync: async (_parent, args, ctx) => {
133
310
  this.logger.debug("mutateDocumentAsync", args);
134
311
  try {
312
+ // Resolve document and check write permission
313
+ const doc = await resolvers.document(this.reactorClient, {
314
+ identifier: args.documentIdentifier,
315
+ view: args.view,
316
+ });
317
+ if (doc) {
318
+ await this.assertCanWrite(doc.document.id, ctx);
319
+ // Check operation-level permissions for each action
320
+ await this.assertCanExecuteOperations(doc.document.id, args.actions, ctx);
321
+ }
135
322
  return await resolvers.mutateDocumentAsync(this.reactorClient, args);
136
323
  }
137
324
  catch (error) {
@@ -139,9 +326,16 @@ export class ReactorSubgraph extends BaseSubgraph {
139
326
  throw error;
140
327
  }
141
328
  },
142
- renameDocument: async (_parent, args) => {
329
+ renameDocument: async (_parent, args, ctx) => {
143
330
  this.logger.debug("renameDocument", args);
144
331
  try {
332
+ // Resolve document and check write permission
333
+ const doc = await resolvers.document(this.reactorClient, {
334
+ identifier: args.documentIdentifier,
335
+ });
336
+ if (doc) {
337
+ await this.assertCanWrite(doc.document.id, ctx);
338
+ }
145
339
  return await resolvers.renameDocument(this.reactorClient, args);
146
340
  }
147
341
  catch (error) {
@@ -149,9 +343,16 @@ export class ReactorSubgraph extends BaseSubgraph {
149
343
  throw error;
150
344
  }
151
345
  },
152
- addChildren: async (_parent, args) => {
346
+ addChildren: async (_parent, args, ctx) => {
153
347
  this.logger.debug("addChildren", args);
154
348
  try {
349
+ // Check write permission on parent
350
+ const parent = await resolvers.document(this.reactorClient, {
351
+ identifier: args.parentIdentifier,
352
+ });
353
+ if (parent) {
354
+ await this.assertCanWrite(parent.document.id, ctx);
355
+ }
155
356
  return await resolvers.addChildren(this.reactorClient, args);
156
357
  }
157
358
  catch (error) {
@@ -159,9 +360,16 @@ export class ReactorSubgraph extends BaseSubgraph {
159
360
  throw error;
160
361
  }
161
362
  },
162
- removeChildren: async (_parent, args) => {
363
+ removeChildren: async (_parent, args, ctx) => {
163
364
  this.logger.debug("removeChildren", args);
164
365
  try {
366
+ // Check write permission on parent
367
+ const parent = await resolvers.document(this.reactorClient, {
368
+ identifier: args.parentIdentifier,
369
+ });
370
+ if (parent) {
371
+ await this.assertCanWrite(parent.document.id, ctx);
372
+ }
165
373
  return await resolvers.removeChildren(this.reactorClient, args);
166
374
  }
167
375
  catch (error) {
@@ -169,9 +377,22 @@ export class ReactorSubgraph extends BaseSubgraph {
169
377
  throw error;
170
378
  }
171
379
  },
172
- moveChildren: async (_parent, args) => {
380
+ moveChildren: async (_parent, args, ctx) => {
173
381
  this.logger.debug("moveChildren", args);
174
382
  try {
383
+ // Check write permission on both source and target parents
384
+ const sourceParent = await resolvers.document(this.reactorClient, {
385
+ identifier: args.sourceParentIdentifier,
386
+ });
387
+ if (sourceParent) {
388
+ await this.assertCanWrite(sourceParent.document.id, ctx);
389
+ }
390
+ const targetParent = await resolvers.document(this.reactorClient, {
391
+ identifier: args.targetParentIdentifier,
392
+ });
393
+ if (targetParent) {
394
+ await this.assertCanWrite(targetParent.document.id, ctx);
395
+ }
175
396
  return await resolvers.moveChildren(this.reactorClient, args);
176
397
  }
177
398
  catch (error) {
@@ -179,9 +400,16 @@ export class ReactorSubgraph extends BaseSubgraph {
179
400
  throw error;
180
401
  }
181
402
  },
182
- deleteDocument: async (_parent, args) => {
403
+ deleteDocument: async (_parent, args, ctx) => {
183
404
  this.logger.debug("deleteDocument", args);
184
405
  try {
406
+ // Check write permission on document
407
+ const doc = await resolvers.document(this.reactorClient, {
408
+ identifier: args.identifier,
409
+ });
410
+ if (doc) {
411
+ await this.assertCanWrite(doc.document.id, ctx);
412
+ }
185
413
  return await resolvers.deleteDocument(this.reactorClient, args);
186
414
  }
187
415
  catch (error) {
@@ -189,9 +417,18 @@ export class ReactorSubgraph extends BaseSubgraph {
189
417
  throw error;
190
418
  }
191
419
  },
192
- deleteDocuments: async (_parent, args) => {
420
+ deleteDocuments: async (_parent, args, ctx) => {
193
421
  this.logger.debug("deleteDocuments", args);
194
422
  try {
423
+ // Check write permission on each document
424
+ for (const identifier of args.identifiers) {
425
+ const doc = await resolvers.document(this.reactorClient, {
426
+ identifier,
427
+ });
428
+ if (doc) {
429
+ await this.assertCanWrite(doc.document.id, ctx);
430
+ }
431
+ }
195
432
  return await resolvers.deleteDocuments(this.reactorClient, args);
196
433
  }
197
434
  catch (error) {
@@ -199,16 +436,16 @@ export class ReactorSubgraph extends BaseSubgraph {
199
436
  throw error;
200
437
  }
201
438
  },
202
- createChannel: async (_parent, args) => {
203
- this.logger.debug("createChannel", args);
439
+ touchChannel: async (_parent, args) => {
440
+ this.logger.debug("touchChannel", args);
204
441
  if (!this.syncManager) {
205
442
  throw new Error("SyncManager not available");
206
443
  }
207
444
  try {
208
- return await resolvers.createChannel(this.syncManager, args);
445
+ return await resolvers.touchChannel(this.syncManager, args);
209
446
  }
210
447
  catch (error) {
211
- this.logger.error("Error in createChannel:", error);
448
+ this.logger.error("Error in touchChannel:", error);
212
449
  throw error;
213
450
  }
214
451
  },
@@ -299,7 +536,7 @@ export class ReactorSubgraph extends BaseSubgraph {
299
536
  },
300
537
  };
301
538
  onSetup() {
302
- this.logger.info("Setting up ReactorSubgraph");
539
+ this.logger.debug("Setting up ReactorSubgraph");
303
540
  return Promise.resolve();
304
541
  }
305
542
  }