@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
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import type { Kysely } from "kysely";
|
|
2
|
+
import type { DocumentPermissionDatabase, DocumentPermissionLevel } from "../utils/db.js";
|
|
3
|
+
export interface DocumentPermissionEntry {
|
|
4
|
+
documentId: string;
|
|
5
|
+
userAddress: string;
|
|
6
|
+
permission: DocumentPermissionLevel;
|
|
7
|
+
grantedBy: string;
|
|
8
|
+
createdAt: Date;
|
|
9
|
+
updatedAt: Date;
|
|
10
|
+
}
|
|
11
|
+
export interface Group {
|
|
12
|
+
id: number;
|
|
13
|
+
name: string;
|
|
14
|
+
description: string | null;
|
|
15
|
+
createdAt: Date;
|
|
16
|
+
updatedAt: Date;
|
|
17
|
+
}
|
|
18
|
+
export interface DocumentGroupPermissionEntry {
|
|
19
|
+
documentId: string;
|
|
20
|
+
groupId: number;
|
|
21
|
+
permission: DocumentPermissionLevel;
|
|
22
|
+
grantedBy: string;
|
|
23
|
+
createdAt: Date;
|
|
24
|
+
updatedAt: Date;
|
|
25
|
+
}
|
|
26
|
+
export interface OperationUserPermissionEntry {
|
|
27
|
+
documentId: string;
|
|
28
|
+
operationType: string;
|
|
29
|
+
userAddress: string;
|
|
30
|
+
grantedBy: string;
|
|
31
|
+
createdAt: Date;
|
|
32
|
+
}
|
|
33
|
+
export interface OperationGroupPermissionEntry {
|
|
34
|
+
documentId: string;
|
|
35
|
+
operationType: string;
|
|
36
|
+
groupId: number;
|
|
37
|
+
grantedBy: string;
|
|
38
|
+
createdAt: Date;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Function type for getting parent document IDs
|
|
42
|
+
* This is injected to avoid circular dependencies with the reactor client
|
|
43
|
+
*/
|
|
44
|
+
export type GetParentIdsFn = (documentId: string) => Promise<string[]>;
|
|
45
|
+
/**
|
|
46
|
+
* Service for managing document-level permissions.
|
|
47
|
+
*
|
|
48
|
+
* Permission levels for documents:
|
|
49
|
+
* - READ: Can fetch and read the document
|
|
50
|
+
* - WRITE: Can push updates and modify the document
|
|
51
|
+
* - ADMIN: Can manage document permissions and settings
|
|
52
|
+
*
|
|
53
|
+
* Operation permissions:
|
|
54
|
+
* - 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
|
+
*/
|
|
62
|
+
export declare class DocumentPermissionService {
|
|
63
|
+
private readonly db;
|
|
64
|
+
constructor(db: Kysely<DocumentPermissionDatabase>);
|
|
65
|
+
/**
|
|
66
|
+
* Get the permission level for a user on a specific document.
|
|
67
|
+
* Returns null if no permission is set.
|
|
68
|
+
*/
|
|
69
|
+
getUserPermission(documentId: string, userAddress: string): Promise<DocumentPermissionLevel | null>;
|
|
70
|
+
/**
|
|
71
|
+
* Get all permissions for a document
|
|
72
|
+
*/
|
|
73
|
+
getDocumentPermissions(documentId: string): Promise<DocumentPermissionEntry[]>;
|
|
74
|
+
/**
|
|
75
|
+
* Get all documents a user has explicit access to
|
|
76
|
+
*/
|
|
77
|
+
getUserDocuments(userAddress: string): Promise<DocumentPermissionEntry[]>;
|
|
78
|
+
/**
|
|
79
|
+
* Grant or update a user's permission on a document.
|
|
80
|
+
*/
|
|
81
|
+
grantPermission(documentId: string, userAddress: string, permission: DocumentPermissionLevel, grantedBy: string): Promise<DocumentPermissionEntry>;
|
|
82
|
+
/**
|
|
83
|
+
* Revoke a user's permission on a document
|
|
84
|
+
*/
|
|
85
|
+
revokePermission(documentId: string, userAddress: string): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Delete all permissions for a document (used when deleting a document)
|
|
88
|
+
*/
|
|
89
|
+
deleteAllDocumentPermissions(documentId: string): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* Check if a user can read a document.
|
|
92
|
+
* Returns true if user has READ, WRITE, or ADMIN permission (direct or via group)
|
|
93
|
+
*/
|
|
94
|
+
canReadDocument(documentId: string, userAddress: string | undefined): Promise<boolean>;
|
|
95
|
+
/**
|
|
96
|
+
* Check if a user can write to a document.
|
|
97
|
+
* Returns true if user has WRITE or ADMIN permission (direct or via group)
|
|
98
|
+
*/
|
|
99
|
+
canWriteDocument(documentId: string, userAddress: string | undefined): Promise<boolean>;
|
|
100
|
+
/**
|
|
101
|
+
* Check if a user can manage a document (change permissions, settings).
|
|
102
|
+
* Returns true if user has ADMIN permission (direct or via group)
|
|
103
|
+
*/
|
|
104
|
+
canManageDocument(documentId: string, userAddress: string | undefined): Promise<boolean>;
|
|
105
|
+
/**
|
|
106
|
+
* Check if a user can read a document, including parent permission inheritance.
|
|
107
|
+
* Returns true if user has permission on the document OR any parent in the hierarchy.
|
|
108
|
+
*/
|
|
109
|
+
canRead(documentId: string, userAddress: string | undefined, getParentIds: GetParentIdsFn): Promise<boolean>;
|
|
110
|
+
/**
|
|
111
|
+
* Check if a user can write to a document, including parent permission inheritance.
|
|
112
|
+
* Returns true if user has write permission on the document OR any parent in the hierarchy.
|
|
113
|
+
*/
|
|
114
|
+
canWrite(documentId: string, userAddress: string | undefined, getParentIds: GetParentIdsFn): Promise<boolean>;
|
|
115
|
+
/**
|
|
116
|
+
* Filter a list of document IDs to only include those the user can read.
|
|
117
|
+
*/
|
|
118
|
+
filterReadableDocuments(documentIds: string[], userAddress: string | undefined, getParentIds: GetParentIdsFn): Promise<string[]>;
|
|
119
|
+
/**
|
|
120
|
+
* Create a new group
|
|
121
|
+
*/
|
|
122
|
+
createGroup(name: string, description?: string): Promise<Group>;
|
|
123
|
+
/**
|
|
124
|
+
* Delete a group and all its associations
|
|
125
|
+
*/
|
|
126
|
+
deleteGroup(groupId: number): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Get a group by ID
|
|
129
|
+
*/
|
|
130
|
+
getGroup(groupId: number): Promise<Group | null>;
|
|
131
|
+
/**
|
|
132
|
+
* List all groups
|
|
133
|
+
*/
|
|
134
|
+
listGroups(): Promise<Group[]>;
|
|
135
|
+
/**
|
|
136
|
+
* Add a user to a group
|
|
137
|
+
*/
|
|
138
|
+
addUserToGroup(userAddress: string, groupId: number): Promise<void>;
|
|
139
|
+
/**
|
|
140
|
+
* Remove a user from a group
|
|
141
|
+
*/
|
|
142
|
+
removeUserFromGroup(userAddress: string, groupId: number): Promise<void>;
|
|
143
|
+
/**
|
|
144
|
+
* Get all groups a user belongs to
|
|
145
|
+
*/
|
|
146
|
+
getUserGroups(userAddress: string): Promise<Group[]>;
|
|
147
|
+
/**
|
|
148
|
+
* Get all members of a group
|
|
149
|
+
*/
|
|
150
|
+
getGroupMembers(groupId: number): Promise<string[]>;
|
|
151
|
+
/**
|
|
152
|
+
* Grant a group permission on a document
|
|
153
|
+
*/
|
|
154
|
+
grantGroupPermission(documentId: string, groupId: number, permission: DocumentPermissionLevel, grantedBy: string): Promise<DocumentGroupPermissionEntry>;
|
|
155
|
+
/**
|
|
156
|
+
* Revoke a group's permission on a document
|
|
157
|
+
*/
|
|
158
|
+
revokeGroupPermission(documentId: string, groupId: number): Promise<void>;
|
|
159
|
+
/**
|
|
160
|
+
* Get all group permissions for a document
|
|
161
|
+
*/
|
|
162
|
+
getDocumentGroupPermissions(documentId: string): Promise<DocumentGroupPermissionEntry[]>;
|
|
163
|
+
/**
|
|
164
|
+
* Get best permission level a user has on a document via groups
|
|
165
|
+
*/
|
|
166
|
+
getUserGroupPermission(documentId: string, userAddress: string): Promise<DocumentPermissionLevel | null>;
|
|
167
|
+
/**
|
|
168
|
+
* Grant a user permission to execute an operation on a document
|
|
169
|
+
*/
|
|
170
|
+
grantOperationPermission(documentId: string, operationType: string, userAddress: string, grantedBy: string): Promise<OperationUserPermissionEntry>;
|
|
171
|
+
/**
|
|
172
|
+
* Revoke a user's permission to execute an operation
|
|
173
|
+
*/
|
|
174
|
+
revokeOperationPermission(documentId: string, operationType: string, userAddress: string): Promise<void>;
|
|
175
|
+
/**
|
|
176
|
+
* Grant a group permission to execute an operation on a document
|
|
177
|
+
*/
|
|
178
|
+
grantGroupOperationPermission(documentId: string, operationType: string, groupId: number, grantedBy: string): Promise<OperationGroupPermissionEntry>;
|
|
179
|
+
/**
|
|
180
|
+
* Revoke a group's permission to execute an operation
|
|
181
|
+
*/
|
|
182
|
+
revokeGroupOperationPermission(documentId: string, operationType: string, groupId: number): Promise<void>;
|
|
183
|
+
/**
|
|
184
|
+
* Get all users with permission to execute an operation
|
|
185
|
+
*/
|
|
186
|
+
getOperationUserPermissions(documentId: string, operationType: string): Promise<OperationUserPermissionEntry[]>;
|
|
187
|
+
/**
|
|
188
|
+
* Get all groups with permission to execute an operation
|
|
189
|
+
*/
|
|
190
|
+
getOperationGroupPermissions(documentId: string, operationType: string): Promise<OperationGroupPermissionEntry[]>;
|
|
191
|
+
/**
|
|
192
|
+
* Check if a user can execute a specific operation on a document.
|
|
193
|
+
* Returns true if user has direct permission or is in a group with permission.
|
|
194
|
+
*/
|
|
195
|
+
canExecuteOperation(documentId: string, operationType: string, userAddress: string | undefined): Promise<boolean>;
|
|
196
|
+
/**
|
|
197
|
+
* Check if an operation has any permissions set (is restricted)
|
|
198
|
+
*/
|
|
199
|
+
isOperationRestricted(documentId: string, operationType: string): Promise<boolean>;
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=document-permission.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-permission.service.d.ts","sourceRoot":"","sources":["../../../src/services/document-permission.service.ts"],"names":[],"mappings":"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"}
|