@powerhousedao/reactor-api 6.0.0-dev.22 → 6.0.0-dev.221
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/README.md +6 -0
- package/dist/index.d.mts +3037 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +6687 -0
- package/dist/index.mjs.map +1 -0
- package/dist/src/packages/https-hooks.d.mts +39 -0
- package/dist/src/packages/https-hooks.d.mts.map +1 -0
- package/dist/src/packages/https-hooks.mjs +79 -0
- package/dist/src/packages/https-hooks.mjs.map +1 -0
- package/dist/src/packages/vite-loader.d.mts +29 -0
- package/dist/src/packages/vite-loader.d.mts.map +1 -0
- package/dist/src/packages/vite-loader.mjs +142 -0
- package/dist/src/packages/vite-loader.mjs.map +1 -0
- package/dist/types-Do4QTfT3.d.mts +37 -0
- package/dist/types-Do4QTfT3.d.mts.map +1 -0
- package/dist/utils-CVrD_vPF.mjs +287 -0
- package/dist/utils-CVrD_vPF.mjs.map +1 -0
- package/package.json +71 -63
- package/dist/codegen.d.ts +0 -4
- package/dist/codegen.d.ts.map +0 -1
- package/dist/codegen.js +0 -38
- package/dist/codegen.js.map +0 -1
- package/dist/index.d.ts +0 -14
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -14
- package/dist/index.js.map +0 -1
- package/dist/src/config.d.ts +0 -7
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/config.js +0 -10
- package/dist/src/config.js.map +0 -1
- package/dist/src/graphql/analytics-subgraph.d.ts +0 -14
- package/dist/src/graphql/analytics-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/analytics-subgraph.js +0 -26
- package/dist/src/graphql/analytics-subgraph.js.map +0 -1
- package/dist/src/graphql/auth/index.d.ts +0 -2
- package/dist/src/graphql/auth/index.d.ts.map +0 -1
- package/dist/src/graphql/auth/index.js +0 -2
- package/dist/src/graphql/auth/index.js.map +0 -1
- package/dist/src/graphql/auth/resolvers.d.ts +0 -149
- package/dist/src/graphql/auth/resolvers.d.ts.map +0 -1
- package/dist/src/graphql/auth/resolvers.js +0 -173
- package/dist/src/graphql/auth/resolvers.js.map +0 -1
- package/dist/src/graphql/auth/schema.graphql +0 -173
- package/dist/src/graphql/auth/subgraph.d.ts +0 -177
- package/dist/src/graphql/auth/subgraph.d.ts.map +0 -1
- package/dist/src/graphql/auth/subgraph.js +0 -340
- package/dist/src/graphql/auth/subgraph.js.map +0 -1
- package/dist/src/graphql/base-subgraph.d.ts +0 -20
- package/dist/src/graphql/base-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/base-subgraph.js +0 -34
- package/dist/src/graphql/base-subgraph.js.map +0 -1
- package/dist/src/graphql/document-model-subgraph.d.ts +0 -51
- package/dist/src/graphql/document-model-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/document-model-subgraph.js +0 -104
- package/dist/src/graphql/document-model-subgraph.js.map +0 -1
- package/dist/src/graphql/drive-subgraph.d.ts +0 -25
- package/dist/src/graphql/drive-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/drive-subgraph.js +0 -487
- package/dist/src/graphql/drive-subgraph.js.map +0 -1
- package/dist/src/graphql/graphql-manager.d.ts +0 -47
- package/dist/src/graphql/graphql-manager.d.ts.map +0 -1
- package/dist/src/graphql/graphql-manager.js +0 -433
- package/dist/src/graphql/graphql-manager.js.map +0 -1
- package/dist/src/graphql/index.d.ts +0 -9
- package/dist/src/graphql/index.d.ts.map +0 -1
- package/dist/src/graphql/index.js +0 -9
- package/dist/src/graphql/index.js.map +0 -1
- package/dist/src/graphql/playground.d.ts +0 -2
- package/dist/src/graphql/playground.d.ts.map +0 -1
- package/dist/src/graphql/playground.js +0 -74
- package/dist/src/graphql/playground.js.map +0 -1
- package/dist/src/graphql/reactor/adapters.d.ts +0 -62
- package/dist/src/graphql/reactor/adapters.d.ts.map +0 -1
- package/dist/src/graphql/reactor/adapters.js +0 -270
- package/dist/src/graphql/reactor/adapters.js.map +0 -1
- package/dist/src/graphql/reactor/factory.d.ts +0 -84
- package/dist/src/graphql/reactor/factory.d.ts.map +0 -1
- package/dist/src/graphql/reactor/factory.js +0 -7
- package/dist/src/graphql/reactor/factory.js.map +0 -1
- package/dist/src/graphql/reactor/gen/graphql.d.ts +0 -1242
- package/dist/src/graphql/reactor/gen/graphql.d.ts.map +0 -1
- package/dist/src/graphql/reactor/gen/graphql.js +0 -496
- package/dist/src/graphql/reactor/gen/graphql.js.map +0 -1
- package/dist/src/graphql/reactor/index.d.ts +0 -4
- package/dist/src/graphql/reactor/index.d.ts.map +0 -1
- package/dist/src/graphql/reactor/index.js +0 -4
- package/dist/src/graphql/reactor/index.js.map +0 -1
- package/dist/src/graphql/reactor/operations.graphql +0 -253
- package/dist/src/graphql/reactor/pubsub.d.ts +0 -27
- package/dist/src/graphql/reactor/pubsub.d.ts.map +0 -1
- package/dist/src/graphql/reactor/pubsub.js +0 -93
- package/dist/src/graphql/reactor/pubsub.js.map +0 -1
- package/dist/src/graphql/reactor/requester.d.ts +0 -4
- package/dist/src/graphql/reactor/requester.d.ts.map +0 -1
- package/dist/src/graphql/reactor/requester.js +0 -22
- package/dist/src/graphql/reactor/requester.js.map +0 -1
- package/dist/src/graphql/reactor/requester.with-zod.d.ts +0 -4
- package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +0 -1
- package/dist/src/graphql/reactor/requester.with-zod.js +0 -53
- package/dist/src/graphql/reactor/requester.with-zod.js.map +0 -1
- package/dist/src/graphql/reactor/resolvers.d.ts +0 -175
- package/dist/src/graphql/reactor/resolvers.d.ts.map +0 -1
- package/dist/src/graphql/reactor/resolvers.js +0 -526
- package/dist/src/graphql/reactor/resolvers.js.map +0 -1
- package/dist/src/graphql/reactor/schema.graphql +0 -432
- package/dist/src/graphql/reactor/subgraph.d.ts +0 -47
- package/dist/src/graphql/reactor/subgraph.d.ts.map +0 -1
- package/dist/src/graphql/reactor/subgraph.js +0 -555
- package/dist/src/graphql/reactor/subgraph.js.map +0 -1
- package/dist/src/graphql/reactor/validation.d.ts +0 -102
- package/dist/src/graphql/reactor/validation.d.ts.map +0 -1
- package/dist/src/graphql/reactor/validation.js +0 -73
- package/dist/src/graphql/reactor/validation.js.map +0 -1
- package/dist/src/graphql/system/env/getters.d.ts +0 -2
- package/dist/src/graphql/system/env/getters.d.ts.map +0 -1
- package/dist/src/graphql/system/env/getters.js +0 -4
- package/dist/src/graphql/system/env/getters.js.map +0 -1
- package/dist/src/graphql/system/env/index.d.ts +0 -2
- package/dist/src/graphql/system/env/index.d.ts.map +0 -1
- package/dist/src/graphql/system/env/index.js +0 -5
- package/dist/src/graphql/system/env/index.js.map +0 -1
- package/dist/src/graphql/system/index.d.ts +0 -3
- package/dist/src/graphql/system/index.d.ts.map +0 -1
- package/dist/src/graphql/system/index.js +0 -3
- package/dist/src/graphql/system/index.js.map +0 -1
- package/dist/src/graphql/system/system-subgraph.d.ts +0 -49
- package/dist/src/graphql/system/system-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/system/system-subgraph.js +0 -130
- package/dist/src/graphql/system/system-subgraph.js.map +0 -1
- package/dist/src/graphql/system/types.d.ts +0 -2
- package/dist/src/graphql/system/types.d.ts.map +0 -1
- package/dist/src/graphql/system/types.js +0 -2
- package/dist/src/graphql/system/types.js.map +0 -1
- package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts +0 -57
- package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts.map +0 -1
- package/dist/src/graphql/temp-hack-rwa-type-defs.js +0 -2
- package/dist/src/graphql/temp-hack-rwa-type-defs.js.map +0 -1
- package/dist/src/graphql/types.d.ts +0 -103
- package/dist/src/graphql/types.d.ts.map +0 -1
- package/dist/src/graphql/types.js +0 -2
- package/dist/src/graphql/types.js.map +0 -1
- package/dist/src/graphql/utils.d.ts +0 -26
- package/dist/src/graphql/utils.d.ts.map +0 -1
- package/dist/src/graphql/utils.js +0 -100
- package/dist/src/graphql/utils.js.map +0 -1
- package/dist/src/graphql/websocket.d.ts +0 -3
- package/dist/src/graphql/websocket.d.ts.map +0 -1
- package/dist/src/graphql/websocket.js +0 -15
- package/dist/src/graphql/websocket.js.map +0 -1
- package/dist/src/migrations/001_create_document_permissions.d.ts +0 -4
- package/dist/src/migrations/001_create_document_permissions.d.ts.map +0 -1
- package/dist/src/migrations/001_create_document_permissions.js +0 -91
- package/dist/src/migrations/001_create_document_permissions.js.map +0 -1
- package/dist/src/migrations/index.d.ts +0 -10
- package/dist/src/migrations/index.d.ts.map +0 -1
- package/dist/src/migrations/index.js +0 -56
- package/dist/src/migrations/index.js.map +0 -1
- package/dist/src/packages/import-loader.d.ts +0 -16
- package/dist/src/packages/import-loader.d.ts.map +0 -1
- package/dist/src/packages/import-loader.js +0 -61
- package/dist/src/packages/import-loader.js.map +0 -1
- package/dist/src/packages/import-resolver.d.ts +0 -5
- package/dist/src/packages/import-resolver.d.ts.map +0 -1
- package/dist/src/packages/import-resolver.js +0 -127
- package/dist/src/packages/import-resolver.js.map +0 -1
- package/dist/src/packages/package-manager.d.ts +0 -34
- package/dist/src/packages/package-manager.d.ts.map +0 -1
- package/dist/src/packages/package-manager.js +0 -213
- package/dist/src/packages/package-manager.js.map +0 -1
- package/dist/src/packages/types.d.ts +0 -39
- package/dist/src/packages/types.d.ts.map +0 -1
- package/dist/src/packages/types.js +0 -2
- package/dist/src/packages/types.js.map +0 -1
- package/dist/src/packages/util.d.ts +0 -27
- package/dist/src/packages/util.d.ts.map +0 -1
- package/dist/src/packages/util.js +0 -97
- package/dist/src/packages/util.js.map +0 -1
- package/dist/src/packages/vite-loader.d.ts +0 -24
- package/dist/src/packages/vite-loader.d.ts.map +0 -1
- package/dist/src/packages/vite-loader.js +0 -172
- package/dist/src/packages/vite-loader.js.map +0 -1
- package/dist/src/server.d.ts +0 -73
- package/dist/src/server.d.ts.map +0 -1
- package/dist/src/server.js +0 -431
- package/dist/src/server.js.map +0 -1
- package/dist/src/services/auth.service.d.ts +0 -68
- package/dist/src/services/auth.service.d.ts.map +0 -1
- package/dist/src/services/auth.service.js +0 -199
- package/dist/src/services/auth.service.js.map +0 -1
- package/dist/src/services/document-permission.service.d.ts +0 -201
- package/dist/src/services/document-permission.service.d.ts.map +0 -1
- package/dist/src/services/document-permission.service.js +0 -636
- package/dist/src/services/document-permission.service.js.map +0 -1
- package/dist/src/sync/types.d.ts +0 -10
- package/dist/src/sync/types.d.ts.map +0 -1
- package/dist/src/sync/types.js +0 -2
- package/dist/src/sync/types.js.map +0 -1
- package/dist/src/sync/utils.d.ts +0 -7
- package/dist/src/sync/utils.d.ts.map +0 -1
- package/dist/src/sync/utils.js +0 -78
- package/dist/src/sync/utils.js.map +0 -1
- package/dist/src/tracing.d.ts +0 -4
- package/dist/src/tracing.d.ts.map +0 -1
- package/dist/src/tracing.js +0 -122
- package/dist/src/tracing.js.map +0 -1
- package/dist/src/types.d.ts +0 -18
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -2
- package/dist/src/types.js.map +0 -1
- package/dist/src/utils/auth.d.ts +0 -3
- package/dist/src/utils/auth.d.ts.map +0 -1
- package/dist/src/utils/auth.js +0 -19
- package/dist/src/utils/auth.js.map +0 -1
- package/dist/src/utils/create-schema.d.ts +0 -11
- package/dist/src/utils/create-schema.d.ts.map +0 -1
- package/dist/src/utils/create-schema.js +0 -322
- package/dist/src/utils/create-schema.js.map +0 -1
- package/dist/src/utils/db.d.ts +0 -74
- package/dist/src/utils/db.d.ts.map +0 -1
- package/dist/src/utils/db.js +0 -101
- package/dist/src/utils/db.js.map +0 -1
- package/dist/src/utils/drive-url.d.ts +0 -2
- package/dist/src/utils/drive-url.d.ts.map +0 -1
- package/dist/src/utils/drive-url.js +0 -3
- package/dist/src/utils/drive-url.js.map +0 -1
- package/dist/src/utils/index.d.ts +0 -4
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/index.js +0 -4
- package/dist/src/utils/index.js.map +0 -1
- package/dist/test/benchmarks/load.bench.d.ts +0 -2
- package/dist/test/benchmarks/load.bench.d.ts.map +0 -1
- package/dist/test/benchmarks/load.bench.js +0 -73
- package/dist/test/benchmarks/load.bench.js.map +0 -1
- package/dist/test/benchmarks/sync.bench.d.ts +0 -2
- package/dist/test/benchmarks/sync.bench.d.ts.map +0 -1
- package/dist/test/benchmarks/sync.bench.js +0 -119
- package/dist/test/benchmarks/sync.bench.js.map +0 -1
- package/dist/test/document-permission.service.test.d.ts +0 -2
- package/dist/test/document-permission.service.test.d.ts.map +0 -1
- package/dist/test/document-permission.service.test.js +0 -480
- package/dist/test/document-permission.service.test.js.map +0 -1
- package/dist/test/drive-handlers.d.ts +0 -4
- package/dist/test/drive-handlers.d.ts.map +0 -1
- package/dist/test/drive-handlers.js +0 -39
- package/dist/test/drive-handlers.js.map +0 -1
- package/dist/test/drive-subgraph-permissions.test.d.ts +0 -2
- package/dist/test/drive-subgraph-permissions.test.d.ts.map +0 -1
- package/dist/test/drive-subgraph-permissions.test.js +0 -195
- package/dist/test/drive-subgraph-permissions.test.js.map +0 -1
- package/dist/test/drive.test.d.ts +0 -2
- package/dist/test/drive.test.d.ts.map +0 -1
- package/dist/test/drive.test.js +0 -142
- package/dist/test/drive.test.js.map +0 -1
- package/dist/test/identity-integration.test.d.ts +0 -2
- package/dist/test/identity-integration.test.d.ts.map +0 -1
- package/dist/test/identity-integration.test.js +0 -349
- package/dist/test/identity-integration.test.js.map +0 -1
- package/dist/test/index.d.ts +0 -3
- package/dist/test/index.d.ts.map +0 -1
- package/dist/test/index.js +0 -3
- package/dist/test/index.js.map +0 -1
- package/dist/test/permissions-integration.test.d.ts +0 -2
- package/dist/test/permissions-integration.test.d.ts.map +0 -1
- package/dist/test/permissions-integration.test.js +0 -421
- package/dist/test/permissions-integration.test.js.map +0 -1
- package/dist/test/pull-responder-transmitter.test.d.ts +0 -2
- package/dist/test/pull-responder-transmitter.test.d.ts.map +0 -1
- package/dist/test/pull-responder-transmitter.test.js +0 -220
- package/dist/test/pull-responder-transmitter.test.js.map +0 -1
- package/dist/test/push-transmitter.test.d.ts +0 -2
- package/dist/test/push-transmitter.test.d.ts.map +0 -1
- package/dist/test/push-transmitter.test.js +0 -179
- package/dist/test/push-transmitter.test.js.map +0 -1
- package/dist/test/reactor-adapters.test.d.ts +0 -2
- package/dist/test/reactor-adapters.test.d.ts.map +0 -1
- package/dist/test/reactor-adapters.test.js +0 -379
- package/dist/test/reactor-adapters.test.js.map +0 -1
- package/dist/test/reactor-client.test.d.ts +0 -2
- package/dist/test/reactor-client.test.d.ts.map +0 -1
- package/dist/test/reactor-client.test.js +0 -212
- package/dist/test/reactor-client.test.js.map +0 -1
- package/dist/test/reactor-resolvers.test.d.ts +0 -2
- package/dist/test/reactor-resolvers.test.d.ts.map +0 -1
- package/dist/test/reactor-resolvers.test.js +0 -261
- package/dist/test/reactor-resolvers.test.js.map +0 -1
- package/dist/test/reactor-subgraph-permissions.test.d.ts +0 -2
- package/dist/test/reactor-subgraph-permissions.test.d.ts.map +0 -1
- package/dist/test/reactor-subgraph-permissions.test.js +0 -400
- package/dist/test/reactor-subgraph-permissions.test.js.map +0 -1
- package/dist/test/router.test.d.ts +0 -2
- package/dist/test/router.test.d.ts.map +0 -1
- package/dist/test/router.test.js +0 -38
- package/dist/test/router.test.js.map +0 -1
- package/dist/test/subscriptions.test.d.ts +0 -2
- package/dist/test/subscriptions.test.d.ts.map +0 -1
- package/dist/test/subscriptions.test.js +0 -246
- package/dist/test/subscriptions.test.js.map +0 -1
- package/dist/test/system.test.d.ts +0 -2
- package/dist/test/system.test.d.ts.map +0 -1
- package/dist/test/system.test.js +0 -211
- package/dist/test/system.test.js.map +0 -1
- package/dist/test/three-reactor-gql-sync.test.d.ts +0 -2
- package/dist/test/three-reactor-gql-sync.test.d.ts.map +0 -1
- package/dist/test/three-reactor-gql-sync.test.js +0 -368
- package/dist/test/three-reactor-gql-sync.test.js.map +0 -1
- package/dist/test/two-reactor-gql-catchup-duplicate.test.d.ts +0 -2
- package/dist/test/two-reactor-gql-catchup-duplicate.test.d.ts.map +0 -1
- package/dist/test/two-reactor-gql-catchup-duplicate.test.js +0 -264
- package/dist/test/two-reactor-gql-catchup-duplicate.test.js.map +0 -1
- package/dist/test/two-reactor-gql-sync.test.d.ts +0 -2
- package/dist/test/two-reactor-gql-sync.test.d.ts.map +0 -1
- package/dist/test/two-reactor-gql-sync.test.js +0 -348
- package/dist/test/two-reactor-gql-sync.test.js.map +0 -1
- package/dist/test/utils/gql-resolver-bridge.d.ts +0 -12
- package/dist/test/utils/gql-resolver-bridge.d.ts.map +0 -1
- package/dist/test/utils/gql-resolver-bridge.js +0 -60
- package/dist/test/utils/gql-resolver-bridge.js.map +0 -1
- package/dist/test/utils.d.ts +0 -10
- package/dist/test/utils.d.ts.map +0 -1
- package/dist/test/utils.js +0 -23
- package/dist/test/utils.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -38
- package/dist/vitest.config.js.map +0 -1
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
import { verifyAuthBearerToken } from "@renown/sdk";
|
|
2
|
-
export class AuthService {
|
|
3
|
-
config;
|
|
4
|
-
constructor(config) {
|
|
5
|
-
this.config = config;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Middleware function to authenticate requests
|
|
9
|
-
*/
|
|
10
|
-
async authenticate(req, res, next) {
|
|
11
|
-
if (!this.config.enabled ||
|
|
12
|
-
req.method === "OPTIONS" ||
|
|
13
|
-
req.method === "GET") {
|
|
14
|
-
next();
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
// Set auth lists on request
|
|
18
|
-
req.admins = this.config.admins;
|
|
19
|
-
req.users = this.config.users;
|
|
20
|
-
req.guests = this.config.guests;
|
|
21
|
-
req.auth_enabled = this.config.enabled;
|
|
22
|
-
req.freeEntry = this.config.freeEntry;
|
|
23
|
-
const token = req.headers.authorization?.split(" ")[1];
|
|
24
|
-
if (!token) {
|
|
25
|
-
res.status(400).json({ error: "Missing authorization token" });
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
try {
|
|
29
|
-
const verified = (await this.verifyToken(token));
|
|
30
|
-
if (!verified) {
|
|
31
|
-
res.status(401).json({ error: "Verification failed" });
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
const user = this.extractUserFromVerification(verified);
|
|
35
|
-
if (!user) {
|
|
36
|
-
res.status(401).json({ error: "Missing credentials" });
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
// Verify that the credentials still exist on the Renown API
|
|
40
|
-
// This can be skipped via config (useful for testing or when Renown API is unavailable)
|
|
41
|
-
if (!this.config.skipCredentialVerification) {
|
|
42
|
-
const credentialExists = await this.verifyCredentialExists(user.address, user.chainId, verified.issuer);
|
|
43
|
-
if (!credentialExists) {
|
|
44
|
-
res.status(401).json({ error: "Credentials no longer valid" });
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
req.user = user;
|
|
49
|
-
// Note: We no longer block users here based on global allowed lists.
|
|
50
|
-
// The resolver layer handles authorization based on:
|
|
51
|
-
// 1. Global roles (admin/user/guest) for unrestricted access
|
|
52
|
-
// 2. Document-level permissions (direct or via groups) for specific documents
|
|
53
|
-
// This allows users who have document-specific permissions (e.g., via groups)
|
|
54
|
-
// to access those documents even if they're not in the global allowed lists.
|
|
55
|
-
next();
|
|
56
|
-
}
|
|
57
|
-
catch {
|
|
58
|
-
res.status(401).json({ error: "Authentication failed" });
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
async authenticateWebSocketConnection(connectionParams) {
|
|
62
|
-
if (!this.config.enabled) {
|
|
63
|
-
return null;
|
|
64
|
-
}
|
|
65
|
-
const authHeader = connectionParams.authorization;
|
|
66
|
-
if (!authHeader) {
|
|
67
|
-
throw new Error("Missing authorization in connection parameters");
|
|
68
|
-
}
|
|
69
|
-
const token = authHeader.split(" ")[1];
|
|
70
|
-
if (!token) {
|
|
71
|
-
throw new Error("Invalid authorization format");
|
|
72
|
-
}
|
|
73
|
-
const verified = (await this.verifyToken(token));
|
|
74
|
-
if (!verified) {
|
|
75
|
-
throw new Error("Token verification failed");
|
|
76
|
-
}
|
|
77
|
-
const user = this.extractUserFromVerification(verified);
|
|
78
|
-
if (!user) {
|
|
79
|
-
throw new Error("Invalid credentials");
|
|
80
|
-
}
|
|
81
|
-
// Verify that the credentials still exist on the Renown API
|
|
82
|
-
// This can be skipped via config (useful for testing or when Renown API is unavailable)
|
|
83
|
-
if (!this.config.skipCredentialVerification) {
|
|
84
|
-
const credentialExists = await this.verifyCredentialExists(user.address, user.chainId, verified.issuer);
|
|
85
|
-
if (!credentialExists) {
|
|
86
|
-
throw new Error("Credentials no longer valid");
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
// Note: We no longer block based on global allowed lists.
|
|
90
|
-
// Authorization is handled at the resolver level based on document permissions.
|
|
91
|
-
return user;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Verify the auth bearer token
|
|
95
|
-
*/
|
|
96
|
-
async verifyToken(token) {
|
|
97
|
-
return await verifyAuthBearerToken(token);
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Extract user information from verification result
|
|
101
|
-
*/
|
|
102
|
-
extractUserFromVerification(verified) {
|
|
103
|
-
if (!verified)
|
|
104
|
-
return null;
|
|
105
|
-
try {
|
|
106
|
-
const { address, chainId, networkId } = verified.verifiableCredential?.credentialSubject || {};
|
|
107
|
-
if (!address || !chainId || !networkId) {
|
|
108
|
-
return null;
|
|
109
|
-
}
|
|
110
|
-
return {
|
|
111
|
-
address,
|
|
112
|
-
chainId,
|
|
113
|
-
networkId,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
catch {
|
|
117
|
-
return null;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Check if user address is in allowed lists
|
|
122
|
-
*/
|
|
123
|
-
isUserAllowed(address) {
|
|
124
|
-
const all = [
|
|
125
|
-
...this.config.admins,
|
|
126
|
-
...this.config.users,
|
|
127
|
-
...this.config.guests,
|
|
128
|
-
];
|
|
129
|
-
return all.includes(address.toLocaleLowerCase()) || this.config.freeEntry;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Get additional context fields for GraphQL
|
|
133
|
-
*/
|
|
134
|
-
getAdditionalContextFields() {
|
|
135
|
-
if (!this.config.enabled) {
|
|
136
|
-
return {
|
|
137
|
-
isGuest: (address) => true,
|
|
138
|
-
isUser: (address) => true,
|
|
139
|
-
isAdmin: (address) => true,
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
return {
|
|
143
|
-
isGuest: (address) => this.config.enabled &&
|
|
144
|
-
(this.config.freeEntry ||
|
|
145
|
-
this.config.guests?.includes(address.toLowerCase())),
|
|
146
|
-
isUser: (address) => this.config.enabled &&
|
|
147
|
-
this.config.users?.includes(address.toLowerCase()),
|
|
148
|
-
isAdmin: (address) => this.config.enabled &&
|
|
149
|
-
this.config.admins?.includes(address.toLowerCase()),
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Get user context for GraphQL
|
|
154
|
-
*/
|
|
155
|
-
getUserContext(user) {
|
|
156
|
-
if (!user)
|
|
157
|
-
return {};
|
|
158
|
-
return {
|
|
159
|
-
user: {
|
|
160
|
-
address: user.address.toLowerCase(),
|
|
161
|
-
chainId: user.chainId,
|
|
162
|
-
networkId: user.networkId,
|
|
163
|
-
},
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Verify that the credential still exists on the Renown API
|
|
168
|
-
*/
|
|
169
|
-
async verifyCredentialExists(address, chainId, connectId) {
|
|
170
|
-
const url = `https://www.renown.id/api/auth/credential?address=${address}&chainId=${chainId}&connectId=${connectId}`;
|
|
171
|
-
console.log("url", url);
|
|
172
|
-
try {
|
|
173
|
-
const response = await fetch(url, {
|
|
174
|
-
method: "GET",
|
|
175
|
-
});
|
|
176
|
-
const body = (await response.json());
|
|
177
|
-
const credential = body.credential;
|
|
178
|
-
const connectIdVerfied = credential.credentialSubject.id;
|
|
179
|
-
const addressVerfied = credential.issuer.id.split(":")[4];
|
|
180
|
-
const chainIdVerfied = credential.issuer.id.split(":")[3];
|
|
181
|
-
if (response.status !== 200) {
|
|
182
|
-
return false;
|
|
183
|
-
}
|
|
184
|
-
console.log("connectIdVerfied", connectIdVerfied);
|
|
185
|
-
console.log("connectId", connectId);
|
|
186
|
-
console.log("addressVerfied", addressVerfied);
|
|
187
|
-
console.log("address", address);
|
|
188
|
-
console.log("chainIdVerfied", chainIdVerfied);
|
|
189
|
-
console.log("chainId", chainId);
|
|
190
|
-
return (connectIdVerfied === connectId &&
|
|
191
|
-
addressVerfied.toLocaleLowerCase() === address.toLocaleLowerCase() &&
|
|
192
|
-
chainIdVerfied === chainId.toString());
|
|
193
|
-
}
|
|
194
|
-
catch {
|
|
195
|
-
return false;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
//# sourceMappingURL=auth.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,201 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"document-permission.service.d.ts","sourceRoot":"","sources":["../../../src/services/document-permission.service.ts"],"names":[],"mappings":"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"}
|