diff --git a/ee/packages/federation-matrix/src/FederationMatrix.ts b/ee/packages/federation-matrix/src/FederationMatrix.ts index 6380f8a803360..57041539bb6bf 100644 --- a/ee/packages/federation-matrix/src/FederationMatrix.ts +++ b/ee/packages/federation-matrix/src/FederationMatrix.ts @@ -40,7 +40,26 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS static async create(emitter?: Emitter): Promise { const instance = new FederationMatrix(emitter); - const config = new ConfigService(); + const config = new ConfigService({ + database: { + uri: process.env.MONGODB_URI || 'mongodb://localhost:3001/meteor', + name: process.env.DATABASE_NAME || 'meteor', + poolSize: Number.parseInt(process.env.DATABASE_POOL_SIZE || '10', 10), + }, + server: { + name: process.env.SERVER_NAME || 'rc1', + version: process.env.SERVER_VERSION || '1.0', + port: Number.parseInt(process.env.SERVER_PORT || '8080', 10), + baseUrl: process.env.SERVER_BASE_URL || 'http://rc1:8080', + host: process.env.SERVER_HOST || '0.0.0.0', + }, + matrix: { + serverName: process.env.MATRIX_SERVER_NAME || 'rc1', + domain: process.env.MATRIX_DOMAIN || 'rc1', + keyRefreshInterval: Number.parseInt(process.env.MATRIX_KEY_REFRESH_INTERVAL || '60', 10), + }, + signingKeyPath: process.env.CONFIG_FOLDER || './rc1.signing.key', + }); const matrixConfig = config.getMatrixConfig(); const serverConfig = config.getServerConfig(); const signingKeys = await config.getSigningKey(); @@ -57,7 +76,7 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS }, }; - await createFederationContainer(containerOptions); + await createFederationContainer(containerOptions, config); instance.homeserverServices = getAllServices(); instance.buildMatrixHTTPRoutes(); @@ -75,7 +94,7 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS .use(getMatrixSendJoinRoutes(this.homeserverServices)) .use(getMatrixTransactionsRoutes(this.homeserverServices)) .use(getKeyServerRoutes(this.homeserverServices)) - .use(getFederationVersionsRoutes()); + .use(getFederationVersionsRoutes(this.homeserverServices)); wellKnown.use(getWellKnownRoutes(this.homeserverServices)); diff --git a/ee/packages/federation-matrix/src/api/_matrix/versions.ts b/ee/packages/federation-matrix/src/api/_matrix/versions.ts index 49cbce61f6d0c..7b2dcc280cb9d 100644 --- a/ee/packages/federation-matrix/src/api/_matrix/versions.ts +++ b/ee/packages/federation-matrix/src/api/_matrix/versions.ts @@ -1,4 +1,4 @@ -import { ConfigService } from '@hs/federation-sdk'; +import type { HomeserverServices } from '@hs/federation-sdk'; import { Router } from '@rocket.chat/http-router'; import { ajv } from '@rocket.chat/rest-typings/dist/v1/Ajv'; @@ -25,8 +25,8 @@ const GetVersionsResponseSchema = { const isGetVersionsResponseProps = ajv.compile(GetVersionsResponseSchema); -export const getFederationVersionsRoutes = () => { - const configService = new ConfigService(); +export const getFederationVersionsRoutes = (services: HomeserverServices) => { + const { config } = services; return new Router('/federation').get( '/v1/version', @@ -38,12 +38,12 @@ export const getFederationVersionsRoutes = () => { license: ['federation'], }, async () => { - const config = configService.getServerConfig(); + const serverConfig = config.getServerConfig(); const response = { server: { - name: config.name, - version: config.version, + name: serverConfig.name, + version: serverConfig.version, }, };