From a3b229165cca0c844f79e479b65359a8d5a52dcf Mon Sep 17 00:00:00 2001 From: Rory& Date: Fri, 10 Jul 2026 05:04:24 +0200 Subject: [PATCH] Add JWT keypair init hooks to various services --- src/api/Server.ts | 15 ++++++++++++++- src/gateway/Server.ts | 3 ++- src/webrtc/Server.ts | 3 ++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/api/Server.ts b/src/api/Server.ts index 1266bf42e..074dc7791 100644 --- a/src/api/Server.ts +++ b/src/api/Server.ts @@ -22,7 +22,19 @@ import morgan from "morgan"; import { Server, ServerOptions } from "lambert-server/Server"; import { red } from "picocolors"; import { getDatabase, initDatabase, Message } from "@spacebar/database"; -import { Config, ConnectionConfig, ConnectionLoader, Email, JSONReplacer, WebAuthn, initEvent, registerRoutes, getRevInfoOrFail, pendingPolls } from "@spacebar/util"; +import { + Config, + ConnectionConfig, + ConnectionLoader, + Email, + JSONReplacer, + WebAuthn, + initEvent, + registerRoutes, + getRevInfoOrFail, + pendingPolls, + JwtKeypairManager, +} from "@spacebar/util"; import { ProcessLifecycle } from "../util/util/ProcessLifecycle"; import { Monitoring } from "../util/monitoring/Monitoring"; import { BcryptWorkerPool } from "../util/util/workers/bcrypt/BcryptWorkerPool"; @@ -63,6 +75,7 @@ export class SpacebarServer extends Server { await Email.init(); await ConnectionConfig.init(); await initInstance(); + await JwtKeypairManager.init(); WebAuthn.init(); // await BcryptWorkerPool.Init(8); // TODO: make configurable await GifProviderManager.init(); diff --git a/src/gateway/Server.ts b/src/gateway/Server.ts index dd19d9da2..56014f265 100644 --- a/src/gateway/Server.ts +++ b/src/gateway/Server.ts @@ -21,7 +21,7 @@ import { setInterval } from "node:timers"; import ws from "ws"; import { initDatabase } from "@spacebar/database"; import { Random } from "@spacebar/extensions"; -import { checkToken, Config, initEvent, Rights } from "@spacebar/util"; +import { checkToken, Config, initEvent, JwtKeypairManager, Rights } from "@spacebar/util"; import { ProcessLifecycle } from "../util/util/ProcessLifecycle"; import { Monitoring } from "../util/monitoring/Monitoring"; import { Connection, openConnections } from "./events/Connection"; @@ -182,6 +182,7 @@ export class Server { await initEvent(); // temporary fix await cleanupOnStartup(); + await JwtKeypairManager.init(); if (!this.server.listening) { this.server.listen(this.port); diff --git a/src/webrtc/Server.ts b/src/webrtc/Server.ts index d58c249fc..d86d8eaa9 100644 --- a/src/webrtc/Server.ts +++ b/src/webrtc/Server.ts @@ -20,7 +20,7 @@ import http from "node:http"; import ws from "ws"; import { green, yellow } from "picocolors"; import { initDatabase } from "@spacebar/database"; -import { Config, initEvent } from "@spacebar/util"; +import { Config, initEvent, JwtKeypairManager } from "@spacebar/util"; import { ProcessLifecycle } from "../util/util/ProcessLifecycle"; import { Monitoring } from "../util/monitoring/Monitoring"; import { Connection } from "./events/Connection"; @@ -68,6 +68,7 @@ export class Server { await initDatabase(); await Config.init(); await initEvent(); + await JwtKeypairManager.init(); // try to load webrtc library, if failed just don't start webrtc endpoint try {