@powerhousedao/switchboard 6.0.0-dev.14 → 6.0.0-dev.141
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/Auth.md +45 -27
- package/CHANGELOG.md +1143 -5
- package/README.md +13 -12
- package/dist/src/config.d.ts +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/index.js +33 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/metrics.d.ts +7 -0
- package/dist/src/metrics.d.ts.map +1 -0
- package/dist/src/metrics.js +34 -0
- package/dist/src/metrics.js.map +1 -0
- package/dist/src/profiler.d.ts +6 -1
- package/dist/src/profiler.d.ts.map +1 -1
- package/dist/src/profiler.js +31 -5
- package/dist/src/profiler.js.map +1 -1
- package/dist/src/renown.d.ts +24 -0
- package/dist/src/renown.d.ts.map +1 -0
- package/dist/src/renown.js +45 -0
- package/dist/src/renown.js.map +1 -0
- package/dist/src/server.d.ts +0 -1
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +149 -162
- package/dist/src/server.js.map +1 -1
- package/dist/src/types.d.ts +27 -18
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils.d.ts +2 -3
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +3 -32
- package/dist/src/utils.js.map +1 -1
- package/dist/test/metrics.test.d.ts +2 -0
- package/dist/test/metrics.test.d.ts.map +1 -0
- package/dist/test/metrics.test.js +121 -0
- package/dist/test/metrics.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +11 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +34 -25
- package/test/metrics.test.ts +202 -0
- package/tsconfig.json +17 -4
- package/vitest.config.ts +11 -0
- package/Dockerfile +0 -86
- package/dist/src/connect-crypto.d.ts +0 -41
- package/dist/src/connect-crypto.d.ts.map +0 -1
- package/dist/src/connect-crypto.js +0 -127
- package/dist/src/connect-crypto.js.map +0 -1
- package/entrypoint.sh +0 -17
package/dist/src/server.js
CHANGED
|
@@ -1,87 +1,53 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { httpsHooksPath } from "@powerhousedao/reactor-api";
|
|
3
|
+
import { register } from "node:module";
|
|
4
|
+
// Register HTTP/HTTPS module loader hooks for dynamic package imports
|
|
5
|
+
register(httpsHooksPath, import.meta.url);
|
|
2
6
|
import { PGlite } from "@electric-sql/pglite";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
7
|
+
import { metrics } from "@opentelemetry/api";
|
|
8
|
+
import { getConfig } from "@powerhousedao/config/node";
|
|
9
|
+
import { ReactorInstrumentation } from "@powerhousedao/opentelemetry-instrumentation-reactor";
|
|
10
|
+
import { ChannelScheme, EventBus, ReactorBuilder, ReactorClientBuilder, driveCollectionId, parseDriveUrl, } from "@powerhousedao/reactor";
|
|
11
|
+
import { HttpPackageLoader, PackageManagementService, PackagesSubgraph, getUniqueDocumentModels, initializeAndStartAPI, } from "@powerhousedao/reactor-api";
|
|
12
|
+
import { VitePackageLoader, createViteLogger, startViteServer, } from "@powerhousedao/reactor-api/vite";
|
|
13
|
+
import { driveDocumentModelModule } from "@powerhousedao/shared/document-drive";
|
|
14
|
+
import { documentModels as vetraDocumentModels } from "@powerhousedao/vetra";
|
|
15
|
+
import { processorFactory as vetraProcessorFactory } from "@powerhousedao/vetra/processors";
|
|
6
16
|
import * as Sentry from "@sentry/node";
|
|
7
|
-
import {
|
|
8
|
-
import { RedisCache } from "document-drive/cache/redis";
|
|
9
|
-
import { FilesystemStorage } from "document-drive/storage/filesystem";
|
|
10
|
-
import { PrismaStorageFactory } from "document-drive/storage/prisma";
|
|
11
|
-
import { documentModelDocumentModelModule } from "document-model";
|
|
17
|
+
import { childLogger, documentModelDocumentModelModule } from "document-model";
|
|
12
18
|
import dotenv from "dotenv";
|
|
13
|
-
import express from "express";
|
|
14
19
|
import { Kysely, PostgresDialect } from "kysely";
|
|
15
20
|
import { PGliteDialect } from "kysely-pglite-dialect";
|
|
16
21
|
import path from "path";
|
|
17
22
|
import { Pool } from "pg";
|
|
18
23
|
import { initRedis } from "./clients/redis.js";
|
|
19
|
-
import { initConnectCrypto } from "./connect-crypto.js";
|
|
20
24
|
import { initFeatureFlags } from "./feature-flags.js";
|
|
21
|
-
import {
|
|
22
|
-
import { addDefaultDrive,
|
|
23
|
-
const
|
|
25
|
+
import { getRenownSignerConfig, initRenown } from "./renown.js";
|
|
26
|
+
import { addDefaultDrive, isPostgresUrl } from "./utils.js";
|
|
27
|
+
const defaultLogger = childLogger(["switchboard"]);
|
|
24
28
|
dotenv.config();
|
|
25
29
|
// Feature flag constants
|
|
26
30
|
const DOCUMENT_MODEL_SUBGRAPHS_ENABLED = "DOCUMENT_MODEL_SUBGRAPHS_ENABLED";
|
|
27
31
|
const DOCUMENT_MODEL_SUBGRAPHS_ENABLED_DEFAULT = true;
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
const ENABLE_DUAL_ACTION_CREATE = "ENABLE_DUAL_ACTION_CREATE";
|
|
31
|
-
const ENABLE_DUAL_ACTION_CREATE_DEFAULT = true;
|
|
32
|
-
// Create a monolith express app for all subgraphs
|
|
33
|
-
const app = express();
|
|
32
|
+
const REQUIRE_SIGNATURES = "REQUIRE_SIGNATURES";
|
|
33
|
+
const REQUIRE_SIGNATURES_DEFAULT = false;
|
|
34
34
|
if (process.env.SENTRY_DSN) {
|
|
35
|
-
|
|
35
|
+
defaultLogger.info("Initialized Sentry with env: @env", process.env.SENTRY_ENV);
|
|
36
36
|
Sentry.init({
|
|
37
37
|
dsn: process.env.SENTRY_DSN,
|
|
38
38
|
environment: process.env.SENTRY_ENV,
|
|
39
39
|
});
|
|
40
|
-
Sentry.setupExpressErrorHandler(app);
|
|
41
40
|
}
|
|
42
41
|
const DEFAULT_PORT = process.env.PORT ? Number(process.env.PORT) : 4001;
|
|
43
|
-
async function
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const prismaConnectError = "Can't reach database server at";
|
|
51
|
-
if (e instanceof Error && e.message.includes(prismaConnectError)) {
|
|
52
|
-
const dbUrl = connectionString;
|
|
53
|
-
const safeUrl = `${dbUrl.slice(0, dbUrl.indexOf(":") + 1)}{...}${dbUrl.slice(dbUrl.indexOf("@"), dbUrl.lastIndexOf("?"))}`;
|
|
54
|
-
logger.warn(`Can't reach database server at '${safeUrl}'`);
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
logger.error(e);
|
|
58
|
-
}
|
|
59
|
-
throw e;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
async function initReactorStorage(cache, dbPath = "./.ph/drive-storage") {
|
|
63
|
-
const isPostgres = isPostgresUrl(dbPath);
|
|
64
|
-
try {
|
|
65
|
-
if (isPostgres) {
|
|
66
|
-
const connectionString = dbPath.includes("amazonaws") && !dbPath.includes("sslmode=no-verify")
|
|
67
|
-
? dbPath + "?sslmode=no-verify"
|
|
68
|
-
: dbPath;
|
|
69
|
-
const storage = await initPrismaStorage(connectionString, cache);
|
|
70
|
-
return { storage, storagePath: dbPath };
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
catch {
|
|
74
|
-
logger.warn("Falling back to filesystem storage");
|
|
42
|
+
async function initServer(serverPort, options, renown) {
|
|
43
|
+
// Register the global MeterProvider before ReactorInstrumentation is
|
|
44
|
+
// constructed. setGlobalMeterProvider is a one-way door — once set it cannot
|
|
45
|
+
// be unset — so this must happen before initializeClient calls
|
|
46
|
+
// instrumentation.start() → createMetrics() → metrics.getMeter().
|
|
47
|
+
if (options.meterProvider) {
|
|
48
|
+
metrics.setGlobalMeterProvider(options.meterProvider);
|
|
75
49
|
}
|
|
76
|
-
|
|
77
|
-
const filesystemPath = isPostgres ? "./.ph/drive-storage" : dbPath;
|
|
78
|
-
return {
|
|
79
|
-
storage: new FilesystemStorage(path.join(process.cwd(), filesystemPath)),
|
|
80
|
-
storagePath: filesystemPath,
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
async function initServer(serverPort, options, connectCrypto) {
|
|
84
|
-
const { dev, packages = [], remoteDrives = [] } = options;
|
|
50
|
+
const { dev, packages = [], remoteDrives = [], logger = defaultLogger, } = options;
|
|
85
51
|
const dbPath = options.dbPath ?? process.env.DATABASE_URL;
|
|
86
52
|
// start redis if configured
|
|
87
53
|
const redisUrl = process.env.REDIS_TLS_URL ?? process.env.REDIS_URL;
|
|
@@ -91,48 +57,46 @@ async function initServer(serverPort, options, connectCrypto) {
|
|
|
91
57
|
redis = await initRedis(redisUrl);
|
|
92
58
|
}
|
|
93
59
|
catch (e) {
|
|
94
|
-
logger.error(e);
|
|
60
|
+
logger.error("@error", e);
|
|
95
61
|
}
|
|
96
62
|
}
|
|
97
|
-
|
|
98
|
-
const
|
|
99
|
-
//
|
|
100
|
-
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
})
|
|
117
|
-
.build();
|
|
118
|
-
// init drive server
|
|
119
|
-
await driveServer.initialize();
|
|
120
|
-
return driveServer;
|
|
121
|
-
};
|
|
122
|
-
const initializeClient = async (driveServer, documentModels) => {
|
|
63
|
+
// use postgres url for read model storage if available, otherwise use local PGlite path
|
|
64
|
+
const readModelPath = dbPath || ".ph/read-storage";
|
|
65
|
+
// HTTP registry package loading
|
|
66
|
+
let httpDocumentModels = [];
|
|
67
|
+
const configPath = options.configFile ?? path.join(process.cwd(), "powerhouse.config.json");
|
|
68
|
+
const config = getConfig(configPath);
|
|
69
|
+
const registryUrl = process.env.PH_REGISTRY_URL ?? config.packageRegistryUrl;
|
|
70
|
+
const registryPackages = process.env.PH_REGISTRY_PACKAGES;
|
|
71
|
+
let httpLoader;
|
|
72
|
+
if (registryUrl) {
|
|
73
|
+
httpLoader = new HttpPackageLoader({ registryUrl });
|
|
74
|
+
}
|
|
75
|
+
if (httpLoader && registryPackages) {
|
|
76
|
+
const packageNames = registryPackages.split(",").map((p) => p.trim());
|
|
77
|
+
httpDocumentModels = await httpLoader.loadPackages(packageNames, logger);
|
|
78
|
+
logger.info(`Loaded ${httpDocumentModels.length} HTTP document models from ${packageNames.length} packages`);
|
|
79
|
+
}
|
|
80
|
+
const reactorLogger = logger.child(["reactor"]);
|
|
81
|
+
const initializeClient = async (documentModels) => {
|
|
123
82
|
const eventBus = new EventBus();
|
|
124
83
|
const builder = new ReactorBuilder()
|
|
125
84
|
.withEventBus(eventBus)
|
|
126
85
|
.withDocumentModels(getUniqueDocumentModels([
|
|
127
86
|
documentModelDocumentModelModule,
|
|
128
87
|
driveDocumentModelModule,
|
|
88
|
+
...vetraDocumentModels,
|
|
129
89
|
...documentModels,
|
|
90
|
+
...httpDocumentModels,
|
|
130
91
|
]))
|
|
131
|
-
.
|
|
132
|
-
.
|
|
133
|
-
.
|
|
134
|
-
|
|
135
|
-
|
|
92
|
+
.withChannelScheme(ChannelScheme.SWITCHBOARD)
|
|
93
|
+
.withSignalHandlers()
|
|
94
|
+
.withLogger(reactorLogger);
|
|
95
|
+
const maxSkipThreshold = parseInt(process.env.MAX_SKIP_THRESHOLD ?? "", 10);
|
|
96
|
+
if (!isNaN(maxSkipThreshold) && maxSkipThreshold > 0) {
|
|
97
|
+
builder.withExecutorConfig({ maxSkipThreshold });
|
|
98
|
+
logger.info(`Reactor maxSkipThreshold set to ${maxSkipThreshold}`);
|
|
99
|
+
}
|
|
136
100
|
const reactorDbUrl = process.env.PH_REACTOR_DATABASE_URL;
|
|
137
101
|
if (reactorDbUrl && isPostgresUrl(reactorDbUrl)) {
|
|
138
102
|
const connectionString = reactorDbUrl.includes("?")
|
|
@@ -154,85 +118,119 @@ async function initServer(serverPort, options, connectCrypto) {
|
|
|
154
118
|
builder.withKysely(kysely);
|
|
155
119
|
logger.info("Using PGlite for reactor storage");
|
|
156
120
|
}
|
|
121
|
+
if (httpLoader && options.dynamicModelLoading) {
|
|
122
|
+
builder.withDocumentModelLoader(httpLoader);
|
|
123
|
+
}
|
|
157
124
|
const clientBuilder = new ReactorClientBuilder().withReactorBuilder(builder);
|
|
158
|
-
if (
|
|
159
|
-
|
|
125
|
+
if (renown) {
|
|
126
|
+
const signerConfig = getRenownSignerConfig(renown, options.identity?.requireSignatures);
|
|
127
|
+
clientBuilder.withSigner(signerConfig);
|
|
160
128
|
}
|
|
161
129
|
const module = await clientBuilder.buildModule();
|
|
162
|
-
|
|
130
|
+
if (module.reactorModule) {
|
|
131
|
+
const instrumentation = new ReactorInstrumentation(module.reactorModule);
|
|
132
|
+
instrumentation.start();
|
|
133
|
+
reactorLogger.info("Reactor metrics instrumentation started");
|
|
134
|
+
}
|
|
163
135
|
return module;
|
|
164
136
|
};
|
|
165
137
|
let defaultDriveUrl = undefined;
|
|
166
138
|
// TODO get path from powerhouse config
|
|
167
139
|
// start vite server if dev mode is enabled
|
|
168
140
|
const basePath = process.cwd();
|
|
169
|
-
const
|
|
141
|
+
const viteLogger = createViteLogger(logger);
|
|
142
|
+
const vite = dev
|
|
143
|
+
? await startViteServer(process.cwd(), viteLogger)
|
|
144
|
+
: undefined;
|
|
170
145
|
// get paths to local document models
|
|
171
146
|
if (!options.disableLocalPackages) {
|
|
172
147
|
packages.push(basePath);
|
|
173
148
|
}
|
|
174
|
-
//
|
|
175
|
-
const
|
|
176
|
-
|
|
177
|
-
const
|
|
178
|
-
? VitePackageLoader.build(vite, { legacyReactor })
|
|
179
|
-
: undefined;
|
|
180
|
-
const api = await initializeAndStartAPI(initializeDriveServer, initializeClient, {
|
|
181
|
-
express: app,
|
|
149
|
+
// create loader
|
|
150
|
+
const packageLoader = vite ? VitePackageLoader.build(vite) : undefined;
|
|
151
|
+
const apiLogger = logger.child(["reactor-api"]);
|
|
152
|
+
const api = await initializeAndStartAPI(initializeClient, {
|
|
182
153
|
port: serverPort,
|
|
183
154
|
dbPath: readModelPath,
|
|
184
155
|
https: options.https,
|
|
185
156
|
packageLoader,
|
|
186
157
|
packages: packages,
|
|
187
158
|
processorConfig: options.processorConfig,
|
|
159
|
+
processors: {
|
|
160
|
+
"@powerhousedao/vetra": [vetraProcessorFactory],
|
|
161
|
+
},
|
|
188
162
|
configFile: options.configFile ??
|
|
189
163
|
path.join(process.cwd(), "powerhouse.config.json"),
|
|
190
164
|
mcp: options.mcp ?? true,
|
|
165
|
+
logger: apiLogger,
|
|
191
166
|
enableDocumentModelSubgraphs: options.enableDocumentModelSubgraphs,
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
167
|
+
}, "switchboard");
|
|
168
|
+
if (process.env.SENTRY_DSN) {
|
|
169
|
+
// Register Sentry error handler after all routes are established.
|
|
170
|
+
// The adapter calls the framework-specific Sentry setup internally.
|
|
171
|
+
api.httpAdapter.setupSentryErrorHandler(Sentry);
|
|
172
|
+
}
|
|
173
|
+
const { client, graphqlManager, documentModelRegistry } = api;
|
|
174
|
+
// Wire up dynamic package management if HTTP loader is configured
|
|
175
|
+
if (httpLoader) {
|
|
176
|
+
const packageManagementService = new PackageManagementService({
|
|
177
|
+
defaultRegistryUrl: registryUrl,
|
|
178
|
+
httpLoader,
|
|
179
|
+
documentModelRegistry,
|
|
180
|
+
});
|
|
181
|
+
packageManagementService.setOnModelsChanged(async () => {
|
|
182
|
+
await graphqlManager.regenerateDocumentModelSubgraphs();
|
|
183
|
+
});
|
|
184
|
+
const packagesSubgraph = new PackagesSubgraph({
|
|
185
|
+
relationalDb: undefined,
|
|
186
|
+
analyticsStore: undefined,
|
|
187
|
+
reactorClient: client,
|
|
188
|
+
graphqlManager,
|
|
189
|
+
syncManager: api.syncManager,
|
|
190
|
+
path: graphqlManager.getBasePath(),
|
|
191
|
+
packageManagementService,
|
|
192
|
+
});
|
|
193
|
+
void graphqlManager
|
|
194
|
+
.registerSubgraphInstance(packagesSubgraph, "graphql", false)
|
|
195
|
+
.then(() => graphqlManager.updateRouter())
|
|
196
|
+
.catch((error) => {
|
|
197
|
+
logger.error("Failed to register packages subgraph: @error", error);
|
|
198
|
+
});
|
|
199
|
+
}
|
|
195
200
|
// Create default drive if provided
|
|
196
201
|
if (options.drive) {
|
|
197
|
-
if (!
|
|
198
|
-
throw new Error("Cannot create default drive without
|
|
202
|
+
if (!renown) {
|
|
203
|
+
throw new Error("Cannot create default drive without Renown identity");
|
|
199
204
|
}
|
|
200
|
-
defaultDriveUrl = await addDefaultDrive(
|
|
205
|
+
defaultDriveUrl = await addDefaultDrive(client, options.drive, serverPort);
|
|
201
206
|
}
|
|
202
207
|
// add vite middleware after express app is initialized if applicable
|
|
203
208
|
if (vite) {
|
|
204
|
-
api.
|
|
209
|
+
api.httpAdapter.mountRawMiddleware(vite.middlewares);
|
|
205
210
|
}
|
|
206
211
|
// Connect to remote drives AFTER packages are loaded
|
|
207
212
|
if (remoteDrives.length > 0) {
|
|
208
213
|
for (const remoteDriveUrl of remoteDrives) {
|
|
209
214
|
let driveId;
|
|
210
215
|
try {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
driveId = parsed.driveId;
|
|
221
|
-
const remoteName = `remote-drive-${driveId}-${crypto.randomUUID()}`;
|
|
222
|
-
await syncManager.add(remoteName, driveCollectionId("main", driveId), {
|
|
223
|
-
type: "gql",
|
|
224
|
-
parameters: { url: parsed.graphqlEndpoint },
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
logger.debug(`Remote drive ${remoteDriveUrl} synced`);
|
|
216
|
+
const { syncManager } = api;
|
|
217
|
+
const parsed = parseDriveUrl(remoteDriveUrl);
|
|
218
|
+
driveId = parsed.driveId;
|
|
219
|
+
const remoteName = `remote-drive-${driveId}-${crypto.randomUUID()}`;
|
|
220
|
+
await syncManager.add(remoteName, driveCollectionId("main", driveId), {
|
|
221
|
+
type: "gql",
|
|
222
|
+
parameters: { url: parsed.graphqlEndpoint },
|
|
223
|
+
});
|
|
224
|
+
logger.debug("Remote drive @remoteDriveUrl synced", remoteDriveUrl);
|
|
228
225
|
}
|
|
229
226
|
catch (error) {
|
|
230
|
-
if (error instanceof
|
|
231
|
-
|
|
227
|
+
if (error instanceof Error &&
|
|
228
|
+
error.message.includes("already exists")) {
|
|
229
|
+
logger.debug("Remote drive already added: @remoteDriveUrl", remoteDriveUrl);
|
|
232
230
|
driveId = remoteDriveUrl.split("/").pop();
|
|
233
231
|
}
|
|
234
232
|
else {
|
|
235
|
-
logger.error(
|
|
233
|
+
logger.error("Failed to connect to remote drive @remoteDriveUrl: @error", remoteDriveUrl, error);
|
|
236
234
|
}
|
|
237
235
|
}
|
|
238
236
|
finally {
|
|
@@ -247,8 +245,8 @@ async function initServer(serverPort, options, connectCrypto) {
|
|
|
247
245
|
return {
|
|
248
246
|
defaultDriveUrl,
|
|
249
247
|
api,
|
|
250
|
-
reactor:
|
|
251
|
-
|
|
248
|
+
reactor: client,
|
|
249
|
+
renown,
|
|
252
250
|
};
|
|
253
251
|
}
|
|
254
252
|
export const startSwitchboard = async (options = {}) => {
|
|
@@ -258,47 +256,36 @@ export const startSwitchboard = async (options = {}) => {
|
|
|
258
256
|
const enableDocumentModelSubgraphs = await featureFlags.getBooleanValue(DOCUMENT_MODEL_SUBGRAPHS_ENABLED, options.enableDocumentModelSubgraphs ??
|
|
259
257
|
DOCUMENT_MODEL_SUBGRAPHS_ENABLED_DEFAULT);
|
|
260
258
|
options.enableDocumentModelSubgraphs = enableDocumentModelSubgraphs;
|
|
261
|
-
const
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
options.
|
|
265
|
-
|
|
266
|
-
storageV2,
|
|
267
|
-
};
|
|
268
|
-
logger.info("Feature flags:", {
|
|
259
|
+
const requireSignatures = options.identity?.requireSignatures ??
|
|
260
|
+
(await featureFlags.getBooleanValue(REQUIRE_SIGNATURES, REQUIRE_SIGNATURES_DEFAULT));
|
|
261
|
+
options.identity = { ...options.identity, requireSignatures };
|
|
262
|
+
const logger = options.logger ?? defaultLogger;
|
|
263
|
+
logger.info("Feature flags: @flags", JSON.stringify({
|
|
269
264
|
DOCUMENT_MODEL_SUBGRAPHS_ENABLED: enableDocumentModelSubgraphs,
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
try {
|
|
275
|
-
await initProfilerFromEnv(process.env);
|
|
276
|
-
}
|
|
277
|
-
catch (e) {
|
|
278
|
-
Sentry.captureException(e);
|
|
279
|
-
logger.error("Error starting profiler", e);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
// Initialize ConnectCrypto if identity options are provided or keypair exists
|
|
283
|
-
let connectCrypto = null;
|
|
265
|
+
REQUIRE_SIGNATURES: requireSignatures,
|
|
266
|
+
}, null, 2));
|
|
267
|
+
// Initialize Renown if identity options are provided or keypair exists
|
|
268
|
+
let renown = null;
|
|
284
269
|
try {
|
|
285
|
-
|
|
270
|
+
renown = await initRenown(options.identity);
|
|
286
271
|
}
|
|
287
272
|
catch (e) {
|
|
288
|
-
logger.warn("Failed to initialize ConnectCrypto:", e);
|
|
273
|
+
logger.warn("Failed to initialize ConnectCrypto: @error", e);
|
|
289
274
|
if (options.identity?.requireExisting) {
|
|
290
275
|
throw new Error('Identity required but failed to initialize. Run "ph login" first.');
|
|
291
276
|
}
|
|
292
277
|
}
|
|
293
278
|
try {
|
|
294
|
-
return await initServer(serverPort, options,
|
|
279
|
+
return await initServer(serverPort, options, renown);
|
|
295
280
|
}
|
|
296
281
|
catch (e) {
|
|
297
282
|
Sentry.captureException(e);
|
|
298
|
-
logger.error("App crashed", e);
|
|
283
|
+
logger.error("App crashed: @error", e);
|
|
299
284
|
throw e;
|
|
300
285
|
}
|
|
301
286
|
};
|
|
302
|
-
export { getBearerToken, getConnectCrypto, getConnectDid, } from "./connect-crypto.js";
|
|
303
287
|
export * from "./types.js";
|
|
288
|
+
if (import.meta.main) {
|
|
289
|
+
await startSwitchboard();
|
|
290
|
+
}
|
|
304
291
|
//# sourceMappingURL=server.js.map
|
package/dist/src/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { MeterProvider } from "@opentelemetry/api";
|
|
2
|
+
import type { IReactorClient } from "@powerhousedao/reactor";
|
|
3
|
+
import type { IRenown } from "@renown/sdk";
|
|
4
|
+
import type { DriveInput } from "@powerhousedao/shared/document-drive";
|
|
5
|
+
import type { ILogger } from "document-model";
|
|
3
6
|
export type StorageOptions = {
|
|
4
7
|
type: "filesystem" | "memory" | "postgres" | "browser";
|
|
5
8
|
filesystemPath?: string;
|
|
@@ -13,6 +16,10 @@ export type IdentityOptions = {
|
|
|
13
16
|
* Use this to ensure the switchboard only runs with an authenticated identity.
|
|
14
17
|
*/
|
|
15
18
|
requireExisting?: boolean;
|
|
19
|
+
/** Base url of the Renown instance to use */
|
|
20
|
+
baseUrl?: string;
|
|
21
|
+
/** If true, unsigned actions will be rejected */
|
|
22
|
+
requireSignatures?: boolean;
|
|
16
23
|
};
|
|
17
24
|
export type StartServerOptions = {
|
|
18
25
|
configFile?: string;
|
|
@@ -33,7 +40,7 @@ export type StartServerOptions = {
|
|
|
33
40
|
admins: string[];
|
|
34
41
|
};
|
|
35
42
|
/**
|
|
36
|
-
* Identity options for
|
|
43
|
+
* Identity options for Renown.
|
|
37
44
|
* When configured, the switchboard will load the keypair from `ph login`
|
|
38
45
|
* and can authenticate with remote services on behalf of the user.
|
|
39
46
|
*/
|
|
@@ -41,24 +48,26 @@ export type StartServerOptions = {
|
|
|
41
48
|
mcp?: boolean;
|
|
42
49
|
processorConfig?: Map<string, unknown>;
|
|
43
50
|
disableLocalPackages?: boolean;
|
|
44
|
-
reactorOptions?: {
|
|
45
|
-
/**
|
|
46
|
-
* When true, both legacy and new reactors will use CREATE/UPDATE operation
|
|
47
|
-
* flow for new documents.
|
|
48
|
-
*/
|
|
49
|
-
enableDualActionCreate?: boolean;
|
|
50
|
-
/**
|
|
51
|
-
* When true, the new Reactor uses only the new Kysely-based storage
|
|
52
|
-
* instead of the legacy document-drive storage.
|
|
53
|
-
*/
|
|
54
|
-
storageV2?: boolean;
|
|
55
|
-
};
|
|
56
51
|
enableDocumentModelSubgraphs?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* When true, enables dynamic loading of document models from the registry
|
|
54
|
+
* when an unknown document type is encountered during sync.
|
|
55
|
+
* Disabled by default — enable with DYNAMIC_MODEL_LOADING=true env var.
|
|
56
|
+
*/
|
|
57
|
+
dynamicModelLoading?: boolean;
|
|
58
|
+
logger?: ILogger;
|
|
59
|
+
/**
|
|
60
|
+
* OpenTelemetry MeterProvider to register as the global provider before
|
|
61
|
+
* ReactorInstrumentation starts. Must be provided here rather than set
|
|
62
|
+
* externally to guarantee the registration happens before
|
|
63
|
+
* instrumentation.start() reads the global provider via metrics.getMeter().
|
|
64
|
+
*/
|
|
65
|
+
meterProvider?: MeterProvider;
|
|
57
66
|
};
|
|
58
67
|
export type SwitchboardReactor = {
|
|
59
68
|
defaultDriveUrl: string | undefined;
|
|
60
|
-
reactor:
|
|
61
|
-
/** The
|
|
62
|
-
|
|
69
|
+
reactor: IReactorClient;
|
|
70
|
+
/** The Renown instance if identity was initialized */
|
|
71
|
+
renown: IRenown | null;
|
|
63
72
|
};
|
|
64
73
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,EACF;QACE,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,GACD,OAAO,GACP,SAAS,CAAC;IACd,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,OAAO,EAAE,cAAc,CAAC;IACxB,sDAAsD;IACtD,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CACxB,CAAC"}
|
package/dist/src/utils.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { IReactorClient } from "@powerhousedao/reactor";
|
|
2
|
-
import type {
|
|
3
|
-
export declare function addDefaultDrive(
|
|
2
|
+
import type { DriveInput } from "@powerhousedao/shared/document-drive";
|
|
3
|
+
export declare function addDefaultDrive(client: IReactorClient, drive: DriveInput, serverPort: number): Promise<string>;
|
|
4
4
|
export declare function isPostgresUrl(url: string): boolean;
|
|
5
|
-
export declare function addRemoteDrive(driveServer: IDocumentDriveServer, remoteDriveUrl: string): Promise<DocumentDriveDocument>;
|
|
6
5
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/src/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAM7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAGvE,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,MAAM,mBA8DnB;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,WAExC"}
|
package/dist/src/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { driveCreateDocument, driveCreateState } from "document-drive";
|
|
2
|
-
import { generateId } from "document-model
|
|
3
|
-
export async function addDefaultDrive(
|
|
1
|
+
import { driveCreateDocument, driveCreateState, } from "@powerhousedao/shared/document-drive";
|
|
2
|
+
import { generateId } from "@powerhousedao/shared/document-model";
|
|
3
|
+
export async function addDefaultDrive(client, drive, serverPort) {
|
|
4
4
|
let driveId = drive.id;
|
|
5
5
|
if (!driveId || driveId.length === 0) {
|
|
6
6
|
driveId = drive.slug;
|
|
@@ -55,38 +55,9 @@ export async function addDefaultDrive(driveServer, client, drive, serverPort) {
|
|
|
55
55
|
throw e;
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
-
// YIKES: this is a backward compatibility hack to emit a drive added event
|
|
59
|
-
// This should be removed once we are not supporting legacy write operations.
|
|
60
|
-
driveServer.eventEmitter.emit("driveAdded", document);
|
|
61
58
|
return `http://localhost:${serverPort}/d/${driveId}`;
|
|
62
59
|
}
|
|
63
60
|
export function isPostgresUrl(url) {
|
|
64
61
|
return url.startsWith("postgresql") || url.startsWith("postgres");
|
|
65
62
|
}
|
|
66
|
-
export async function addRemoteDrive(driveServer, remoteDriveUrl) {
|
|
67
|
-
return await driveServer.addRemoteDrive(remoteDriveUrl, {
|
|
68
|
-
availableOffline: true,
|
|
69
|
-
sharingType: "public",
|
|
70
|
-
listeners: [
|
|
71
|
-
{
|
|
72
|
-
block: true,
|
|
73
|
-
callInfo: {
|
|
74
|
-
data: remoteDriveUrl,
|
|
75
|
-
name: "switchboard-push",
|
|
76
|
-
transmitterType: "SwitchboardPush",
|
|
77
|
-
},
|
|
78
|
-
filter: {
|
|
79
|
-
branch: ["main"],
|
|
80
|
-
documentId: ["*"],
|
|
81
|
-
documentType: ["*"],
|
|
82
|
-
scope: ["global"],
|
|
83
|
-
},
|
|
84
|
-
label: "Switchboard Sync",
|
|
85
|
-
listenerId: generateId(),
|
|
86
|
-
system: true,
|
|
87
|
-
},
|
|
88
|
-
],
|
|
89
|
-
triggers: [],
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
63
|
//# sourceMappingURL=utils.js.map
|