@opendatalabs/personal-server-ts-server 0.0.1-canary.01ca694 → 0.0.1-canary.052d47e
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/api-auth.d.ts +16 -2
- package/dist/api-auth.d.ts.map +1 -1
- package/dist/api-auth.js +72 -22
- package/dist/api-auth.js.map +1 -1
- package/dist/app.d.ts +51 -3
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +72 -11
- package/dist/app.js.map +1 -1
- package/dist/bootstrap.d.ts +25 -5
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +294 -37
- package/dist/bootstrap.js.map +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +4 -2
- package/dist/client.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +6 -14
- package/dist/config/loader.js.map +1 -1
- package/dist/enclave-main.d.ts +10 -0
- package/dist/enclave-main.d.ts.map +1 -0
- package/dist/enclave-main.js +115 -0
- package/dist/enclave-main.js.map +1 -0
- package/dist/index.js +6 -22
- package/dist/index.js.map +1 -1
- package/dist/jobs/types.d.ts +17 -0
- package/dist/jobs/types.d.ts.map +1 -0
- package/dist/jobs/types.js +3 -0
- package/dist/jobs/types.js.map +1 -0
- package/dist/jobs/worker.d.ts +30 -0
- package/dist/jobs/worker.d.ts.map +1 -0
- package/dist/jobs/worker.js +217 -0
- package/dist/jobs/worker.js.map +1 -0
- package/dist/listen.d.ts +11 -0
- package/dist/listen.d.ts.map +1 -0
- package/dist/listen.js +23 -0
- package/dist/listen.js.map +1 -0
- package/dist/logging/access-log.d.ts +2 -13
- package/dist/logging/access-log.d.ts.map +1 -1
- package/dist/logging/access-log.js.map +1 -1
- package/dist/middleware/cors.d.ts +18 -0
- package/dist/middleware/cors.d.ts.map +1 -0
- package/dist/middleware/cors.js +51 -0
- package/dist/middleware/cors.js.map +1 -0
- package/dist/middleware/web3-auth.d.ts +1 -0
- package/dist/middleware/web3-auth.d.ts.map +1 -1
- package/dist/middleware/web3-auth.js +6 -0
- package/dist/middleware/web3-auth.js.map +1 -1
- package/dist/migrations/detect-stuck-version-ledger.d.ts +43 -0
- package/dist/migrations/detect-stuck-version-ledger.d.ts.map +1 -0
- package/dist/migrations/detect-stuck-version-ledger.js +73 -0
- package/dist/migrations/detect-stuck-version-ledger.js.map +1 -0
- package/dist/migrations/local-state.d.ts +14 -0
- package/dist/migrations/local-state.d.ts.map +1 -1
- package/dist/migrations/local-state.js +27 -0
- package/dist/migrations/local-state.js.map +1 -1
- package/dist/migrations/state-migrations.d.ts +78 -0
- package/dist/migrations/state-migrations.d.ts.map +1 -0
- package/dist/migrations/state-migrations.js +72 -0
- package/dist/migrations/state-migrations.js.map +1 -0
- package/dist/pending-blob-deletions.d.ts +10 -0
- package/dist/pending-blob-deletions.d.ts.map +1 -0
- package/dist/pending-blob-deletions.js +38 -0
- package/dist/pending-blob-deletions.js.map +1 -0
- package/dist/routes/data.d.ts +61 -10
- package/dist/routes/data.d.ts.map +1 -1
- package/dist/routes/data.js +19 -12
- package/dist/routes/data.js.map +1 -1
- package/dist/routes/derivatives.d.ts +33 -0
- package/dist/routes/derivatives.d.ts.map +1 -0
- package/dist/routes/derivatives.js +33 -0
- package/dist/routes/derivatives.js.map +1 -0
- package/dist/routes/enclave-jobs.d.ts +9 -0
- package/dist/routes/enclave-jobs.d.ts.map +1 -0
- package/dist/routes/enclave-jobs.js +104 -0
- package/dist/routes/enclave-jobs.js.map +1 -0
- package/dist/routes/mcp.d.ts +23 -4
- package/dist/routes/mcp.d.ts.map +1 -1
- package/dist/routes/mcp.js +161 -24
- package/dist/routes/mcp.js.map +1 -1
- package/dist/routes/ui-registration.d.ts +2 -0
- package/dist/routes/ui-registration.d.ts.map +1 -1
- package/dist/routes/ui-registration.js +4 -2
- package/dist/routes/ui-registration.js.map +1 -1
- package/dist/routes/write-session.d.ts +37 -0
- package/dist/routes/write-session.d.ts.map +1 -0
- package/dist/routes/write-session.js +34 -0
- package/dist/routes/write-session.js.map +1 -0
- package/dist/storage/hierarchy.d.ts +7 -0
- package/dist/storage/hierarchy.d.ts.map +1 -1
- package/dist/storage/hierarchy.js +42 -1
- package/dist/storage/hierarchy.js.map +1 -1
- package/dist/storage/index-manager.d.ts +25 -2
- package/dist/storage/index-manager.d.ts.map +1 -1
- package/dist/storage/index-manager.js +42 -4
- package/dist/storage/index-manager.js.map +1 -1
- package/dist/storage/index-schema.d.ts +1 -1
- package/dist/storage/index-schema.d.ts.map +1 -1
- package/dist/storage/index-schema.js +23 -2
- package/dist/storage/index-schema.js.map +1 -1
- package/dist/storage/node-data-storage.d.ts.map +1 -1
- package/dist/storage/node-data-storage.js +34 -1
- package/dist/storage/node-data-storage.js.map +1 -1
- package/dist/storage/question-store.d.ts +9 -0
- package/dist/storage/question-store.d.ts.map +1 -0
- package/dist/storage/question-store.js +151 -0
- package/dist/storage/question-store.js.map +1 -0
- package/dist/sync-cursor.d.ts.map +1 -1
- package/dist/sync-cursor.js.map +1 -1
- package/dist/tunnel/manager.d.ts +15 -1
- package/dist/tunnel/manager.d.ts.map +1 -1
- package/dist/tunnel/manager.js +34 -7
- package/dist/tunnel/manager.js.map +1 -1
- package/dist/ui/index.html +1 -2
- package/dist/ui/ps-lite-debug.d.ts.map +1 -1
- package/dist/ui/ps-lite-debug.js +13992 -5161
- package/dist/ui/ps-lite-debug.js.map +1 -1
- package/package.json +7 -7
- package/dist/grant-fee-verifier.d.ts +0 -27
- package/dist/grant-fee-verifier.d.ts.map +0 -1
- package/dist/grant-fee-verifier.js +0 -40
- package/dist/grant-fee-verifier.js.map +0 -1
- package/dist/middleware/data-read-policy.d.ts +0 -11
- package/dist/middleware/data-read-policy.d.ts.map +0 -1
- package/dist/middleware/data-read-policy.js +0 -39
- package/dist/middleware/data-read-policy.js.map +0 -1
- package/dist/schema-registrar.d.ts +0 -26
- package/dist/schema-registrar.d.ts.map +0 -1
- package/dist/schema-registrar.js +0 -61
- package/dist/schema-registrar.js.map +0 -1
package/dist/api-auth.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type SessionTokenVerifierPort } from "@opendatalabs/personal-server-ts-core/auth";
|
|
2
2
|
import type { PersonalServerApiAuthPort } from "@opendatalabs/personal-server-ts-core/api";
|
|
3
|
-
import
|
|
3
|
+
import { type WriteProofReplayStore, type WriteSessionStore } from "@opendatalabs/personal-server-ts-core/write";
|
|
4
|
+
import type { DataStoragePort, RuntimeAvailabilityPort } from "@opendatalabs/personal-server-ts-core/ports";
|
|
4
5
|
import type { GatewayClient } from "@opendatalabs/vana-sdk/node";
|
|
5
6
|
export interface ServerApiAuthDeps {
|
|
6
7
|
serverOrigin: string | (() => string);
|
|
@@ -10,8 +11,21 @@ export interface ServerApiAuthDeps {
|
|
|
10
11
|
accessToken?: string;
|
|
11
12
|
tokenStore?: SessionTokenVerifierPort;
|
|
12
13
|
dataStorage?: Pick<DataStoragePort, "findEntry">;
|
|
13
|
-
feeVerifier?: FeeVerifierPort;
|
|
14
14
|
runtimeAvailability?: RuntimeAvailabilityPort;
|
|
15
|
+
/**
|
|
16
|
+
* Write API sessions. When present, POST /v1/data/:scope accepts a bearer
|
|
17
|
+
* write-session token (minted by POST /v1/write/session) and authorizes the
|
|
18
|
+
* write as the session's builder via verifyDataWritePolicy + the
|
|
19
|
+
* X-Vana-Write-Signature attribution proof. Absent = owner-only ingest,
|
|
20
|
+
* exactly as before.
|
|
21
|
+
*/
|
|
22
|
+
writeSessionStore?: WriteSessionStore;
|
|
23
|
+
/**
|
|
24
|
+
* Replay guard for per-write proofs (X-Vana-Write-Signature). Defaults to
|
|
25
|
+
* an in-memory store so replay protection is always on when write sessions
|
|
26
|
+
* are enabled; hosts may supply a shared store.
|
|
27
|
+
*/
|
|
28
|
+
writeProofReplayStore?: WriteProofReplayStore;
|
|
15
29
|
}
|
|
16
30
|
export declare function createServerApiAuth(deps: ServerApiAuthDeps): PersonalServerApiAuthPort;
|
|
17
31
|
//# sourceMappingURL=api-auth.d.ts.map
|
package/dist/api-auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-auth.d.ts","sourceRoot":"","sources":["../src/api-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EACV,yBAAyB,
|
|
1
|
+
{"version":3,"file":"api-auth.d.ts","sourceRoot":"","sources":["../src/api-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EACV,yBAAyB,EAG1B,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACvB,MAAM,6CAA6C,CAAC;AAMrD,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACxB,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,WAAW,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACjD,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAC9C;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C;AA6CD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,iBAAiB,GACtB,yBAAyB,CAiI3B"}
|
package/dist/api-auth.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { authenticateRequest, } from "@opendatalabs/personal-server-ts-core/auth";
|
|
2
2
|
import { verifyDataReadPolicy } from "@opendatalabs/personal-server-ts-core/policy";
|
|
3
|
+
import { createInMemoryWriteProofReplayStore, createWriteSessionAuthorization, } from "@opendatalabs/personal-server-ts-core/write";
|
|
3
4
|
import { NotOwnerError, ProtocolError, UnregisteredBuilderError, } from "@opendatalabs/personal-server-ts-core/errors";
|
|
4
5
|
function serverNotConfigured() {
|
|
5
6
|
return new ProtocolError(500, "SERVER_NOT_CONFIGURED", "Server owner address not configured. Set VANA_MASTER_KEY_SIGNATURE environment variable.");
|
|
@@ -18,30 +19,75 @@ async function authenticate(request, deps) {
|
|
|
18
19
|
});
|
|
19
20
|
}
|
|
20
21
|
async function assertRegisteredBuilder(gateway, signer) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
throw new UnregisteredBuilderError();
|
|
22
|
+
// vana-sdk 3.14.0's GatewayClient always exposes isRegisteredBuilder, so the
|
|
23
|
+
// legacy getBuilder feature-detect fallback is now unreachable (its else
|
|
24
|
+
// branch narrows the client to `never`). Query registration directly, matching
|
|
25
|
+
// middleware/builder-check.ts.
|
|
26
|
+
if (await gateway.isRegisteredBuilder(signer))
|
|
27
|
+
return;
|
|
28
|
+
throw new UnregisteredBuilderError();
|
|
29
29
|
}
|
|
30
30
|
export function createServerApiAuth(deps) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
31
|
+
const writeProofReplayStore = deps.writeProofReplayStore ?? createInMemoryWriteProofReplayStore();
|
|
32
|
+
// The write-session half of this port is protocol, not runtime: the browser
|
|
33
|
+
// build's adapters call the same factory, so a delegated write is checked
|
|
34
|
+
// identically wherever the Personal Server runs.
|
|
35
|
+
const writeSessions = createWriteSessionAuthorization({
|
|
36
|
+
serverOrigin: deps.serverOrigin,
|
|
37
|
+
serverOwner: deps.serverOwner,
|
|
38
|
+
sessionStore: deps.writeSessionStore,
|
|
39
|
+
replayStore: writeProofReplayStore,
|
|
40
|
+
policyPorts: {
|
|
41
|
+
authSessionVerifier: deps.gateway,
|
|
42
|
+
grantVerifier: deps.gateway,
|
|
43
|
+
runtimeAvailability: deps.runtimeAvailability,
|
|
44
|
+
// Fee seam intentionally not wired: builder writes are free in the
|
|
45
|
+
// demo slice (write fee mechanics undecided).
|
|
44
46
|
},
|
|
47
|
+
});
|
|
48
|
+
async function authorizeOwner(request) {
|
|
49
|
+
const result = await authenticate(request, deps);
|
|
50
|
+
if (result.isPolicyBypass)
|
|
51
|
+
return;
|
|
52
|
+
if (!deps.serverOwner)
|
|
53
|
+
throw serverNotConfigured();
|
|
54
|
+
if (!isOwner(result.auth.signer, deps.serverOwner)) {
|
|
55
|
+
throw new NotOwnerError({
|
|
56
|
+
signer: result.auth.signer,
|
|
57
|
+
expected: deps.serverOwner,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Delegated ingest. A bearer token that resolves to a live write session
|
|
63
|
+
* authorizes as the session builder: the write policy re-runs against the
|
|
64
|
+
* LIVE grant (revocation / expiry / scope coverage stay authoritative per
|
|
65
|
+
* write), and the builder's X-Vana-Write-Signature payload proof is
|
|
66
|
+
* verified and returned for the handler to store with the record. Any
|
|
67
|
+
* other credential (owner Web3Signed, dev token, control-plane token,
|
|
68
|
+
* unknown bearer) falls through to the owner path unchanged.
|
|
69
|
+
*/
|
|
70
|
+
async function authorizeWrite(input) {
|
|
71
|
+
const delegated = await writeSessions.authorizeSessionWrite(input);
|
|
72
|
+
if (delegated)
|
|
73
|
+
return delegated;
|
|
74
|
+
await authorizeOwner(input.request);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Identity-only recognition of a write-session caller: the bearer must
|
|
78
|
+
* resolve to a live session and the request must carry that builder's
|
|
79
|
+
* valid proof, but NO grant policy runs (there is no scope to run it
|
|
80
|
+
* against). Callers use it only to choose between error shapes, never to
|
|
81
|
+
* release data, so a revoked or narrowed grant getting a 404 instead of a
|
|
82
|
+
* 401 discloses nothing. Returns undefined for any other credential.
|
|
83
|
+
*/
|
|
84
|
+
async function authorizeWriteSession(request) {
|
|
85
|
+
return writeSessions.recognizeWriteSession(request);
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
authorizeOwner,
|
|
89
|
+
authorizeWrite,
|
|
90
|
+
authorizeWriteSession,
|
|
45
91
|
async authorizeBuilderList(request) {
|
|
46
92
|
const result = await authenticate(request, deps);
|
|
47
93
|
if (result.isPolicyBypass ||
|
|
@@ -76,6 +122,10 @@ export function createServerApiAuth(deps) {
|
|
|
76
122
|
result.mechanism === "control-plane-token")) {
|
|
77
123
|
return { builder: result.auth.signer, grantId: "owner" };
|
|
78
124
|
}
|
|
125
|
+
// Fail closed: a builder grant read can't be authorized if we can't
|
|
126
|
+
// identify this server's owner to bind the grant to.
|
|
127
|
+
if (!deps.serverOwner)
|
|
128
|
+
throw serverNotConfigured();
|
|
79
129
|
const selectedEntry = deps.dataStorage?.findEntry({
|
|
80
130
|
scope: input.scope,
|
|
81
131
|
fileId: input.fileId,
|
|
@@ -85,10 +135,10 @@ export function createServerApiAuth(deps) {
|
|
|
85
135
|
grantId: result.auth.payload.grantId ?? input.grantId,
|
|
86
136
|
requestedScope: input.scope,
|
|
87
137
|
fileId: input.fileId ?? selectedEntry?.fileId ?? undefined,
|
|
138
|
+
serverOwner: deps.serverOwner,
|
|
88
139
|
}, {
|
|
89
140
|
authSessionVerifier: deps.gateway,
|
|
90
141
|
grantVerifier: deps.gateway,
|
|
91
|
-
feeVerifier: deps.feeVerifier,
|
|
92
142
|
runtimeAvailability: deps.runtimeAvailability,
|
|
93
143
|
});
|
|
94
144
|
return { builder: result.auth.signer, grantId: grant.id };
|
package/dist/api-auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-auth.js","sourceRoot":"","sources":["../src/api-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAGpB,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"api-auth.js","sourceRoot":"","sources":["../src/api-auth.ts"],"names":[],"mappings":"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"}
|
package/dist/app.d.ts
CHANGED
|
@@ -5,13 +5,19 @@ import type { DataPortabilityGatewayConfig, GatewayClient } from "@opendatalabs/
|
|
|
5
5
|
import type { ServerConfig } from "@opendatalabs/personal-server-ts-core/schemas";
|
|
6
6
|
import type { AccessLogWriter } from "@opendatalabs/personal-server-ts-core/logging/access-log";
|
|
7
7
|
import type { AccessLogReader } from "@opendatalabs/personal-server-ts-core/logging/access-reader";
|
|
8
|
+
import type { PersonalServerReadFulfillmentReporter } from "@opendatalabs/personal-server-ts-core/api";
|
|
8
9
|
import { type HealthDeps } from "./routes/health.js";
|
|
10
|
+
import { type WriteProofReplayStore, type WriteSessionStore } from "@opendatalabs/personal-server-ts-core/write";
|
|
9
11
|
import { McpActivityRecorder, type McpConnectionStore, type McpOAuthAuthorizationStore } from "@opendatalabs/personal-server-ts-core/mcp";
|
|
10
|
-
import type { SyncManager } from "@opendatalabs/personal-server-ts-core/sync";
|
|
12
|
+
import type { ScopeDeletionTracker, SyncManager } from "@opendatalabs/personal-server-ts-core/sync";
|
|
11
13
|
import type { ServerSigner } from "@opendatalabs/personal-server-ts-core/signing";
|
|
12
|
-
import type {
|
|
14
|
+
import type { LineageGatewayPort } from "@opendatalabs/personal-server-ts-core/lineage";
|
|
15
|
+
import type { QuestionStore, RecomputeScheduler } from "@opendatalabs/personal-server-ts-core/derivatives";
|
|
16
|
+
import type { DataStoragePort, RuntimeAvailabilityPort } from "@opendatalabs/personal-server-ts-core/ports";
|
|
13
17
|
import type { TokenStore } from "./token-store.js";
|
|
14
18
|
import type { Logger } from "pino";
|
|
19
|
+
import type { JobRequestEnvelope } from "@opendatalabs/vana-sdk/protocol/jobs";
|
|
20
|
+
import type { JobExecuteResponse } from "./jobs/types.js";
|
|
15
21
|
export interface IdentityInfo {
|
|
16
22
|
address: `0x${string}`;
|
|
17
23
|
publicKey: `0x${string}`;
|
|
@@ -34,6 +40,7 @@ export interface AppDeps {
|
|
|
34
40
|
config?: ServerConfig;
|
|
35
41
|
accessLogWriter: AccessLogWriter;
|
|
36
42
|
accessLogReader: AccessLogReader;
|
|
43
|
+
readFulfillmentReporter?: PersonalServerReadFulfillmentReporter;
|
|
37
44
|
cloudMode?: boolean;
|
|
38
45
|
devToken?: string;
|
|
39
46
|
ownerSignature?: `0x${string}`;
|
|
@@ -41,12 +48,40 @@ export interface AppDeps {
|
|
|
41
48
|
accessToken?: string;
|
|
42
49
|
configPath?: string;
|
|
43
50
|
syncManager?: SyncManager | null;
|
|
51
|
+
/** Read-side tombstone memory; reads of a deleted scope answer 410. */
|
|
52
|
+
scopeDeletions?: ScopeDeletionTracker;
|
|
44
53
|
serverSigner?: ServerSigner;
|
|
45
54
|
tokenStore?: TokenStore;
|
|
46
|
-
feeVerifier?: FeeVerifierPort;
|
|
47
55
|
runtimeAvailability?: RuntimeAvailabilityPort;
|
|
48
56
|
dataStorage?: DataStoragePort;
|
|
57
|
+
/**
|
|
58
|
+
* Gateway base URL — wired into the data route so the GET handler can
|
|
59
|
+
* forward validated X-PAYMENTs to POST /v1/escrow/pay via direct fetch.
|
|
60
|
+
*/
|
|
61
|
+
gatewayUrl?: string;
|
|
62
|
+
/**
|
|
63
|
+
* When true, GET /v1/data/:scope enforces X402 payment on every read.
|
|
64
|
+
* Off-by-default to keep dev / test setups frictionless.
|
|
65
|
+
*/
|
|
66
|
+
paymentEnabled?: boolean;
|
|
67
|
+
/** Derivative data: gateway lineage access for the data routes. */
|
|
68
|
+
lineageGateway?: LineageGatewayPort;
|
|
69
|
+
/**
|
|
70
|
+
* Derivative compute layer (docs/derivative-data-api.md, "Compute").
|
|
71
|
+
* Absent = /v1/derivatives answers 503 and writes trigger no recompute.
|
|
72
|
+
*/
|
|
73
|
+
derivativeCompute?: {
|
|
74
|
+
store: QuestionStore;
|
|
75
|
+
scheduler: RecomputeScheduler;
|
|
76
|
+
} | null;
|
|
49
77
|
getTunnelStatus?: HealthDeps["getTunnelStatus"];
|
|
78
|
+
/**
|
|
79
|
+
* Invoked when the /ui/api registration route confirms the server is
|
|
80
|
+
* registered with the gateway (fresh or pre-existing), so a
|
|
81
|
+
* registration-gated tunnel can start immediately instead of waiting for
|
|
82
|
+
* the bootstrap's gateway poll (BUI-611).
|
|
83
|
+
*/
|
|
84
|
+
onServerRegistered?: (serverId: string | null) => void;
|
|
50
85
|
/**
|
|
51
86
|
* MCP connection store shared between the `/mcp/:token` Streamable HTTP
|
|
52
87
|
* endpoint and the owner `/v1/mcp/connections` management surface. Defaults
|
|
@@ -57,6 +92,19 @@ export interface AppDeps {
|
|
|
57
92
|
mcpOAuthAuthorizationStore?: McpOAuthAuthorizationStore;
|
|
58
93
|
mcpOAuthApprovalUrl?: string | (() => string);
|
|
59
94
|
mcpActivityRecorder?: McpActivityRecorder;
|
|
95
|
+
/**
|
|
96
|
+
* Write API session store shared between POST /v1/write/session (which
|
|
97
|
+
* mints tokens) and the ingest endpoint (which redeems them). Defaults to
|
|
98
|
+
* an in-memory store, mirroring the MCP connection store default.
|
|
99
|
+
*/
|
|
100
|
+
writeSessionStore?: WriteSessionStore;
|
|
101
|
+
/**
|
|
102
|
+
* Replay guard for per-write proofs on delegated ingest. Defaults to an
|
|
103
|
+
* in-memory store (api-auth); hosts may supply a shared one.
|
|
104
|
+
*/
|
|
105
|
+
writeProofReplayStore?: WriteProofReplayStore;
|
|
106
|
+
profile?: "standard" | "enclave";
|
|
107
|
+
jobWorker?: (envelope: JobRequestEnvelope) => Promise<JobExecuteResponse>;
|
|
60
108
|
}
|
|
61
109
|
export declare function createApp(deps: AppDeps): Hono;
|
|
62
110
|
//# sourceMappingURL=app.d.ts.map
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/app.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { Hono } from "hono";
|
|
2
|
-
import { cors } from "hono/cors";
|
|
3
2
|
import { ProtocolError } from "@opendatalabs/personal-server-ts-core/errors";
|
|
4
3
|
import { healthRoute } from "./routes/health.js";
|
|
4
|
+
import { corsMiddleware } from "./middleware/cors.js";
|
|
5
5
|
import { dataRoutes } from "./routes/data.js";
|
|
6
|
+
import { writeSessionRoutes } from "./routes/write-session.js";
|
|
7
|
+
import { createInMemoryWriteProofReplayStore, createInMemoryWriteSessionStore, } from "@opendatalabs/personal-server-ts-core/write";
|
|
8
|
+
import { derivativesRoutes } from "./routes/derivatives.js";
|
|
6
9
|
import { grantsRoutes } from "./routes/grants.js";
|
|
7
10
|
import { accessLogsRoutes } from "./routes/access-logs.js";
|
|
8
11
|
import { syncRoutes } from "./routes/sync.js";
|
|
@@ -13,15 +16,18 @@ import { uiRegistrationRoutes } from "./routes/ui-registration.js";
|
|
|
13
16
|
import { uiRoute } from "./routes/ui.js";
|
|
14
17
|
import { authDeviceRoutes, createDeviceSessionLookup, } from "./routes/auth-device.js";
|
|
15
18
|
import { oauthTokenRoutes } from "./routes/oauth-token.js";
|
|
19
|
+
import { enclaveJobRoutes } from "./routes/enclave-jobs.js";
|
|
16
20
|
export function createApp(deps) {
|
|
17
21
|
const app = new Hono();
|
|
18
|
-
//
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
// One store for mint (POST /v1/write/session) and redeem (data ingest and
|
|
23
|
+
// derivative question registration), and one replay guard for the proofs
|
|
24
|
+
// both redeeming routes verify.
|
|
25
|
+
const writeSessionStore = deps.writeSessionStore ?? createInMemoryWriteSessionStore();
|
|
26
|
+
const writeProofReplayStore = deps.writeProofReplayStore ?? createInMemoryWriteProofReplayStore();
|
|
27
|
+
// CORS — allow all origins for browser-based clients. Registered first so
|
|
28
|
+
// OPTIONS preflights are answered before any route or auth code runs
|
|
29
|
+
// (route sub-apps only register their real methods).
|
|
30
|
+
app.use("*", corsMiddleware());
|
|
25
31
|
// Mount health route
|
|
26
32
|
app.route("/", healthRoute({
|
|
27
33
|
version: deps.version,
|
|
@@ -35,6 +41,12 @@ export function createApp(deps) {
|
|
|
35
41
|
getTunnelStatus: deps.getTunnelStatus,
|
|
36
42
|
runtimeAvailability: deps.runtimeAvailability,
|
|
37
43
|
}));
|
|
44
|
+
if (deps.profile === "enclave" && deps.jobWorker && deps.accessToken) {
|
|
45
|
+
app.route("/enclave/v1/jobs", enclaveJobRoutes({
|
|
46
|
+
accessToken: deps.accessToken,
|
|
47
|
+
executeJob: deps.jobWorker,
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
38
50
|
// Mount data routes (ingest + read + delete)
|
|
39
51
|
app.route("/v1/data", dataRoutes({
|
|
40
52
|
indexManager: deps.indexManager,
|
|
@@ -44,17 +56,63 @@ export function createApp(deps) {
|
|
|
44
56
|
serverOwner: deps.serverOwner,
|
|
45
57
|
gateway: deps.gateway,
|
|
46
58
|
accessLogWriter: deps.accessLogWriter,
|
|
59
|
+
readFulfillmentReporter: deps.readFulfillmentReporter,
|
|
47
60
|
devToken: deps.devToken,
|
|
48
61
|
accessToken: deps.accessToken,
|
|
49
62
|
tokenStore: deps.tokenStore,
|
|
50
63
|
syncManager: deps.syncManager ?? null,
|
|
51
|
-
|
|
64
|
+
scopeDeletions: deps.scopeDeletions,
|
|
52
65
|
runtimeAvailability: deps.runtimeAvailability,
|
|
53
66
|
dataStorage: deps.dataStorage,
|
|
67
|
+
// Powers the RECORD_DATA_ACCESS attestation embedded in X402 challenges.
|
|
54
68
|
serverSigner: deps.serverSigner,
|
|
55
|
-
|
|
69
|
+
serverAddress: deps.identity?.address,
|
|
70
|
+
// Required for X402: gatewayConfig provides the EIP-712 domain for
|
|
71
|
+
// payment signature recovery; gatewayUrl is the forward target for
|
|
72
|
+
// POST /v1/escrow/pay (direct fetch — bypasses the SDK client to
|
|
73
|
+
// preserve the gateway's structured error bodies).
|
|
74
|
+
gatewayConfig: deps.gatewayConfig,
|
|
75
|
+
gatewayUrl: deps.gatewayUrl ?? deps.config?.gateway.url ?? deps.gatewayConfig?.url,
|
|
76
|
+
paymentEnabled: deps.paymentEnabled,
|
|
77
|
+
lineageGateway: deps.lineageGateway,
|
|
78
|
+
writeSessionStore,
|
|
79
|
+
writeProofReplayStore,
|
|
80
|
+
// Recompute on refresh: a new local version of a scope marks every
|
|
81
|
+
// question that reads it stale.
|
|
82
|
+
onDataWritten: deps.derivativeCompute
|
|
83
|
+
? (event) => deps.derivativeCompute?.scheduler.markSourceChanged(event.scope, {
|
|
84
|
+
lineageSources: event.lineageSources,
|
|
85
|
+
})
|
|
86
|
+
: undefined,
|
|
56
87
|
mountPath: "/v1/data",
|
|
57
88
|
}));
|
|
89
|
+
// Derivative compute: question registration + readiness for builders.
|
|
90
|
+
app.route("/v1/derivatives", derivativesRoutes({
|
|
91
|
+
logger: deps.logger,
|
|
92
|
+
serverOrigin: deps.serverOrigin,
|
|
93
|
+
serverOwner: deps.serverOwner,
|
|
94
|
+
gateway: deps.gateway,
|
|
95
|
+
devToken: deps.devToken,
|
|
96
|
+
accessToken: deps.accessToken,
|
|
97
|
+
tokenStore: deps.tokenStore,
|
|
98
|
+
dataStorage: deps.dataStorage,
|
|
99
|
+
runtimeAvailability: deps.runtimeAvailability,
|
|
100
|
+
writeSessionStore,
|
|
101
|
+
writeProofReplayStore,
|
|
102
|
+
compute: deps.derivativeCompute ?? null,
|
|
103
|
+
mountPath: "/v1/derivatives",
|
|
104
|
+
}));
|
|
105
|
+
// Mount the Write API session handshake (delegated builder writes).
|
|
106
|
+
app.route("/v1/write", writeSessionRoutes({
|
|
107
|
+
logger: deps.logger,
|
|
108
|
+
serverOrigin: deps.serverOrigin,
|
|
109
|
+
serverOwner: deps.serverOwner,
|
|
110
|
+
gateway: deps.gateway,
|
|
111
|
+
devToken: deps.devToken,
|
|
112
|
+
accessToken: deps.accessToken,
|
|
113
|
+
tokenStore: deps.tokenStore,
|
|
114
|
+
sessionStore: writeSessionStore,
|
|
115
|
+
}));
|
|
58
116
|
// Mount grants routes (POST /verify is public, GET / and POST / need owner auth)
|
|
59
117
|
app.route("/v1/grants", grantsRoutes({
|
|
60
118
|
logger: deps.logger,
|
|
@@ -104,17 +162,19 @@ export function createApp(deps) {
|
|
|
104
162
|
logger: deps.logger,
|
|
105
163
|
serverOrigin: deps.serverOrigin,
|
|
106
164
|
serverOwner: deps.serverOwner,
|
|
165
|
+
serverAddress: deps.identity?.address,
|
|
107
166
|
serverSigner: deps.serverSigner,
|
|
108
167
|
gateway: deps.gateway,
|
|
109
168
|
gatewayConfig: deps.gatewayConfig,
|
|
169
|
+
paymentEnabled: deps.paymentEnabled,
|
|
110
170
|
devToken: deps.devToken,
|
|
111
171
|
accessToken: deps.accessToken,
|
|
112
172
|
tokenStore: deps.tokenStore,
|
|
113
173
|
accessLogWriter: deps.accessLogWriter,
|
|
174
|
+
readFulfillmentReporter: deps.readFulfillmentReporter,
|
|
114
175
|
indexManager: deps.indexManager,
|
|
115
176
|
hierarchyOptions: deps.hierarchyOptions,
|
|
116
177
|
dataStorage: deps.dataStorage,
|
|
117
|
-
feeVerifier: deps.feeVerifier,
|
|
118
178
|
runtimeAvailability: deps.runtimeAvailability,
|
|
119
179
|
connectionStore: mcpConnectionStore,
|
|
120
180
|
oauthAuthorizationStore: mcpOAuthAuthorizationStore,
|
|
@@ -167,6 +227,7 @@ export function createApp(deps) {
|
|
|
167
227
|
app.route("/ui/api", uiRegistrationRoutes({
|
|
168
228
|
devToken: deps.devToken,
|
|
169
229
|
ownerPrivateKey: deps.ownerPrivateKey,
|
|
230
|
+
onRegistered: deps.onServerRegistered,
|
|
170
231
|
}));
|
|
171
232
|
}
|
|
172
233
|
// Global error handler
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/bootstrap.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ServerConfig } from "@opendatalabs/personal-server-ts-core/schemas";
|
|
2
|
+
import type { PersonalServerReadFulfillmentReporter } from "@opendatalabs/personal-server-ts-core/api";
|
|
2
3
|
import { type Logger } from "./logger/index.js";
|
|
3
4
|
import { type IndexManager } from "./storage/index-manager.js";
|
|
4
5
|
import type { GatewayClient } from "@opendatalabs/vana-sdk/node";
|
|
@@ -6,9 +7,10 @@ import type { AccessLogReader } from "@opendatalabs/personal-server-ts-core/logg
|
|
|
6
7
|
import type { ServerAccount } from "@opendatalabs/personal-server-ts-core/keys";
|
|
7
8
|
import type { ServerSigner } from "@opendatalabs/personal-server-ts-core/signing";
|
|
8
9
|
import { type SyncManager } from "@opendatalabs/personal-server-ts-core/sync";
|
|
10
|
+
import type { DataPointFeedPort } from "@opendatalabs/personal-server-ts-core/ports";
|
|
9
11
|
import type { Hono } from "hono";
|
|
10
|
-
import type { FeeVerifierPort } from "@opendatalabs/personal-server-ts-core/ports";
|
|
11
12
|
import { TunnelManager } from "./tunnel/index.js";
|
|
13
|
+
import { type InferenceProvider } from "@opendatalabs/personal-server-ts-core/derivatives";
|
|
12
14
|
export interface ServerContext {
|
|
13
15
|
app: Hono;
|
|
14
16
|
logger: Logger;
|
|
@@ -32,17 +34,35 @@ export interface ServerContext {
|
|
|
32
34
|
}
|
|
33
35
|
export interface CreateServerOptions {
|
|
34
36
|
rootPath?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Inference provider for the derivative compute layer. Defaults to the
|
|
39
|
+
* OpenAI-compatible client on `config.inference` (env overrides:
|
|
40
|
+
* INFERENCE_BASE_URL, INFERENCE_MODEL, INFERENCE_API_KEY). Tests inject
|
|
41
|
+
* a fake.
|
|
42
|
+
*/
|
|
43
|
+
inferenceProvider?: InferenceProvider;
|
|
35
44
|
/** @deprecated Use rootPath instead. */
|
|
36
45
|
serverDir?: string;
|
|
37
46
|
dataDir?: string;
|
|
38
47
|
ownerSignature?: `0x${string}`;
|
|
39
48
|
gatewayClient?: GatewayClient;
|
|
40
49
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
50
|
+
* Deletion-aware gateway feed (`includeDeleted=true` listings + tombstone
|
|
51
|
+
* lookups). Defaults to a REST feed on `config.gateway.url`; inject with a
|
|
52
|
+
* mock gateway in tests.
|
|
44
53
|
*/
|
|
45
|
-
|
|
54
|
+
dataPointFeed?: DataPointFeedPort;
|
|
55
|
+
readFulfillmentReporter?: PersonalServerReadFulfillmentReporter;
|
|
56
|
+
/**
|
|
57
|
+
* MCP OAuth approval page URL (or a lazy getter for it). When set, the MCP
|
|
58
|
+
* OAuth router advertises discovery metadata and redirects authorization
|
|
59
|
+
* requests to this page for owner approval; when absent, MCP OAuth
|
|
60
|
+
* endpoints report MCP_OAUTH_NOT_CONFIGURED. Hosts that render their own
|
|
61
|
+
* approval surface (e.g. the desktop app) pass it here.
|
|
62
|
+
*/
|
|
63
|
+
mcpOAuthApprovalUrl?: string | (() => string);
|
|
64
|
+
profile?: "standard" | "enclave";
|
|
65
|
+
serverAccount?: ServerAccount;
|
|
46
66
|
}
|
|
47
67
|
export declare function createServer(config: ServerConfig, options?: CreateServerOptions): Promise<ServerContext>;
|
|
48
68
|
//# sourceMappingURL=bootstrap.d.ts.map
|
package/dist/bootstrap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,2CAA2C,CAAC;AAEvG,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6DAA6D,CAAC;AAMnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAKhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAMlF,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAMrF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAKjC,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AAGpE,OAAO,EAKL,KAAK,iBAAiB,EAEvB,MAAM,mDAAmD,CAAC;AAK3D,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,IAAI,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACjD,sBAAsB,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,uBAAuB,CAAC,EAAE,qCAAqC,CAAC;IAChE;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AA0BD,wBAAsB,YAAY,CAChC,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC,CA6qBxB"}
|