@powerhousedao/switchboard 4.1.0-dev.89 → 4.1.0-dev.90
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/CHANGELOG.md +14 -0
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +57 -21
- package/dist/src/server.js.map +1 -1
- package/dist/src/utils.d.ts +1 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +3 -0
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## 4.1.0-dev.90 (2025-10-27)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- **reactor-api:** updated apollo server to v5 ([66dffda7b](https://github.com/powerhouse-inc/powerhouse/commit/66dffda7b))
|
|
6
|
+
|
|
7
|
+
### 🩹 Fixes
|
|
8
|
+
|
|
9
|
+
- **switchboard:** fallback to filesystem storage if postgres db is unavailable ([97e40bbf5](https://github.com/powerhouse-inc/powerhouse/commit/97e40bbf5))
|
|
10
|
+
|
|
11
|
+
### ❤️ Thank You
|
|
12
|
+
|
|
13
|
+
- acaldas
|
|
14
|
+
|
|
1
15
|
## 4.1.0-dev.89 (2025-10-24)
|
|
2
16
|
|
|
3
17
|
### 🩹 Fixes
|
package/dist/src/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":";AA2CA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA0MzE,eAAO,MAAM,gBAAgB,GAC3B,UAAS,kBAAuB,KAC/B,OAAO,CAAC,kBAAkB,CAgC5B,CAAC;AAEF,cAAc,YAAY,CAAC"}
|
package/dist/src/server.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { EventBus, InMemoryJobTracker, InMemoryQueue, Reactor, ReactorClientBuilder, ReadModelCoordinator, } from "@powerhousedao/reactor";
|
|
3
3
|
import { VitePackageLoader, startAPI, startViteServer, } from "@powerhousedao/reactor-api";
|
|
4
4
|
import * as Sentry from "@sentry/node";
|
|
5
|
-
import { DocumentAlreadyExistsError, InMemoryCache, ReactorBuilder, RedisCache, driveDocumentModelModule, } from "document-drive";
|
|
5
|
+
import { DocumentAlreadyExistsError, InMemoryCache, ReactorBuilder, RedisCache, childLogger, driveDocumentModelModule, } from "document-drive";
|
|
6
6
|
import { FilesystemStorage } from "document-drive/storage/filesystem";
|
|
7
7
|
import { PrismaStorageFactory } from "document-drive/storage/prisma";
|
|
8
8
|
import { documentModelDocumentModelModule } from "document-model";
|
|
@@ -12,12 +12,13 @@ import path from "path";
|
|
|
12
12
|
import { initRedis } from "./clients/redis.js";
|
|
13
13
|
import { initFeatureFlags, isDualActionCreateEnabled, isReactorv2Enabled, } from "./feature-flags.js";
|
|
14
14
|
import { initProfilerFromEnv } from "./profiler.js";
|
|
15
|
-
import { addDefaultDrive } from "./utils.js";
|
|
15
|
+
import { addDefaultDrive, isPostgresUrl } from "./utils.js";
|
|
16
|
+
const logger = childLogger(["switchboard"]);
|
|
16
17
|
dotenv.config();
|
|
17
18
|
// Create a monolith express app for all subgraphs
|
|
18
19
|
const app = express();
|
|
19
20
|
if (process.env.SENTRY_DSN) {
|
|
20
|
-
|
|
21
|
+
logger.info("Initialized Sentry with env:", process.env.SENTRY_ENV);
|
|
21
22
|
Sentry.init({
|
|
22
23
|
dsn: process.env.SENTRY_DSN,
|
|
23
24
|
environment: process.env.SENTRY_ENV,
|
|
@@ -25,8 +26,49 @@ if (process.env.SENTRY_DSN) {
|
|
|
25
26
|
Sentry.setupExpressErrorHandler(app);
|
|
26
27
|
}
|
|
27
28
|
const DEFAULT_PORT = process.env.PORT ? Number(process.env.PORT) : 4001;
|
|
29
|
+
async function initPrismaStorage(connectionString, cache) {
|
|
30
|
+
try {
|
|
31
|
+
const prismaFactory = new PrismaStorageFactory(connectionString, cache);
|
|
32
|
+
await prismaFactory.checkConnection();
|
|
33
|
+
return prismaFactory.build();
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
const prismaConnectError = "Can't reach database server at";
|
|
37
|
+
if (e instanceof Error && e.message.includes(prismaConnectError)) {
|
|
38
|
+
const dbUrl = connectionString;
|
|
39
|
+
const safeUrl = `${dbUrl.slice(0, dbUrl.indexOf(":") + 1)}{...}${dbUrl.slice(dbUrl.indexOf("@"), dbUrl.lastIndexOf("?"))}`;
|
|
40
|
+
logger.warn(`Can't reach database server at '${safeUrl}'`);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
logger.error(e);
|
|
44
|
+
}
|
|
45
|
+
throw e;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async function initReactorStorage(cache, dbPath = "./.ph/drive-storage") {
|
|
49
|
+
const isPostgres = isPostgresUrl(dbPath);
|
|
50
|
+
try {
|
|
51
|
+
if (isPostgres) {
|
|
52
|
+
const connectionString = dbPath.includes("amazonaws") && !dbPath.includes("sslmode=no-verify")
|
|
53
|
+
? dbPath + "?sslmode=no-verify"
|
|
54
|
+
: dbPath;
|
|
55
|
+
const storage = await initPrismaStorage(connectionString, cache);
|
|
56
|
+
return { storage, storagePath: dbPath };
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
logger.warn("Falling back to filesystem storage");
|
|
61
|
+
}
|
|
62
|
+
// if url was postgres and connection failed, fallback to filesystem on default path
|
|
63
|
+
const filesystemPath = isPostgres ? "./.ph/drive-storage" : dbPath;
|
|
64
|
+
return {
|
|
65
|
+
storage: new FilesystemStorage(path.join(process.cwd(), filesystemPath)),
|
|
66
|
+
storagePath: filesystemPath,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
28
69
|
async function initServer(serverPort, options) {
|
|
29
70
|
const { dev, packages = [], remoteDrives = [] } = options;
|
|
71
|
+
const dbPath = options.dbPath ?? process.env.DATABASE_URL;
|
|
30
72
|
// start redis if configured
|
|
31
73
|
const redisUrl = process.env.REDIS_TLS_URL ?? process.env.REDIS_URL;
|
|
32
74
|
let redis;
|
|
@@ -35,21 +77,16 @@ async function initServer(serverPort, options) {
|
|
|
35
77
|
redis = await initRedis(redisUrl);
|
|
36
78
|
}
|
|
37
79
|
catch (e) {
|
|
38
|
-
|
|
80
|
+
logger.error(e);
|
|
39
81
|
}
|
|
40
82
|
}
|
|
41
|
-
const connectionString = process.env.DATABASE_URL ?? "./.ph/drive-storage";
|
|
42
|
-
const dbUrl = connectionString.includes("amazonaws") &&
|
|
43
|
-
!connectionString.includes("sslmode=no-verify")
|
|
44
|
-
? connectionString + "?sslmode=no-verify"
|
|
45
|
-
: connectionString;
|
|
46
83
|
const cache = redis ? new RedisCache(redis) : new InMemoryCache();
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const
|
|
51
|
-
?
|
|
52
|
-
:
|
|
84
|
+
const { storage, storagePath } = await initReactorStorage(cache, dbPath);
|
|
85
|
+
// if dbPath is not configured, or it was a postgres url but the connection failed,
|
|
86
|
+
// use default path for read model storage
|
|
87
|
+
const readModelPath = !dbPath || (isPostgresUrl(dbPath) && dbPath !== storagePath)
|
|
88
|
+
? ".ph/read-storage"
|
|
89
|
+
: dbPath;
|
|
53
90
|
const driveServer = new ReactorBuilder([
|
|
54
91
|
documentModelDocumentModelModule,
|
|
55
92
|
driveDocumentModelModule,
|
|
@@ -68,7 +105,6 @@ async function initServer(serverPort, options) {
|
|
|
68
105
|
const queue = new InMemoryQueue(eventBus);
|
|
69
106
|
const reactor = new Reactor(driveServer, storage, queue, new InMemoryJobTracker(), new ReadModelCoordinator(eventBus, []));
|
|
70
107
|
const client = new ReactorClientBuilder().withReactor(reactor).build();
|
|
71
|
-
const dbPath = dbUrl.startsWith("postgresql") ? dbUrl : ".ph/read-storage";
|
|
72
108
|
let defaultDriveUrl = undefined;
|
|
73
109
|
// Create default drive if provided
|
|
74
110
|
if (options.drive) {
|
|
@@ -88,7 +124,7 @@ async function initServer(serverPort, options) {
|
|
|
88
124
|
const api = await startAPI(driveServer, client, {
|
|
89
125
|
express: app,
|
|
90
126
|
port: serverPort,
|
|
91
|
-
dbPath:
|
|
127
|
+
dbPath: readModelPath,
|
|
92
128
|
https: options.https,
|
|
93
129
|
packageLoader,
|
|
94
130
|
packages: packages,
|
|
@@ -118,14 +154,14 @@ async function initServer(serverPort, options) {
|
|
|
118
154
|
}
|
|
119
155
|
catch (error) {
|
|
120
156
|
if (error instanceof DocumentAlreadyExistsError) {
|
|
121
|
-
|
|
157
|
+
logger.debug(`Remote drive already added: ${remoteDriveUrl}`);
|
|
122
158
|
// Still use this drive URL as default if not already set
|
|
123
159
|
if (!defaultDriveUrl) {
|
|
124
160
|
defaultDriveUrl = remoteDriveUrl;
|
|
125
161
|
}
|
|
126
162
|
}
|
|
127
163
|
else {
|
|
128
|
-
|
|
164
|
+
logger.error(`Failed to connect to remote drive ${remoteDriveUrl}:`, error);
|
|
129
165
|
}
|
|
130
166
|
}
|
|
131
167
|
}
|
|
@@ -154,7 +190,7 @@ export const startSwitchboard = async (options = {}) => {
|
|
|
154
190
|
}
|
|
155
191
|
catch (e) {
|
|
156
192
|
Sentry.captureException(e);
|
|
157
|
-
|
|
193
|
+
logger.error("Error starting profiler", e);
|
|
158
194
|
}
|
|
159
195
|
}
|
|
160
196
|
try {
|
|
@@ -162,7 +198,7 @@ export const startSwitchboard = async (options = {}) => {
|
|
|
162
198
|
}
|
|
163
199
|
catch (e) {
|
|
164
200
|
Sentry.captureException(e);
|
|
165
|
-
|
|
201
|
+
logger.error("App crashed", e);
|
|
166
202
|
throw e;
|
|
167
203
|
}
|
|
168
204
|
};
|
package/dist/src/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":";AACA,OAAO,EACL,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,OAAO,EACP,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,eAAe,GAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { DriveInput, IDocumentDriveServer } from "document-drive";
|
|
2
2
|
export declare function addDefaultDrive(driveServer: IDocumentDriveServer, drive: DriveInput, serverPort: number): Promise<string>;
|
|
3
|
+
export declare function isPostgresUrl(url: string): boolean;
|
|
3
4
|
//# 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,UAAU,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGvE,wBAAsB,eAAe,CACnC,WAAW,EAAE,oBAAoB,EACjC,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,MAAM,mBAqBnB"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGvE,wBAAsB,eAAe,CACnC,WAAW,EAAE,oBAAoB,EACjC,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,MAAM,mBAqBnB;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,WAExC"}
|
package/dist/src/utils.js
CHANGED
|
@@ -18,4 +18,7 @@ export async function addDefaultDrive(driveServer, drive, serverPort) {
|
|
|
18
18
|
}
|
|
19
19
|
return `http://localhost:${serverPort}/d/${driveId}`;
|
|
20
20
|
}
|
|
21
|
+
export function isPostgresUrl(url) {
|
|
22
|
+
return url.startsWith("postgresql") || url.startsWith("postgres");
|
|
23
|
+
}
|
|
21
24
|
//# sourceMappingURL=utils.js.map
|
package/dist/src/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,WAAiC,EACjC,KAAiB,EACjB,UAAkB;IAElB,IAAI,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;IACvB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC;QACH,oBAAoB;QACpB,MAAM,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,CAAC,CAAC,YAAY,0BAA0B,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,OAAO,oBAAoB,UAAU,MAAM,OAAO,EAAE,CAAC;AACvD,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,WAAiC,EACjC,KAAiB,EACjB,UAAkB;IAElB,IAAI,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;IACvB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC;QACH,oBAAoB;QACpB,MAAM,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,CAAC,CAAC,YAAY,0BAA0B,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,OAAO,oBAAoB,UAAU,MAAM,OAAO,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACpE,CAAC"}
|