diff --git a/build/docker/config/dendrite-config.yaml b/build/docker/config/dendrite-config.yaml index bc5d66994..8a4528ebb 100644 --- a/build/docker/config/dendrite-config.yaml +++ b/build/docker/config/dendrite-config.yaml @@ -187,7 +187,7 @@ federation_sender: listen: http://0.0.0.0:7775 connect: http://federation_sender:7775 database: - connection_string: postgresql://dendrite:itsasecret@postgres/dendrite_federationsender?sslmode=disable + connection_string: postgresql://dendrite:itsasecret@postgres/dendrite_federationapi?sslmode=disable max_open_conns: 10 max_idle_conns: 2 conn_max_lifetime: -1 diff --git a/build/docker/docker-compose.polylith.yml b/build/docker/docker-compose.polylith.yml index 5174830b5..3f4b8a489 100644 --- a/build/docker/docker-compose.polylith.yml +++ b/build/docker/docker-compose.polylith.yml @@ -58,7 +58,7 @@ services: federation_sender: hostname: federation_sender image: matrixdotorg/dendrite-polylith:latest - command: federationsender + command: federationapi volumes: - ./config:/etc/dendrite networks: diff --git a/build/docker/postgres/create_db.sh b/build/docker/postgres/create_db.sh index eb77bb26f..880e97cc5 100755 --- a/build/docker/postgres/create_db.sh +++ b/build/docker/postgres/create_db.sh @@ -1,5 +1,5 @@ #!/bin/sh -for db in userapi_accounts userapi_devices mediaapi syncapi roomserver signingkeyserver keyserver federationsender appservice naffka; do +for db in userapi_accounts userapi_devices mediaapi syncapi roomserver signingkeyserver keyserver federationapi appservice naffka; do createdb -U dendrite -O dendrite dendrite_$db done diff --git a/build/gobind-pinecone/monolith.go b/build/gobind-pinecone/monolith.go index 21dc128c5..61d69ffd6 100644 --- a/build/gobind-pinecone/monolith.go +++ b/build/gobind-pinecone/monolith.go @@ -24,8 +24,8 @@ import ( "github.com/matrix-org/dendrite/cmd/dendrite-demo-yggdrasil/signing" "github.com/matrix-org/dendrite/eduserver" "github.com/matrix-org/dendrite/eduserver/cache" - "github.com/matrix-org/dendrite/federationsender" - "github.com/matrix-org/dendrite/federationsender/api" + "github.com/matrix-org/dendrite/federationapi" + "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/internal/httputil" "github.com/matrix-org/dendrite/keyserver" "github.com/matrix-org/dendrite/roomserver" @@ -272,7 +272,7 @@ func (m *DendriteMonolith) Start() { cfg.RoomServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/%s-roomserver.db", m.StorageDirectory, prefix)) cfg.SigningKeyServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/%s-signingkeyserver.db", m.StorageDirectory, prefix)) cfg.KeyServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/%s-keyserver.db", m.StorageDirectory, prefix)) - cfg.FederationSender.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/%s-federationsender.db", m.StorageDirectory, prefix)) + cfg.FederationSender.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/%s-federationapi.db", m.StorageDirectory, prefix)) cfg.AppServiceAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/%s-appservice.db", m.StorageDirectory, prefix)) cfg.MediaAPI.BasePath = config.Path(fmt.Sprintf("%s/media", m.CacheDirectory)) cfg.MediaAPI.AbsBasePath = config.Path(fmt.Sprintf("%s/media", m.CacheDirectory)) @@ -294,7 +294,7 @@ func (m *DendriteMonolith) Start() { base, keyRing, ) - fsAPI := federationsender.NewInternalAPI( + fsAPI := federationapi.NewInternalAPI( base, federation, rsAPI, keyRing, true, ) diff --git a/build/gobind-yggdrasil/monolith.go b/build/gobind-yggdrasil/monolith.go index 693e92368..4a72f841b 100644 --- a/build/gobind-yggdrasil/monolith.go +++ b/build/gobind-yggdrasil/monolith.go @@ -15,8 +15,8 @@ import ( "github.com/matrix-org/dendrite/cmd/dendrite-demo-yggdrasil/yggrooms" "github.com/matrix-org/dendrite/eduserver" "github.com/matrix-org/dendrite/eduserver/cache" - "github.com/matrix-org/dendrite/federationsender" - "github.com/matrix-org/dendrite/federationsender/api" + "github.com/matrix-org/dendrite/federationapi" + "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/internal/httputil" "github.com/matrix-org/dendrite/keyserver" "github.com/matrix-org/dendrite/roomserver" @@ -94,7 +94,7 @@ func (m *DendriteMonolith) Start() { cfg.RoomServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/dendrite-p2p-roomserver.db", m.StorageDirectory)) cfg.SigningKeyServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/dendrite-p2p-signingkeyserver.db", m.StorageDirectory)) cfg.KeyServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/dendrite-p2p-keyserver.db", m.StorageDirectory)) - cfg.FederationSender.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/dendrite-p2p-federationsender.db", m.StorageDirectory)) + cfg.FederationSender.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/dendrite-p2p-federationapi.db", m.StorageDirectory)) cfg.AppServiceAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/dendrite-p2p-appservice.db", m.StorageDirectory)) cfg.MediaAPI.BasePath = config.Path(fmt.Sprintf("%s/tmp", m.StorageDirectory)) cfg.MediaAPI.AbsBasePath = config.Path(fmt.Sprintf("%s/tmp", m.StorageDirectory)) @@ -115,7 +115,7 @@ func (m *DendriteMonolith) Start() { base, keyRing, ) - fsAPI := federationsender.NewInternalAPI( + fsAPI := federationapi.NewInternalAPI( base, federation, rsAPI, keyRing, true, ) diff --git a/clientapi/clientapi.go b/clientapi/clientapi.go index 562d89d28..41a784e40 100644 --- a/clientapi/clientapi.go +++ b/clientapi/clientapi.go @@ -21,7 +21,7 @@ import ( "github.com/matrix-org/dendrite/clientapi/producers" "github.com/matrix-org/dendrite/clientapi/routing" eduServerAPI "github.com/matrix-org/dendrite/eduserver/api" - federationSenderAPI "github.com/matrix-org/dendrite/federationsender/api" + federationSenderAPI "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/internal/transactions" keyserverAPI "github.com/matrix-org/dendrite/keyserver/api" roomserverAPI "github.com/matrix-org/dendrite/roomserver/api" @@ -43,7 +43,7 @@ func AddPublicRoutes( eduInputAPI eduServerAPI.EDUServerInputAPI, asAPI appserviceAPI.AppServiceQueryAPI, transactionsCache *transactions.Cache, - fsAPI federationSenderAPI.FederationSenderInternalAPI, + fsAPI federationSenderAPI.FederationInternalAPI, userAPI userapi.UserInternalAPI, keyAPI keyserverAPI.KeyInternalAPI, extRoomsProvider api.ExtraPublicRoomsProvider, diff --git a/clientapi/routing/directory.go b/clientapi/routing/directory.go index 96cb0262e..9ea100af3 100644 --- a/clientapi/routing/directory.go +++ b/clientapi/routing/directory.go @@ -20,7 +20,7 @@ import ( "github.com/matrix-org/dendrite/clientapi/httputil" "github.com/matrix-org/dendrite/clientapi/jsonerror" - federationSenderAPI "github.com/matrix-org/dendrite/federationsender/api" + federationSenderAPI "github.com/matrix-org/dendrite/federationapi/api" roomserverAPI "github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/setup/config" userapi "github.com/matrix-org/dendrite/userapi/api" @@ -47,7 +47,7 @@ func DirectoryRoom( federation *gomatrixserverlib.FederationClient, cfg *config.ClientAPI, rsAPI roomserverAPI.RoomserverInternalAPI, - fedSenderAPI federationSenderAPI.FederationSenderInternalAPI, + fedSenderAPI federationSenderAPI.FederationInternalAPI, ) util.JSONResponse { _, domain, err := gomatrixserverlib.SplitID('#', roomAlias) if err != nil { diff --git a/clientapi/routing/routing.go b/clientapi/routing/routing.go index 30ecc2922..3677f3a50 100644 --- a/clientapi/routing/routing.go +++ b/clientapi/routing/routing.go @@ -27,7 +27,7 @@ import ( "github.com/matrix-org/dendrite/clientapi/jsonerror" "github.com/matrix-org/dendrite/clientapi/producers" eduServerAPI "github.com/matrix-org/dendrite/eduserver/api" - federationSenderAPI "github.com/matrix-org/dendrite/federationsender/api" + federationSenderAPI "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/internal/httputil" "github.com/matrix-org/dendrite/internal/transactions" keyserverAPI "github.com/matrix-org/dendrite/keyserver/api" @@ -56,7 +56,7 @@ func Setup( federation *gomatrixserverlib.FederationClient, syncProducer *producers.SyncAPIProducer, transactionsCache *transactions.Cache, - federationSender federationSenderAPI.FederationSenderInternalAPI, + federationSender federationSenderAPI.FederationInternalAPI, keyAPI keyserverAPI.KeyInternalAPI, extRoomsProvider api.ExtraPublicRoomsProvider, mscCfg *config.MSCs, diff --git a/cmd/dendrite-demo-libp2p/main.go b/cmd/dendrite-demo-libp2p/main.go index 7606e418c..60fd24dde 100644 --- a/cmd/dendrite-demo-libp2p/main.go +++ b/cmd/dendrite-demo-libp2p/main.go @@ -30,7 +30,7 @@ import ( "github.com/matrix-org/dendrite/appservice" "github.com/matrix-org/dendrite/cmd/dendrite-demo-yggdrasil/embed" "github.com/matrix-org/dendrite/eduserver" - "github.com/matrix-org/dendrite/federationsender" + "github.com/matrix-org/dendrite/federationapi" "github.com/matrix-org/dendrite/internal/httputil" "github.com/matrix-org/dendrite/keyserver" "github.com/matrix-org/dendrite/roomserver" @@ -132,7 +132,7 @@ func main() { cfg.SyncAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-syncapi.db", *instanceName)) cfg.RoomServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-roomserver.db", *instanceName)) cfg.SigningKeyServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-signingkeyserver.db", *instanceName)) - cfg.FederationSender.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-federationsender.db", *instanceName)) + cfg.FederationSender.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-federationapi.db", *instanceName)) cfg.AppServiceAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-appservice.db", *instanceName)) cfg.Global.Kafka.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-naffka.db", *instanceName)) cfg.KeyServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-e2ekey.db", *instanceName)) @@ -167,7 +167,7 @@ func main() { ) asAPI := appservice.NewInternalAPI(&base.Base, userAPI, rsAPI) rsAPI.SetAppserviceAPI(asAPI) - fsAPI := federationsender.NewInternalAPI( + fsAPI := federationapi.NewInternalAPI( &base.Base, federation, rsAPI, keyRing, true, ) rsAPI.SetFederationSenderAPI(fsAPI) diff --git a/cmd/dendrite-demo-pinecone/main.go b/cmd/dendrite-demo-pinecone/main.go index 60b83dc70..788a985fd 100644 --- a/cmd/dendrite-demo-pinecone/main.go +++ b/cmd/dendrite-demo-pinecone/main.go @@ -37,8 +37,8 @@ import ( "github.com/matrix-org/dendrite/cmd/dendrite-demo-yggdrasil/signing" "github.com/matrix-org/dendrite/eduserver" "github.com/matrix-org/dendrite/eduserver/cache" - "github.com/matrix-org/dendrite/federationsender" - "github.com/matrix-org/dendrite/federationsender/api" + "github.com/matrix-org/dendrite/federationapi" + "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/internal/httputil" "github.com/matrix-org/dendrite/keyserver" @@ -153,7 +153,7 @@ func main() { cfg.RoomServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-roomserver.db", *instanceName)) cfg.SigningKeyServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-signingkeyserver.db", *instanceName)) cfg.KeyServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-keyserver.db", *instanceName)) - cfg.FederationSender.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-federationsender.db", *instanceName)) + cfg.FederationSender.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-federationapi.db", *instanceName)) cfg.AppServiceAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-appservice.db", *instanceName)) cfg.Global.Kafka.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-naffka.db", *instanceName)) cfg.MSCs.MSCs = []string{"msc2836", "msc2946"} @@ -174,7 +174,7 @@ func main() { base, keyRing, ) rsAPI := rsComponent - fsAPI := federationsender.NewInternalAPI( + fsAPI := federationapi.NewInternalAPI( base, federation, rsAPI, keyRing, true, ) diff --git a/cmd/dendrite-demo-pinecone/rooms/rooms.go b/cmd/dendrite-demo-pinecone/rooms/rooms.go index fc387a174..5972d129f 100644 --- a/cmd/dendrite-demo-pinecone/rooms/rooms.go +++ b/cmd/dendrite-demo-pinecone/rooms/rooms.go @@ -19,7 +19,7 @@ import ( "sync" "time" - "github.com/matrix-org/dendrite/federationsender/api" + "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" @@ -30,14 +30,14 @@ import ( type PineconeRoomProvider struct { r *pineconeRouter.Router s *pineconeSessions.Sessions - fedSender api.FederationSenderInternalAPI + fedSender api.FederationInternalAPI fedClient *gomatrixserverlib.FederationClient } func NewPineconeRoomProvider( r *pineconeRouter.Router, s *pineconeSessions.Sessions, - fedSender api.FederationSenderInternalAPI, + fedSender api.FederationInternalAPI, fedClient *gomatrixserverlib.FederationClient, ) *PineconeRoomProvider { p := &PineconeRoomProvider{ diff --git a/cmd/dendrite-demo-yggdrasil/main.go b/cmd/dendrite-demo-yggdrasil/main.go index 1b5e1a51a..260310c4c 100644 --- a/cmd/dendrite-demo-yggdrasil/main.go +++ b/cmd/dendrite-demo-yggdrasil/main.go @@ -31,8 +31,8 @@ import ( "github.com/matrix-org/dendrite/cmd/dendrite-demo-yggdrasil/yggrooms" "github.com/matrix-org/dendrite/eduserver" "github.com/matrix-org/dendrite/eduserver/cache" - "github.com/matrix-org/dendrite/federationsender" - "github.com/matrix-org/dendrite/federationsender/api" + "github.com/matrix-org/dendrite/federationapi" + "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/internal/httputil" "github.com/matrix-org/dendrite/keyserver" @@ -84,7 +84,7 @@ func main() { cfg.RoomServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-roomserver.db", *instanceName)) cfg.SigningKeyServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-signingkeyserver.db", *instanceName)) cfg.KeyServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-keyserver.db", *instanceName)) - cfg.FederationSender.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-federationsender.db", *instanceName)) + cfg.FederationSender.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-federationapi.db", *instanceName)) cfg.AppServiceAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-appservice.db", *instanceName)) cfg.Global.Kafka.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-naffka.db", *instanceName)) cfg.MSCs.MSCs = []string{"msc2836"} @@ -117,7 +117,7 @@ func main() { asAPI := appservice.NewInternalAPI(base, userAPI, rsAPI) rsAPI.SetAppserviceAPI(asAPI) - fsAPI := federationsender.NewInternalAPI( + fsAPI := federationapi.NewInternalAPI( base, federation, rsAPI, keyRing, true, ) diff --git a/cmd/dendrite-demo-yggdrasil/yggrooms/yggrooms.go b/cmd/dendrite-demo-yggdrasil/yggrooms/yggrooms.go index 0174e84d7..402b86ed3 100644 --- a/cmd/dendrite-demo-yggdrasil/yggrooms/yggrooms.go +++ b/cmd/dendrite-demo-yggdrasil/yggrooms/yggrooms.go @@ -20,19 +20,19 @@ import ( "time" "github.com/matrix-org/dendrite/cmd/dendrite-demo-yggdrasil/yggconn" - "github.com/matrix-org/dendrite/federationsender/api" + "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" ) type YggdrasilRoomProvider struct { node *yggconn.Node - fedSender api.FederationSenderInternalAPI + fedSender api.FederationInternalAPI fedClient *gomatrixserverlib.FederationClient } func NewYggdrasilRoomProvider( - node *yggconn.Node, fedSender api.FederationSenderInternalAPI, fedClient *gomatrixserverlib.FederationClient, + node *yggconn.Node, fedSender api.FederationInternalAPI, fedClient *gomatrixserverlib.FederationClient, ) *YggdrasilRoomProvider { p := &YggdrasilRoomProvider{ node: node, diff --git a/cmd/dendrite-monolith-server/main.go b/cmd/dendrite-monolith-server/main.go index ec8751df3..6c2ac07a3 100644 --- a/cmd/dendrite-monolith-server/main.go +++ b/cmd/dendrite-monolith-server/main.go @@ -21,7 +21,7 @@ import ( "github.com/matrix-org/dendrite/appservice" "github.com/matrix-org/dendrite/eduserver" "github.com/matrix-org/dendrite/eduserver/cache" - "github.com/matrix-org/dendrite/federationsender" + "github.com/matrix-org/dendrite/federationapi" "github.com/matrix-org/dendrite/keyserver" "github.com/matrix-org/dendrite/roomserver" "github.com/matrix-org/dendrite/roomserver/api" @@ -101,11 +101,11 @@ func main() { } } - fsAPI := federationsender.NewInternalAPI( + fsAPI := federationapi.NewInternalAPI( base, federation, rsAPI, keyRing, false, ) if base.UseHTTPAPIs { - federationsender.AddInternalRoutes(base.InternalAPIMux, fsAPI) + federationapi.AddInternalRoutes(base.InternalAPIMux, fsAPI) fsAPI = base.FederationSenderHTTPClient() } // The underlying roomserver implementation needs to be able to call the fedsender. diff --git a/cmd/dendrite-polylith-multi/main.go b/cmd/dendrite-polylith-multi/main.go index c2208ca24..0e9f5104d 100644 --- a/cmd/dendrite-polylith-multi/main.go +++ b/cmd/dendrite-polylith-multi/main.go @@ -44,7 +44,7 @@ func main() { "clientapi": personalities.ClientAPI, "eduserver": personalities.EDUServer, "federationapi": personalities.FederationAPI, - "federationsender": personalities.FederationSender, + "federationapi": personalities.FederationSender, "keyserver": personalities.KeyServer, "mediaapi": personalities.MediaAPI, "roomserver": personalities.RoomServer, diff --git a/cmd/dendrite-polylith-multi/personalities/federationsender.go b/cmd/dendrite-polylith-multi/personalities/federationsender.go index ca9a8add0..38f5c7973 100644 --- a/cmd/dendrite-polylith-multi/personalities/federationsender.go +++ b/cmd/dendrite-polylith-multi/personalities/federationsender.go @@ -15,7 +15,7 @@ package personalities import ( - "github.com/matrix-org/dendrite/federationsender" + "github.com/matrix-org/dendrite/federationapi" "github.com/matrix-org/dendrite/setup" "github.com/matrix-org/dendrite/setup/config" ) @@ -27,10 +27,10 @@ func FederationSender(base *setup.BaseDendrite, cfg *config.Dendrite) { keyRing := serverKeyAPI.KeyRing() rsAPI := base.RoomserverHTTPClient() - fsAPI := federationsender.NewInternalAPI( + fsAPI := federationapi.NewInternalAPI( base, federation, rsAPI, keyRing, false, ) - federationsender.AddInternalRoutes(base.InternalAPIMux, fsAPI) + federationapi.AddInternalRoutes(base.InternalAPIMux, fsAPI) base.SetupAndServeHTTP( base.Cfg.FederationSender.InternalAPI.Listen, // internal listener diff --git a/cmd/dendritejs-pinecone/main.go b/cmd/dendritejs-pinecone/main.go index 46e657839..0277afc52 100644 --- a/cmd/dendritejs-pinecone/main.go +++ b/cmd/dendritejs-pinecone/main.go @@ -33,7 +33,7 @@ import ( "github.com/matrix-org/dendrite/cmd/dendrite-demo-yggdrasil/signing" "github.com/matrix-org/dendrite/eduserver" "github.com/matrix-org/dendrite/eduserver/cache" - "github.com/matrix-org/dendrite/federationsender" + "github.com/matrix-org/dendrite/federationapi" "github.com/matrix-org/dendrite/internal/httputil" "github.com/matrix-org/dendrite/keyserver" "github.com/matrix-org/dendrite/roomserver" @@ -198,7 +198,7 @@ func startup() { base, userAPI, rsAPI, ) rsAPI.SetAppserviceAPI(asQuery) - fedSenderAPI := federationsender.NewInternalAPI(base, federation, rsAPI, keyRing, true) + fedSenderAPI := federationapi.NewInternalAPI(base, federation, rsAPI, keyRing, true) rsAPI.SetFederationSenderAPI(fedSenderAPI) monolith := setup.Monolith{ diff --git a/cmd/dendritejs/main.go b/cmd/dendritejs/main.go index 10aadb6e5..0a59ecd9e 100644 --- a/cmd/dendritejs/main.go +++ b/cmd/dendritejs/main.go @@ -26,7 +26,7 @@ import ( "github.com/matrix-org/dendrite/appservice" "github.com/matrix-org/dendrite/eduserver" "github.com/matrix-org/dendrite/eduserver/cache" - "github.com/matrix-org/dendrite/federationsender" + "github.com/matrix-org/dendrite/federationapi" "github.com/matrix-org/dendrite/internal/httputil" "github.com/matrix-org/dendrite/keyserver" "github.com/matrix-org/dendrite/roomserver" @@ -211,7 +211,7 @@ func main() { base, userAPI, rsAPI, ) rsAPI.SetAppserviceAPI(asQuery) - fedSenderAPI := federationsender.NewInternalAPI(base, federation, rsAPI, &keyRing, true) + fedSenderAPI := federationapi.NewInternalAPI(base, federation, rsAPI, &keyRing, true) rsAPI.SetFederationSenderAPI(fedSenderAPI) p2pPublicRoomProvider := NewLibP2PPublicRoomsProvider(node, fedSenderAPI, federation) diff --git a/cmd/dendritejs/publicrooms.go b/cmd/dendritejs/publicrooms.go index 19afc5bcf..2e3339a45 100644 --- a/cmd/dendritejs/publicrooms.go +++ b/cmd/dendritejs/publicrooms.go @@ -22,7 +22,7 @@ import ( "sync" "time" - "github.com/matrix-org/dendrite/federationsender/api" + "github.com/matrix-org/dendrite/federationapi/api" go_http_js_libp2p "github.com/matrix-org/go-http-js-libp2p" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" @@ -31,12 +31,12 @@ import ( type libp2pPublicRoomsProvider struct { node *go_http_js_libp2p.P2pLocalNode providers []go_http_js_libp2p.PeerInfo - fedSender api.FederationSenderInternalAPI + fedSender api.FederationInternalAPI fedClient *gomatrixserverlib.FederationClient } func NewLibP2PPublicRoomsProvider( - node *go_http_js_libp2p.P2pLocalNode, fedSender api.FederationSenderInternalAPI, fedClient *gomatrixserverlib.FederationClient, + node *go_http_js_libp2p.P2pLocalNode, fedSender api.FederationInternalAPI, fedClient *gomatrixserverlib.FederationClient, ) *libp2pPublicRoomsProvider { p := &libp2pPublicRoomsProvider{ node: node, diff --git a/cmd/goose/main.go b/cmd/goose/main.go index 83c97a729..8ed5cbd91 100644 --- a/cmd/goose/main.go +++ b/cmd/goose/main.go @@ -20,7 +20,7 @@ import ( const ( AppService = "appservice" - FederationSender = "federationsender" + FederationSender = "federationapi" KeyServer = "keyserver" MediaAPI = "mediaapi" RoomServer = "roomserver" diff --git a/federationsender/api/api.go b/federationapi/api/api.go similarity index 97% rename from federationsender/api/api.go rename to federationapi/api/api.go index 82cdf9d83..0a36d1ceb 100644 --- a/federationsender/api/api.go +++ b/federationapi/api/api.go @@ -5,7 +5,7 @@ import ( "fmt" "time" - "github.com/matrix-org/dendrite/federationsender/types" + "github.com/matrix-org/dendrite/federationapi/types" "github.com/matrix-org/gomatrix" "github.com/matrix-org/gomatrixserverlib" ) @@ -36,8 +36,8 @@ func (e *FederationClientError) Error() string { return fmt.Sprintf("%s - (retry_after=%s, blacklisted=%v)", e.Err, e.RetryAfter.String(), e.Blacklisted) } -// FederationSenderInternalAPI is used to query information from the federation sender. -type FederationSenderInternalAPI interface { +// FederationInternalAPI is used to query information from the federation sender. +type FederationInternalAPI interface { FederationClient QueryServerKeys(ctx context.Context, request *QueryServerKeysRequest, response *QueryServerKeysResponse) error diff --git a/federationsender/consumers/eduserver.go b/federationapi/consumers/eduserver.go similarity index 98% rename from federationsender/consumers/eduserver.go rename to federationapi/consumers/eduserver.go index 9a1ec1e26..7ee54ba0b 100644 --- a/federationsender/consumers/eduserver.go +++ b/federationapi/consumers/eduserver.go @@ -21,8 +21,8 @@ import ( "github.com/Shopify/sarama" "github.com/matrix-org/dendrite/eduserver/api" - "github.com/matrix-org/dendrite/federationsender/queue" - "github.com/matrix-org/dendrite/federationsender/storage" + "github.com/matrix-org/dendrite/federationapi/queue" + "github.com/matrix-org/dendrite/federationapi/storage" "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/setup/config" "github.com/matrix-org/dendrite/setup/process" diff --git a/federationsender/consumers/keychange.go b/federationapi/consumers/keychange.go similarity index 97% rename from federationsender/consumers/keychange.go rename to federationapi/consumers/keychange.go index d5dc595c6..a8ae0894a 100644 --- a/federationsender/consumers/keychange.go +++ b/federationapi/consumers/keychange.go @@ -21,8 +21,8 @@ import ( "github.com/Shopify/sarama" eduserverAPI "github.com/matrix-org/dendrite/eduserver/api" - "github.com/matrix-org/dendrite/federationsender/queue" - "github.com/matrix-org/dendrite/federationsender/storage" + "github.com/matrix-org/dendrite/federationapi/queue" + "github.com/matrix-org/dendrite/federationapi/storage" "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/keyserver/api" roomserverAPI "github.com/matrix-org/dendrite/roomserver/api" @@ -53,7 +53,7 @@ func NewKeyChangeConsumer( c := &KeyChangeConsumer{ consumer: &internal.ContinualConsumer{ Process: process, - ComponentName: "federationsender/keychange", + ComponentName: "federationapi/keychange", Topic: string(cfg.Matrix.Kafka.TopicFor(config.TopicOutputKeyChangeEvent)), Consumer: kafkaConsumer, PartitionStore: store, diff --git a/federationsender/consumers/roomserver.go b/federationapi/consumers/roomserver.go similarity index 97% rename from federationsender/consumers/roomserver.go rename to federationapi/consumers/roomserver.go index f9c4a5c27..2c8a0c724 100644 --- a/federationsender/consumers/roomserver.go +++ b/federationapi/consumers/roomserver.go @@ -20,9 +20,9 @@ import ( "fmt" "github.com/Shopify/sarama" - "github.com/matrix-org/dendrite/federationsender/queue" - "github.com/matrix-org/dendrite/federationsender/storage" - "github.com/matrix-org/dendrite/federationsender/types" + "github.com/matrix-org/dendrite/federationapi/queue" + "github.com/matrix-org/dendrite/federationapi/storage" + "github.com/matrix-org/dendrite/federationapi/types" "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/setup/config" @@ -51,7 +51,7 @@ func NewOutputRoomEventConsumer( ) *OutputRoomEventConsumer { consumer := internal.ContinualConsumer{ Process: process, - ComponentName: "federationsender/roomserver", + ComponentName: "federationapi/roomserver", Topic: string(cfg.Matrix.Kafka.TopicFor(config.TopicOutputRoomEvent)), Consumer: kafkaConsumer, PartitionStore: store, @@ -133,7 +133,7 @@ func (s *OutputRoomEventConsumer) onMessage(msg *sarama.ConsumerMessage) error { } // processInboundPeek starts tracking a new federated inbound peek (replacing the existing one if any) -// causing the federationsender to start sending messages to the peeking server +// causing the federationapi to start sending messages to the peeking server func (s *OutputRoomEventConsumer) processInboundPeek(orp api.OutputNewInboundPeek) error { // FIXME: there's a race here - we should start /sending new peeked events diff --git a/federationsender/consumers/roomserver_test.go b/federationapi/consumers/roomserver_test.go similarity index 100% rename from federationsender/consumers/roomserver_test.go rename to federationapi/consumers/roomserver_test.go diff --git a/federationapi/federationapi.go b/federationapi/federationapi.go index c40d77a62..f8f733d19 100644 --- a/federationapi/federationapi.go +++ b/federationapi/federationapi.go @@ -17,12 +17,21 @@ package federationapi import ( "github.com/gorilla/mux" eduserverAPI "github.com/matrix-org/dendrite/eduserver/api" + "github.com/matrix-org/dendrite/federationapi/api" federationAPI "github.com/matrix-org/dendrite/federationapi/api" - federationSenderAPI "github.com/matrix-org/dendrite/federationsender/api" + federationSenderAPI "github.com/matrix-org/dendrite/federationapi/api" + "github.com/matrix-org/dendrite/federationapi/consumers" + "github.com/matrix-org/dendrite/federationapi/internal" + "github.com/matrix-org/dendrite/federationapi/queue" + "github.com/matrix-org/dendrite/federationapi/statistics" + "github.com/matrix-org/dendrite/federationapi/storage" keyserverAPI "github.com/matrix-org/dendrite/keyserver/api" roomserverAPI "github.com/matrix-org/dendrite/roomserver/api" + "github.com/matrix-org/dendrite/setup" "github.com/matrix-org/dendrite/setup/config" + "github.com/matrix-org/dendrite/setup/kafka" userapi "github.com/matrix-org/dendrite/userapi/api" + "github.com/sirupsen/logrus" "github.com/matrix-org/dendrite/federationapi/routing" "github.com/matrix-org/gomatrixserverlib" @@ -36,7 +45,7 @@ func AddPublicRoutes( federation *gomatrixserverlib.FederationClient, keyRing gomatrixserverlib.JSONVerifier, rsAPI roomserverAPI.RoomserverInternalAPI, - federationSenderAPI federationSenderAPI.FederationSenderInternalAPI, + federationSenderAPI federationSenderAPI.FederationInternalAPI, eduAPI eduserverAPI.EDUServerInputAPI, keyAPI keyserverAPI.KeyInternalAPI, mscCfg *config.MSCs, @@ -49,3 +58,65 @@ func AddPublicRoutes( servers, ) } + +// NewInternalAPI returns a concerete implementation of the internal API. Callers +// can call functions directly on the returned API or via an HTTP interface using AddInternalRoutes. +func NewInternalAPI( + base *setup.BaseDendrite, + federation *gomatrixserverlib.FederationClient, + rsAPI roomserverAPI.RoomserverInternalAPI, + keyRing *gomatrixserverlib.KeyRing, + resetBlacklist bool, +) api.FederationInternalAPI { + cfg := &base.Cfg.FederationSender + + federationSenderDB, err := storage.NewDatabase(&cfg.Database, base.Caches) + if err != nil { + logrus.WithError(err).Panic("failed to connect to federation sender db") + } + + if resetBlacklist { + _ = federationSenderDB.RemoveAllServersFromBlacklist() + } + + stats := &statistics.Statistics{ + DB: federationSenderDB, + FailuresUntilBlacklist: cfg.FederationMaxRetries, + } + + consumer, _ := kafka.SetupConsumerProducer(&cfg.Matrix.Kafka) + + queues := queue.NewOutgoingQueues( + federationSenderDB, base.ProcessContext, + cfg.Matrix.DisableFederation, + cfg.Matrix.ServerName, federation, rsAPI, stats, + &queue.SigningInfo{ + KeyID: cfg.Matrix.KeyID, + PrivateKey: cfg.Matrix.PrivateKey, + ServerName: cfg.Matrix.ServerName, + }, + ) + + rsConsumer := consumers.NewOutputRoomEventConsumer( + base.ProcessContext, cfg, consumer, queues, + federationSenderDB, rsAPI, + ) + if err = rsConsumer.Start(); err != nil { + logrus.WithError(err).Panic("failed to start room server consumer") + } + + tsConsumer := consumers.NewOutputEDUConsumer( + base.ProcessContext, cfg, consumer, queues, federationSenderDB, + ) + if err := tsConsumer.Start(); err != nil { + logrus.WithError(err).Panic("failed to start typing server consumer") + } + keyConsumer := consumers.NewKeyChangeConsumer( + base.ProcessContext, &base.Cfg.KeyServer, consumer, queues, federationSenderDB, rsAPI, + ) + if err := keyConsumer.Start(); err != nil { + logrus.WithError(err).Panic("failed to start key server consumer") + } + + return internal.NewFederationInternalAPI(federationSenderDB, cfg, rsAPI, federation, keyRing, stats, queues) +} diff --git a/federationsender/internal/api.go b/federationapi/internal/api.go similarity index 85% rename from federationsender/internal/api.go rename to federationapi/internal/api.go index 11032eda7..4d0f3ecca 100644 --- a/federationsender/internal/api.go +++ b/federationapi/internal/api.go @@ -5,18 +5,18 @@ import ( "sync" "time" - "github.com/matrix-org/dendrite/federationsender/api" - "github.com/matrix-org/dendrite/federationsender/queue" - "github.com/matrix-org/dendrite/federationsender/statistics" - "github.com/matrix-org/dendrite/federationsender/storage" + "github.com/matrix-org/dendrite/federationapi/api" + "github.com/matrix-org/dendrite/federationapi/queue" + "github.com/matrix-org/dendrite/federationapi/statistics" + "github.com/matrix-org/dendrite/federationapi/storage" roomserverAPI "github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/setup/config" "github.com/matrix-org/gomatrix" "github.com/matrix-org/gomatrixserverlib" ) -// FederationSenderInternalAPI is an implementation of api.FederationSenderInternalAPI -type FederationSenderInternalAPI struct { +// FederationInternalAPI is an implementation of api.FederationInternalAPI +type FederationInternalAPI struct { db storage.Database cfg *config.FederationSender statistics *statistics.Statistics @@ -27,15 +27,15 @@ type FederationSenderInternalAPI struct { joins sync.Map // joins currently in progress } -func NewFederationSenderInternalAPI( +func NewFederationInternalAPI( db storage.Database, cfg *config.FederationSender, rsAPI roomserverAPI.RoomserverInternalAPI, federation *gomatrixserverlib.FederationClient, keyRing *gomatrixserverlib.KeyRing, statistics *statistics.Statistics, queues *queue.OutgoingQueues, -) *FederationSenderInternalAPI { - return &FederationSenderInternalAPI{ +) *FederationInternalAPI { + return &FederationInternalAPI{ db: db, cfg: cfg, rsAPI: rsAPI, @@ -46,7 +46,7 @@ func NewFederationSenderInternalAPI( } } -func (a *FederationSenderInternalAPI) isBlacklistedOrBackingOff(s gomatrixserverlib.ServerName) (*statistics.ServerStatistics, error) { +func (a *FederationInternalAPI) isBlacklistedOrBackingOff(s gomatrixserverlib.ServerName) (*statistics.ServerStatistics, error) { stats := a.statistics.ForServer(s) until, blacklisted := stats.BackoffInfo() if blacklisted { @@ -81,7 +81,7 @@ func failBlacklistableError(err error, stats *statistics.ServerStatistics) (unti return } -func (a *FederationSenderInternalAPI) doRequest( +func (a *FederationInternalAPI) doRequest( s gomatrixserverlib.ServerName, request func() (interface{}, error), ) (interface{}, error) { stats, err := a.isBlacklistedOrBackingOff(s) @@ -106,7 +106,7 @@ func (a *FederationSenderInternalAPI) doRequest( return res, nil } -func (a *FederationSenderInternalAPI) GetUserDevices( +func (a *FederationInternalAPI) GetUserDevices( ctx context.Context, s gomatrixserverlib.ServerName, userID string, ) (gomatrixserverlib.RespUserDevices, error) { ctx, cancel := context.WithTimeout(ctx, time.Second*30) @@ -120,7 +120,7 @@ func (a *FederationSenderInternalAPI) GetUserDevices( return ires.(gomatrixserverlib.RespUserDevices), nil } -func (a *FederationSenderInternalAPI) ClaimKeys( +func (a *FederationInternalAPI) ClaimKeys( ctx context.Context, s gomatrixserverlib.ServerName, oneTimeKeys map[string]map[string]string, ) (gomatrixserverlib.RespClaimKeys, error) { ctx, cancel := context.WithTimeout(ctx, time.Second*30) @@ -134,7 +134,7 @@ func (a *FederationSenderInternalAPI) ClaimKeys( return ires.(gomatrixserverlib.RespClaimKeys), nil } -func (a *FederationSenderInternalAPI) QueryKeys( +func (a *FederationInternalAPI) QueryKeys( ctx context.Context, s gomatrixserverlib.ServerName, keys map[string][]string, ) (gomatrixserverlib.RespQueryKeys, error) { ires, err := a.doRequest(s, func() (interface{}, error) { @@ -146,7 +146,7 @@ func (a *FederationSenderInternalAPI) QueryKeys( return ires.(gomatrixserverlib.RespQueryKeys), nil } -func (a *FederationSenderInternalAPI) Backfill( +func (a *FederationInternalAPI) Backfill( ctx context.Context, s gomatrixserverlib.ServerName, roomID string, limit int, eventIDs []string, ) (res gomatrixserverlib.Transaction, err error) { ctx, cancel := context.WithTimeout(ctx, time.Second*30) @@ -160,7 +160,7 @@ func (a *FederationSenderInternalAPI) Backfill( return ires.(gomatrixserverlib.Transaction), nil } -func (a *FederationSenderInternalAPI) LookupState( +func (a *FederationInternalAPI) LookupState( ctx context.Context, s gomatrixserverlib.ServerName, roomID, eventID string, roomVersion gomatrixserverlib.RoomVersion, ) (res gomatrixserverlib.RespState, err error) { ctx, cancel := context.WithTimeout(ctx, time.Second*30) @@ -174,7 +174,7 @@ func (a *FederationSenderInternalAPI) LookupState( return ires.(gomatrixserverlib.RespState), nil } -func (a *FederationSenderInternalAPI) LookupStateIDs( +func (a *FederationInternalAPI) LookupStateIDs( ctx context.Context, s gomatrixserverlib.ServerName, roomID, eventID string, ) (res gomatrixserverlib.RespStateIDs, err error) { ctx, cancel := context.WithTimeout(ctx, time.Second*30) @@ -188,7 +188,7 @@ func (a *FederationSenderInternalAPI) LookupStateIDs( return ires.(gomatrixserverlib.RespStateIDs), nil } -func (a *FederationSenderInternalAPI) GetEvent( +func (a *FederationInternalAPI) GetEvent( ctx context.Context, s gomatrixserverlib.ServerName, eventID string, ) (res gomatrixserverlib.Transaction, err error) { ctx, cancel := context.WithTimeout(ctx, time.Second*30) @@ -202,7 +202,7 @@ func (a *FederationSenderInternalAPI) GetEvent( return ires.(gomatrixserverlib.Transaction), nil } -func (a *FederationSenderInternalAPI) LookupServerKeys( +func (a *FederationInternalAPI) LookupServerKeys( ctx context.Context, s gomatrixserverlib.ServerName, keyRequests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp, ) ([]gomatrixserverlib.ServerKeys, error) { ctx, cancel := context.WithTimeout(ctx, time.Minute) @@ -216,7 +216,7 @@ func (a *FederationSenderInternalAPI) LookupServerKeys( return ires.([]gomatrixserverlib.ServerKeys), nil } -func (a *FederationSenderInternalAPI) MSC2836EventRelationships( +func (a *FederationInternalAPI) MSC2836EventRelationships( ctx context.Context, s gomatrixserverlib.ServerName, r gomatrixserverlib.MSC2836EventRelationshipsRequest, roomVersion gomatrixserverlib.RoomVersion, ) (res gomatrixserverlib.MSC2836EventRelationshipsResponse, err error) { @@ -231,7 +231,7 @@ func (a *FederationSenderInternalAPI) MSC2836EventRelationships( return ires.(gomatrixserverlib.MSC2836EventRelationshipsResponse), nil } -func (a *FederationSenderInternalAPI) MSC2946Spaces( +func (a *FederationInternalAPI) MSC2946Spaces( ctx context.Context, s gomatrixserverlib.ServerName, roomID string, r gomatrixserverlib.MSC2946SpacesRequest, ) (res gomatrixserverlib.MSC2946SpacesResponse, err error) { ctx, cancel := context.WithTimeout(ctx, time.Minute) diff --git a/federationsender/internal/perform.go b/federationapi/internal/perform.go similarity index 95% rename from federationsender/internal/perform.go rename to federationapi/internal/perform.go index 53fa974b2..82d04c21e 100644 --- a/federationsender/internal/perform.go +++ b/federationapi/internal/perform.go @@ -7,7 +7,7 @@ import ( "fmt" "time" - "github.com/matrix-org/dendrite/federationsender/api" + "github.com/matrix-org/dendrite/federationapi/api" roomserverAPI "github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/roomserver/version" "github.com/matrix-org/gomatrix" @@ -16,8 +16,8 @@ import ( "github.com/sirupsen/logrus" ) -// PerformLeaveRequest implements api.FederationSenderInternalAPI -func (r *FederationSenderInternalAPI) PerformDirectoryLookup( +// PerformLeaveRequest implements api.FederationInternalAPI +func (r *FederationInternalAPI) PerformDirectoryLookup( ctx context.Context, request *api.PerformDirectoryLookupRequest, response *api.PerformDirectoryLookupResponse, @@ -42,8 +42,8 @@ type federatedJoin struct { RoomID string } -// PerformJoin implements api.FederationSenderInternalAPI -func (r *FederationSenderInternalAPI) PerformJoin( +// PerformJoin implements api.FederationInternalAPI +func (r *FederationInternalAPI) PerformJoin( ctx context.Context, request *api.PerformJoinRequest, response *api.PerformJoinResponse, @@ -132,7 +132,7 @@ func (r *FederationSenderInternalAPI) PerformJoin( ) } -func (r *FederationSenderInternalAPI) performJoinUsingServer( +func (r *FederationInternalAPI) performJoinUsingServer( ctx context.Context, roomID, userID string, content map[string]interface{}, @@ -263,8 +263,8 @@ func (r *FederationSenderInternalAPI) performJoinUsingServer( return nil } -// PerformOutboundPeekRequest implements api.FederationSenderInternalAPI -func (r *FederationSenderInternalAPI) PerformOutboundPeek( +// PerformOutboundPeekRequest implements api.FederationInternalAPI +func (r *FederationInternalAPI) PerformOutboundPeek( ctx context.Context, request *api.PerformOutboundPeekRequest, response *api.PerformOutboundPeekResponse, @@ -344,7 +344,7 @@ func (r *FederationSenderInternalAPI) PerformOutboundPeek( return lastErr } -func (r *FederationSenderInternalAPI) performOutboundPeekUsingServer( +func (r *FederationInternalAPI) performOutboundPeekUsingServer( ctx context.Context, roomID string, serverName gomatrixserverlib.ServerName, @@ -438,8 +438,8 @@ func (r *FederationSenderInternalAPI) performOutboundPeekUsingServer( return nil } -// PerformLeaveRequest implements api.FederationSenderInternalAPI -func (r *FederationSenderInternalAPI) PerformLeave( +// PerformLeaveRequest implements api.FederationInternalAPI +func (r *FederationInternalAPI) PerformLeave( ctx context.Context, request *api.PerformLeaveRequest, response *api.PerformLeaveResponse, @@ -528,8 +528,8 @@ func (r *FederationSenderInternalAPI) PerformLeave( ) } -// PerformLeaveRequest implements api.FederationSenderInternalAPI -func (r *FederationSenderInternalAPI) PerformInvite( +// PerformLeaveRequest implements api.FederationInternalAPI +func (r *FederationInternalAPI) PerformInvite( ctx context.Context, request *api.PerformInviteRequest, response *api.PerformInviteResponse, @@ -565,8 +565,8 @@ func (r *FederationSenderInternalAPI) PerformInvite( return nil } -// PerformServersAlive implements api.FederationSenderInternalAPI -func (r *FederationSenderInternalAPI) PerformServersAlive( +// PerformServersAlive implements api.FederationInternalAPI +func (r *FederationInternalAPI) PerformServersAlive( ctx context.Context, request *api.PerformServersAliveRequest, response *api.PerformServersAliveResponse, @@ -579,8 +579,8 @@ func (r *FederationSenderInternalAPI) PerformServersAlive( return nil } -// PerformServersAlive implements api.FederationSenderInternalAPI -func (r *FederationSenderInternalAPI) PerformBroadcastEDU( +// PerformServersAlive implements api.FederationInternalAPI +func (r *FederationInternalAPI) PerformBroadcastEDU( ctx context.Context, request *api.PerformBroadcastEDURequest, response *api.PerformBroadcastEDUResponse, diff --git a/federationsender/internal/query.go b/federationapi/internal/query.go similarity index 86% rename from federationsender/internal/query.go rename to federationapi/internal/query.go index af531f7d7..bac813331 100644 --- a/federationsender/internal/query.go +++ b/federationapi/internal/query.go @@ -5,13 +5,13 @@ import ( "fmt" "time" - "github.com/matrix-org/dendrite/federationsender/api" + "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" ) -// QueryJoinedHostServerNamesInRoom implements api.FederationSenderInternalAPI -func (f *FederationSenderInternalAPI) QueryJoinedHostServerNamesInRoom( +// QueryJoinedHostServerNamesInRoom implements api.FederationInternalAPI +func (f *FederationInternalAPI) QueryJoinedHostServerNamesInRoom( ctx context.Context, request *api.QueryJoinedHostServerNamesInRoomRequest, response *api.QueryJoinedHostServerNamesInRoomResponse, @@ -25,7 +25,7 @@ func (f *FederationSenderInternalAPI) QueryJoinedHostServerNamesInRoom( return } -func (a *FederationSenderInternalAPI) fetchServerKeysDirectly(ctx context.Context, serverName gomatrixserverlib.ServerName) (*gomatrixserverlib.ServerKeys, error) { +func (a *FederationInternalAPI) fetchServerKeysDirectly(ctx context.Context, serverName gomatrixserverlib.ServerName) (*gomatrixserverlib.ServerKeys, error) { ctx, cancel := context.WithTimeout(ctx, time.Second*30) defer cancel() ires, err := a.doRequest(serverName, func() (interface{}, error) { @@ -38,7 +38,7 @@ func (a *FederationSenderInternalAPI) fetchServerKeysDirectly(ctx context.Contex return &sks, nil } -func (a *FederationSenderInternalAPI) fetchServerKeysFromCache( +func (a *FederationInternalAPI) fetchServerKeysFromCache( ctx context.Context, req *api.QueryServerKeysRequest, ) ([]gomatrixserverlib.ServerKeys, error) { var results []gomatrixserverlib.ServerKeys @@ -64,7 +64,7 @@ func (a *FederationSenderInternalAPI) fetchServerKeysFromCache( return results, nil } -func (a *FederationSenderInternalAPI) QueryServerKeys( +func (a *FederationInternalAPI) QueryServerKeys( ctx context.Context, req *api.QueryServerKeysRequest, res *api.QueryServerKeysResponse, ) error { // attempt to satisfy the entire request from the cache first diff --git a/federationsender/inthttp/client.go b/federationapi/inthttp/client.go similarity index 83% rename from federationsender/inthttp/client.go rename to federationapi/inthttp/client.go index f08e610ae..9f77b099f 100644 --- a/federationsender/inthttp/client.go +++ b/federationapi/inthttp/client.go @@ -5,7 +5,7 @@ import ( "errors" "net/http" - "github.com/matrix-org/dendrite/federationsender/api" + "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/internal/httputil" "github.com/matrix-org/gomatrix" "github.com/matrix-org/gomatrixserverlib" @@ -14,45 +14,45 @@ import ( // HTTP paths for the internal HTTP API const ( - FederationSenderQueryJoinedHostServerNamesInRoomPath = "/federationsender/queryJoinedHostServerNamesInRoom" - FederationSenderQueryServerKeysPath = "/federationsender/queryServerKeys" + FederationSenderQueryJoinedHostServerNamesInRoomPath = "/federationapi/queryJoinedHostServerNamesInRoom" + FederationSenderQueryServerKeysPath = "/federationapi/queryServerKeys" - FederationSenderPerformDirectoryLookupRequestPath = "/federationsender/performDirectoryLookup" - FederationSenderPerformJoinRequestPath = "/federationsender/performJoinRequest" - FederationSenderPerformLeaveRequestPath = "/federationsender/performLeaveRequest" - FederationSenderPerformInviteRequestPath = "/federationsender/performInviteRequest" - FederationSenderPerformOutboundPeekRequestPath = "/federationsender/performOutboundPeekRequest" - FederationSenderPerformServersAlivePath = "/federationsender/performServersAlive" - FederationSenderPerformBroadcastEDUPath = "/federationsender/performBroadcastEDU" + FederationSenderPerformDirectoryLookupRequestPath = "/federationapi/performDirectoryLookup" + FederationSenderPerformJoinRequestPath = "/federationapi/performJoinRequest" + FederationSenderPerformLeaveRequestPath = "/federationapi/performLeaveRequest" + FederationSenderPerformInviteRequestPath = "/federationapi/performInviteRequest" + FederationSenderPerformOutboundPeekRequestPath = "/federationapi/performOutboundPeekRequest" + FederationSenderPerformServersAlivePath = "/federationapi/performServersAlive" + FederationSenderPerformBroadcastEDUPath = "/federationapi/performBroadcastEDU" - FederationSenderGetUserDevicesPath = "/federationsender/client/getUserDevices" - FederationSenderClaimKeysPath = "/federationsender/client/claimKeys" - FederationSenderQueryKeysPath = "/federationsender/client/queryKeys" - FederationSenderBackfillPath = "/federationsender/client/backfill" - FederationSenderLookupStatePath = "/federationsender/client/lookupState" - FederationSenderLookupStateIDsPath = "/federationsender/client/lookupStateIDs" - FederationSenderGetEventPath = "/federationsender/client/getEvent" - FederationSenderLookupServerKeysPath = "/federationsender/client/lookupServerKeys" - FederationSenderEventRelationshipsPath = "/federationsender/client/msc2836eventRelationships" - FederationSenderSpacesSummaryPath = "/federationsender/client/msc2946spacesSummary" + FederationSenderGetUserDevicesPath = "/federationapi/client/getUserDevices" + FederationSenderClaimKeysPath = "/federationapi/client/claimKeys" + FederationSenderQueryKeysPath = "/federationapi/client/queryKeys" + FederationSenderBackfillPath = "/federationapi/client/backfill" + FederationSenderLookupStatePath = "/federationapi/client/lookupState" + FederationSenderLookupStateIDsPath = "/federationapi/client/lookupStateIDs" + FederationSenderGetEventPath = "/federationapi/client/getEvent" + FederationSenderLookupServerKeysPath = "/federationapi/client/lookupServerKeys" + FederationSenderEventRelationshipsPath = "/federationapi/client/msc2836eventRelationships" + FederationSenderSpacesSummaryPath = "/federationapi/client/msc2946spacesSummary" ) -// NewFederationSenderClient creates a FederationSenderInternalAPI implemented by talking to a HTTP POST API. +// NewFederationSenderClient creates a FederationInternalAPI implemented by talking to a HTTP POST API. // If httpClient is nil an error is returned -func NewFederationSenderClient(federationSenderURL string, httpClient *http.Client) (api.FederationSenderInternalAPI, error) { +func NewFederationSenderClient(federationSenderURL string, httpClient *http.Client) (api.FederationInternalAPI, error) { if httpClient == nil { - return nil, errors.New("NewFederationSenderInternalAPIHTTP: httpClient is ") + return nil, errors.New("NewFederationInternalAPIHTTP: httpClient is ") } - return &httpFederationSenderInternalAPI{federationSenderURL, httpClient}, nil + return &httpFederationInternalAPI{federationSenderURL, httpClient}, nil } -type httpFederationSenderInternalAPI struct { +type httpFederationInternalAPI struct { federationSenderURL string httpClient *http.Client } // Handle an instruction to make_leave & send_leave with a remote server. -func (h *httpFederationSenderInternalAPI) PerformLeave( +func (h *httpFederationInternalAPI) PerformLeave( ctx context.Context, request *api.PerformLeaveRequest, response *api.PerformLeaveResponse, @@ -65,7 +65,7 @@ func (h *httpFederationSenderInternalAPI) PerformLeave( } // Handle sending an invite to a remote server. -func (h *httpFederationSenderInternalAPI) PerformInvite( +func (h *httpFederationInternalAPI) PerformInvite( ctx context.Context, request *api.PerformInviteRequest, response *api.PerformInviteResponse, @@ -78,7 +78,7 @@ func (h *httpFederationSenderInternalAPI) PerformInvite( } // Handle starting a peek on a remote server. -func (h *httpFederationSenderInternalAPI) PerformOutboundPeek( +func (h *httpFederationInternalAPI) PerformOutboundPeek( ctx context.Context, request *api.PerformOutboundPeekRequest, response *api.PerformOutboundPeekResponse, @@ -90,7 +90,7 @@ func (h *httpFederationSenderInternalAPI) PerformOutboundPeek( return httputil.PostJSON(ctx, span, h.httpClient, apiURL, request, response) } -func (h *httpFederationSenderInternalAPI) PerformServersAlive( +func (h *httpFederationInternalAPI) PerformServersAlive( ctx context.Context, request *api.PerformServersAliveRequest, response *api.PerformServersAliveResponse, @@ -102,8 +102,8 @@ func (h *httpFederationSenderInternalAPI) PerformServersAlive( return httputil.PostJSON(ctx, span, h.httpClient, apiURL, request, response) } -// QueryJoinedHostServerNamesInRoom implements FederationSenderInternalAPI -func (h *httpFederationSenderInternalAPI) QueryJoinedHostServerNamesInRoom( +// QueryJoinedHostServerNamesInRoom implements FederationInternalAPI +func (h *httpFederationInternalAPI) QueryJoinedHostServerNamesInRoom( ctx context.Context, request *api.QueryJoinedHostServerNamesInRoomRequest, response *api.QueryJoinedHostServerNamesInRoomResponse, @@ -116,7 +116,7 @@ func (h *httpFederationSenderInternalAPI) QueryJoinedHostServerNamesInRoom( } // Handle an instruction to make_join & send_join with a remote server. -func (h *httpFederationSenderInternalAPI) PerformJoin( +func (h *httpFederationInternalAPI) PerformJoin( ctx context.Context, request *api.PerformJoinRequest, response *api.PerformJoinResponse, @@ -136,7 +136,7 @@ func (h *httpFederationSenderInternalAPI) PerformJoin( } // Handle an instruction to make_join & send_join with a remote server. -func (h *httpFederationSenderInternalAPI) PerformDirectoryLookup( +func (h *httpFederationInternalAPI) PerformDirectoryLookup( ctx context.Context, request *api.PerformDirectoryLookupRequest, response *api.PerformDirectoryLookupResponse, @@ -149,7 +149,7 @@ func (h *httpFederationSenderInternalAPI) PerformDirectoryLookup( } // Handle an instruction to broadcast an EDU to all servers in rooms we are joined to. -func (h *httpFederationSenderInternalAPI) PerformBroadcastEDU( +func (h *httpFederationInternalAPI) PerformBroadcastEDU( ctx context.Context, request *api.PerformBroadcastEDURequest, response *api.PerformBroadcastEDUResponse, @@ -168,7 +168,7 @@ type getUserDevices struct { Err *api.FederationClientError } -func (h *httpFederationSenderInternalAPI) GetUserDevices( +func (h *httpFederationInternalAPI) GetUserDevices( ctx context.Context, s gomatrixserverlib.ServerName, userID string, ) (gomatrixserverlib.RespUserDevices, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "GetUserDevices") @@ -198,7 +198,7 @@ type claimKeys struct { Err *api.FederationClientError } -func (h *httpFederationSenderInternalAPI) ClaimKeys( +func (h *httpFederationInternalAPI) ClaimKeys( ctx context.Context, s gomatrixserverlib.ServerName, oneTimeKeys map[string]map[string]string, ) (gomatrixserverlib.RespClaimKeys, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "ClaimKeys") @@ -228,7 +228,7 @@ type queryKeys struct { Err *api.FederationClientError } -func (h *httpFederationSenderInternalAPI) QueryKeys( +func (h *httpFederationInternalAPI) QueryKeys( ctx context.Context, s gomatrixserverlib.ServerName, keys map[string][]string, ) (gomatrixserverlib.RespQueryKeys, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "QueryKeys") @@ -260,7 +260,7 @@ type backfill struct { Err *api.FederationClientError } -func (h *httpFederationSenderInternalAPI) Backfill( +func (h *httpFederationInternalAPI) Backfill( ctx context.Context, s gomatrixserverlib.ServerName, roomID string, limit int, eventIDs []string, ) (gomatrixserverlib.Transaction, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "Backfill") @@ -293,7 +293,7 @@ type lookupState struct { Err *api.FederationClientError } -func (h *httpFederationSenderInternalAPI) LookupState( +func (h *httpFederationInternalAPI) LookupState( ctx context.Context, s gomatrixserverlib.ServerName, roomID, eventID string, roomVersion gomatrixserverlib.RoomVersion, ) (gomatrixserverlib.RespState, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "LookupState") @@ -325,7 +325,7 @@ type lookupStateIDs struct { Err *api.FederationClientError } -func (h *httpFederationSenderInternalAPI) LookupStateIDs( +func (h *httpFederationInternalAPI) LookupStateIDs( ctx context.Context, s gomatrixserverlib.ServerName, roomID, eventID string, ) (gomatrixserverlib.RespStateIDs, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "LookupStateIDs") @@ -355,7 +355,7 @@ type getEvent struct { Err *api.FederationClientError } -func (h *httpFederationSenderInternalAPI) GetEvent( +func (h *httpFederationInternalAPI) GetEvent( ctx context.Context, s gomatrixserverlib.ServerName, eventID string, ) (gomatrixserverlib.Transaction, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "GetEvent") @@ -377,7 +377,7 @@ func (h *httpFederationSenderInternalAPI) GetEvent( return *response.Res, nil } -func (h *httpFederationSenderInternalAPI) QueryServerKeys( +func (h *httpFederationInternalAPI) QueryServerKeys( ctx context.Context, req *api.QueryServerKeysRequest, res *api.QueryServerKeysResponse, ) error { span, ctx := opentracing.StartSpanFromContext(ctx, "QueryServerKeys") @@ -394,7 +394,7 @@ type lookupServerKeys struct { Err *api.FederationClientError } -func (h *httpFederationSenderInternalAPI) LookupServerKeys( +func (h *httpFederationInternalAPI) LookupServerKeys( ctx context.Context, s gomatrixserverlib.ServerName, keyRequests map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.Timestamp, ) ([]gomatrixserverlib.ServerKeys, error) { span, ctx := opentracing.StartSpanFromContext(ctx, "LookupServerKeys") @@ -424,7 +424,7 @@ type eventRelationships struct { Err *api.FederationClientError } -func (h *httpFederationSenderInternalAPI) MSC2836EventRelationships( +func (h *httpFederationInternalAPI) MSC2836EventRelationships( ctx context.Context, s gomatrixserverlib.ServerName, r gomatrixserverlib.MSC2836EventRelationshipsRequest, roomVersion gomatrixserverlib.RoomVersion, ) (res gomatrixserverlib.MSC2836EventRelationshipsResponse, err error) { @@ -456,7 +456,7 @@ type spacesReq struct { Err *api.FederationClientError } -func (h *httpFederationSenderInternalAPI) MSC2946Spaces( +func (h *httpFederationInternalAPI) MSC2946Spaces( ctx context.Context, dst gomatrixserverlib.ServerName, roomID string, r gomatrixserverlib.MSC2946SpacesRequest, ) (res gomatrixserverlib.MSC2946SpacesResponse, err error) { span, ctx := opentracing.StartSpanFromContext(ctx, "MSC2946Spaces") diff --git a/federationsender/inthttp/server.go b/federationapi/inthttp/server.go similarity index 98% rename from federationsender/inthttp/server.go rename to federationapi/inthttp/server.go index a7fbc4eda..86a1e5294 100644 --- a/federationsender/inthttp/server.go +++ b/federationapi/inthttp/server.go @@ -5,14 +5,14 @@ import ( "net/http" "github.com/gorilla/mux" - "github.com/matrix-org/dendrite/federationsender/api" + "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/internal/httputil" "github.com/matrix-org/util" ) -// AddRoutes adds the FederationSenderInternalAPI handlers to the http.ServeMux. +// AddRoutes adds the FederationInternalAPI handlers to the http.ServeMux. // nolint:gocyclo -func AddRoutes(intAPI api.FederationSenderInternalAPI, internalAPIMux *mux.Router) { +func AddRoutes(intAPI api.FederationInternalAPI, internalAPIMux *mux.Router) { internalAPIMux.Handle( FederationSenderQueryJoinedHostServerNamesInRoomPath, httputil.MakeInternalAPI("QueryJoinedHostServerNamesInRoom", func(req *http.Request) util.JSONResponse { diff --git a/federationsender/queue/destinationqueue.go b/federationapi/queue/destinationqueue.go similarity index 98% rename from federationsender/queue/destinationqueue.go rename to federationapi/queue/destinationqueue.go index 0123fa24c..1306e8588 100644 --- a/federationsender/queue/destinationqueue.go +++ b/federationapi/queue/destinationqueue.go @@ -21,9 +21,9 @@ import ( "sync" "time" - "github.com/matrix-org/dendrite/federationsender/statistics" - "github.com/matrix-org/dendrite/federationsender/storage" - "github.com/matrix-org/dendrite/federationsender/storage/shared" + "github.com/matrix-org/dendrite/federationapi/statistics" + "github.com/matrix-org/dendrite/federationapi/storage" + "github.com/matrix-org/dendrite/federationapi/storage/shared" "github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/setup/process" "github.com/matrix-org/gomatrix" @@ -81,7 +81,7 @@ func (oq *destinationQueue) sendEvent(event *gomatrixserverlib.HeaderedEvent, re context.TODO(), "", // TODO: remove this, as we don't need to persist the transaction ID oq.destination, // the destination server name - receipt, // NIDs from federationsender_queue_json table + receipt, // NIDs from federationapi_queue_json table ); err != nil { logrus.WithError(err).Errorf("failed to associate PDU %q with destination %q", event.EventID(), oq.destination) return @@ -124,7 +124,7 @@ func (oq *destinationQueue) sendEDU(event *gomatrixserverlib.EDU, receipt *share if err := oq.db.AssociateEDUWithDestination( context.TODO(), oq.destination, // the destination server name - receipt, // NIDs from federationsender_queue_json table + receipt, // NIDs from federationapi_queue_json table ); err != nil { logrus.WithError(err).Errorf("failed to associate EDU with destination %q", oq.destination) return diff --git a/federationsender/queue/queue.go b/federationapi/queue/queue.go similarity index 96% rename from federationsender/queue/queue.go rename to federationapi/queue/queue.go index a2ef6e5f8..8a6ad1555 100644 --- a/federationsender/queue/queue.go +++ b/federationapi/queue/queue.go @@ -22,9 +22,9 @@ import ( "sync" "time" - "github.com/matrix-org/dendrite/federationsender/statistics" - "github.com/matrix-org/dendrite/federationsender/storage" - "github.com/matrix-org/dendrite/federationsender/storage/shared" + "github.com/matrix-org/dendrite/federationapi/statistics" + "github.com/matrix-org/dendrite/federationapi/storage" + "github.com/matrix-org/dendrite/federationapi/storage/shared" "github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/setup/process" "github.com/matrix-org/gomatrixserverlib" @@ -58,7 +58,7 @@ func init() { var destinationQueueTotal = prometheus.NewGauge( prometheus.GaugeOpts{ Namespace: "dendrite", - Subsystem: "federationsender", + Subsystem: "federationapi", Name: "destination_queues_total", }, ) @@ -66,7 +66,7 @@ var destinationQueueTotal = prometheus.NewGauge( var destinationQueueRunning = prometheus.NewGauge( prometheus.GaugeOpts{ Namespace: "dendrite", - Subsystem: "federationsender", + Subsystem: "federationapi", Name: "destination_queues_running", }, ) @@ -74,7 +74,7 @@ var destinationQueueRunning = prometheus.NewGauge( var destinationQueueBackingOff = prometheus.NewGauge( prometheus.GaugeOpts{ Namespace: "dendrite", - Subsystem: "federationsender", + Subsystem: "federationapi", Name: "destination_queues_backing_off", }, ) diff --git a/federationapi/routing/keys.go b/federationapi/routing/keys.go index bba3272b9..43a9d3080 100644 --- a/federationapi/routing/keys.go +++ b/federationapi/routing/keys.go @@ -21,7 +21,7 @@ import ( "github.com/matrix-org/dendrite/clientapi/httputil" "github.com/matrix-org/dendrite/clientapi/jsonerror" - federationSenderAPI "github.com/matrix-org/dendrite/federationsender/api" + federationSenderAPI "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/keyserver/api" "github.com/matrix-org/dendrite/setup/config" "github.com/matrix-org/gomatrixserverlib" @@ -179,7 +179,7 @@ func localKeys(cfg *config.FederationAPI, validUntil time.Time) (*gomatrixserver func NotaryKeys( httpReq *http.Request, cfg *config.FederationAPI, - fsAPI federationSenderAPI.FederationSenderInternalAPI, + fsAPI federationSenderAPI.FederationInternalAPI, req *gomatrixserverlib.PublicKeyNotaryLookupRequest, ) util.JSONResponse { if req == nil { diff --git a/federationapi/routing/peek.go b/federationapi/routing/peek.go index 8f83cb157..511329997 100644 --- a/federationapi/routing/peek.go +++ b/federationapi/routing/peek.go @@ -33,7 +33,7 @@ func Peek( roomID, peekID string, remoteVersions []gomatrixserverlib.RoomVersion, ) util.JSONResponse { - // TODO: check if we're just refreshing an existing peek by querying the federationsender + // TODO: check if we're just refreshing an existing peek by querying the federationapi verReq := api.QueryRoomVersionForRoomRequest{RoomID: roomID} verRes := api.QueryRoomVersionForRoomResponse{} diff --git a/federationapi/routing/query.go b/federationapi/routing/query.go index b4158f0cd..a9b3af4cd 100644 --- a/federationapi/routing/query.go +++ b/federationapi/routing/query.go @@ -19,7 +19,7 @@ import ( "net/http" "github.com/matrix-org/dendrite/clientapi/jsonerror" - federationSenderAPI "github.com/matrix-org/dendrite/federationsender/api" + federationSenderAPI "github.com/matrix-org/dendrite/federationapi/api" roomserverAPI "github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/setup/config" "github.com/matrix-org/gomatrix" @@ -33,7 +33,7 @@ func RoomAliasToID( federation *gomatrixserverlib.FederationClient, cfg *config.FederationAPI, rsAPI roomserverAPI.RoomserverInternalAPI, - senderAPI federationSenderAPI.FederationSenderInternalAPI, + senderAPI federationSenderAPI.FederationInternalAPI, ) util.JSONResponse { roomAlias := httpReq.FormValue("room_alias") if roomAlias == "" { diff --git a/federationapi/routing/routing.go b/federationapi/routing/routing.go index 7446f1fbc..887e7928e 100644 --- a/federationapi/routing/routing.go +++ b/federationapi/routing/routing.go @@ -21,7 +21,7 @@ import ( "github.com/matrix-org/dendrite/clientapi/jsonerror" eduserverAPI "github.com/matrix-org/dendrite/eduserver/api" federationAPI "github.com/matrix-org/dendrite/federationapi/api" - federationSenderAPI "github.com/matrix-org/dendrite/federationsender/api" + federationSenderAPI "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/internal/httputil" keyserverAPI "github.com/matrix-org/dendrite/keyserver/api" @@ -46,7 +46,7 @@ func Setup( cfg *config.FederationAPI, rsAPI roomserverAPI.RoomserverInternalAPI, eduAPI eduserverAPI.EDUServerInputAPI, - fsAPI federationSenderAPI.FederationSenderInternalAPI, + fsAPI federationSenderAPI.FederationInternalAPI, keys gomatrixserverlib.JSONVerifier, federation *gomatrixserverlib.FederationClient, userAPI userapi.UserInternalAPI, diff --git a/federationsender/statistics/statistics.go b/federationapi/statistics/statistics.go similarity index 99% rename from federationsender/statistics/statistics.go rename to federationapi/statistics/statistics.go index b5fe7513d..8bac99cbc 100644 --- a/federationsender/statistics/statistics.go +++ b/federationapi/statistics/statistics.go @@ -5,7 +5,7 @@ import ( "sync" "time" - "github.com/matrix-org/dendrite/federationsender/storage" + "github.com/matrix-org/dendrite/federationapi/storage" "github.com/matrix-org/gomatrixserverlib" "github.com/sirupsen/logrus" "go.uber.org/atomic" diff --git a/federationsender/statistics/statistics_test.go b/federationapi/statistics/statistics_test.go similarity index 100% rename from federationsender/statistics/statistics_test.go rename to federationapi/statistics/statistics_test.go diff --git a/federationsender/storage/interface.go b/federationapi/storage/interface.go similarity index 97% rename from federationsender/storage/interface.go rename to federationapi/storage/interface.go index 58c8a7cfa..d55c66f85 100644 --- a/federationsender/storage/interface.go +++ b/federationapi/storage/interface.go @@ -17,8 +17,8 @@ package storage import ( "context" - "github.com/matrix-org/dendrite/federationsender/storage/shared" - "github.com/matrix-org/dendrite/federationsender/types" + "github.com/matrix-org/dendrite/federationapi/storage/shared" + "github.com/matrix-org/dendrite/federationapi/types" "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/gomatrixserverlib" ) diff --git a/federationsender/storage/postgres/blacklist_table.go b/federationapi/storage/postgres/blacklist_table.go similarity index 90% rename from federationsender/storage/postgres/blacklist_table.go rename to federationapi/storage/postgres/blacklist_table.go index eef37318b..3794f5560 100644 --- a/federationsender/storage/postgres/blacklist_table.go +++ b/federationapi/storage/postgres/blacklist_table.go @@ -23,7 +23,7 @@ import ( ) const blacklistSchema = ` -CREATE TABLE IF NOT EXISTS federationsender_blacklist ( +CREATE TABLE IF NOT EXISTS federationapi_blacklist ( -- The blacklisted server name server_name TEXT NOT NULL, UNIQUE (server_name) @@ -31,17 +31,17 @@ CREATE TABLE IF NOT EXISTS federationsender_blacklist ( ` const insertBlacklistSQL = "" + - "INSERT INTO federationsender_blacklist (server_name) VALUES ($1)" + + "INSERT INTO federationapi_blacklist (server_name) VALUES ($1)" + " ON CONFLICT DO NOTHING" const selectBlacklistSQL = "" + - "SELECT server_name FROM federationsender_blacklist WHERE server_name = $1" + "SELECT server_name FROM federationapi_blacklist WHERE server_name = $1" const deleteBlacklistSQL = "" + - "DELETE FROM federationsender_blacklist WHERE server_name = $1" + "DELETE FROM federationapi_blacklist WHERE server_name = $1" const deleteAllBlacklistSQL = "" + - "TRUNCATE federationsender_blacklist" + "TRUNCATE federationapi_blacklist" type blacklistStatements struct { db *sql.DB diff --git a/federationsender/storage/postgres/deltas/2021020411080000_rooms.go b/federationapi/storage/postgres/deltas/2021020411080000_rooms.go similarity index 96% rename from federationsender/storage/postgres/deltas/2021020411080000_rooms.go rename to federationapi/storage/postgres/deltas/2021020411080000_rooms.go index cc4bdadfd..249b9f65d 100644 --- a/federationsender/storage/postgres/deltas/2021020411080000_rooms.go +++ b/federationapi/storage/postgres/deltas/2021020411080000_rooms.go @@ -32,7 +32,7 @@ func LoadRemoveRoomsTable(m *sqlutil.Migrations) { func UpRemoveRoomsTable(tx *sql.Tx) error { _, err := tx.Exec(` - DROP TABLE IF EXISTS federationsender_rooms; + DROP TABLE IF EXISTS federationapi_rooms; `) if err != nil { return fmt.Errorf("failed to execute upgrade: %w", err) diff --git a/federationsender/storage/postgres/inbound_peeks_table.go b/federationapi/storage/postgres/inbound_peeks_table.go similarity index 87% rename from federationsender/storage/postgres/inbound_peeks_table.go rename to federationapi/storage/postgres/inbound_peeks_table.go index fe35ce44c..f2192ce47 100644 --- a/federationsender/storage/postgres/inbound_peeks_table.go +++ b/federationapi/storage/postgres/inbound_peeks_table.go @@ -19,14 +19,14 @@ import ( "database/sql" "time" - "github.com/matrix-org/dendrite/federationsender/types" + "github.com/matrix-org/dendrite/federationapi/types" "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/gomatrixserverlib" ) const inboundPeeksSchema = ` -CREATE TABLE IF NOT EXISTS federationsender_inbound_peeks ( +CREATE TABLE IF NOT EXISTS federationapi_inbound_peeks ( room_id TEXT NOT NULL, server_name TEXT NOT NULL, peek_id TEXT NOT NULL, @@ -38,22 +38,22 @@ CREATE TABLE IF NOT EXISTS federationsender_inbound_peeks ( ` const insertInboundPeekSQL = "" + - "INSERT INTO federationsender_inbound_peeks (room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval) VALUES ($1, $2, $3, $4, $5, $6)" + "INSERT INTO federationapi_inbound_peeks (room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval) VALUES ($1, $2, $3, $4, $5, $6)" const selectInboundPeekSQL = "" + - "SELECT room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval FROM federationsender_inbound_peeks WHERE room_id = $1 and server_name = $2 and peek_id = $3" + "SELECT room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval FROM federationapi_inbound_peeks WHERE room_id = $1 and server_name = $2 and peek_id = $3" const selectInboundPeeksSQL = "" + - "SELECT room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval FROM federationsender_inbound_peeks WHERE room_id = $1" + "SELECT room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval FROM federationapi_inbound_peeks WHERE room_id = $1" const renewInboundPeekSQL = "" + - "UPDATE federationsender_inbound_peeks SET renewed_ts=$1, renewal_interval=$2 WHERE room_id = $3 and server_name = $4 and peek_id = $5" + "UPDATE federationapi_inbound_peeks SET renewed_ts=$1, renewal_interval=$2 WHERE room_id = $3 and server_name = $4 and peek_id = $5" const deleteInboundPeekSQL = "" + - "DELETE FROM federationsender_inbound_peeks WHERE room_id = $1 and server_name = $2" + "DELETE FROM federationapi_inbound_peeks WHERE room_id = $1 and server_name = $2" const deleteInboundPeeksSQL = "" + - "DELETE FROM federationsender_inbound_peeks WHERE room_id = $1" + "DELETE FROM federationapi_inbound_peeks WHERE room_id = $1" type inboundPeeksStatements struct { db *sql.DB diff --git a/federationsender/storage/postgres/joined_hosts_table.go b/federationapi/storage/postgres/joined_hosts_table.go similarity index 90% rename from federationsender/storage/postgres/joined_hosts_table.go rename to federationapi/storage/postgres/joined_hosts_table.go index 0c1e91eeb..3e8bc3f24 100644 --- a/federationsender/storage/postgres/joined_hosts_table.go +++ b/federationapi/storage/postgres/joined_hosts_table.go @@ -20,7 +20,7 @@ import ( "database/sql" "github.com/lib/pq" - "github.com/matrix-org/dendrite/federationsender/types" + "github.com/matrix-org/dendrite/federationapi/types" "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/gomatrixserverlib" @@ -30,7 +30,7 @@ const joinedHostsSchema = ` -- The joined_hosts table stores a list of m.room.member event ids in the -- current state for each room where the membership is "join". -- There will be an entry for every user that is joined to the room. -CREATE TABLE IF NOT EXISTS federationsender_joined_hosts ( +CREATE TABLE IF NOT EXISTS federationapi_joined_hosts ( -- The string ID of the room. room_id TEXT NOT NULL, -- The event ID of the m.room.member join event. @@ -40,31 +40,31 @@ CREATE TABLE IF NOT EXISTS federationsender_joined_hosts ( ); CREATE UNIQUE INDEX IF NOT EXISTS federatonsender_joined_hosts_event_id_idx - ON federationsender_joined_hosts (event_id); + ON federationapi_joined_hosts (event_id); CREATE INDEX IF NOT EXISTS federatonsender_joined_hosts_room_id_idx - ON federationsender_joined_hosts (room_id) + ON federationapi_joined_hosts (room_id) ` const insertJoinedHostsSQL = "" + - "INSERT INTO federationsender_joined_hosts (room_id, event_id, server_name)" + + "INSERT INTO federationapi_joined_hosts (room_id, event_id, server_name)" + " VALUES ($1, $2, $3) ON CONFLICT DO NOTHING" const deleteJoinedHostsSQL = "" + - "DELETE FROM federationsender_joined_hosts WHERE event_id = ANY($1)" + "DELETE FROM federationapi_joined_hosts WHERE event_id = ANY($1)" const deleteJoinedHostsForRoomSQL = "" + - "DELETE FROM federationsender_joined_hosts WHERE room_id = $1" + "DELETE FROM federationapi_joined_hosts WHERE room_id = $1" const selectJoinedHostsSQL = "" + - "SELECT event_id, server_name FROM federationsender_joined_hosts" + + "SELECT event_id, server_name FROM federationapi_joined_hosts" + " WHERE room_id = $1" const selectAllJoinedHostsSQL = "" + - "SELECT DISTINCT server_name FROM federationsender_joined_hosts" + "SELECT DISTINCT server_name FROM federationapi_joined_hosts" const selectJoinedHostsForRoomsSQL = "" + - "SELECT DISTINCT server_name FROM federationsender_joined_hosts WHERE room_id = ANY($1)" + "SELECT DISTINCT server_name FROM federationapi_joined_hosts WHERE room_id = ANY($1)" type joinedHostsStatements struct { db *sql.DB diff --git a/federationsender/storage/postgres/notary_server_keys_json_table.go b/federationapi/storage/postgres/notary_server_keys_json_table.go similarity index 83% rename from federationsender/storage/postgres/notary_server_keys_json_table.go rename to federationapi/storage/postgres/notary_server_keys_json_table.go index 42e58ba79..c1111cc2f 100644 --- a/federationsender/storage/postgres/notary_server_keys_json_table.go +++ b/federationapi/storage/postgres/notary_server_keys_json_table.go @@ -18,14 +18,14 @@ import ( "context" "database/sql" - "github.com/matrix-org/dendrite/federationsender/storage/tables" + "github.com/matrix-org/dendrite/federationapi/storage/tables" "github.com/matrix-org/gomatrixserverlib" ) const notaryServerKeysJSONSchema = ` -CREATE SEQUENCE IF NOT EXISTS federationsender_notary_server_keys_json_pkey; -CREATE TABLE IF NOT EXISTS federationsender_notary_server_keys_json ( - notary_id BIGINT PRIMARY KEY NOT NULL DEFAULT nextval('federationsender_notary_server_keys_json_pkey'), +CREATE SEQUENCE IF NOT EXISTS federationapi_notary_server_keys_json_pkey; +CREATE TABLE IF NOT EXISTS federationapi_notary_server_keys_json ( + notary_id BIGINT PRIMARY KEY NOT NULL DEFAULT nextval('federationapi_notary_server_keys_json_pkey'), response_json TEXT NOT NULL, server_name TEXT NOT NULL, valid_until BIGINT NOT NULL @@ -33,7 +33,7 @@ CREATE TABLE IF NOT EXISTS federationsender_notary_server_keys_json ( ` const insertServerKeysJSONSQL = "" + - "INSERT INTO federationsender_notary_server_keys_json (response_json, server_name, valid_until) VALUES ($1, $2, $3)" + + "INSERT INTO federationapi_notary_server_keys_json (response_json, server_name, valid_until) VALUES ($1, $2, $3)" + " RETURNING notary_id" type notaryServerKeysStatements struct { diff --git a/federationsender/storage/postgres/notary_server_keys_metadata_table.go b/federationapi/storage/postgres/notary_server_keys_metadata_table.go similarity index 77% rename from federationsender/storage/postgres/notary_server_keys_metadata_table.go rename to federationapi/storage/postgres/notary_server_keys_metadata_table.go index b460dcd88..0074f9a3d 100644 --- a/federationsender/storage/postgres/notary_server_keys_metadata_table.go +++ b/federationapi/storage/postgres/notary_server_keys_metadata_table.go @@ -20,13 +20,13 @@ import ( "encoding/json" "github.com/lib/pq" - "github.com/matrix-org/dendrite/federationsender/storage/tables" + "github.com/matrix-org/dendrite/federationapi/storage/tables" "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/gomatrixserverlib" ) const notaryServerKeysMetadataSchema = ` -CREATE TABLE IF NOT EXISTS federationsender_notary_server_keys_metadata ( +CREATE TABLE IF NOT EXISTS federationapi_notary_server_keys_metadata ( notary_id BIGINT NOT NULL, server_name TEXT NOT NULL, key_id TEXT NOT NULL, @@ -35,41 +35,41 @@ CREATE TABLE IF NOT EXISTS federationsender_notary_server_keys_metadata ( ` const upsertServerKeysSQL = "" + - "INSERT INTO federationsender_notary_server_keys_metadata (notary_id, server_name, key_id) VALUES ($1, $2, $3)" + + "INSERT INTO federationapi_notary_server_keys_metadata (notary_id, server_name, key_id) VALUES ($1, $2, $3)" + " ON CONFLICT (server_name, key_id) DO UPDATE SET notary_id = $1" // for a given (server_name, key_id), find the existing notary ID and valid until. Used to check if we will replace it // JOINs with the json table const selectNotaryKeyMetadataSQL = ` - SELECT federationsender_notary_server_keys_metadata.notary_id, valid_until FROM federationsender_notary_server_keys_json - JOIN federationsender_notary_server_keys_metadata ON - federationsender_notary_server_keys_metadata.notary_id = federationsender_notary_server_keys_json.notary_id - WHERE federationsender_notary_server_keys_metadata.server_name = $1 AND federationsender_notary_server_keys_metadata.key_id = $2 + SELECT federationapi_notary_server_keys_metadata.notary_id, valid_until FROM federationapi_notary_server_keys_json + JOIN federationapi_notary_server_keys_metadata ON + federationapi_notary_server_keys_metadata.notary_id = federationapi_notary_server_keys_json.notary_id + WHERE federationapi_notary_server_keys_metadata.server_name = $1 AND federationapi_notary_server_keys_metadata.key_id = $2 ` // select the response which has the highest valid_until value // JOINs with the json table const selectNotaryKeyResponsesSQL = ` - SELECT response_json FROM federationsender_notary_server_keys_json + SELECT response_json FROM federationapi_notary_server_keys_json WHERE server_name = $1 AND valid_until = ( - SELECT MAX(valid_until) FROM federationsender_notary_server_keys_json WHERE server_name = $1 + SELECT MAX(valid_until) FROM federationapi_notary_server_keys_json WHERE server_name = $1 ) ` // select the responses which have the given key IDs // JOINs with the json table const selectNotaryKeyResponsesWithKeyIDsSQL = ` - SELECT response_json FROM federationsender_notary_server_keys_json - JOIN federationsender_notary_server_keys_metadata ON - federationsender_notary_server_keys_metadata.notary_id = federationsender_notary_server_keys_json.notary_id - WHERE federationsender_notary_server_keys_json.server_name = $1 AND federationsender_notary_server_keys_metadata.key_id = ANY ($2) - GROUP BY federationsender_notary_server_keys_json.notary_id + SELECT response_json FROM federationapi_notary_server_keys_json + JOIN federationapi_notary_server_keys_metadata ON + federationapi_notary_server_keys_metadata.notary_id = federationapi_notary_server_keys_json.notary_id + WHERE federationapi_notary_server_keys_json.server_name = $1 AND federationapi_notary_server_keys_metadata.key_id = ANY ($2) + GROUP BY federationapi_notary_server_keys_json.notary_id ` // JOINs with the metadata table const deleteUnusedServerKeysJSONSQL = ` - DELETE FROM federationsender_notary_server_keys_json WHERE federationsender_notary_server_keys_json.notary_id NOT IN ( - SELECT DISTINCT notary_id FROM federationsender_notary_server_keys_metadata + DELETE FROM federationapi_notary_server_keys_json WHERE federationapi_notary_server_keys_json.notary_id NOT IN ( + SELECT DISTINCT notary_id FROM federationapi_notary_server_keys_metadata ) ` diff --git a/federationsender/storage/postgres/outbound_peeks_table.go b/federationapi/storage/postgres/outbound_peeks_table.go similarity index 87% rename from federationsender/storage/postgres/outbound_peeks_table.go rename to federationapi/storage/postgres/outbound_peeks_table.go index 596b4bcc7..95500c994 100644 --- a/federationsender/storage/postgres/outbound_peeks_table.go +++ b/federationapi/storage/postgres/outbound_peeks_table.go @@ -19,14 +19,14 @@ import ( "database/sql" "time" - "github.com/matrix-org/dendrite/federationsender/types" + "github.com/matrix-org/dendrite/federationapi/types" "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/gomatrixserverlib" ) const outboundPeeksSchema = ` -CREATE TABLE IF NOT EXISTS federationsender_outbound_peeks ( +CREATE TABLE IF NOT EXISTS federationapi_outbound_peeks ( room_id TEXT NOT NULL, server_name TEXT NOT NULL, peek_id TEXT NOT NULL, @@ -38,22 +38,22 @@ CREATE TABLE IF NOT EXISTS federationsender_outbound_peeks ( ` const insertOutboundPeekSQL = "" + - "INSERT INTO federationsender_outbound_peeks (room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval) VALUES ($1, $2, $3, $4, $5, $6)" + "INSERT INTO federationapi_outbound_peeks (room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval) VALUES ($1, $2, $3, $4, $5, $6)" const selectOutboundPeekSQL = "" + - "SELECT room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval FROM federationsender_outbound_peeks WHERE room_id = $1 and server_name = $2 and peek_id = $3" + "SELECT room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval FROM federationapi_outbound_peeks WHERE room_id = $1 and server_name = $2 and peek_id = $3" const selectOutboundPeeksSQL = "" + - "SELECT room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval FROM federationsender_outbound_peeks WHERE room_id = $1" + "SELECT room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval FROM federationapi_outbound_peeks WHERE room_id = $1" const renewOutboundPeekSQL = "" + - "UPDATE federationsender_outbound_peeks SET renewed_ts=$1, renewal_interval=$2 WHERE room_id = $3 and server_name = $4 and peek_id = $5" + "UPDATE federationapi_outbound_peeks SET renewed_ts=$1, renewal_interval=$2 WHERE room_id = $3 and server_name = $4 and peek_id = $5" const deleteOutboundPeekSQL = "" + - "DELETE FROM federationsender_outbound_peeks WHERE room_id = $1 and server_name = $2" + "DELETE FROM federationapi_outbound_peeks WHERE room_id = $1 and server_name = $2" const deleteOutboundPeeksSQL = "" + - "DELETE FROM federationsender_outbound_peeks WHERE room_id = $1" + "DELETE FROM federationapi_outbound_peeks WHERE room_id = $1" type outboundPeeksStatements struct { db *sql.DB diff --git a/federationsender/storage/postgres/queue_edus_table.go b/federationapi/storage/postgres/queue_edus_table.go similarity index 88% rename from federationsender/storage/postgres/queue_edus_table.go rename to federationapi/storage/postgres/queue_edus_table.go index 6cac489bf..28b87de48 100644 --- a/federationsender/storage/postgres/queue_edus_table.go +++ b/federationapi/storage/postgres/queue_edus_table.go @@ -25,41 +25,41 @@ import ( ) const queueEDUsSchema = ` -CREATE TABLE IF NOT EXISTS federationsender_queue_edus ( +CREATE TABLE IF NOT EXISTS federationapi_queue_edus ( -- The type of the event (informational). edu_type TEXT NOT NULL, -- The domain part of the user ID the EDU event is for. server_name TEXT NOT NULL, - -- The JSON NID from the federationsender_queue_edus_json table. + -- The JSON NID from the federationapi_queue_edus_json table. json_nid BIGINT NOT NULL ); -CREATE UNIQUE INDEX IF NOT EXISTS federationsender_queue_edus_json_nid_idx - ON federationsender_queue_edus (json_nid, server_name); +CREATE UNIQUE INDEX IF NOT EXISTS federationapi_queue_edus_json_nid_idx + ON federationapi_queue_edus (json_nid, server_name); ` const insertQueueEDUSQL = "" + - "INSERT INTO federationsender_queue_edus (edu_type, server_name, json_nid)" + + "INSERT INTO federationapi_queue_edus (edu_type, server_name, json_nid)" + " VALUES ($1, $2, $3)" const deleteQueueEDUSQL = "" + - "DELETE FROM federationsender_queue_edus WHERE server_name = $1 AND json_nid = ANY($2)" + "DELETE FROM federationapi_queue_edus WHERE server_name = $1 AND json_nid = ANY($2)" const selectQueueEDUSQL = "" + - "SELECT json_nid FROM federationsender_queue_edus" + + "SELECT json_nid FROM federationapi_queue_edus" + " WHERE server_name = $1" + " LIMIT $2" const selectQueueEDUReferenceJSONCountSQL = "" + - "SELECT COUNT(*) FROM federationsender_queue_edus" + + "SELECT COUNT(*) FROM federationapi_queue_edus" + " WHERE json_nid = $1" const selectQueueEDUCountSQL = "" + - "SELECT COUNT(*) FROM federationsender_queue_edus" + + "SELECT COUNT(*) FROM federationapi_queue_edus" + " WHERE server_name = $1" const selectQueueServerNamesSQL = "" + - "SELECT DISTINCT server_name FROM federationsender_queue_edus" + "SELECT DISTINCT server_name FROM federationapi_queue_edus" type queueEDUsStatements struct { db *sql.DB diff --git a/federationsender/storage/postgres/queue_json_table.go b/federationapi/storage/postgres/queue_json_table.go similarity index 87% rename from federationsender/storage/postgres/queue_json_table.go rename to federationapi/storage/postgres/queue_json_table.go index 853073741..024568a53 100644 --- a/federationsender/storage/postgres/queue_json_table.go +++ b/federationapi/storage/postgres/queue_json_table.go @@ -24,10 +24,10 @@ import ( ) const queueJSONSchema = ` --- The federationsender_queue_json table contains event contents that +-- The federationapi_queue_json table contains event contents that -- we failed to send. -CREATE TABLE IF NOT EXISTS federationsender_queue_json ( - -- The JSON NID. This allows the federationsender_queue_retry table to +CREATE TABLE IF NOT EXISTS federationapi_queue_json ( + -- The JSON NID. This allows the federationapi_queue_retry table to -- cross-reference to find the JSON blob. json_nid BIGSERIAL, -- The JSON body. Text so that we preserve UTF-8. @@ -36,15 +36,15 @@ CREATE TABLE IF NOT EXISTS federationsender_queue_json ( ` const insertJSONSQL = "" + - "INSERT INTO federationsender_queue_json (json_body)" + + "INSERT INTO federationapi_queue_json (json_body)" + " VALUES ($1)" + " RETURNING json_nid" const deleteJSONSQL = "" + - "DELETE FROM federationsender_queue_json WHERE json_nid = ANY($1)" + "DELETE FROM federationapi_queue_json WHERE json_nid = ANY($1)" const selectJSONSQL = "" + - "SELECT json_nid, json_body FROM federationsender_queue_json" + + "SELECT json_nid, json_body FROM federationapi_queue_json" + " WHERE json_nid = ANY($1)" type queueJSONStatements struct { diff --git a/federationsender/storage/postgres/queue_pdus_table.go b/federationapi/storage/postgres/queue_pdus_table.go similarity index 89% rename from federationsender/storage/postgres/queue_pdus_table.go rename to federationapi/storage/postgres/queue_pdus_table.go index f9a477483..b0b06164c 100644 --- a/federationsender/storage/postgres/queue_pdus_table.go +++ b/federationapi/storage/postgres/queue_pdus_table.go @@ -25,41 +25,41 @@ import ( ) const queuePDUsSchema = ` -CREATE TABLE IF NOT EXISTS federationsender_queue_pdus ( +CREATE TABLE IF NOT EXISTS federationapi_queue_pdus ( -- The transaction ID that was generated before persisting the event. transaction_id TEXT NOT NULL, -- The destination server that we will send the event to. server_name TEXT NOT NULL, - -- The JSON NID from the federationsender_queue_pdus_json table. + -- The JSON NID from the federationapi_queue_pdus_json table. json_nid BIGINT NOT NULL ); -CREATE UNIQUE INDEX IF NOT EXISTS federationsender_queue_pdus_pdus_json_nid_idx - ON federationsender_queue_pdus (json_nid, server_name); +CREATE UNIQUE INDEX IF NOT EXISTS federationapi_queue_pdus_pdus_json_nid_idx + ON federationapi_queue_pdus (json_nid, server_name); ` const insertQueuePDUSQL = "" + - "INSERT INTO federationsender_queue_pdus (transaction_id, server_name, json_nid)" + + "INSERT INTO federationapi_queue_pdus (transaction_id, server_name, json_nid)" + " VALUES ($1, $2, $3)" const deleteQueuePDUSQL = "" + - "DELETE FROM federationsender_queue_pdus WHERE server_name = $1 AND json_nid = ANY($2)" + "DELETE FROM federationapi_queue_pdus WHERE server_name = $1 AND json_nid = ANY($2)" const selectQueuePDUsSQL = "" + - "SELECT json_nid FROM federationsender_queue_pdus" + + "SELECT json_nid FROM federationapi_queue_pdus" + " WHERE server_name = $1" + " LIMIT $2" const selectQueuePDUReferenceJSONCountSQL = "" + - "SELECT COUNT(*) FROM federationsender_queue_pdus" + + "SELECT COUNT(*) FROM federationapi_queue_pdus" + " WHERE json_nid = $1" const selectQueuePDUsCountSQL = "" + - "SELECT COUNT(*) FROM federationsender_queue_pdus" + + "SELECT COUNT(*) FROM federationapi_queue_pdus" + " WHERE server_name = $1" const selectQueuePDUServerNamesSQL = "" + - "SELECT DISTINCT server_name FROM federationsender_queue_pdus" + "SELECT DISTINCT server_name FROM federationapi_queue_pdus" type queuePDUsStatements struct { db *sql.DB diff --git a/federationsender/storage/postgres/storage.go b/federationapi/storage/postgres/storage.go similarity index 94% rename from federationsender/storage/postgres/storage.go rename to federationapi/storage/postgres/storage.go index 5507bad78..aecbedebe 100644 --- a/federationsender/storage/postgres/storage.go +++ b/federationapi/storage/postgres/storage.go @@ -19,8 +19,8 @@ import ( "database/sql" "fmt" - "github.com/matrix-org/dendrite/federationsender/storage/postgres/deltas" - "github.com/matrix-org/dendrite/federationsender/storage/shared" + "github.com/matrix-org/dendrite/federationapi/storage/postgres/deltas" + "github.com/matrix-org/dendrite/federationapi/storage/shared" "github.com/matrix-org/dendrite/internal/caching" "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/dendrite/setup/config" @@ -97,7 +97,7 @@ func NewDatabase(dbProperties *config.DatabaseOptions, cache caching.FederationS NotaryServerKeysJSON: notaryJSON, NotaryServerKeysMetadata: notaryMetadata, } - if err = d.PartitionOffsetStatements.Prepare(d.db, d.writer, "federationsender"); err != nil { + if err = d.PartitionOffsetStatements.Prepare(d.db, d.writer, "federationapi"); err != nil { return nil, err } return &d, nil diff --git a/federationsender/storage/shared/storage.go b/federationapi/storage/shared/storage.go similarity index 98% rename from federationsender/storage/shared/storage.go rename to federationapi/storage/shared/storage.go index 45c9febdb..ee36a6a81 100644 --- a/federationsender/storage/shared/storage.go +++ b/federationapi/storage/shared/storage.go @@ -20,8 +20,8 @@ import ( "fmt" "time" - "github.com/matrix-org/dendrite/federationsender/storage/tables" - "github.com/matrix-org/dendrite/federationsender/types" + "github.com/matrix-org/dendrite/federationapi/storage/tables" + "github.com/matrix-org/dendrite/federationapi/types" "github.com/matrix-org/dendrite/internal/caching" "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/gomatrixserverlib" diff --git a/federationsender/storage/shared/storage_edus.go b/federationapi/storage/shared/storage_edus.go similarity index 98% rename from federationsender/storage/shared/storage_edus.go rename to federationapi/storage/shared/storage_edus.go index 86fee1a37..6bedb5ac9 100644 --- a/federationsender/storage/shared/storage_edus.go +++ b/federationapi/storage/shared/storage_edus.go @@ -38,7 +38,7 @@ func (d *Database) AssociateEDUWithDestination( txn, // SQL transaction "", // TODO: EDU type for coalescing serverName, // destination server name - receipt.nid, // NID from the federationsender_queue_json table + receipt.nid, // NID from the federationapi_queue_json table ); err != nil { return fmt.Errorf("InsertQueueEDU: %w", err) } diff --git a/federationsender/storage/shared/storage_pdus.go b/federationapi/storage/shared/storage_pdus.go similarity index 98% rename from federationsender/storage/shared/storage_pdus.go rename to federationapi/storage/shared/storage_pdus.go index bc298a905..1559bd4c2 100644 --- a/federationsender/storage/shared/storage_pdus.go +++ b/federationapi/storage/shared/storage_pdus.go @@ -39,7 +39,7 @@ func (d *Database) AssociatePDUWithDestination( txn, // SQL transaction transactionID, // transaction ID serverName, // destination server name - receipt.nid, // NID from the federationsender_queue_json table + receipt.nid, // NID from the federationapi_queue_json table ); err != nil { return fmt.Errorf("InsertQueuePDU: %w", err) } diff --git a/federationsender/storage/sqlite3/blacklist_table.go b/federationapi/storage/sqlite3/blacklist_table.go similarity index 90% rename from federationsender/storage/sqlite3/blacklist_table.go rename to federationapi/storage/sqlite3/blacklist_table.go index 2694e630d..b7cc56315 100644 --- a/federationsender/storage/sqlite3/blacklist_table.go +++ b/federationapi/storage/sqlite3/blacklist_table.go @@ -23,7 +23,7 @@ import ( ) const blacklistSchema = ` -CREATE TABLE IF NOT EXISTS federationsender_blacklist ( +CREATE TABLE IF NOT EXISTS federationapi_blacklist ( -- The blacklisted server name server_name TEXT NOT NULL, UNIQUE (server_name) @@ -31,17 +31,17 @@ CREATE TABLE IF NOT EXISTS federationsender_blacklist ( ` const insertBlacklistSQL = "" + - "INSERT INTO federationsender_blacklist (server_name) VALUES ($1)" + + "INSERT INTO federationapi_blacklist (server_name) VALUES ($1)" + " ON CONFLICT DO NOTHING" const selectBlacklistSQL = "" + - "SELECT server_name FROM federationsender_blacklist WHERE server_name = $1" + "SELECT server_name FROM federationapi_blacklist WHERE server_name = $1" const deleteBlacklistSQL = "" + - "DELETE FROM federationsender_blacklist WHERE server_name = $1" + "DELETE FROM federationapi_blacklist WHERE server_name = $1" const deleteAllBlacklistSQL = "" + - "DELETE FROM federationsender_blacklist" + "DELETE FROM federationapi_blacklist" type blacklistStatements struct { db *sql.DB diff --git a/federationsender/storage/sqlite3/deltas/2021020411080000_rooms.go b/federationapi/storage/sqlite3/deltas/2021020411080000_rooms.go similarity index 96% rename from federationsender/storage/sqlite3/deltas/2021020411080000_rooms.go rename to federationapi/storage/sqlite3/deltas/2021020411080000_rooms.go index cc4bdadfd..249b9f65d 100644 --- a/federationsender/storage/sqlite3/deltas/2021020411080000_rooms.go +++ b/federationapi/storage/sqlite3/deltas/2021020411080000_rooms.go @@ -32,7 +32,7 @@ func LoadRemoveRoomsTable(m *sqlutil.Migrations) { func UpRemoveRoomsTable(tx *sql.Tx) error { _, err := tx.Exec(` - DROP TABLE IF EXISTS federationsender_rooms; + DROP TABLE IF EXISTS federationapi_rooms; `) if err != nil { return fmt.Errorf("failed to execute upgrade: %w", err) diff --git a/federationsender/storage/sqlite3/inbound_peeks_table.go b/federationapi/storage/sqlite3/inbound_peeks_table.go similarity index 87% rename from federationsender/storage/sqlite3/inbound_peeks_table.go rename to federationapi/storage/sqlite3/inbound_peeks_table.go index d5eacf9e4..78d9bae7f 100644 --- a/federationsender/storage/sqlite3/inbound_peeks_table.go +++ b/federationapi/storage/sqlite3/inbound_peeks_table.go @@ -19,14 +19,14 @@ import ( "database/sql" "time" - "github.com/matrix-org/dendrite/federationsender/types" + "github.com/matrix-org/dendrite/federationapi/types" "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/gomatrixserverlib" ) const inboundPeeksSchema = ` -CREATE TABLE IF NOT EXISTS federationsender_inbound_peeks ( +CREATE TABLE IF NOT EXISTS federationapi_inbound_peeks ( room_id TEXT NOT NULL, server_name TEXT NOT NULL, peek_id TEXT NOT NULL, @@ -38,22 +38,22 @@ CREATE TABLE IF NOT EXISTS federationsender_inbound_peeks ( ` const insertInboundPeekSQL = "" + - "INSERT INTO federationsender_inbound_peeks (room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval) VALUES ($1, $2, $3, $4, $5, $6)" + "INSERT INTO federationapi_inbound_peeks (room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval) VALUES ($1, $2, $3, $4, $5, $6)" const selectInboundPeekSQL = "" + - "SELECT room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval FROM federationsender_inbound_peeks WHERE room_id = $1 and server_name = $2 and peek_id = $3" + "SELECT room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval FROM federationapi_inbound_peeks WHERE room_id = $1 and server_name = $2 and peek_id = $3" const selectInboundPeeksSQL = "" + - "SELECT room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval FROM federationsender_inbound_peeks WHERE room_id = $1" + "SELECT room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval FROM federationapi_inbound_peeks WHERE room_id = $1" const renewInboundPeekSQL = "" + - "UPDATE federationsender_inbound_peeks SET renewed_ts=$1, renewal_interval=$2 WHERE room_id = $3 and server_name = $4 and peek_id = $5" + "UPDATE federationapi_inbound_peeks SET renewed_ts=$1, renewal_interval=$2 WHERE room_id = $3 and server_name = $4 and peek_id = $5" const deleteInboundPeekSQL = "" + - "DELETE FROM federationsender_inbound_peeks WHERE room_id = $1 and server_name = $2" + "DELETE FROM federationapi_inbound_peeks WHERE room_id = $1 and server_name = $2" const deleteInboundPeeksSQL = "" + - "DELETE FROM federationsender_inbound_peeks WHERE room_id = $1" + "DELETE FROM federationapi_inbound_peeks WHERE room_id = $1" type inboundPeeksStatements struct { db *sql.DB diff --git a/federationsender/storage/sqlite3/joined_hosts_table.go b/federationapi/storage/sqlite3/joined_hosts_table.go similarity index 90% rename from federationsender/storage/sqlite3/joined_hosts_table.go rename to federationapi/storage/sqlite3/joined_hosts_table.go index 4c0c1f510..32909788b 100644 --- a/federationsender/storage/sqlite3/joined_hosts_table.go +++ b/federationapi/storage/sqlite3/joined_hosts_table.go @@ -20,7 +20,7 @@ import ( "database/sql" "strings" - "github.com/matrix-org/dendrite/federationsender/types" + "github.com/matrix-org/dendrite/federationapi/types" "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/gomatrixserverlib" @@ -30,7 +30,7 @@ const joinedHostsSchema = ` -- The joined_hosts table stores a list of m.room.member event ids in the -- current state for each room where the membership is "join". -- There will be an entry for every user that is joined to the room. -CREATE TABLE IF NOT EXISTS federationsender_joined_hosts ( +CREATE TABLE IF NOT EXISTS federationapi_joined_hosts ( -- The string ID of the room. room_id TEXT NOT NULL, -- The event ID of the m.room.member join event. @@ -40,31 +40,31 @@ CREATE TABLE IF NOT EXISTS federationsender_joined_hosts ( ); CREATE UNIQUE INDEX IF NOT EXISTS federatonsender_joined_hosts_event_id_idx - ON federationsender_joined_hosts (event_id); + ON federationapi_joined_hosts (event_id); CREATE INDEX IF NOT EXISTS federatonsender_joined_hosts_room_id_idx - ON federationsender_joined_hosts (room_id) + ON federationapi_joined_hosts (room_id) ` const insertJoinedHostsSQL = "" + - "INSERT OR IGNORE INTO federationsender_joined_hosts (room_id, event_id, server_name)" + + "INSERT OR IGNORE INTO federationapi_joined_hosts (room_id, event_id, server_name)" + " VALUES ($1, $2, $3)" const deleteJoinedHostsSQL = "" + - "DELETE FROM federationsender_joined_hosts WHERE event_id = $1" + "DELETE FROM federationapi_joined_hosts WHERE event_id = $1" const deleteJoinedHostsForRoomSQL = "" + - "DELETE FROM federationsender_joined_hosts WHERE room_id = $1" + "DELETE FROM federationapi_joined_hosts WHERE room_id = $1" const selectJoinedHostsSQL = "" + - "SELECT event_id, server_name FROM federationsender_joined_hosts" + + "SELECT event_id, server_name FROM federationapi_joined_hosts" + " WHERE room_id = $1" const selectAllJoinedHostsSQL = "" + - "SELECT DISTINCT server_name FROM federationsender_joined_hosts" + "SELECT DISTINCT server_name FROM federationapi_joined_hosts" const selectJoinedHostsForRoomsSQL = "" + - "SELECT DISTINCT server_name FROM federationsender_joined_hosts WHERE room_id IN ($1)" + "SELECT DISTINCT server_name FROM federationapi_joined_hosts WHERE room_id IN ($1)" type joinedHostsStatements struct { db *sql.DB diff --git a/federationsender/storage/sqlite3/notary_server_keys_json_table.go b/federationapi/storage/sqlite3/notary_server_keys_json_table.go similarity index 87% rename from federationsender/storage/sqlite3/notary_server_keys_json_table.go rename to federationapi/storage/sqlite3/notary_server_keys_json_table.go index 6990036a2..3501d2154 100644 --- a/federationsender/storage/sqlite3/notary_server_keys_json_table.go +++ b/federationapi/storage/sqlite3/notary_server_keys_json_table.go @@ -18,12 +18,12 @@ import ( "context" "database/sql" - "github.com/matrix-org/dendrite/federationsender/storage/tables" + "github.com/matrix-org/dendrite/federationapi/storage/tables" "github.com/matrix-org/gomatrixserverlib" ) const notaryServerKeysJSONSchema = ` -CREATE TABLE IF NOT EXISTS federationsender_notary_server_keys_json ( +CREATE TABLE IF NOT EXISTS federationapi_notary_server_keys_json ( notary_id INTEGER PRIMARY KEY AUTOINCREMENT, response_json TEXT NOT NULL, server_name TEXT NOT NULL, @@ -32,7 +32,7 @@ CREATE TABLE IF NOT EXISTS federationsender_notary_server_keys_json ( ` const insertServerKeysJSONSQL = "" + - "INSERT INTO federationsender_notary_server_keys_json (response_json, server_name, valid_until) VALUES ($1, $2, $3)" + + "INSERT INTO federationapi_notary_server_keys_json (response_json, server_name, valid_until) VALUES ($1, $2, $3)" + " RETURNING notary_id" type notaryServerKeysStatements struct { diff --git a/federationsender/storage/sqlite3/notary_server_keys_metadata_table.go b/federationapi/storage/sqlite3/notary_server_keys_metadata_table.go similarity index 77% rename from federationsender/storage/sqlite3/notary_server_keys_metadata_table.go rename to federationapi/storage/sqlite3/notary_server_keys_metadata_table.go index a2959407f..801400935 100644 --- a/federationsender/storage/sqlite3/notary_server_keys_metadata_table.go +++ b/federationapi/storage/sqlite3/notary_server_keys_metadata_table.go @@ -21,14 +21,14 @@ import ( "fmt" "strings" - "github.com/matrix-org/dendrite/federationsender/storage/tables" + "github.com/matrix-org/dendrite/federationapi/storage/tables" "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/gomatrixserverlib" ) const notaryServerKeysMetadataSchema = ` -CREATE TABLE IF NOT EXISTS federationsender_notary_server_keys_metadata ( +CREATE TABLE IF NOT EXISTS federationapi_notary_server_keys_metadata ( notary_id BIGINT NOT NULL, server_name TEXT NOT NULL, key_id TEXT NOT NULL, @@ -37,41 +37,41 @@ CREATE TABLE IF NOT EXISTS federationsender_notary_server_keys_metadata ( ` const upsertServerKeysSQL = "" + - "INSERT INTO federationsender_notary_server_keys_metadata (notary_id, server_name, key_id) VALUES ($1, $2, $3)" + + "INSERT INTO federationapi_notary_server_keys_metadata (notary_id, server_name, key_id) VALUES ($1, $2, $3)" + " ON CONFLICT (server_name, key_id) DO UPDATE SET notary_id = $1" // for a given (server_name, key_id), find the existing notary ID and valid until. Used to check if we will replace it // JOINs with the json table const selectNotaryKeyMetadataSQL = ` - SELECT federationsender_notary_server_keys_metadata.notary_id, valid_until FROM federationsender_notary_server_keys_json - JOIN federationsender_notary_server_keys_metadata ON - federationsender_notary_server_keys_metadata.notary_id = federationsender_notary_server_keys_json.notary_id - WHERE federationsender_notary_server_keys_metadata.server_name = $1 AND federationsender_notary_server_keys_metadata.key_id = $2 + SELECT federationapi_notary_server_keys_metadata.notary_id, valid_until FROM federationapi_notary_server_keys_json + JOIN federationapi_notary_server_keys_metadata ON + federationapi_notary_server_keys_metadata.notary_id = federationapi_notary_server_keys_json.notary_id + WHERE federationapi_notary_server_keys_metadata.server_name = $1 AND federationapi_notary_server_keys_metadata.key_id = $2 ` // select the response which has the highest valid_until value // JOINs with the json table const selectNotaryKeyResponsesSQL = ` - SELECT response_json FROM federationsender_notary_server_keys_json + SELECT response_json FROM federationapi_notary_server_keys_json WHERE server_name = $1 AND valid_until = ( - SELECT MAX(valid_until) FROM federationsender_notary_server_keys_json WHERE server_name = $1 + SELECT MAX(valid_until) FROM federationapi_notary_server_keys_json WHERE server_name = $1 ) ` // select the responses which have the given key IDs // JOINs with the json table const selectNotaryKeyResponsesWithKeyIDsSQL = ` - SELECT response_json FROM federationsender_notary_server_keys_json - JOIN federationsender_notary_server_keys_metadata ON - federationsender_notary_server_keys_metadata.notary_id = federationsender_notary_server_keys_json.notary_id - WHERE federationsender_notary_server_keys_json.server_name = $1 AND federationsender_notary_server_keys_metadata.key_id IN ($2) - GROUP BY federationsender_notary_server_keys_json.notary_id + SELECT response_json FROM federationapi_notary_server_keys_json + JOIN federationapi_notary_server_keys_metadata ON + federationapi_notary_server_keys_metadata.notary_id = federationapi_notary_server_keys_json.notary_id + WHERE federationapi_notary_server_keys_json.server_name = $1 AND federationapi_notary_server_keys_metadata.key_id IN ($2) + GROUP BY federationapi_notary_server_keys_json.notary_id ` // JOINs with the metadata table const deleteUnusedServerKeysJSONSQL = ` - DELETE FROM federationsender_notary_server_keys_json WHERE federationsender_notary_server_keys_json.notary_id NOT IN ( - SELECT DISTINCT notary_id FROM federationsender_notary_server_keys_metadata + DELETE FROM federationapi_notary_server_keys_json WHERE federationapi_notary_server_keys_json.notary_id NOT IN ( + SELECT DISTINCT notary_id FROM federationapi_notary_server_keys_metadata ) ` diff --git a/federationsender/storage/sqlite3/outbound_peeks_table.go b/federationapi/storage/sqlite3/outbound_peeks_table.go similarity index 87% rename from federationsender/storage/sqlite3/outbound_peeks_table.go rename to federationapi/storage/sqlite3/outbound_peeks_table.go index 02aefce79..e3a82ada1 100644 --- a/federationsender/storage/sqlite3/outbound_peeks_table.go +++ b/federationapi/storage/sqlite3/outbound_peeks_table.go @@ -19,14 +19,14 @@ import ( "database/sql" "time" - "github.com/matrix-org/dendrite/federationsender/types" + "github.com/matrix-org/dendrite/federationapi/types" "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/gomatrixserverlib" ) const outboundPeeksSchema = ` -CREATE TABLE IF NOT EXISTS federationsender_outbound_peeks ( +CREATE TABLE IF NOT EXISTS federationapi_outbound_peeks ( room_id TEXT NOT NULL, server_name TEXT NOT NULL, peek_id TEXT NOT NULL, @@ -38,22 +38,22 @@ CREATE TABLE IF NOT EXISTS federationsender_outbound_peeks ( ` const insertOutboundPeekSQL = "" + - "INSERT INTO federationsender_outbound_peeks (room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval) VALUES ($1, $2, $3, $4, $5, $6)" + "INSERT INTO federationapi_outbound_peeks (room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval) VALUES ($1, $2, $3, $4, $5, $6)" const selectOutboundPeekSQL = "" + - "SELECT room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval FROM federationsender_outbound_peeks WHERE room_id = $1 and server_name = $2 and peek_id = $3" + "SELECT room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval FROM federationapi_outbound_peeks WHERE room_id = $1 and server_name = $2 and peek_id = $3" const selectOutboundPeeksSQL = "" + - "SELECT room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval FROM federationsender_outbound_peeks WHERE room_id = $1" + "SELECT room_id, server_name, peek_id, creation_ts, renewed_ts, renewal_interval FROM federationapi_outbound_peeks WHERE room_id = $1" const renewOutboundPeekSQL = "" + - "UPDATE federationsender_outbound_peeks SET renewed_ts=$1, renewal_interval=$2 WHERE room_id = $3 and server_name = $4 and peek_id = $5" + "UPDATE federationapi_outbound_peeks SET renewed_ts=$1, renewal_interval=$2 WHERE room_id = $3 and server_name = $4 and peek_id = $5" const deleteOutboundPeekSQL = "" + - "DELETE FROM federationsender_outbound_peeks WHERE room_id = $1 and server_name = $2" + "DELETE FROM federationapi_outbound_peeks WHERE room_id = $1 and server_name = $2" const deleteOutboundPeeksSQL = "" + - "DELETE FROM federationsender_outbound_peeks WHERE room_id = $1" + "DELETE FROM federationapi_outbound_peeks WHERE room_id = $1" type outboundPeeksStatements struct { db *sql.DB diff --git a/federationsender/storage/sqlite3/queue_edus_table.go b/federationapi/storage/sqlite3/queue_edus_table.go similarity index 89% rename from federationsender/storage/sqlite3/queue_edus_table.go rename to federationapi/storage/sqlite3/queue_edus_table.go index a6d609508..1be8c3d8f 100644 --- a/federationsender/storage/sqlite3/queue_edus_table.go +++ b/federationapi/storage/sqlite3/queue_edus_table.go @@ -26,41 +26,41 @@ import ( ) const queueEDUsSchema = ` -CREATE TABLE IF NOT EXISTS federationsender_queue_edus ( +CREATE TABLE IF NOT EXISTS federationapi_queue_edus ( -- The type of the event (informational). edu_type TEXT NOT NULL, -- The domain part of the user ID the EDU event is for. server_name TEXT NOT NULL, - -- The JSON NID from the federationsender_queue_edus_json table. + -- The JSON NID from the federationapi_queue_edus_json table. json_nid BIGINT NOT NULL ); -CREATE UNIQUE INDEX IF NOT EXISTS federationsender_queue_edus_json_nid_idx - ON federationsender_queue_edus (json_nid, server_name); +CREATE UNIQUE INDEX IF NOT EXISTS federationapi_queue_edus_json_nid_idx + ON federationapi_queue_edus (json_nid, server_name); ` const insertQueueEDUSQL = "" + - "INSERT INTO federationsender_queue_edus (edu_type, server_name, json_nid)" + + "INSERT INTO federationapi_queue_edus (edu_type, server_name, json_nid)" + " VALUES ($1, $2, $3)" const deleteQueueEDUsSQL = "" + - "DELETE FROM federationsender_queue_edus WHERE server_name = $1 AND json_nid IN ($2)" + "DELETE FROM federationapi_queue_edus WHERE server_name = $1 AND json_nid IN ($2)" const selectQueueEDUSQL = "" + - "SELECT json_nid FROM federationsender_queue_edus" + + "SELECT json_nid FROM federationapi_queue_edus" + " WHERE server_name = $1" + " LIMIT $2" const selectQueueEDUReferenceJSONCountSQL = "" + - "SELECT COUNT(*) FROM federationsender_queue_edus" + + "SELECT COUNT(*) FROM federationapi_queue_edus" + " WHERE json_nid = $1" const selectQueueEDUCountSQL = "" + - "SELECT COUNT(*) FROM federationsender_queue_edus" + + "SELECT COUNT(*) FROM federationapi_queue_edus" + " WHERE server_name = $1" const selectQueueServerNamesSQL = "" + - "SELECT DISTINCT server_name FROM federationsender_queue_edus" + "SELECT DISTINCT server_name FROM federationapi_queue_edus" type queueEDUsStatements struct { db *sql.DB diff --git a/federationsender/storage/sqlite3/queue_json_table.go b/federationapi/storage/sqlite3/queue_json_table.go similarity index 91% rename from federationsender/storage/sqlite3/queue_json_table.go rename to federationapi/storage/sqlite3/queue_json_table.go index 3e3f60f63..f4849330a 100644 --- a/federationsender/storage/sqlite3/queue_json_table.go +++ b/federationapi/storage/sqlite3/queue_json_table.go @@ -28,8 +28,8 @@ import ( const queueJSONSchema = ` -- The queue_retry_json table contains event contents that -- we failed to send. -CREATE TABLE IF NOT EXISTS federationsender_queue_json ( - -- The JSON NID. This allows the federationsender_queue_retry table to +CREATE TABLE IF NOT EXISTS federationapi_queue_json ( + -- The JSON NID. This allows the federationapi_queue_retry table to -- cross-reference to find the JSON blob. json_nid INTEGER PRIMARY KEY AUTOINCREMENT, -- The JSON body. Text so that we preserve UTF-8. @@ -38,14 +38,14 @@ CREATE TABLE IF NOT EXISTS federationsender_queue_json ( ` const insertJSONSQL = "" + - "INSERT INTO federationsender_queue_json (json_body)" + + "INSERT INTO federationapi_queue_json (json_body)" + " VALUES ($1)" const deleteJSONSQL = "" + - "DELETE FROM federationsender_queue_json WHERE json_nid IN ($1)" + "DELETE FROM federationapi_queue_json WHERE json_nid IN ($1)" const selectJSONSQL = "" + - "SELECT json_nid, json_body FROM federationsender_queue_json" + + "SELECT json_nid, json_body FROM federationapi_queue_json" + " WHERE json_nid IN ($1)" type queueJSONStatements struct { diff --git a/federationsender/storage/sqlite3/queue_pdus_table.go b/federationapi/storage/sqlite3/queue_pdus_table.go similarity index 89% rename from federationsender/storage/sqlite3/queue_pdus_table.go rename to federationapi/storage/sqlite3/queue_pdus_table.go index e0fdbda5f..489042c9d 100644 --- a/federationsender/storage/sqlite3/queue_pdus_table.go +++ b/federationapi/storage/sqlite3/queue_pdus_table.go @@ -27,47 +27,47 @@ import ( ) const queuePDUsSchema = ` -CREATE TABLE IF NOT EXISTS federationsender_queue_pdus ( +CREATE TABLE IF NOT EXISTS federationapi_queue_pdus ( -- The transaction ID that was generated before persisting the event. transaction_id TEXT NOT NULL, -- The domain part of the user ID the m.room.member event is for. server_name TEXT NOT NULL, - -- The JSON NID from the federationsender_queue_pdus_json table. + -- The JSON NID from the federationapi_queue_pdus_json table. json_nid BIGINT NOT NULL ); -CREATE UNIQUE INDEX IF NOT EXISTS federationsender_queue_pdus_pdus_json_nid_idx - ON federationsender_queue_pdus (json_nid, server_name); +CREATE UNIQUE INDEX IF NOT EXISTS federationapi_queue_pdus_pdus_json_nid_idx + ON federationapi_queue_pdus (json_nid, server_name); ` const insertQueuePDUSQL = "" + - "INSERT INTO federationsender_queue_pdus (transaction_id, server_name, json_nid)" + + "INSERT INTO federationapi_queue_pdus (transaction_id, server_name, json_nid)" + " VALUES ($1, $2, $3)" const deleteQueuePDUsSQL = "" + - "DELETE FROM federationsender_queue_pdus WHERE server_name = $1 AND json_nid IN ($2)" + "DELETE FROM federationapi_queue_pdus WHERE server_name = $1 AND json_nid IN ($2)" const selectQueueNextTransactionIDSQL = "" + - "SELECT transaction_id FROM federationsender_queue_pdus" + + "SELECT transaction_id FROM federationapi_queue_pdus" + " WHERE server_name = $1" + " ORDER BY transaction_id ASC" + " LIMIT 1" const selectQueuePDUsSQL = "" + - "SELECT json_nid FROM federationsender_queue_pdus" + + "SELECT json_nid FROM federationapi_queue_pdus" + " WHERE server_name = $1" + " LIMIT $2" const selectQueuePDUsReferenceJSONCountSQL = "" + - "SELECT COUNT(*) FROM federationsender_queue_pdus" + + "SELECT COUNT(*) FROM federationapi_queue_pdus" + " WHERE json_nid = $1" const selectQueuePDUsCountSQL = "" + - "SELECT COUNT(*) FROM federationsender_queue_pdus" + + "SELECT COUNT(*) FROM federationapi_queue_pdus" + " WHERE server_name = $1" const selectQueuePDUsServerNamesSQL = "" + - "SELECT DISTINCT server_name FROM federationsender_queue_pdus" + "SELECT DISTINCT server_name FROM federationapi_queue_pdus" type queuePDUsStatements struct { db *sql.DB diff --git a/federationsender/storage/sqlite3/storage.go b/federationapi/storage/sqlite3/storage.go similarity index 94% rename from federationsender/storage/sqlite3/storage.go rename to federationapi/storage/sqlite3/storage.go index 18fa418f6..cdf071fc9 100644 --- a/federationsender/storage/sqlite3/storage.go +++ b/federationapi/storage/sqlite3/storage.go @@ -18,8 +18,8 @@ package sqlite3 import ( "database/sql" - "github.com/matrix-org/dendrite/federationsender/storage/shared" - "github.com/matrix-org/dendrite/federationsender/storage/sqlite3/deltas" + "github.com/matrix-org/dendrite/federationapi/storage/shared" + "github.com/matrix-org/dendrite/federationapi/storage/sqlite3/deltas" "github.com/matrix-org/dendrite/internal/caching" "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/dendrite/setup/config" @@ -96,7 +96,7 @@ func NewDatabase(dbProperties *config.DatabaseOptions, cache caching.FederationS NotaryServerKeysJSON: notaryKeys, NotaryServerKeysMetadata: notaryKeysMetadata, } - if err = d.PartitionOffsetStatements.Prepare(d.db, d.writer, "federationsender"); err != nil { + if err = d.PartitionOffsetStatements.Prepare(d.db, d.writer, "federationapi"); err != nil { return nil, err } return &d, nil diff --git a/federationsender/storage/storage.go b/federationapi/storage/storage.go similarity index 89% rename from federationsender/storage/storage.go rename to federationapi/storage/storage.go index 46e01f256..73ae05adf 100644 --- a/federationsender/storage/storage.go +++ b/federationapi/storage/storage.go @@ -20,8 +20,8 @@ package storage import ( "fmt" - "github.com/matrix-org/dendrite/federationsender/storage/postgres" - "github.com/matrix-org/dendrite/federationsender/storage/sqlite3" + "github.com/matrix-org/dendrite/federationapi/storage/postgres" + "github.com/matrix-org/dendrite/federationapi/storage/sqlite3" "github.com/matrix-org/dendrite/internal/caching" "github.com/matrix-org/dendrite/setup/config" ) diff --git a/federationsender/storage/storage_wasm.go b/federationapi/storage/storage_wasm.go similarity index 94% rename from federationsender/storage/storage_wasm.go rename to federationapi/storage/storage_wasm.go index bc52bd9bb..7d3a0b742 100644 --- a/federationsender/storage/storage_wasm.go +++ b/federationapi/storage/storage_wasm.go @@ -17,7 +17,7 @@ package storage import ( "fmt" - "github.com/matrix-org/dendrite/federationsender/storage/sqlite3" + "github.com/matrix-org/dendrite/federationapi/storage/sqlite3" "github.com/matrix-org/dendrite/internal/caching" "github.com/matrix-org/dendrite/setup/config" ) diff --git a/federationsender/storage/tables/interface.go b/federationapi/storage/tables/interface.go similarity index 99% rename from federationsender/storage/tables/interface.go rename to federationapi/storage/tables/interface.go index 663a4cb20..be993daed 100644 --- a/federationsender/storage/tables/interface.go +++ b/federationapi/storage/tables/interface.go @@ -18,7 +18,7 @@ import ( "context" "database/sql" - "github.com/matrix-org/dendrite/federationsender/types" + "github.com/matrix-org/dendrite/federationapi/types" "github.com/matrix-org/gomatrixserverlib" ) diff --git a/federationsender/types/types.go b/federationapi/types/types.go similarity index 100% rename from federationsender/types/types.go rename to federationapi/types/types.go diff --git a/federationsender/federationsender.go b/federationsender/federationsender.go deleted file mode 100644 index 0732c5d38..000000000 --- a/federationsender/federationsender.go +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright 2017 Vector Creations Ltd -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package federationsender - -import ( - "github.com/gorilla/mux" - "github.com/matrix-org/dendrite/federationsender/api" - "github.com/matrix-org/dendrite/federationsender/consumers" - "github.com/matrix-org/dendrite/federationsender/internal" - "github.com/matrix-org/dendrite/federationsender/inthttp" - "github.com/matrix-org/dendrite/federationsender/queue" - "github.com/matrix-org/dendrite/federationsender/statistics" - "github.com/matrix-org/dendrite/federationsender/storage" - roomserverAPI "github.com/matrix-org/dendrite/roomserver/api" - "github.com/matrix-org/dendrite/setup" - "github.com/matrix-org/dendrite/setup/kafka" - "github.com/matrix-org/gomatrixserverlib" - "github.com/sirupsen/logrus" -) - -// AddInternalRoutes registers HTTP handlers for the internal API. Invokes functions -// on the given input API. -func AddInternalRoutes(router *mux.Router, intAPI api.FederationSenderInternalAPI) { - inthttp.AddRoutes(intAPI, router) -} - -// NewInternalAPI returns a concerete implementation of the internal API. Callers -// can call functions directly on the returned API or via an HTTP interface using AddInternalRoutes. -func NewInternalAPI( - base *setup.BaseDendrite, - federation *gomatrixserverlib.FederationClient, - rsAPI roomserverAPI.RoomserverInternalAPI, - keyRing *gomatrixserverlib.KeyRing, - resetBlacklist bool, -) api.FederationSenderInternalAPI { - cfg := &base.Cfg.FederationSender - - federationSenderDB, err := storage.NewDatabase(&cfg.Database, base.Caches) - if err != nil { - logrus.WithError(err).Panic("failed to connect to federation sender db") - } - - if resetBlacklist { - _ = federationSenderDB.RemoveAllServersFromBlacklist() - } - - stats := &statistics.Statistics{ - DB: federationSenderDB, - FailuresUntilBlacklist: cfg.FederationMaxRetries, - } - - consumer, _ := kafka.SetupConsumerProducer(&cfg.Matrix.Kafka) - - queues := queue.NewOutgoingQueues( - federationSenderDB, base.ProcessContext, - cfg.Matrix.DisableFederation, - cfg.Matrix.ServerName, federation, rsAPI, stats, - &queue.SigningInfo{ - KeyID: cfg.Matrix.KeyID, - PrivateKey: cfg.Matrix.PrivateKey, - ServerName: cfg.Matrix.ServerName, - }, - ) - - rsConsumer := consumers.NewOutputRoomEventConsumer( - base.ProcessContext, cfg, consumer, queues, - federationSenderDB, rsAPI, - ) - if err = rsConsumer.Start(); err != nil { - logrus.WithError(err).Panic("failed to start room server consumer") - } - - tsConsumer := consumers.NewOutputEDUConsumer( - base.ProcessContext, cfg, consumer, queues, federationSenderDB, - ) - if err := tsConsumer.Start(); err != nil { - logrus.WithError(err).Panic("failed to start typing server consumer") - } - keyConsumer := consumers.NewKeyChangeConsumer( - base.ProcessContext, &base.Cfg.KeyServer, consumer, queues, federationSenderDB, rsAPI, - ) - if err := keyConsumer.Start(); err != nil { - logrus.WithError(err).Panic("failed to start key server consumer") - } - - return internal.NewFederationSenderInternalAPI(federationSenderDB, cfg, rsAPI, federation, keyRing, stats, queues) -} diff --git a/internal/httputil/httpapi.go b/internal/httputil/httpapi.go index 704bdecb6..1fbd77da9 100644 --- a/internal/httputil/httpapi.go +++ b/internal/httputil/httpapi.go @@ -29,7 +29,7 @@ import ( "github.com/getsentry/sentry-go" "github.com/gorilla/mux" "github.com/matrix-org/dendrite/clientapi/auth" - federationsenderAPI "github.com/matrix-org/dendrite/federationsender/api" + federationapiAPI "github.com/matrix-org/dendrite/federationapi/api" userapi "github.com/matrix-org/dendrite/userapi/api" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" @@ -251,7 +251,7 @@ func MakeFedAPI( } type FederationWakeups struct { - FsAPI federationsenderAPI.FederationSenderInternalAPI + FsAPI federationapiAPI.FederationInternalAPI origins sync.Map } @@ -263,10 +263,10 @@ func (f *FederationWakeups) Wakeup(ctx context.Context, origin gomatrixserverlib return } } - aliveReq := federationsenderAPI.PerformServersAliveRequest{ + aliveReq := federationapiAPI.PerformServersAliveRequest{ Servers: []gomatrixserverlib.ServerName{origin}, } - aliveRes := federationsenderAPI.PerformServersAliveResponse{} + aliveRes := federationapiAPI.PerformServersAliveResponse{} if err := f.FsAPI.PerformServersAlive(ctx, &aliveReq, &aliveRes); err != nil { util.GetLogger(ctx).WithError(err).WithFields(logrus.Fields{ "origin": origin, diff --git a/keyserver/internal/device_list_update.go b/keyserver/internal/device_list_update.go index 1f7c6e2a0..1b6e2d428 100644 --- a/keyserver/internal/device_list_update.go +++ b/keyserver/internal/device_list_update.go @@ -22,7 +22,7 @@ import ( "sync" "time" - fedsenderapi "github.com/matrix-org/dendrite/federationsender/api" + fedsenderapi "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/keyserver/api" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" diff --git a/keyserver/internal/internal.go b/keyserver/internal/internal.go index a546e94b5..3e91962ed 100644 --- a/keyserver/internal/internal.go +++ b/keyserver/internal/internal.go @@ -22,7 +22,7 @@ import ( "sync" "time" - fedsenderapi "github.com/matrix-org/dendrite/federationsender/api" + fedsenderapi "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/keyserver/api" "github.com/matrix-org/dendrite/keyserver/producers" "github.com/matrix-org/dendrite/keyserver/storage" diff --git a/keyserver/keyserver.go b/keyserver/keyserver.go index 603067552..75b80614a 100644 --- a/keyserver/keyserver.go +++ b/keyserver/keyserver.go @@ -16,7 +16,7 @@ package keyserver import ( "github.com/gorilla/mux" - fedsenderapi "github.com/matrix-org/dendrite/federationsender/api" + fedsenderapi "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/keyserver/api" "github.com/matrix-org/dendrite/keyserver/consumers" "github.com/matrix-org/dendrite/keyserver/internal" diff --git a/roomserver/api/api.go b/roomserver/api/api.go index 72e406ee8..5181e0b21 100644 --- a/roomserver/api/api.go +++ b/roomserver/api/api.go @@ -4,7 +4,7 @@ import ( "context" asAPI "github.com/matrix-org/dendrite/appservice/api" - fsAPI "github.com/matrix-org/dendrite/federationsender/api" + fsAPI "github.com/matrix-org/dendrite/federationapi/api" ) // RoomserverInputAPI is used to write events to the room server. diff --git a/roomserver/api/api_trace.go b/roomserver/api/api_trace.go index 1a2b9a490..3fc713041 100644 --- a/roomserver/api/api_trace.go +++ b/roomserver/api/api_trace.go @@ -6,7 +6,7 @@ import ( "fmt" asAPI "github.com/matrix-org/dendrite/appservice/api" - fsAPI "github.com/matrix-org/dendrite/federationsender/api" + fsAPI "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/util" ) diff --git a/roomserver/internal/api.go b/roomserver/internal/api.go index f39b26eaf..fb4e61516 100644 --- a/roomserver/internal/api.go +++ b/roomserver/internal/api.go @@ -6,7 +6,7 @@ import ( "github.com/Shopify/sarama" "github.com/getsentry/sentry-go" asAPI "github.com/matrix-org/dendrite/appservice/api" - fsAPI "github.com/matrix-org/dendrite/federationsender/api" + fsAPI "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/internal/caching" "github.com/matrix-org/dendrite/roomserver/acls" "github.com/matrix-org/dendrite/roomserver/api" @@ -37,7 +37,7 @@ type RoomserverInternalAPI struct { Cache caching.RoomServerCaches ServerName gomatrixserverlib.ServerName KeyRing gomatrixserverlib.JSONVerifier - fsAPI fsAPI.FederationSenderInternalAPI + fsAPI fsAPI.FederationInternalAPI asAPI asAPI.AppServiceQueryAPI OutputRoomEventTopic string // Kafka topic for new output room events PerspectiveServerNames []gomatrixserverlib.ServerName @@ -77,7 +77,7 @@ func NewRoomserverAPI( // SetFederationSenderInputAPI passes in a federation sender input API reference // so that we can avoid the chicken-and-egg problem of both the roomserver input API // and the federation sender input API being interdependent. -func (r *RoomserverInternalAPI) SetFederationSenderAPI(fsAPI fsAPI.FederationSenderInternalAPI) { +func (r *RoomserverInternalAPI) SetFederationSenderAPI(fsAPI fsAPI.FederationInternalAPI) { r.fsAPI = fsAPI r.Inviter = &perform.Inviter{ diff --git a/roomserver/internal/perform/perform_backfill.go b/roomserver/internal/perform/perform_backfill.go index d9d720f26..b9483ac9e 100644 --- a/roomserver/internal/perform/perform_backfill.go +++ b/roomserver/internal/perform/perform_backfill.go @@ -18,7 +18,7 @@ import ( "context" "fmt" - federationSenderAPI "github.com/matrix-org/dendrite/federationsender/api" + federationSenderAPI "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/internal/eventutil" "github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/roomserver/auth" @@ -38,7 +38,7 @@ const maxBackfillServers = 5 type Backfiller struct { ServerName gomatrixserverlib.ServerName DB storage.Database - FSAPI federationSenderAPI.FederationSenderInternalAPI + FSAPI federationSenderAPI.FederationInternalAPI KeyRing gomatrixserverlib.JSONVerifier // The servers which should be preferred above other servers when backfilling @@ -224,7 +224,7 @@ func (r *Backfiller) fetchAndStoreMissingEvents(ctx context.Context, roomVer gom // backfillRequester implements gomatrixserverlib.BackfillRequester type backfillRequester struct { db storage.Database - fsAPI federationSenderAPI.FederationSenderInternalAPI + fsAPI federationSenderAPI.FederationInternalAPI thisServer gomatrixserverlib.ServerName preferServer map[gomatrixserverlib.ServerName]bool bwExtrems map[string][]string @@ -236,7 +236,7 @@ type backfillRequester struct { } func newBackfillRequester( - db storage.Database, fsAPI federationSenderAPI.FederationSenderInternalAPI, thisServer gomatrixserverlib.ServerName, + db storage.Database, fsAPI federationSenderAPI.FederationInternalAPI, thisServer gomatrixserverlib.ServerName, bwExtrems map[string][]string, preferServers []gomatrixserverlib.ServerName, ) *backfillRequester { preferServer := make(map[gomatrixserverlib.ServerName]bool) diff --git a/roomserver/internal/perform/perform_inbound_peek.go b/roomserver/internal/perform/perform_inbound_peek.go index eb3c9727d..98f5f6f96 100644 --- a/roomserver/internal/perform/perform_inbound_peek.go +++ b/roomserver/internal/perform/perform_inbound_peek.go @@ -34,7 +34,7 @@ type InboundPeeker struct { } // PerformInboundPeek handles peeking into matrix rooms, including over -// federation by talking to the federationsender. called when a remote server +// federation by talking to the federationapi. called when a remote server // initiates a /peek over federation. // // It should atomically figure out the current state of the room (for the diff --git a/roomserver/internal/perform/perform_invite.go b/roomserver/internal/perform/perform_invite.go index 024c09306..bbe404aac 100644 --- a/roomserver/internal/perform/perform_invite.go +++ b/roomserver/internal/perform/perform_invite.go @@ -18,7 +18,7 @@ import ( "context" "fmt" - federationSenderAPI "github.com/matrix-org/dendrite/federationsender/api" + federationSenderAPI "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/roomserver/internal/helpers" "github.com/matrix-org/dendrite/roomserver/internal/input" @@ -33,7 +33,7 @@ import ( type Inviter struct { DB storage.Database Cfg *config.RoomServer - FSAPI federationSenderAPI.FederationSenderInternalAPI + FSAPI federationSenderAPI.FederationInternalAPI Inputer *input.Inputer } diff --git a/roomserver/internal/perform/perform_join.go b/roomserver/internal/perform/perform_join.go index 772c9d7dc..75397eb60 100644 --- a/roomserver/internal/perform/perform_join.go +++ b/roomserver/internal/perform/perform_join.go @@ -22,7 +22,7 @@ import ( "time" "github.com/getsentry/sentry-go" - fsAPI "github.com/matrix-org/dendrite/federationsender/api" + fsAPI "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/internal/eventutil" rsAPI "github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/roomserver/internal/helpers" @@ -37,7 +37,7 @@ import ( type Joiner struct { ServerName gomatrixserverlib.ServerName Cfg *config.RoomServer - FSAPI fsAPI.FederationSenderInternalAPI + FSAPI fsAPI.FederationInternalAPI RSAPI rsAPI.RoomserverInternalAPI DB storage.Database @@ -45,7 +45,7 @@ type Joiner struct { Queryer *query.Queryer } -// PerformJoin handles joining matrix rooms, including over federation by talking to the federationsender. +// PerformJoin handles joining matrix rooms, including over federation by talking to the federationapi. func (r *Joiner) PerformJoin( ctx context.Context, req *rsAPI.PerformJoinRequest, diff --git a/roomserver/internal/perform/perform_leave.go b/roomserver/internal/perform/perform_leave.go index a51de5469..4daeb10af 100644 --- a/roomserver/internal/perform/perform_leave.go +++ b/roomserver/internal/perform/perform_leave.go @@ -19,7 +19,7 @@ import ( "fmt" "strings" - fsAPI "github.com/matrix-org/dendrite/federationsender/api" + fsAPI "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/roomserver/internal/helpers" "github.com/matrix-org/dendrite/roomserver/internal/input" @@ -32,7 +32,7 @@ import ( type Leaver struct { Cfg *config.RoomServer DB storage.Database - FSAPI fsAPI.FederationSenderInternalAPI + FSAPI fsAPI.FederationInternalAPI Inputer *input.Inputer } diff --git a/roomserver/internal/perform/perform_peek.go b/roomserver/internal/perform/perform_peek.go index bd7996677..6a2c329b9 100644 --- a/roomserver/internal/perform/perform_peek.go +++ b/roomserver/internal/perform/perform_peek.go @@ -20,7 +20,7 @@ import ( "fmt" "strings" - fsAPI "github.com/matrix-org/dendrite/federationsender/api" + fsAPI "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/roomserver/internal/input" "github.com/matrix-org/dendrite/roomserver/storage" @@ -33,13 +33,13 @@ import ( type Peeker struct { ServerName gomatrixserverlib.ServerName Cfg *config.RoomServer - FSAPI fsAPI.FederationSenderInternalAPI + FSAPI fsAPI.FederationInternalAPI DB storage.Database Inputer *input.Inputer } -// PerformPeek handles peeking into matrix rooms, including over federation by talking to the federationsender. +// PerformPeek handles peeking into matrix rooms, including over federation by talking to the federationapi. func (r *Peeker) PerformPeek( ctx context.Context, req *api.PerformPeekRequest, diff --git a/roomserver/internal/perform/perform_unpeek.go b/roomserver/internal/perform/perform_unpeek.go index f71e0007c..16b4eeaed 100644 --- a/roomserver/internal/perform/perform_unpeek.go +++ b/roomserver/internal/perform/perform_unpeek.go @@ -19,7 +19,7 @@ import ( "fmt" "strings" - fsAPI "github.com/matrix-org/dendrite/federationsender/api" + fsAPI "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/roomserver/internal/input" "github.com/matrix-org/dendrite/roomserver/storage" @@ -30,13 +30,13 @@ import ( type Unpeeker struct { ServerName gomatrixserverlib.ServerName Cfg *config.RoomServer - FSAPI fsAPI.FederationSenderInternalAPI + FSAPI fsAPI.FederationInternalAPI DB storage.Database Inputer *input.Inputer } -// PerformPeek handles peeking into matrix rooms, including over federation by talking to the federationsender. +// PerformPeek handles peeking into matrix rooms, including over federation by talking to the federationapi. func (r *Unpeeker) PerformUnpeek( ctx context.Context, req *api.PerformUnpeekRequest, diff --git a/roomserver/inthttp/client.go b/roomserver/inthttp/client.go index 6774d102d..d9cb03989 100644 --- a/roomserver/inthttp/client.go +++ b/roomserver/inthttp/client.go @@ -7,7 +7,7 @@ import ( "net/http" asAPI "github.com/matrix-org/dendrite/appservice/api" - fsInputAPI "github.com/matrix-org/dendrite/federationsender/api" + fsInputAPI "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/internal/caching" "github.com/matrix-org/dendrite/internal/httputil" "github.com/matrix-org/dendrite/roomserver/api" @@ -83,7 +83,7 @@ func NewRoomserverClient( } // SetFederationSenderInputAPI no-ops in HTTP client mode as there is no chicken/egg scenario -func (h *httpRoomserverInternalAPI) SetFederationSenderAPI(fsAPI fsInputAPI.FederationSenderInternalAPI) { +func (h *httpRoomserverInternalAPI) SetFederationSenderAPI(fsAPI fsInputAPI.FederationInternalAPI) { } // SetAppserviceAPI no-ops in HTTP client mode as there is no chicken/egg scenario diff --git a/setup/base.go b/setup/base.go index d4acdbfb9..0bf3d49eb 100644 --- a/setup/base.go +++ b/setup/base.go @@ -47,8 +47,8 @@ import ( asinthttp "github.com/matrix-org/dendrite/appservice/inthttp" eduServerAPI "github.com/matrix-org/dendrite/eduserver/api" eduinthttp "github.com/matrix-org/dendrite/eduserver/inthttp" - federationSenderAPI "github.com/matrix-org/dendrite/federationsender/api" - fsinthttp "github.com/matrix-org/dendrite/federationsender/inthttp" + federationSenderAPI "github.com/matrix-org/dendrite/federationapi/api" + fsinthttp "github.com/matrix-org/dendrite/federationapi/inthttp" keyserverAPI "github.com/matrix-org/dendrite/keyserver/api" keyinthttp "github.com/matrix-org/dendrite/keyserver/inthttp" roomserverAPI "github.com/matrix-org/dendrite/roomserver/api" @@ -248,9 +248,9 @@ func (b *BaseDendrite) EDUServerClient() eduServerAPI.EDUServerInputAPI { return e } -// FederationSenderHTTPClient returns FederationSenderInternalAPI for hitting +// FederationSenderHTTPClient returns FederationInternalAPI for hitting // the federation sender over HTTP -func (b *BaseDendrite) FederationSenderHTTPClient() federationSenderAPI.FederationSenderInternalAPI { +func (b *BaseDendrite) FederationSenderHTTPClient() federationSenderAPI.FederationInternalAPI { f, err := fsinthttp.NewFederationSenderClient(b.Cfg.FederationSenderURL(), b.apiHttpClient) if err != nil { logrus.WithError(err).Panic("FederationSenderHTTPClient failed", b.apiHttpClient) diff --git a/setup/config/config_federationsender.go b/setup/config/config_federationsender.go index 67ee63565..d9bce8142 100644 --- a/setup/config/config_federationsender.go +++ b/setup/config/config_federationsender.go @@ -26,7 +26,7 @@ func (c *FederationSender) Defaults() { c.InternalAPI.Listen = "http://localhost:7775" c.InternalAPI.Connect = "http://localhost:7775" c.Database.Defaults(10) - c.Database.ConnectionString = "file:federationsender.db" + c.Database.ConnectionString = "file:federationapi.db" c.FederationMaxRetries = 16 c.DisableTLSValidation = false diff --git a/setup/config/config_test.go b/setup/config/config_test.go index 5c51a363f..ffe9edab2 100644 --- a/setup/config/config_test.go +++ b/setup/config/config_test.go @@ -112,7 +112,7 @@ federation_sender: listen: http://localhost:7775 connect: http://localhost:7775 database: - connection_string: file:federationsender.db + connection_string: file:federationapi.db max_open_conns: 100 max_idle_conns: 2 conn_max_lifetime: -1 diff --git a/setup/monolith.go b/setup/monolith.go index a77cdd56a..9d2baec72 100644 --- a/setup/monolith.go +++ b/setup/monolith.go @@ -21,7 +21,7 @@ import ( "github.com/matrix-org/dendrite/clientapi/api" eduServerAPI "github.com/matrix-org/dendrite/eduserver/api" "github.com/matrix-org/dendrite/federationapi" - federationSenderAPI "github.com/matrix-org/dendrite/federationsender/api" + federationSenderAPI "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/internal/transactions" keyAPI "github.com/matrix-org/dendrite/keyserver/api" "github.com/matrix-org/dendrite/mediaapi" @@ -46,7 +46,7 @@ type Monolith struct { AppserviceAPI appserviceAPI.AppServiceQueryAPI EDUInternalAPI eduServerAPI.EDUServerInputAPI - FederationSenderAPI federationSenderAPI.FederationSenderInternalAPI + FederationSenderAPI federationSenderAPI.FederationInternalAPI RoomserverAPI roomserverAPI.RoomserverInternalAPI ServerKeyAPI serverKeyAPI.SigningKeyServerAPI UserAPI userapi.UserInternalAPI diff --git a/setup/mscs/msc2836/msc2836.go b/setup/mscs/msc2836/msc2836.go index a538299dc..d2822d0c5 100644 --- a/setup/mscs/msc2836/msc2836.go +++ b/setup/mscs/msc2836/msc2836.go @@ -28,7 +28,7 @@ import ( "time" "github.com/matrix-org/dendrite/clientapi/jsonerror" - fs "github.com/matrix-org/dendrite/federationsender/api" + fs "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/internal/hooks" "github.com/matrix-org/dendrite/internal/httputil" roomserver "github.com/matrix-org/dendrite/roomserver/api" @@ -93,7 +93,7 @@ func toClientResponse(res *gomatrixserverlib.MSC2836EventRelationshipsResponse) // Enable this MSC func Enable( - base *setup.BaseDendrite, rsAPI roomserver.RoomserverInternalAPI, fsAPI fs.FederationSenderInternalAPI, + base *setup.BaseDendrite, rsAPI roomserver.RoomserverInternalAPI, fsAPI fs.FederationInternalAPI, userAPI userapi.UserInternalAPI, keyRing gomatrixserverlib.JSONVerifier, ) error { db, err := NewDatabase(&base.Cfg.MSCs.Database) @@ -148,10 +148,10 @@ type reqCtx struct { // federated request args isFederatedRequest bool serverName gomatrixserverlib.ServerName - fsAPI fs.FederationSenderInternalAPI + fsAPI fs.FederationInternalAPI } -func eventRelationshipHandler(db Database, rsAPI roomserver.RoomserverInternalAPI, fsAPI fs.FederationSenderInternalAPI) func(*http.Request, *userapi.Device) util.JSONResponse { +func eventRelationshipHandler(db Database, rsAPI roomserver.RoomserverInternalAPI, fsAPI fs.FederationInternalAPI) func(*http.Request, *userapi.Device) util.JSONResponse { return func(req *http.Request, device *userapi.Device) util.JSONResponse { relation, err := NewEventRelationshipRequest(req.Body) if err != nil { @@ -183,7 +183,7 @@ func eventRelationshipHandler(db Database, rsAPI roomserver.RoomserverInternalAP } func federatedEventRelationship( - ctx context.Context, fedReq *gomatrixserverlib.FederationRequest, db Database, rsAPI roomserver.RoomserverInternalAPI, fsAPI fs.FederationSenderInternalAPI, + ctx context.Context, fedReq *gomatrixserverlib.FederationRequest, db Database, rsAPI roomserver.RoomserverInternalAPI, fsAPI fs.FederationInternalAPI, ) util.JSONResponse { relation, err := NewEventRelationshipRequest(bytes.NewBuffer(fedReq.Content())) if err != nil { diff --git a/setup/mscs/msc2946/msc2946.go b/setup/mscs/msc2946/msc2946.go index 121a73fd0..82ae045fa 100644 --- a/setup/mscs/msc2946/msc2946.go +++ b/setup/mscs/msc2946/msc2946.go @@ -27,7 +27,7 @@ import ( "github.com/gorilla/mux" chttputil "github.com/matrix-org/dendrite/clientapi/httputil" "github.com/matrix-org/dendrite/clientapi/jsonerror" - fs "github.com/matrix-org/dendrite/federationsender/api" + fs "github.com/matrix-org/dendrite/federationapi/api" "github.com/matrix-org/dendrite/internal/hooks" "github.com/matrix-org/dendrite/internal/httputil" roomserver "github.com/matrix-org/dendrite/roomserver/api" @@ -53,7 +53,7 @@ func Defaults(r *gomatrixserverlib.MSC2946SpacesRequest) { // Enable this MSC func Enable( base *setup.BaseDendrite, rsAPI roomserver.RoomserverInternalAPI, userAPI userapi.UserInternalAPI, - fsAPI fs.FederationSenderInternalAPI, keyRing gomatrixserverlib.JSONVerifier, + fsAPI fs.FederationInternalAPI, keyRing gomatrixserverlib.JSONVerifier, ) error { db, err := NewDatabase(&base.Cfg.MSCs.Database) if err != nil { @@ -96,7 +96,7 @@ func Enable( func federatedSpacesHandler( ctx context.Context, fedReq *gomatrixserverlib.FederationRequest, roomID string, db Database, - rsAPI roomserver.RoomserverInternalAPI, fsAPI fs.FederationSenderInternalAPI, + rsAPI roomserver.RoomserverInternalAPI, fsAPI fs.FederationInternalAPI, thisServer gomatrixserverlib.ServerName, ) util.JSONResponse { inMemoryBatchCache := make(map[string]set) @@ -128,7 +128,7 @@ func federatedSpacesHandler( } func spacesHandler( - db Database, rsAPI roomserver.RoomserverInternalAPI, fsAPI fs.FederationSenderInternalAPI, + db Database, rsAPI roomserver.RoomserverInternalAPI, fsAPI fs.FederationInternalAPI, thisServer gomatrixserverlib.ServerName, ) func(*http.Request, *userapi.Device) util.JSONResponse { return func(req *http.Request, device *userapi.Device) util.JSONResponse { @@ -172,7 +172,7 @@ type walker struct { thisServer gomatrixserverlib.ServerName db Database rsAPI roomserver.RoomserverInternalAPI - fsAPI fs.FederationSenderInternalAPI + fsAPI fs.FederationInternalAPI ctx context.Context // user ID|device ID|batch_num => event/room IDs sent to client