@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.
- 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 +3 -1
- package/dist/src/graphql/base-subgraph.d.ts.map +1 -1
- package/dist/src/graphql/base-subgraph.js +2 -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 -16
- 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/resolvers.d.ts +6 -1
- package/dist/src/graphql/reactor/resolvers.d.ts.map +1 -1
- package/dist/src/graphql/reactor/resolvers.js +18 -2
- package/dist/src/graphql/reactor/resolvers.js.map +1 -1
- package/dist/src/graphql/reactor/schema.graphql +4 -4
- 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 +258 -21
- 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 +4 -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 -4
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +45 -16
- 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 +30 -16
- 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 +4 -3
- package/dist/src/utils/create-schema.d.ts.map +1 -1
- package/dist/src/utils/create-schema.js +100 -3
- 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-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.js +11 -9
- package/dist/test/two-reactor-gql-sync.test.js.map +1 -1
- package/dist/test/utils/gql-resolver-bridge.js +4 -4
- package/dist/test/utils/gql-resolver-bridge.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- 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
|
|
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: "
|
|
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
|
|
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
|
-
#
|
|
407
|
-
|
|
408
|
-
input:
|
|
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":"
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
203
|
-
this.logger.debug("
|
|
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.
|
|
445
|
+
return await resolvers.touchChannel(this.syncManager, args);
|
|
209
446
|
}
|
|
210
447
|
catch (error) {
|
|
211
|
-
this.logger.error("Error in
|
|
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.
|
|
539
|
+
this.logger.debug("Setting up ReactorSubgraph");
|
|
303
540
|
return Promise.resolve();
|
|
304
541
|
}
|
|
305
542
|
}
|