@powerhousedao/reactor-api 5.1.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.
- package/dist/codegen.js +2 -2
- package/dist/codegen.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/src/graphql/auth/index.d.ts +2 -0
- package/dist/src/graphql/auth/index.d.ts.map +1 -0
- package/dist/src/graphql/auth/index.js +2 -0
- package/dist/src/graphql/auth/index.js.map +1 -0
- package/dist/src/graphql/auth/resolvers.d.ts +149 -0
- package/dist/src/graphql/auth/resolvers.d.ts.map +1 -0
- package/dist/src/graphql/auth/resolvers.js +173 -0
- package/dist/src/graphql/auth/resolvers.js.map +1 -0
- package/dist/src/graphql/auth/schema.graphql +173 -0
- package/dist/src/graphql/auth/subgraph.d.ts +177 -0
- package/dist/src/graphql/auth/subgraph.d.ts.map +1 -0
- package/dist/src/graphql/auth/subgraph.js +340 -0
- package/dist/src/graphql/auth/subgraph.js.map +1 -0
- package/dist/src/graphql/base-subgraph.d.ts +4 -1
- package/dist/src/graphql/base-subgraph.d.ts.map +1 -1
- package/dist/src/graphql/base-subgraph.js +4 -0
- package/dist/src/graphql/base-subgraph.js.map +1 -1
- package/dist/src/graphql/document-model-subgraph.d.ts +51 -0
- package/dist/src/graphql/document-model-subgraph.d.ts.map +1 -0
- package/dist/src/graphql/document-model-subgraph.js +104 -0
- package/dist/src/graphql/document-model-subgraph.js.map +1 -0
- package/dist/src/graphql/drive-subgraph.d.ts.map +1 -1
- package/dist/src/graphql/drive-subgraph.js +51 -10
- package/dist/src/graphql/drive-subgraph.js.map +1 -1
- package/dist/src/graphql/graphql-manager.d.ts +11 -3
- package/dist/src/graphql/graphql-manager.d.ts.map +1 -1
- package/dist/src/graphql/graphql-manager.js +72 -15
- package/dist/src/graphql/graphql-manager.js.map +1 -1
- package/dist/src/graphql/index.d.ts +1 -0
- package/dist/src/graphql/index.d.ts.map +1 -1
- package/dist/src/graphql/index.js +1 -0
- package/dist/src/graphql/index.js.map +1 -1
- package/dist/src/graphql/reactor/adapters.js +1 -1
- package/dist/src/graphql/reactor/adapters.js.map +1 -1
- package/dist/src/graphql/reactor/factory.d.ts +4 -4
- package/dist/src/graphql/reactor/factory.d.ts.map +1 -1
- package/dist/src/graphql/reactor/gen/graphql.d.ts +295 -64
- package/dist/src/graphql/reactor/gen/graphql.d.ts.map +1 -1
- package/dist/src/graphql/reactor/gen/graphql.js +121 -8
- package/dist/src/graphql/reactor/gen/graphql.js.map +1 -1
- package/dist/src/graphql/reactor/operations.graphql +253 -0
- package/dist/src/graphql/reactor/pubsub.d.ts +2 -2
- package/dist/src/graphql/reactor/pubsub.d.ts.map +1 -1
- package/dist/src/graphql/reactor/pubsub.js +2 -1
- package/dist/src/graphql/reactor/pubsub.js.map +1 -1
- package/dist/src/graphql/reactor/resolvers.d.ts +48 -17
- package/dist/src/graphql/reactor/resolvers.d.ts.map +1 -1
- package/dist/src/graphql/reactor/resolvers.js +114 -34
- package/dist/src/graphql/reactor/resolvers.js.map +1 -1
- package/dist/src/graphql/reactor/schema.graphql +429 -0
- package/dist/src/graphql/reactor/subgraph.d.ts +34 -0
- package/dist/src/graphql/reactor/subgraph.d.ts.map +1 -1
- package/dist/src/graphql/reactor/subgraph.js +325 -22
- package/dist/src/graphql/reactor/subgraph.js.map +1 -1
- package/dist/src/graphql/reactor/validation.d.ts +62 -62
- package/dist/src/graphql/system/system-subgraph.d.ts.map +1 -1
- package/dist/src/graphql/types.d.ts +5 -1
- package/dist/src/graphql/types.d.ts.map +1 -1
- package/dist/src/graphql/utils.js +1 -1
- package/dist/src/graphql/utils.js.map +1 -1
- package/dist/src/migrations/001_create_document_permissions.d.ts +4 -0
- package/dist/src/migrations/001_create_document_permissions.d.ts.map +1 -0
- package/dist/src/migrations/001_create_document_permissions.js +91 -0
- package/dist/src/migrations/001_create_document_permissions.js.map +1 -0
- package/dist/src/migrations/index.d.ts +10 -0
- package/dist/src/migrations/index.d.ts.map +1 -0
- package/dist/src/migrations/index.js +59 -0
- package/dist/src/migrations/index.js.map +1 -0
- package/dist/src/packages/util.js +1 -1
- package/dist/src/packages/util.js.map +1 -1
- package/dist/src/server.d.ts +17 -7
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +49 -27
- package/dist/src/server.js.map +1 -1
- package/dist/src/services/auth.service.d.ts +1 -0
- package/dist/src/services/auth.service.d.ts.map +1 -1
- package/dist/src/services/auth.service.js +32 -22
- package/dist/src/services/auth.service.js.map +1 -1
- package/dist/src/services/document-permission.service.d.ts +201 -0
- package/dist/src/services/document-permission.service.d.ts.map +1 -0
- package/dist/src/services/document-permission.service.js +636 -0
- package/dist/src/services/document-permission.service.js.map +1 -0
- package/dist/src/utils/create-schema.d.ts +5 -4
- package/dist/src/utils/create-schema.d.ts.map +1 -1
- package/dist/src/utils/create-schema.js +110 -4
- package/dist/src/utils/create-schema.js.map +1 -1
- package/dist/src/utils/db.d.ts +65 -1
- package/dist/src/utils/db.d.ts.map +1 -1
- package/dist/src/utils/db.js.map +1 -1
- package/dist/test/document-permission.service.test.d.ts +2 -0
- package/dist/test/document-permission.service.test.d.ts.map +1 -0
- package/dist/test/document-permission.service.test.js +480 -0
- package/dist/test/document-permission.service.test.js.map +1 -0
- package/dist/test/drive-subgraph-permissions.test.d.ts +2 -0
- package/dist/test/drive-subgraph-permissions.test.d.ts.map +1 -0
- package/dist/test/drive-subgraph-permissions.test.js +195 -0
- package/dist/test/drive-subgraph-permissions.test.js.map +1 -0
- package/dist/test/identity-integration.test.d.ts +2 -0
- package/dist/test/identity-integration.test.d.ts.map +1 -0
- package/dist/test/identity-integration.test.js +349 -0
- package/dist/test/identity-integration.test.js.map +1 -0
- package/dist/test/permissions-integration.test.d.ts +2 -0
- package/dist/test/permissions-integration.test.d.ts.map +1 -0
- package/dist/test/permissions-integration.test.js +421 -0
- package/dist/test/permissions-integration.test.js.map +1 -0
- package/dist/test/reactor-adapters.test.js +2 -2
- package/dist/test/reactor-adapters.test.js.map +1 -1
- package/dist/test/reactor-resolvers.test.js +24 -24
- package/dist/test/reactor-resolvers.test.js.map +1 -1
- package/dist/test/reactor-subgraph-permissions.test.d.ts +2 -0
- package/dist/test/reactor-subgraph-permissions.test.d.ts.map +1 -0
- package/dist/test/reactor-subgraph-permissions.test.js +400 -0
- package/dist/test/reactor-subgraph-permissions.test.js.map +1 -0
- package/dist/test/two-reactor-gql-sync.test.d.ts +2 -0
- package/dist/test/two-reactor-gql-sync.test.d.ts.map +1 -0
- package/dist/test/two-reactor-gql-sync.test.js +298 -0
- package/dist/test/two-reactor-gql-sync.test.js.map +1 -0
- package/dist/test/utils/gql-resolver-bridge.d.ts +12 -0
- package/dist/test/utils/gql-resolver-bridge.d.ts.map +1 -0
- package/dist/test/utils/gql-resolver-bridge.js +60 -0
- package/dist/test/utils/gql-resolver-bridge.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -9
|
@@ -1,23 +1,129 @@
|
|
|
1
|
-
import {
|
|
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";
|
|
7
|
+
import { fileURLToPath } from "url";
|
|
6
8
|
import { BaseSubgraph } from "../base-subgraph.js";
|
|
7
9
|
import { matchesJobFilter, matchesSearchFilter, toGqlDocumentChangeEvent, } from "./adapters.js";
|
|
8
10
|
import { ensureGlobalDocumentSubscription, ensureJobSubscription, getPubSub, SUBSCRIPTION_TRIGGERS, } from "./pubsub.js";
|
|
9
11
|
import * as resolvers from "./resolvers.js";
|
|
12
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
13
|
+
const __dirname = path.dirname(__filename);
|
|
10
14
|
export class ReactorSubgraph extends BaseSubgraph {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Math.floor(Math.random() * 999).toString(),
|
|
14
|
-
]);
|
|
15
|
+
// temp
|
|
16
|
+
logger = new ConsoleLogger(["ReactorSubgraph"]);
|
|
15
17
|
constructor(args) {
|
|
16
18
|
super(args);
|
|
17
19
|
this.logger.verbose(`constructor()`);
|
|
18
20
|
}
|
|
19
21
|
name = "r/:reactor";
|
|
20
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
|
+
}
|
|
21
127
|
// Load schema from file
|
|
22
128
|
typeDefs = gql(fs.readFileSync(path.join(__dirname, "schema.graphql"), "utf-8"));
|
|
23
129
|
resolvers = {
|
|
@@ -32,19 +138,32 @@ export class ReactorSubgraph extends BaseSubgraph {
|
|
|
32
138
|
throw error;
|
|
33
139
|
}
|
|
34
140
|
},
|
|
35
|
-
document: async (_parent, args) => {
|
|
141
|
+
document: async (_parent, args, ctx) => {
|
|
36
142
|
this.logger.debug("document", args);
|
|
37
143
|
try {
|
|
38
|
-
|
|
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;
|
|
39
150
|
}
|
|
40
151
|
catch (error) {
|
|
41
152
|
this.logger.error("Error in document:", error);
|
|
42
153
|
throw error;
|
|
43
154
|
}
|
|
44
155
|
},
|
|
45
|
-
documentChildren: async (_parent, args) => {
|
|
156
|
+
documentChildren: async (_parent, args, ctx) => {
|
|
46
157
|
this.logger.debug("documentChildren", args);
|
|
47
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
|
+
}
|
|
48
167
|
return await resolvers.documentChildren(this.reactorClient, args);
|
|
49
168
|
}
|
|
50
169
|
catch (error) {
|
|
@@ -52,9 +171,17 @@ export class ReactorSubgraph extends BaseSubgraph {
|
|
|
52
171
|
throw error;
|
|
53
172
|
}
|
|
54
173
|
},
|
|
55
|
-
documentParents: async (_parent, args) => {
|
|
174
|
+
documentParents: async (_parent, args, ctx) => {
|
|
56
175
|
this.logger.debug("documentParents", args);
|
|
57
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
|
+
}
|
|
58
185
|
return await resolvers.documentParents(this.reactorClient, args);
|
|
59
186
|
}
|
|
60
187
|
catch (error) {
|
|
@@ -62,10 +189,27 @@ export class ReactorSubgraph extends BaseSubgraph {
|
|
|
62
189
|
throw error;
|
|
63
190
|
}
|
|
64
191
|
},
|
|
65
|
-
findDocuments: async (_parent, args) => {
|
|
192
|
+
findDocuments: async (_parent, args, ctx) => {
|
|
66
193
|
this.logger.debug("findDocuments", args);
|
|
67
194
|
try {
|
|
68
|
-
|
|
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;
|
|
69
213
|
}
|
|
70
214
|
catch (error) {
|
|
71
215
|
this.logger.error("Error in findDocuments:", error);
|
|
@@ -82,11 +226,37 @@ export class ReactorSubgraph extends BaseSubgraph {
|
|
|
82
226
|
throw error;
|
|
83
227
|
}
|
|
84
228
|
},
|
|
229
|
+
pollSyncEnvelopes: async (_parent, args) => {
|
|
230
|
+
this.logger.debug("pollSyncEnvelopes", args);
|
|
231
|
+
if (!this.syncManager) {
|
|
232
|
+
throw new Error("SyncManager not available");
|
|
233
|
+
}
|
|
234
|
+
try {
|
|
235
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
236
|
+
return await resolvers.pollSyncEnvelopes(this.syncManager, args);
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
this.logger.error("Error in pollSyncEnvelopes:", error);
|
|
240
|
+
throw error;
|
|
241
|
+
}
|
|
242
|
+
},
|
|
85
243
|
},
|
|
86
244
|
Mutation: {
|
|
87
|
-
createDocument: async (_parent, args) => {
|
|
245
|
+
createDocument: async (_parent, args, ctx) => {
|
|
88
246
|
this.logger.debug("createDocument", args);
|
|
89
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
|
+
}
|
|
90
260
|
return await resolvers.createDocument(this.reactorClient, args);
|
|
91
261
|
}
|
|
92
262
|
catch (error) {
|
|
@@ -94,9 +264,21 @@ export class ReactorSubgraph extends BaseSubgraph {
|
|
|
94
264
|
throw error;
|
|
95
265
|
}
|
|
96
266
|
},
|
|
97
|
-
createEmptyDocument: async (_parent, args) => {
|
|
267
|
+
createEmptyDocument: async (_parent, args, ctx) => {
|
|
98
268
|
this.logger.debug("createEmptyDocument", args);
|
|
99
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
|
+
}
|
|
100
282
|
return await resolvers.createEmptyDocument(this.reactorClient, args);
|
|
101
283
|
}
|
|
102
284
|
catch (error) {
|
|
@@ -104,9 +286,19 @@ export class ReactorSubgraph extends BaseSubgraph {
|
|
|
104
286
|
throw error;
|
|
105
287
|
}
|
|
106
288
|
},
|
|
107
|
-
mutateDocument: async (_parent, args) => {
|
|
289
|
+
mutateDocument: async (_parent, args, ctx) => {
|
|
108
290
|
this.logger.debug("mutateDocument", args);
|
|
109
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
|
+
}
|
|
110
302
|
return await resolvers.mutateDocument(this.reactorClient, args);
|
|
111
303
|
}
|
|
112
304
|
catch (error) {
|
|
@@ -114,9 +306,19 @@ export class ReactorSubgraph extends BaseSubgraph {
|
|
|
114
306
|
throw error;
|
|
115
307
|
}
|
|
116
308
|
},
|
|
117
|
-
mutateDocumentAsync: async (_parent, args) => {
|
|
309
|
+
mutateDocumentAsync: async (_parent, args, ctx) => {
|
|
118
310
|
this.logger.debug("mutateDocumentAsync", args);
|
|
119
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
|
+
}
|
|
120
322
|
return await resolvers.mutateDocumentAsync(this.reactorClient, args);
|
|
121
323
|
}
|
|
122
324
|
catch (error) {
|
|
@@ -124,9 +326,16 @@ export class ReactorSubgraph extends BaseSubgraph {
|
|
|
124
326
|
throw error;
|
|
125
327
|
}
|
|
126
328
|
},
|
|
127
|
-
renameDocument: async (_parent, args) => {
|
|
329
|
+
renameDocument: async (_parent, args, ctx) => {
|
|
128
330
|
this.logger.debug("renameDocument", args);
|
|
129
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
|
+
}
|
|
130
339
|
return await resolvers.renameDocument(this.reactorClient, args);
|
|
131
340
|
}
|
|
132
341
|
catch (error) {
|
|
@@ -134,9 +343,16 @@ export class ReactorSubgraph extends BaseSubgraph {
|
|
|
134
343
|
throw error;
|
|
135
344
|
}
|
|
136
345
|
},
|
|
137
|
-
addChildren: async (_parent, args) => {
|
|
346
|
+
addChildren: async (_parent, args, ctx) => {
|
|
138
347
|
this.logger.debug("addChildren", args);
|
|
139
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
|
+
}
|
|
140
356
|
return await resolvers.addChildren(this.reactorClient, args);
|
|
141
357
|
}
|
|
142
358
|
catch (error) {
|
|
@@ -144,9 +360,16 @@ export class ReactorSubgraph extends BaseSubgraph {
|
|
|
144
360
|
throw error;
|
|
145
361
|
}
|
|
146
362
|
},
|
|
147
|
-
removeChildren: async (_parent, args) => {
|
|
363
|
+
removeChildren: async (_parent, args, ctx) => {
|
|
148
364
|
this.logger.debug("removeChildren", args);
|
|
149
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
|
+
}
|
|
150
373
|
return await resolvers.removeChildren(this.reactorClient, args);
|
|
151
374
|
}
|
|
152
375
|
catch (error) {
|
|
@@ -154,9 +377,22 @@ export class ReactorSubgraph extends BaseSubgraph {
|
|
|
154
377
|
throw error;
|
|
155
378
|
}
|
|
156
379
|
},
|
|
157
|
-
moveChildren: async (_parent, args) => {
|
|
380
|
+
moveChildren: async (_parent, args, ctx) => {
|
|
158
381
|
this.logger.debug("moveChildren", args);
|
|
159
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
|
+
}
|
|
160
396
|
return await resolvers.moveChildren(this.reactorClient, args);
|
|
161
397
|
}
|
|
162
398
|
catch (error) {
|
|
@@ -164,9 +400,16 @@ export class ReactorSubgraph extends BaseSubgraph {
|
|
|
164
400
|
throw error;
|
|
165
401
|
}
|
|
166
402
|
},
|
|
167
|
-
deleteDocument: async (_parent, args) => {
|
|
403
|
+
deleteDocument: async (_parent, args, ctx) => {
|
|
168
404
|
this.logger.debug("deleteDocument", args);
|
|
169
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
|
+
}
|
|
170
413
|
return await resolvers.deleteDocument(this.reactorClient, args);
|
|
171
414
|
}
|
|
172
415
|
catch (error) {
|
|
@@ -174,9 +417,18 @@ export class ReactorSubgraph extends BaseSubgraph {
|
|
|
174
417
|
throw error;
|
|
175
418
|
}
|
|
176
419
|
},
|
|
177
|
-
deleteDocuments: async (_parent, args) => {
|
|
420
|
+
deleteDocuments: async (_parent, args, ctx) => {
|
|
178
421
|
this.logger.debug("deleteDocuments", args);
|
|
179
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
|
+
}
|
|
180
432
|
return await resolvers.deleteDocuments(this.reactorClient, args);
|
|
181
433
|
}
|
|
182
434
|
catch (error) {
|
|
@@ -184,6 +436,57 @@ export class ReactorSubgraph extends BaseSubgraph {
|
|
|
184
436
|
throw error;
|
|
185
437
|
}
|
|
186
438
|
},
|
|
439
|
+
touchChannel: async (_parent, args) => {
|
|
440
|
+
this.logger.debug("touchChannel", args);
|
|
441
|
+
if (!this.syncManager) {
|
|
442
|
+
throw new Error("SyncManager not available");
|
|
443
|
+
}
|
|
444
|
+
try {
|
|
445
|
+
return await resolvers.touchChannel(this.syncManager, args);
|
|
446
|
+
}
|
|
447
|
+
catch (error) {
|
|
448
|
+
this.logger.error("Error in touchChannel:", error);
|
|
449
|
+
throw error;
|
|
450
|
+
}
|
|
451
|
+
},
|
|
452
|
+
pushSyncEnvelope: async (_parent, args) => {
|
|
453
|
+
this.logger.debug("pushSyncEnvelope", args);
|
|
454
|
+
if (!this.syncManager) {
|
|
455
|
+
throw new Error("SyncManager not available");
|
|
456
|
+
}
|
|
457
|
+
try {
|
|
458
|
+
// Convert readonly arrays to mutable arrays for the resolver
|
|
459
|
+
const mutableArgs = {
|
|
460
|
+
envelope: {
|
|
461
|
+
type: args.envelope.type,
|
|
462
|
+
channelMeta: { id: args.envelope.channelMeta.id },
|
|
463
|
+
operations: args.envelope.operations
|
|
464
|
+
? args.envelope.operations.map((op) => ({
|
|
465
|
+
operation: op.operation,
|
|
466
|
+
context: {
|
|
467
|
+
documentId: op.context.documentId,
|
|
468
|
+
documentType: op.context.documentType,
|
|
469
|
+
scope: op.context.scope,
|
|
470
|
+
branch: op.context.branch,
|
|
471
|
+
},
|
|
472
|
+
}))
|
|
473
|
+
: null,
|
|
474
|
+
cursor: args.envelope.cursor
|
|
475
|
+
? {
|
|
476
|
+
remoteName: args.envelope.cursor.remoteName,
|
|
477
|
+
cursorOrdinal: args.envelope.cursor.cursorOrdinal,
|
|
478
|
+
lastSyncedAtUtcMs: args.envelope.cursor.lastSyncedAtUtcMs,
|
|
479
|
+
}
|
|
480
|
+
: null,
|
|
481
|
+
},
|
|
482
|
+
};
|
|
483
|
+
return await resolvers.pushSyncEnvelope(this.syncManager, mutableArgs);
|
|
484
|
+
}
|
|
485
|
+
catch (error) {
|
|
486
|
+
this.logger.error("Error in pushSyncEnvelope:", error);
|
|
487
|
+
throw error;
|
|
488
|
+
}
|
|
489
|
+
},
|
|
187
490
|
},
|
|
188
491
|
Subscription: {
|
|
189
492
|
documentChanges: {
|
|
@@ -233,7 +536,7 @@ export class ReactorSubgraph extends BaseSubgraph {
|
|
|
233
536
|
},
|
|
234
537
|
};
|
|
235
538
|
onSetup() {
|
|
236
|
-
this.logger.
|
|
539
|
+
this.logger.debug("Setting up ReactorSubgraph");
|
|
237
540
|
return Promise.resolve();
|
|
238
541
|
}
|
|
239
542
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../../src/graphql/reactor/subgraph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../../src/graphql/reactor/subgraph.ts"],"names":[],"mappings":"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"}
|