@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/bootstrap.js
CHANGED
|
@@ -9,22 +9,27 @@ import { DEFAULT_ROOT_PATH, resolveRootPath } from "./config/index.js";
|
|
|
9
9
|
import { createLogger } from "./logger/index.js";
|
|
10
10
|
import { initializeDatabase } from "./storage/index-schema.js";
|
|
11
11
|
import { createIndexManager, } from "./storage/index-manager.js";
|
|
12
|
-
import { createGatewayClient } from "@opendatalabs/vana-sdk/node";
|
|
12
|
+
import { createGatewayClient, NodeECIESProvider, } from "@opendatalabs/vana-sdk/node";
|
|
13
13
|
import { createAccessLogWriter } from "./logging/access-log.js";
|
|
14
14
|
import { createAccessLogReader } from "./logging/access-reader.js";
|
|
15
15
|
import { deriveMasterKey, recoverServerOwner, } from "@opendatalabs/vana-sdk/node";
|
|
16
16
|
import { loadOrCreateServerAccount } from "./keys/server-account.js";
|
|
17
|
-
import { createServerSigner } from "@opendatalabs/personal-server-ts-core/signing";
|
|
17
|
+
import { createRequestSigner, createServerSigner, } from "@opendatalabs/personal-server-ts-core/signing";
|
|
18
|
+
import { createGatewayLineageClient, } from "@opendatalabs/personal-server-ts-core/lineage";
|
|
18
19
|
import { createSyncCursor } from "./sync-cursor.js";
|
|
19
|
-
import { createSyncManager, } from "@opendatalabs/personal-server-ts-core/sync";
|
|
20
|
-
import { createVanaSyncStorageAdapter } from "@opendatalabs/personal-server-ts-core/storage/adapters";
|
|
20
|
+
import { createGatewayDataPointFeed, createGatewayDeleteDataPort, createScopeDeletionTracker, createSyncManager, } from "@opendatalabs/personal-server-ts-core/sync";
|
|
21
|
+
import { createVanaSyncStorageAdapter, resolveVanaStorageEndpoint, } from "@opendatalabs/personal-server-ts-core/storage/adapters";
|
|
22
|
+
import { createFilePendingBlobDeletionStore } from "./pending-blob-deletions.js";
|
|
21
23
|
import { createApp } from "./app.js";
|
|
22
|
-
import { createGrantFeeVerifier } from "./grant-fee-verifier.js";
|
|
23
24
|
import { generateDevToken } from "./dev-token.js";
|
|
24
25
|
import { migrateLocalState } from "./migrations/local-state.js";
|
|
25
26
|
import { createTokenStore } from "./token-store.js";
|
|
26
27
|
import { TunnelManager, ensureFrpcBinary } from "./tunnel/index.js";
|
|
27
28
|
import { createNodeDataStorage } from "./storage/node-data-storage.js";
|
|
29
|
+
import { createSqliteQuestionStore } from "./storage/question-store.js";
|
|
30
|
+
import { computeQuestion, createOpenAiCompatibleInferenceProvider, createPhalaE2eeEncryption, createRecomputeScheduler, } from "@opendatalabs/personal-server-ts-core/derivatives";
|
|
31
|
+
import { executeJob } from "./jobs/worker.js";
|
|
32
|
+
const TRAILING_SLASHES = /\/+$/;
|
|
28
33
|
const DEFAULT_LOCAL_APPROVAL_PORT = 34127;
|
|
29
34
|
function resolveLocalApprovalPort(serverPort) {
|
|
30
35
|
const raw = process.env.LOCAL_AUTH_PORT;
|
|
@@ -46,11 +51,16 @@ function resolveLocalApprovalPort(serverPort) {
|
|
|
46
51
|
export async function createServer(config, options) {
|
|
47
52
|
const logger = createLogger(config.logging);
|
|
48
53
|
const startedAt = new Date();
|
|
54
|
+
const isEnclave = options?.profile === "enclave";
|
|
55
|
+
if (isEnclave && process.env.VANA_OWNER_PRIVATE_KEY) {
|
|
56
|
+
throw new Error("VANA_OWNER_PRIVATE_KEY is forbidden in enclave profile");
|
|
57
|
+
}
|
|
49
58
|
const storageRoot = resolveRootPath(options?.rootPath ?? options?.serverDir ?? DEFAULT_ROOT_PATH);
|
|
50
59
|
const dataDir = options?.dataDir ?? join(storageRoot, "data");
|
|
51
60
|
const indexPath = join(storageRoot, "index.db");
|
|
52
61
|
const configPath = join(storageRoot, "config.json");
|
|
53
62
|
const syncCursorPath = join(storageRoot, "sync-cursor.json");
|
|
63
|
+
const pendingBlobDeletionsPath = join(storageRoot, "pending-blob-deletions.json");
|
|
54
64
|
const tokensPath = join(storageRoot, "tokens.json");
|
|
55
65
|
await mkdir(storageRoot, { recursive: true });
|
|
56
66
|
await mkdir(dataDir, { recursive: true });
|
|
@@ -61,21 +71,20 @@ export async function createServer(config, options) {
|
|
|
61
71
|
configPath,
|
|
62
72
|
syncCursorPath,
|
|
63
73
|
tokensPath,
|
|
74
|
+
db,
|
|
75
|
+
logger,
|
|
64
76
|
});
|
|
65
77
|
const indexManager = createIndexManager(db);
|
|
66
78
|
const hierarchyOptions = { dataDir };
|
|
67
79
|
const dataStorage = createNodeDataStorage({ indexManager, hierarchyOptions });
|
|
68
80
|
const gatewayClient = options?.gatewayClient ?? createGatewayClient(config.gateway.url);
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
//
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
: undefined);
|
|
77
|
-
if (feeVerifier) {
|
|
78
|
-
logger.info("Payment enforcement enabled — data reads gated on grant fee");
|
|
81
|
+
// X402 payment enforcement on data reads. When config.payment.enabled is
|
|
82
|
+
// true, GET /v1/data/:scope requires builders to supply a signed X-PAYMENT
|
|
83
|
+
// header on every read; the server forwards to gateway.payForOperation.
|
|
84
|
+
// See packages/core/src/payment/x402.ts. Off-by-default for development
|
|
85
|
+
// and test setups where signing payment per read is friction.
|
|
86
|
+
if (config.payment.enabled) {
|
|
87
|
+
logger.info("X402 payment enforcement enabled on data reads");
|
|
79
88
|
}
|
|
80
89
|
// Derive server owner from VANA_MASTER_KEY_SIGNATURE env var
|
|
81
90
|
const masterKeySignature = options?.ownerSignature ??
|
|
@@ -100,10 +109,11 @@ export async function createServer(config, options) {
|
|
|
100
109
|
recoveredServerOwner.toLowerCase()) {
|
|
101
110
|
throw new Error("VANA_OWNER_PRIVATE_KEY does not match VANA_MASTER_KEY_SIGNATURE owner");
|
|
102
111
|
}
|
|
103
|
-
//
|
|
112
|
+
// Enclaves receive public identity only; standard mode owns its key file.
|
|
104
113
|
const keyPath = join(storageRoot, "key.json");
|
|
105
|
-
serverAccount =
|
|
106
|
-
|
|
114
|
+
serverAccount =
|
|
115
|
+
options?.serverAccount ?? loadOrCreateServerAccount(keyPath);
|
|
116
|
+
logger.info({ owner: serverOwner, serverAddress: serverAccount.address }, "Server account loaded");
|
|
107
117
|
serverSigner = createServerSigner(serverAccount, {
|
|
108
118
|
chainId: config.gateway.chainId,
|
|
109
119
|
contracts: config.gateway.contracts,
|
|
@@ -144,7 +154,7 @@ export async function createServer(config, options) {
|
|
|
144
154
|
}
|
|
145
155
|
// Download frpc binary eagerly (auth-independent) so it's ready when the user signs in
|
|
146
156
|
let frpcBinaryPath = "";
|
|
147
|
-
if (config.tunnel.enabled) {
|
|
157
|
+
if (config.tunnel.enabled && !isEnclave) {
|
|
148
158
|
try {
|
|
149
159
|
frpcBinaryPath = await ensureFrpcBinary(storageRoot, {
|
|
150
160
|
log: (msg) => logger.info(msg),
|
|
@@ -154,8 +164,97 @@ export async function createServer(config, options) {
|
|
|
154
164
|
logger.warn({ err }, "Failed to download frpc binary - tunnel disabled");
|
|
155
165
|
}
|
|
156
166
|
}
|
|
167
|
+
// Derivative data: the gateway lineage client signs lineage reads with the
|
|
168
|
+
// server key (the gateway treats a registered server as the owner's) and
|
|
169
|
+
// registers derivatives with their lineage. Needs the server account.
|
|
170
|
+
// The one server-key request signer: lineage reads, and the inference
|
|
171
|
+
// relay calls below, authenticate to the gateway with the same scheme.
|
|
172
|
+
const requestSigner = serverAccount && !isEnclave
|
|
173
|
+
? createRequestSigner(serverAccount)
|
|
174
|
+
: undefined;
|
|
175
|
+
const lineageGateway = requestSigner
|
|
176
|
+
? createGatewayLineageClient({
|
|
177
|
+
gatewayUrl: config.gateway.url,
|
|
178
|
+
requestSigner,
|
|
179
|
+
})
|
|
180
|
+
: undefined;
|
|
157
181
|
// --- Sync engine setup ---
|
|
158
182
|
let syncManager = null;
|
|
183
|
+
// Deletion-aware registry view. Independent of sync: the data route uses
|
|
184
|
+
// it to answer 410 for scopes the owner deleted even when sync is off.
|
|
185
|
+
const dataPointFeed = options?.dataPointFeed ??
|
|
186
|
+
createGatewayDataPointFeed({ gatewayUrl: config.gateway.url });
|
|
187
|
+
// Read-side memory of tombstones, shared by the sync workers (which feed
|
|
188
|
+
// it) and the data route (which consults it on every read).
|
|
189
|
+
const scopeDeletions = createScopeDeletionTracker({
|
|
190
|
+
feed: dataPointFeed,
|
|
191
|
+
serverOwner,
|
|
192
|
+
logger,
|
|
193
|
+
});
|
|
194
|
+
// --- Derivative compute (question -> derivative) ---
|
|
195
|
+
// The scheduler exists before the sync manager so downloads can mark
|
|
196
|
+
// questions stale; it reaches the sync manager lazily to upload results.
|
|
197
|
+
const questionStore = createSqliteQuestionStore(db);
|
|
198
|
+
const inferenceBaseUrl = process.env.INFERENCE_BASE_URL ?? config.inference.baseUrl;
|
|
199
|
+
// E2EE to the Phala gateway is on unless config or INFERENCE_E2EE=false
|
|
200
|
+
// turns it off (local development against a provider without ACI).
|
|
201
|
+
const inferenceE2ee = process.env.INFERENCE_E2EE !== undefined
|
|
202
|
+
? process.env.INFERENCE_E2EE !== "false"
|
|
203
|
+
: config.inference.e2ee;
|
|
204
|
+
// Local development only: production relays hold the provider key. A key
|
|
205
|
+
// means the base URL is a provider, not the relay, so nothing is signed.
|
|
206
|
+
const inferenceApiKey = process.env.INFERENCE_API_KEY;
|
|
207
|
+
// The Vana inference relay only forwards requests signed by the owner or
|
|
208
|
+
// by one of the owner's active registered servers; this is the same
|
|
209
|
+
// server-key signer the lineage reads use.
|
|
210
|
+
const inferenceSigner = inferenceApiKey ? undefined : requestSigner;
|
|
211
|
+
const inferenceProvider = options?.inferenceProvider ??
|
|
212
|
+
createOpenAiCompatibleInferenceProvider({
|
|
213
|
+
baseUrl: inferenceBaseUrl,
|
|
214
|
+
model: process.env.INFERENCE_MODEL ?? config.inference.model,
|
|
215
|
+
apiKey: inferenceApiKey,
|
|
216
|
+
requestSigner: inferenceSigner,
|
|
217
|
+
encryption: inferenceE2ee
|
|
218
|
+
? createPhalaE2eeEncryption({
|
|
219
|
+
baseUrl: inferenceBaseUrl,
|
|
220
|
+
requestSigner: inferenceSigner,
|
|
221
|
+
logger,
|
|
222
|
+
})
|
|
223
|
+
: undefined,
|
|
224
|
+
});
|
|
225
|
+
if (!inferenceE2ee) {
|
|
226
|
+
logger.warn({ baseUrl: inferenceBaseUrl }, "Inference E2EE is disabled: prompts and answers travel as plaintext over TLS");
|
|
227
|
+
}
|
|
228
|
+
const derivativeScheduler = createRecomputeScheduler({
|
|
229
|
+
store: questionStore,
|
|
230
|
+
debounceMs: config.inference.recomputeDebounceMs,
|
|
231
|
+
serverOwner,
|
|
232
|
+
logger,
|
|
233
|
+
compute: (questionId) => computeQuestion(questionId, {
|
|
234
|
+
// A -> B -> C: a question reading this derived scope recomputes.
|
|
235
|
+
onDerivedWritten: (event) => derivativeScheduler.markSourceChanged(event.scope, {
|
|
236
|
+
lineageSources: event.lineageSources,
|
|
237
|
+
}),
|
|
238
|
+
storage: dataStorage,
|
|
239
|
+
store: questionStore,
|
|
240
|
+
provider: inferenceProvider,
|
|
241
|
+
serverOwner,
|
|
242
|
+
maxSourceItems: config.inference.maxSourceItems,
|
|
243
|
+
syncManager: {
|
|
244
|
+
notifyNewData: () => syncManager?.notifyNewData(),
|
|
245
|
+
},
|
|
246
|
+
scopeDeletions,
|
|
247
|
+
writePolicyPorts: {
|
|
248
|
+
authSessionVerifier: gatewayClient,
|
|
249
|
+
grantVerifier: gatewayClient,
|
|
250
|
+
},
|
|
251
|
+
logger,
|
|
252
|
+
}),
|
|
253
|
+
});
|
|
254
|
+
const derivativeCompute = {
|
|
255
|
+
store: questionStore,
|
|
256
|
+
scheduler: derivativeScheduler,
|
|
257
|
+
};
|
|
159
258
|
if (config.sync.enabled &&
|
|
160
259
|
masterKeySignature &&
|
|
161
260
|
serverOwner &&
|
|
@@ -166,6 +265,7 @@ export async function createServer(config, options) {
|
|
|
166
265
|
config,
|
|
167
266
|
serverOwner,
|
|
168
267
|
serverAccount,
|
|
268
|
+
reads: isEnclave ? "public" : "signed",
|
|
169
269
|
});
|
|
170
270
|
const cursor = createSyncCursor(syncCursorPath, {
|
|
171
271
|
legacyConfigPath: configPath,
|
|
@@ -178,6 +278,9 @@ export async function createServer(config, options) {
|
|
|
178
278
|
masterKey,
|
|
179
279
|
serverOwner,
|
|
180
280
|
logger,
|
|
281
|
+
lineageGateway,
|
|
282
|
+
dataPointFeed,
|
|
283
|
+
scopeDeletions,
|
|
181
284
|
};
|
|
182
285
|
const downloadDeps = {
|
|
183
286
|
storage: dataStorage,
|
|
@@ -187,8 +290,33 @@ export async function createServer(config, options) {
|
|
|
187
290
|
masterKey,
|
|
188
291
|
serverOwner,
|
|
189
292
|
logger,
|
|
293
|
+
dataPointFeed,
|
|
294
|
+
scopeDeletions,
|
|
295
|
+
onDataPointIndexed: (event) => derivativeScheduler.markSourceChanged(event.scope, {
|
|
296
|
+
lineageSources: event.lineageSources,
|
|
297
|
+
}),
|
|
190
298
|
};
|
|
299
|
+
// Durable deletion: gateway tombstone signed with the same server
|
|
300
|
+
// account + AddData signer uploads use, storage DELETE authorised with
|
|
301
|
+
// the same Web3Signed signer the storage provider uploads with.
|
|
302
|
+
const deleteData = isEnclave
|
|
303
|
+
? null
|
|
304
|
+
: createGatewayDeleteDataPort({
|
|
305
|
+
gatewayUrl: config.gateway.url,
|
|
306
|
+
dataPointFeed,
|
|
307
|
+
serverOwner,
|
|
308
|
+
signer: serverSigner,
|
|
309
|
+
storage: {
|
|
310
|
+
endpoint: resolveVanaStorageEndpoint(config),
|
|
311
|
+
chainId: config.gateway.chainId,
|
|
312
|
+
signMessage: (message) => serverAccount.signMessage(message),
|
|
313
|
+
},
|
|
314
|
+
});
|
|
315
|
+
const pendingBlobDeletions = createFilePendingBlobDeletionStore(pendingBlobDeletionsPath);
|
|
191
316
|
syncManager = createSyncManager(uploadDeps, downloadDeps, {
|
|
317
|
+
deleteData,
|
|
318
|
+
pendingBlobDeletions,
|
|
319
|
+
transferMode: isEnclave ? "download-only" : "upload-download",
|
|
192
320
|
async canSync() {
|
|
193
321
|
try {
|
|
194
322
|
const serverInfo = await gatewayClient.getServer(serverAccount.address);
|
|
@@ -222,11 +350,11 @@ export async function createServer(config, options) {
|
|
|
222
350
|
const accessLogWriter = createAccessLogWriter(logsDir);
|
|
223
351
|
const accessLogReader = createAccessLogReader(logsDir);
|
|
224
352
|
// Generate ephemeral dev token when devUi is enabled
|
|
225
|
-
const devToken = config.devUi.enabled ? generateDevToken() : undefined;
|
|
353
|
+
const devToken = config.devUi.enabled && !isEnclave ? generateDevToken() : undefined;
|
|
226
354
|
// Token store for /auth/device flow (self-hosted CLI auth)
|
|
227
355
|
const tokenStore = createTokenStore(tokensPath, logger);
|
|
228
356
|
const cloudMode = process.env.CLOUD_MODE === "true";
|
|
229
|
-
const localApprovalPort = cloudMode
|
|
357
|
+
const localApprovalPort = cloudMode || isEnclave
|
|
230
358
|
? undefined
|
|
231
359
|
: resolveLocalApprovalPort(config.server.port);
|
|
232
360
|
// Mutable origin — starts with config value, updated when tunnel connects
|
|
@@ -234,6 +362,39 @@ export async function createServer(config, options) {
|
|
|
234
362
|
let effectiveLocalApprovalOrigin;
|
|
235
363
|
// Mutable tunnelManager — set when tunnel starts in background
|
|
236
364
|
let tunnelManager;
|
|
365
|
+
// Registration can land after boot (desktop signing exchange or the
|
|
366
|
+
// /ui/api registration route); the tunnel connect is gated on it, so the
|
|
367
|
+
// route needs a way to trigger the deferred connect. Assigned inside
|
|
368
|
+
// startBackgroundServices once the tunnel is reserved.
|
|
369
|
+
let notifyServerRegistered = () => { };
|
|
370
|
+
let registrationPollTimer = null;
|
|
371
|
+
// Set by cleanup(). A poll iteration that is mid-flight when cleanup runs
|
|
372
|
+
// holds no timer handle, so clearing the timer alone cannot stop it — and
|
|
373
|
+
// a reserved-but-never-connected TunnelManager would happily spawn frpc
|
|
374
|
+
// from an orphaned poll after shutdown. Every deferred path checks this.
|
|
375
|
+
let backgroundClosed = false;
|
|
376
|
+
const clearRegistrationPoll = () => {
|
|
377
|
+
if (registrationPollTimer) {
|
|
378
|
+
clearTimeout(registrationPollTimer);
|
|
379
|
+
registrationPollTimer = null;
|
|
380
|
+
}
|
|
381
|
+
};
|
|
382
|
+
const ecies = new NodeECIESProvider();
|
|
383
|
+
const jobWorker = isEnclave && serverOwner && serverAccount
|
|
384
|
+
? (envelope) => executeJob(envelope, {
|
|
385
|
+
serverOwner,
|
|
386
|
+
serverAddress: serverAccount.address,
|
|
387
|
+
serverPublicKey: serverAccount.publicKey,
|
|
388
|
+
authAudience: config.gateway.url.replace(TRAILING_SLASHES, ""),
|
|
389
|
+
gateway: gatewayClient,
|
|
390
|
+
gatewayConfig: config.gateway,
|
|
391
|
+
storage: dataStorage,
|
|
392
|
+
ecies,
|
|
393
|
+
logger,
|
|
394
|
+
accessLogWriter,
|
|
395
|
+
scopeDeletions,
|
|
396
|
+
})
|
|
397
|
+
: undefined;
|
|
237
398
|
const app = createApp({
|
|
238
399
|
logger,
|
|
239
400
|
version: pkg.version,
|
|
@@ -246,11 +407,16 @@ export async function createServer(config, options) {
|
|
|
246
407
|
identity,
|
|
247
408
|
gateway: gatewayClient,
|
|
248
409
|
gatewayConfig: config.gateway,
|
|
249
|
-
|
|
410
|
+
paymentEnabled: config.payment.enabled,
|
|
411
|
+
gatewayUrl: config.gateway.url,
|
|
412
|
+
lineageGateway,
|
|
413
|
+
derivativeCompute,
|
|
250
414
|
config,
|
|
251
415
|
accessLogWriter,
|
|
252
416
|
accessLogReader,
|
|
417
|
+
readFulfillmentReporter: options?.readFulfillmentReporter,
|
|
253
418
|
dataStorage,
|
|
419
|
+
scopeDeletions,
|
|
254
420
|
cloudMode,
|
|
255
421
|
devToken,
|
|
256
422
|
ownerSignature: masterKeySignature,
|
|
@@ -261,8 +427,15 @@ export async function createServer(config, options) {
|
|
|
261
427
|
syncManager,
|
|
262
428
|
serverSigner,
|
|
263
429
|
getTunnelStatus: () => tunnelManager?.getStatus() ?? null,
|
|
430
|
+
mcpOAuthApprovalUrl: options?.mcpOAuthApprovalUrl,
|
|
431
|
+
onServerRegistered: (serverId) => notifyServerRegistered(serverId),
|
|
432
|
+
profile: options?.profile,
|
|
433
|
+
jobWorker,
|
|
264
434
|
});
|
|
265
435
|
const cleanup = async () => {
|
|
436
|
+
backgroundClosed = true;
|
|
437
|
+
clearRegistrationPoll();
|
|
438
|
+
derivativeScheduler.stop();
|
|
266
439
|
if (tunnelManager) {
|
|
267
440
|
await tunnelManager.stop();
|
|
268
441
|
}
|
|
@@ -292,6 +465,12 @@ export async function createServer(config, options) {
|
|
|
292
465
|
},
|
|
293
466
|
devToken,
|
|
294
467
|
startBackgroundServices: async () => {
|
|
468
|
+
// Replay questions a previous run left pending or stale: nothing
|
|
469
|
+
// else reschedules them after a restart (registration and source
|
|
470
|
+
// changes only cover new activity).
|
|
471
|
+
if (!isEnclave) {
|
|
472
|
+
derivativeScheduler.start();
|
|
473
|
+
}
|
|
295
474
|
// --- Gateway registration check (slow: HTTP call) ---
|
|
296
475
|
if (serverAccount && identity) {
|
|
297
476
|
try {
|
|
@@ -312,15 +491,96 @@ export async function createServer(config, options) {
|
|
|
312
491
|
}
|
|
313
492
|
}
|
|
314
493
|
// --- Tunnel setup (slow: subprocess wait) ---
|
|
315
|
-
if (
|
|
494
|
+
if (!isEnclave &&
|
|
495
|
+
config.tunnel.enabled &&
|
|
316
496
|
serverOwner &&
|
|
317
497
|
serverAccount &&
|
|
318
498
|
frpcBinaryPath) {
|
|
319
499
|
tunnelManager = new TunnelManager(storageRoot);
|
|
320
500
|
context.tunnelManager = tunnelManager;
|
|
321
501
|
const runId = randomUUID();
|
|
502
|
+
let tunnelConnectStarted = false;
|
|
503
|
+
const connectTunnel = async () => {
|
|
504
|
+
const manager = tunnelManager;
|
|
505
|
+
if (!manager || tunnelConnectStarted || backgroundClosed) {
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
508
|
+
tunnelConnectStarted = true;
|
|
509
|
+
try {
|
|
510
|
+
const url = await manager.connect();
|
|
511
|
+
const tunnelStatus = manager.getStatus();
|
|
512
|
+
if (tunnelStatus.status === "connected") {
|
|
513
|
+
logger.info({ tunnelUrl: url }, "Tunnel established");
|
|
514
|
+
}
|
|
515
|
+
else {
|
|
516
|
+
logger.warn({ tunnelUrl: url, warning: tunnelStatus.warning }, "Tunnel URL reserved; waiting for tunnel connection");
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
catch (err) {
|
|
520
|
+
logger.warn({ err }, "Tunnel failed to connect - server running in local-only mode");
|
|
521
|
+
tunnelManager = undefined;
|
|
522
|
+
context.tunnelManager = undefined;
|
|
523
|
+
// Local-only mode must keep the local audience/URL: leaving the
|
|
524
|
+
// public URL as effectiveOrigin would reject local Web3Signed
|
|
525
|
+
// callers against an origin that will never route.
|
|
526
|
+
effectiveOrigin = config.server.origin;
|
|
527
|
+
context.tunnelUrl = undefined;
|
|
528
|
+
}
|
|
529
|
+
};
|
|
530
|
+
// Poll fallback for registrations the route callback can't see
|
|
531
|
+
// (e.g. desktop registers with the gateway directly and the sidecar
|
|
532
|
+
// only observes it via a gateway lookup).
|
|
533
|
+
const scheduleRegistrationPoll = () => {
|
|
534
|
+
const pollStartedAt = Date.now();
|
|
535
|
+
const poll = async () => {
|
|
536
|
+
registrationPollTimer = null;
|
|
537
|
+
if (backgroundClosed) {
|
|
538
|
+
return;
|
|
539
|
+
}
|
|
540
|
+
try {
|
|
541
|
+
const serverInfo = await gatewayClient.getServer(serverAccount.address);
|
|
542
|
+
if (serverInfo?.id) {
|
|
543
|
+
if (identity) {
|
|
544
|
+
identity.serverId = serverInfo.id;
|
|
545
|
+
}
|
|
546
|
+
logger.info("Server registration detected — starting tunnel");
|
|
547
|
+
await connectTunnel();
|
|
548
|
+
return;
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
catch {
|
|
552
|
+
// Gateway unreachable — keep polling.
|
|
553
|
+
}
|
|
554
|
+
if (backgroundClosed) {
|
|
555
|
+
return;
|
|
556
|
+
}
|
|
557
|
+
const interval = Date.now() - pollStartedAt < 2 * 60_000 ? 5_000 : 30_000;
|
|
558
|
+
registrationPollTimer = setTimeout(() => void poll(), interval);
|
|
559
|
+
registrationPollTimer.unref?.();
|
|
560
|
+
};
|
|
561
|
+
registrationPollTimer = setTimeout(() => void poll(), 5_000);
|
|
562
|
+
registrationPollTimer.unref?.();
|
|
563
|
+
};
|
|
564
|
+
notifyServerRegistered = (serverId) => {
|
|
565
|
+
if (backgroundClosed) {
|
|
566
|
+
return;
|
|
567
|
+
}
|
|
568
|
+
if (serverId) {
|
|
569
|
+
if (identity) {
|
|
570
|
+
identity.serverId = serverId;
|
|
571
|
+
}
|
|
572
|
+
// Only a confirmed serverId stops the poll: on a null result the
|
|
573
|
+
// poll keeps running so identity/health converge once the
|
|
574
|
+
// gateway lookup sees the registration.
|
|
575
|
+
clearRegistrationPoll();
|
|
576
|
+
}
|
|
577
|
+
void connectTunnel();
|
|
578
|
+
};
|
|
322
579
|
try {
|
|
323
|
-
|
|
580
|
+
// Reserve the public URL without dialing the relay: the URL is
|
|
581
|
+
// what registration needs, and dialing before the registration
|
|
582
|
+
// lands poisons the relay's delegation cache (BUI-611).
|
|
583
|
+
const url = tunnelManager.reserve({
|
|
324
584
|
walletAddress: serverAccount.address,
|
|
325
585
|
ownerAddress: serverOwner,
|
|
326
586
|
serverKeypair: serverAccount,
|
|
@@ -334,24 +594,21 @@ export async function createServer(config, options) {
|
|
|
334
594
|
serverPort: config.tunnel.serverPort,
|
|
335
595
|
localPort: config.server.port,
|
|
336
596
|
}, frpcBinaryPath);
|
|
337
|
-
const tunnelStatus = tunnelManager.getStatus();
|
|
338
|
-
if (tunnelStatus.status === "connected") {
|
|
339
|
-
logger.info({ tunnelUrl: url }, "Tunnel established");
|
|
340
|
-
}
|
|
341
|
-
else {
|
|
342
|
-
logger.warn({ tunnelUrl: url, warning: tunnelStatus.warning }, "Tunnel URL reserved; waiting for tunnel connection");
|
|
343
|
-
}
|
|
344
597
|
context.tunnelUrl = url;
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
598
|
+
// The public URL is the audience clients sign against, so adopt it
|
|
599
|
+
// as the effective origin as soon as it's known (matches the
|
|
600
|
+
// unity-surfaces #583 sidecar patch).
|
|
601
|
+
effectiveOrigin = url;
|
|
602
|
+
if (identity?.serverId) {
|
|
603
|
+
await connectTunnel();
|
|
348
604
|
}
|
|
349
|
-
|
|
350
|
-
logger.
|
|
605
|
+
else {
|
|
606
|
+
logger.info({ tunnelUrl: url }, "Tunnel start deferred until server registration — register to enable routing");
|
|
607
|
+
scheduleRegistrationPoll();
|
|
351
608
|
}
|
|
352
609
|
}
|
|
353
610
|
catch (err) {
|
|
354
|
-
logger.warn({ err }, "Tunnel failed to
|
|
611
|
+
logger.warn({ err }, "Tunnel failed to start - server running in local-only mode");
|
|
355
612
|
tunnelManager = undefined;
|
|
356
613
|
context.tunnelManager = undefined;
|
|
357
614
|
}
|
package/dist/bootstrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { type PersonalServerHandle, type PersonalServerStatus } from "@opendatal
|
|
|
3
3
|
import type { GatewayClient } from "@opendatalabs/vana-sdk/node";
|
|
4
4
|
import { type CreateServerOptions } from "./bootstrap.js";
|
|
5
5
|
import { type LoadConfigOptions } from "./config/index.js";
|
|
6
|
-
export interface StartPersonalServerNodeOptions extends Pick<CreateServerOptions, "rootPath" | "dataDir" | "ownerSignature">, LoadConfigOptions {
|
|
6
|
+
export interface StartPersonalServerNodeOptions extends Pick<CreateServerOptions, "rootPath" | "dataDir" | "ownerSignature" | "readFulfillmentReporter" | "mcpOAuthApprovalUrl">, LoadConfigOptions {
|
|
7
7
|
config?: ServerConfig;
|
|
8
8
|
configDefaults?: Partial<ServerConfig>;
|
|
9
9
|
port?: number;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAeL,KAAK,oBAAoB,EAgBzB,KAAK,oBAAoB,EAG1B,MAAM,8CAA8C,CAAC;AAGtD,OAAO,KAAK,EACV,aAAa,EAEd,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAKvE,MAAM,WAAW,8BACf,SACE,IAAI,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAeL,KAAK,oBAAoB,EAgBzB,KAAK,oBAAoB,EAG1B,MAAM,8CAA8C,CAAC;AAGtD,OAAO,KAAK,EACV,aAAa,EAEd,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAKvE,MAAM,WAAW,8BACf,SACE,IAAI,CACF,mBAAmB,EACjB,UAAU,GACV,SAAS,GACT,gBAAgB,GAChB,yBAAyB,GACzB,qBAAqB,CACxB,EACD,iBAAiB;IACnB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACnD;AAED,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,8BAAmC,GAC3C,OAAO,CAAC,oBAAoB,CAAC,CAsX/B"}
|
package/dist/client.js
CHANGED
|
@@ -20,6 +20,8 @@ export async function startPersonalServer(options = {}) {
|
|
|
20
20
|
dataDir: options.dataDir,
|
|
21
21
|
ownerSignature: options.ownerSignature,
|
|
22
22
|
gatewayClient: options.gatewayClient,
|
|
23
|
+
readFulfillmentReporter: options.readFulfillmentReporter,
|
|
24
|
+
mcpOAuthApprovalUrl: options.mcpOAuthApprovalUrl,
|
|
23
25
|
});
|
|
24
26
|
const mainServer = await listenHttpServer({
|
|
25
27
|
fetch: context.app.fetch,
|
|
@@ -178,9 +180,9 @@ export async function startPersonalServer(options = {}) {
|
|
|
178
180
|
...(grantOptions.expiresAt === undefined
|
|
179
181
|
? {}
|
|
180
182
|
: { expiresAt: grantOptions.expiresAt }),
|
|
181
|
-
...(grantOptions.
|
|
183
|
+
...(grantOptions.grantVersion === undefined
|
|
182
184
|
? {}
|
|
183
|
-
: {
|
|
185
|
+
: { grantVersion: grantOptions.grantVersion }),
|
|
184
186
|
},
|
|
185
187
|
authOptions: grantOptions,
|
|
186
188
|
headers: {
|