From 482eab689fad18ca94ee2e6061e11724bf58fabd Mon Sep 17 00:00:00 2001 From: Guilherme Gazzo Date: Sat, 20 Sep 2025 09:46:53 -0300 Subject: [PATCH] fadd missing version fields to models --- .../app/lib/server/functions/createRoom.ts | 6 ++++++ .../meteor/server/services/federation/utils.ts | 18 ------------------ .../messages/hooks/BeforeFederationActions.ts | 6 +++--- .../src/api/_matrix/invite.ts | 3 +++ .../federation-matrix/src/events/invite.ts | 3 +++ 5 files changed, 15 insertions(+), 21 deletions(-) diff --git a/apps/meteor/app/lib/server/functions/createRoom.ts b/apps/meteor/app/lib/server/functions/createRoom.ts index b8bec55f5a37d..747d8704eda73 100644 --- a/apps/meteor/app/lib/server/functions/createRoom.ts +++ b/apps/meteor/app/lib/server/functions/createRoom.ts @@ -190,6 +190,12 @@ export const createRoom = async ( fname: name, _updatedAt: now, ...extraData, + ...(extraData.federated && { + federated: true, + federation: { + version: 1, + }, + }), name: isDiscussion ? name : await getValidRoomName(name.trim(), undefined), t: type, msgs: 0, diff --git a/apps/meteor/server/services/federation/utils.ts b/apps/meteor/server/services/federation/utils.ts index b997cbac84a8e..d36f98961b8d4 100644 --- a/apps/meteor/server/services/federation/utils.ts +++ b/apps/meteor/server/services/federation/utils.ts @@ -34,24 +34,6 @@ export function throwIfFederationNotEnabledOrNotReady(): void { if (!isFederationEnabled()) { throw new Error('Federation is not enabled'); } - - if (!isFederationReady()) { - throw new Error('Federation configuration is invalid'); - } -} - -export function throwIfFederationEnabledButNotReady(): void { - if (!isFederationEnabled()) { - return; - } - - throwIfFederationNotReady(); -} - -export function throwIfFederationNotReady(): void { - if (!isFederationReady()) { - throw new Error('Federation configuration is invalid'); - } } export class FederationMatrixInvalidConfigurationError extends Error { diff --git a/apps/meteor/server/services/messages/hooks/BeforeFederationActions.ts b/apps/meteor/server/services/messages/hooks/BeforeFederationActions.ts index a8bbfb90fbb14..c3c00ce27dd81 100644 --- a/apps/meteor/server/services/messages/hooks/BeforeFederationActions.ts +++ b/apps/meteor/server/services/messages/hooks/BeforeFederationActions.ts @@ -1,15 +1,15 @@ -import { isMessageFromNativeFederation, isRoomFederated, isRoomNativeFederated } from '@rocket.chat/core-typings'; +import { isRoomFederated, isRoomNativeFederated } from '@rocket.chat/core-typings'; import type { AtLeast, IMessage, IRoom } from '@rocket.chat/core-typings'; import { isFederationEnabled } from '../../federation/utils'; export class FederationActions { - public static shouldPerformAction(message: IMessage, room: AtLeast): boolean { + public static shouldPerformAction(_message: IMessage, room: AtLeast): boolean { if (!isRoomFederated(room)) { return true; } - if (!isRoomNativeFederated(room) || !isMessageFromNativeFederation(message)) { + if (!isRoomNativeFederated(room)) { return false; } diff --git a/ee/packages/federation-matrix/src/api/_matrix/invite.ts b/ee/packages/federation-matrix/src/api/_matrix/invite.ts index 115caa1f564d6..e44d548eaf196 100644 --- a/ee/packages/federation-matrix/src/api/_matrix/invite.ts +++ b/ee/packages/federation-matrix/src/api/_matrix/invite.ts @@ -211,6 +211,9 @@ async function joinRoom({ name: inviteEvent.sender, requirePasswordChange: false, federated: true, + federation: { + version: 1, + }, createdAt: new Date(), _updatedAt: new Date(), }; diff --git a/ee/packages/federation-matrix/src/events/invite.ts b/ee/packages/federation-matrix/src/events/invite.ts index 12a40d10e03a3..225b475f9bbf6 100644 --- a/ee/packages/federation-matrix/src/events/invite.ts +++ b/ee/packages/federation-matrix/src/events/invite.ts @@ -30,6 +30,9 @@ export function invite(emitter: Emitter) { createdAt: new Date(), _updatedAt: new Date(), federated: true, + federation: { + version: 1, + }, }); const serverName = data.sender.split(':')[1] || 'unknown'; const bridgedUser = await MatrixBridgedUser.findOne({ mui: data.sender });