aboutsummaryrefslogtreecommitdiff
path: root/roomserver
diff options
context:
space:
mode:
authorSam Wedgwood <28223854+swedgwood@users.noreply.github.com>2023-08-08 14:20:05 +0100
committerGitHub <noreply@github.com>2023-08-08 14:20:05 +0100
commit35804f8493a7a51542b27ff98bc60814685d5020 (patch)
tree0138df2ced6da0f8d03a51d38ace5a3651f68cd2 /roomserver
parent294eff8a7f42f11b3559ca941468c766358fcae1 (diff)
Add config key for default room version (#3171)
This PR adds a config key `room_server.default_config_key` to set the default room version for the room server. Signed-off-by: `Sam Wedgwood <sam@wedgwood.dev>`
Diffstat (limited to 'roomserver')
-rw-r--r--roomserver/api/api.go7
-rw-r--r--roomserver/internal/api.go6
-rw-r--r--roomserver/roomserver_test.go3
-rw-r--r--roomserver/version/version.go6
4 files changed, 14 insertions, 8 deletions
diff --git a/roomserver/api/api.go b/roomserver/api/api.go
index 69997fc4..ad6a7122 100644
--- a/roomserver/api/api.go
+++ b/roomserver/api/api.go
@@ -55,6 +55,11 @@ type RestrictedJoinAPI interface {
LocallyJoinedUsers(ctx context.Context, roomVersion gomatrixserverlib.RoomVersion, roomNID types.RoomNID) ([]gomatrixserverlib.PDU, error)
}
+type DefaultRoomVersionAPI interface {
+ // Returns the default room version used.
+ DefaultRoomVersion() gomatrixserverlib.RoomVersion
+}
+
// RoomserverInputAPI is used to write events to the room server.
type RoomserverInternalAPI interface {
SyncRoomserverAPI
@@ -64,6 +69,7 @@ type RoomserverInternalAPI interface {
FederationRoomserverAPI
QuerySenderIDAPI
UserRoomPrivateKeyCreator
+ DefaultRoomVersionAPI
// needed to avoid chicken and egg scenario when setting up the
// interdependencies between the roomserver and other input APIs
@@ -210,6 +216,7 @@ type ClientRoomserverAPI interface {
QuerySenderIDAPI
UserRoomPrivateKeyCreator
QueryRoomHierarchyAPI
+ DefaultRoomVersionAPI
QueryMembershipForUser(ctx context.Context, req *QueryMembershipForUserRequest, res *QueryMembershipForUserResponse) error
QueryMembershipsForRoom(ctx context.Context, req *QueryMembershipsForRoomRequest, res *QueryMembershipsForRoomResponse) error
QueryRoomsForUser(ctx context.Context, req *QueryRoomsForUserRequest, res *QueryRoomsForUserResponse) error
diff --git a/roomserver/internal/api.go b/roomserver/internal/api.go
index e8899a21..530147da 100644
--- a/roomserver/internal/api.go
+++ b/roomserver/internal/api.go
@@ -61,6 +61,7 @@ type RoomserverInternalAPI struct {
OutputProducer *producers.RoomEventProducer
PerspectiveServerNames []spec.ServerName
enableMetrics bool
+ defaultRoomVersion gomatrixserverlib.RoomVersion
}
func NewRoomserverAPI(
@@ -92,6 +93,7 @@ func NewRoomserverAPI(
Durable: dendriteCfg.Global.JetStream.Durable("RoomserverInputConsumer"),
ServerACLs: serverACLs,
enableMetrics: enableMetrics,
+ defaultRoomVersion: dendriteCfg.RoomServer.DefaultRoomVersion,
// perform-er structs + queryer struct get initialised when we have a federation sender to use
}
return a
@@ -218,6 +220,10 @@ func (r *RoomserverInternalAPI) SetAppserviceAPI(asAPI asAPI.AppServiceInternalA
r.asAPI = asAPI
}
+func (r *RoomserverInternalAPI) DefaultRoomVersion() gomatrixserverlib.RoomVersion {
+ return r.defaultRoomVersion
+}
+
func (r *RoomserverInternalAPI) IsKnownRoom(ctx context.Context, roomID spec.RoomID) (bool, error) {
return r.Inviter.IsKnownRoom(ctx, roomID)
}
diff --git a/roomserver/roomserver_test.go b/roomserver/roomserver_test.go
index 1626bf83..47626b30 100644
--- a/roomserver/roomserver_test.go
+++ b/roomserver/roomserver_test.go
@@ -11,7 +11,6 @@ import (
"github.com/matrix-org/dendrite/internal/eventutil"
"github.com/matrix-org/dendrite/internal/httputil"
"github.com/matrix-org/dendrite/internal/sqlutil"
- "github.com/matrix-org/dendrite/roomserver/version"
"github.com/matrix-org/gomatrixserverlib/spec"
"github.com/stretchr/testify/assert"
"github.com/tidwall/gjson"
@@ -1060,7 +1059,7 @@ func TestUpgrade(t *testing.T) {
if err != nil {
t.Fatalf("upgrade userID is invalid")
}
- newRoomID, err := rsAPI.PerformRoomUpgrade(processCtx.Context(), roomID, *userID, version.DefaultRoomVersion())
+ newRoomID, err := rsAPI.PerformRoomUpgrade(processCtx.Context(), roomID, *userID, rsAPI.DefaultRoomVersion())
if err != nil && tc.wantNewRoom {
t.Fatal(err)
}
diff --git a/roomserver/version/version.go b/roomserver/version/version.go
index 270d4289..e8bd890a 100644
--- a/roomserver/version/version.go
+++ b/roomserver/version/version.go
@@ -20,12 +20,6 @@ import (
"github.com/matrix-org/gomatrixserverlib"
)
-// DefaultRoomVersion contains the room version that will, by
-// default, be used to create new rooms on this server.
-func DefaultRoomVersion() gomatrixserverlib.RoomVersion {
- return gomatrixserverlib.RoomVersionV10
-}
-
// RoomVersions returns a map of all known room versions to this
// server.
func RoomVersions() map[gomatrixserverlib.RoomVersion]gomatrixserverlib.IRoomVersion {