aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorNeil Alexander <neilalexander@users.noreply.github.com>2021-11-24 10:45:23 +0000
committerGitHub <noreply@github.com>2021-11-24 10:45:23 +0000
commitec716793eb86e7723ecfaa356e148334bc3921eb (patch)
tree7b9203b5509fe91e1cb255d43895d8acc4658d1e /cmd
parent6e93531e9412a16d39567e141c98b538a7e1e739 (diff)
Merge `federationapi`, `federationsender`, `signingkeyserver` components (#2055)
* Initial federation sender -> federation API refactoring * Move base into own package, avoids import cycle * Fix build errors * Fix tests * Add signing key server tables * Try to fold signing key server into federation API * Fix dendritejs builds * Update embedded interfaces * Fix panic, fix lint error * Update configs, docker * Rename some things * Reuse same keyring on the implementing side * Fix federation tests, `NewBaseDendrite` can accept freeform options * Fix build * Update create_db, configs * Name tables back * Don't rename federationsender consumer for now
Diffstat (limited to 'cmd')
-rw-r--r--cmd/dendrite-demo-libp2p/main.go34
-rw-r--r--cmd/dendrite-demo-libp2p/mdnslistener.go4
-rw-r--r--cmd/dendrite-demo-libp2p/p2pdendrite.go6
-rw-r--r--cmd/dendrite-demo-pinecone/conn/client.go6
-rw-r--r--cmd/dendrite-demo-pinecone/main.go23
-rw-r--r--cmd/dendrite-demo-pinecone/rooms/rooms.go6
-rw-r--r--cmd/dendrite-demo-yggdrasil/main.go31
-rw-r--r--cmd/dendrite-demo-yggdrasil/yggconn/client.go6
-rw-r--r--cmd/dendrite-demo-yggdrasil/yggrooms/yggrooms.go6
-rw-r--r--cmd/dendrite-monolith-server/main.go55
-rw-r--r--cmd/dendrite-polylith-multi/main.go27
-rw-r--r--cmd/dendrite-polylith-multi/personalities/appservice.go7
-rw-r--r--cmd/dendrite-polylith-multi/personalities/clientapi.go6
-rw-r--r--cmd/dendrite-polylith-multi/personalities/eduserver.go6
-rw-r--r--cmd/dendrite-polylith-multi/personalities/federationapi.go9
-rw-r--r--cmd/dendrite-polylith-multi/personalities/federationsender.go40
-rw-r--r--cmd/dendrite-polylith-multi/personalities/keyserver.go8
-rw-r--r--cmd/dendrite-polylith-multi/personalities/mediaapi.go4
-rw-r--r--cmd/dendrite-polylith-multi/personalities/roomserver.go15
-rw-r--r--cmd/dendrite-polylith-multi/personalities/signingkeyserver.go34
-rw-r--r--cmd/dendrite-polylith-multi/personalities/syncapi.go4
-rw-r--r--cmd/dendrite-polylith-multi/personalities/userapi.go6
-rw-r--r--cmd/dendritejs-pinecone/main.go27
-rw-r--r--cmd/dendritejs/main.go14
-rw-r--r--cmd/dendritejs/publicrooms.go6
-rw-r--r--cmd/generate-config/main.go11
-rw-r--r--cmd/goose/main.go2
27 files changed, 154 insertions, 249 deletions
diff --git a/cmd/dendrite-demo-libp2p/main.go b/cmd/dendrite-demo-libp2p/main.go
index 7606e418..6a1428d5 100644
--- a/cmd/dendrite-demo-libp2p/main.go
+++ b/cmd/dendrite-demo-libp2p/main.go
@@ -30,14 +30,13 @@ 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"
"github.com/matrix-org/dendrite/setup"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/setup/mscs"
- "github.com/matrix-org/dendrite/signingkeyserver"
"github.com/matrix-org/dendrite/userapi"
"github.com/matrix-org/gomatrixserverlib"
@@ -50,7 +49,7 @@ import (
func createKeyDB(
base *P2PDendrite,
- db gomatrixserverlib.KeyDatabase,
+ db *gomatrixserverlib.KeyRing,
) {
mdns := mDNSListener{
host: base.LibP2P,
@@ -125,14 +124,13 @@ func main() {
cfg.Global.PrivateKey = privKey
cfg.Global.KeyID = gomatrixserverlib.KeyID(fmt.Sprintf("ed25519:%s", *instanceName))
cfg.Global.Kafka.UseNaffka = true
- cfg.FederationSender.FederationMaxRetries = 6
+ cfg.FederationAPI.FederationMaxRetries = 6
cfg.UserAPI.AccountDatabase.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-account.db", *instanceName))
cfg.UserAPI.DeviceDatabase.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-device.db", *instanceName))
cfg.MediaAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-mediaapi.db", *instanceName))
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.FederationAPI.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))
@@ -151,32 +149,29 @@ func main() {
userAPI := userapi.NewInternalAPI(accountDB, &cfg.UserAPI, nil, keyAPI)
keyAPI.SetUserAPI(userAPI)
- serverKeyAPI := signingkeyserver.NewInternalAPI(
- &base.Base.Cfg.SigningKeyServer, federation, base.Base.Caches,
- )
- keyRing := serverKeyAPI.KeyRing()
- createKeyDB(
- base, serverKeyAPI,
- )
-
rsAPI := roomserver.NewInternalAPI(
- &base.Base, keyRing,
+ &base.Base,
)
eduInputAPI := eduserver.NewInternalAPI(
&base.Base, cache.New(), userAPI,
)
asAPI := appservice.NewInternalAPI(&base.Base, userAPI, rsAPI)
rsAPI.SetAppserviceAPI(asAPI)
- fsAPI := federationsender.NewInternalAPI(
- &base.Base, federation, rsAPI, keyRing, true,
+ fsAPI := federationapi.NewInternalAPI(
+ &base.Base, federation, rsAPI, base.Base.Caches, true,
)
- rsAPI.SetFederationSenderAPI(fsAPI)
+ keyRing := fsAPI.KeyRing()
+ rsAPI.SetFederationAPI(fsAPI)
provider := newPublicRoomsProvider(base.LibP2PPubsub, rsAPI)
err = provider.Start()
if err != nil {
panic("failed to create new public rooms provider: " + err.Error())
}
+ createKeyDB(
+ base, keyRing,
+ )
+
monolith := setup.Monolith{
Config: base.Base.Cfg,
AccountDB: accountDB,
@@ -186,9 +181,8 @@ func main() {
AppserviceAPI: asAPI,
EDUInternalAPI: eduInputAPI,
- FederationSenderAPI: fsAPI,
+ FederationAPI: fsAPI,
RoomserverAPI: rsAPI,
- ServerKeyAPI: serverKeyAPI,
UserAPI: userAPI,
KeyAPI: keyAPI,
ExtPublicRoomsProvider: provider,
diff --git a/cmd/dendrite-demo-libp2p/mdnslistener.go b/cmd/dendrite-demo-libp2p/mdnslistener.go
index c30aaa33..c6105e52 100644
--- a/cmd/dendrite-demo-libp2p/mdnslistener.go
+++ b/cmd/dendrite-demo-libp2p/mdnslistener.go
@@ -25,7 +25,7 @@ import (
)
type mDNSListener struct {
- keydb gomatrixserverlib.KeyDatabase
+ keydb *gomatrixserverlib.KeyRing
host host.Host
}
@@ -35,7 +35,7 @@ func (n *mDNSListener) HandlePeerFound(p peer.AddrInfo) {
}
if pubkey, err := p.ID.ExtractPublicKey(); err == nil {
raw, _ := pubkey.Raw()
- if err := n.keydb.StoreKeys(
+ if err := n.keydb.KeyDatabase.StoreKeys(
context.Background(),
map[gomatrixserverlib.PublicKeyLookupRequest]gomatrixserverlib.PublicKeyLookupResult{
{
diff --git a/cmd/dendrite-demo-libp2p/p2pdendrite.go b/cmd/dendrite-demo-libp2p/p2pdendrite.go
index 45eb42a9..ba1868b2 100644
--- a/cmd/dendrite-demo-libp2p/p2pdendrite.go
+++ b/cmd/dendrite-demo-libp2p/p2pdendrite.go
@@ -22,7 +22,6 @@ import (
pstore "github.com/libp2p/go-libp2p-core/peerstore"
record "github.com/libp2p/go-libp2p-record"
- "github.com/matrix-org/dendrite/setup"
"github.com/libp2p/go-libp2p"
circuit "github.com/libp2p/go-libp2p-circuit"
@@ -34,12 +33,13 @@ import (
pubsub "github.com/libp2p/go-libp2p-pubsub"
"github.com/matrix-org/gomatrixserverlib"
+ "github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
)
// P2PDendrite is a Peer-to-Peer variant of BaseDendrite.
type P2PDendrite struct {
- Base setup.BaseDendrite
+ Base base.BaseDendrite
// Store our libp2p object so that we can make outgoing connections from it
// later
@@ -54,7 +54,7 @@ type P2PDendrite struct {
// The componentName is used for logging purposes, and should be a friendly name
// of the component running, e.g. SyncAPI.
func NewP2PDendrite(cfg *config.Dendrite, componentName string) *P2PDendrite {
- baseDendrite := setup.NewBaseDendrite(cfg, componentName, false)
+ baseDendrite := base.NewBaseDendrite(cfg, componentName)
ctx, cancel := context.WithCancel(context.Background())
diff --git a/cmd/dendrite-demo-pinecone/conn/client.go b/cmd/dendrite-demo-pinecone/conn/client.go
index 29436fda..40ccb9c0 100644
--- a/cmd/dendrite-demo-pinecone/conn/client.go
+++ b/cmd/dendrite-demo-pinecone/conn/client.go
@@ -7,7 +7,7 @@ import (
"net/http"
"strings"
- "github.com/matrix-org/dendrite/setup"
+ "github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/gomatrixserverlib"
"nhooyr.io/websocket"
@@ -70,7 +70,7 @@ func createTransport(s *pineconeSessions.Sessions) *http.Transport {
}
func CreateClient(
- base *setup.BaseDendrite, s *pineconeSessions.Sessions,
+ base *base.BaseDendrite, s *pineconeSessions.Sessions,
) *gomatrixserverlib.Client {
return gomatrixserverlib.NewClient(
gomatrixserverlib.WithTransport(createTransport(s)),
@@ -78,7 +78,7 @@ func CreateClient(
}
func CreateFederationClient(
- base *setup.BaseDendrite, s *pineconeSessions.Sessions,
+ base *base.BaseDendrite, s *pineconeSessions.Sessions,
) *gomatrixserverlib.FederationClient {
return gomatrixserverlib.NewFederationClient(
base.Cfg.Global.ServerName,
diff --git a/cmd/dendrite-demo-pinecone/main.go b/cmd/dendrite-demo-pinecone/main.go
index 60b83dc7..9afa53a6 100644
--- a/cmd/dendrite-demo-pinecone/main.go
+++ b/cmd/dendrite-demo-pinecone/main.go
@@ -37,13 +37,14 @@ 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"
"github.com/matrix-org/dendrite/roomserver"
"github.com/matrix-org/dendrite/setup"
+ "github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/userapi"
"github.com/matrix-org/gomatrixserverlib"
@@ -151,9 +152,8 @@ func main() {
cfg.MediaAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-mediaapi.db", *instanceName))
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.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.FederationAPI.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"}
@@ -161,7 +161,7 @@ func main() {
panic(err)
}
- base := setup.NewBaseDendrite(cfg, "Monolith", false)
+ base := base.NewBaseDendrite(cfg, "Monolith")
defer base.Close() // nolint: errcheck
accountDB := base.CreateAccountsDB()
@@ -170,12 +170,10 @@ func main() {
serverKeyAPI := &signing.YggdrasilKeys{}
keyRing := serverKeyAPI.KeyRing()
- rsComponent := roomserver.NewInternalAPI(
- base, keyRing,
- )
+ rsComponent := roomserver.NewInternalAPI(base)
rsAPI := rsComponent
- fsAPI := federationsender.NewInternalAPI(
- base, federation, rsAPI, keyRing, true,
+ fsAPI := federationapi.NewInternalAPI(
+ base, federation, rsAPI, base.Caches, true,
)
keyAPI := keyserver.NewInternalAPI(base, &base.Cfg.KeyServer, fsAPI)
@@ -188,7 +186,8 @@ func main() {
asAPI := appservice.NewInternalAPI(base, userAPI, rsAPI)
- rsComponent.SetFederationSenderAPI(fsAPI)
+ rsComponent.SetFederationAPI(fsAPI)
+ rsComponent.SetKeyring(keyRing)
monolith := setup.Monolith{
Config: base.Cfg,
@@ -199,7 +198,7 @@ func main() {
AppserviceAPI: asAPI,
EDUInternalAPI: eduInputAPI,
- FederationSenderAPI: fsAPI,
+ FederationAPI: fsAPI,
RoomserverAPI: rsAPI,
UserAPI: userAPI,
KeyAPI: keyAPI,
diff --git a/cmd/dendrite-demo-pinecone/rooms/rooms.go b/cmd/dendrite-demo-pinecone/rooms/rooms.go
index fc387a17..5972d129 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 1b5e1a51..2663aabb 100644
--- a/cmd/dendrite-demo-yggdrasil/main.go
+++ b/cmd/dendrite-demo-yggdrasil/main.go
@@ -31,13 +31,14 @@ 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"
"github.com/matrix-org/dendrite/roomserver"
"github.com/matrix-org/dendrite/setup"
+ "github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/setup/mscs"
"github.com/matrix-org/dendrite/userapi"
@@ -82,9 +83,8 @@ func main() {
cfg.MediaAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s-mediaapi.db", *instanceName))
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.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.FederationAPI.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"}
@@ -93,7 +93,7 @@ func main() {
panic(err)
}
- base := setup.NewBaseDendrite(cfg, "Monolith", false)
+ base := base.NewBaseDendrite(cfg, "Monolith")
defer base.Close() // nolint: errcheck
accountDB := base.CreateAccountsDB()
@@ -107,7 +107,7 @@ func main() {
keyAPI.SetUserAPI(userAPI)
rsComponent := roomserver.NewInternalAPI(
- base, keyRing,
+ base,
)
rsAPI := rsComponent
@@ -117,11 +117,12 @@ func main() {
asAPI := appservice.NewInternalAPI(base, userAPI, rsAPI)
rsAPI.SetAppserviceAPI(asAPI)
- fsAPI := federationsender.NewInternalAPI(
- base, federation, rsAPI, keyRing, true,
+ fsAPI := federationapi.NewInternalAPI(
+ base, federation, rsAPI, base.Caches, true,
)
- rsComponent.SetFederationSenderAPI(fsAPI)
+ rsComponent.SetFederationAPI(fsAPI)
+ rsComponent.SetKeyring(keyRing)
monolith := setup.Monolith{
Config: base.Cfg,
@@ -130,12 +131,12 @@ func main() {
FedClient: federation,
KeyRing: keyRing,
- AppserviceAPI: asAPI,
- EDUInternalAPI: eduInputAPI,
- FederationSenderAPI: fsAPI,
- RoomserverAPI: rsAPI,
- UserAPI: userAPI,
- KeyAPI: keyAPI,
+ AppserviceAPI: asAPI,
+ EDUInternalAPI: eduInputAPI,
+ FederationAPI: fsAPI,
+ RoomserverAPI: rsAPI,
+ UserAPI: userAPI,
+ KeyAPI: keyAPI,
ExtPublicRoomsProvider: yggrooms.NewYggdrasilRoomProvider(
ygg, fsAPI, federation,
),
diff --git a/cmd/dendrite-demo-yggdrasil/yggconn/client.go b/cmd/dendrite-demo-yggdrasil/yggconn/client.go
index c7409c21..358d3725 100644
--- a/cmd/dendrite-demo-yggdrasil/yggconn/client.go
+++ b/cmd/dendrite-demo-yggdrasil/yggconn/client.go
@@ -4,7 +4,7 @@ import (
"net/http"
"time"
- "github.com/matrix-org/dendrite/setup"
+ "github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/gomatrixserverlib"
)
@@ -18,7 +18,7 @@ func (y *yggroundtripper) RoundTrip(req *http.Request) (*http.Response, error) {
}
func (n *Node) CreateClient(
- base *setup.BaseDendrite,
+ base *base.BaseDendrite,
) *gomatrixserverlib.Client {
tr := &http.Transport{}
tr.RegisterProtocol(
@@ -39,7 +39,7 @@ func (n *Node) CreateClient(
}
func (n *Node) CreateFederationClient(
- base *setup.BaseDendrite,
+ base *base.BaseDendrite,
) *gomatrixserverlib.FederationClient {
tr := &http.Transport{}
tr.RegisterProtocol(
diff --git a/cmd/dendrite-demo-yggdrasil/yggrooms/yggrooms.go b/cmd/dendrite-demo-yggdrasil/yggrooms/yggrooms.go
index 0174e84d..402b86ed 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 ec8751df..0e55e7ba 100644
--- a/cmd/dendrite-monolith-server/main.go
+++ b/cmd/dendrite-monolith-server/main.go
@@ -21,14 +21,14 @@ 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"
"github.com/matrix-org/dendrite/setup"
+ basepkg "github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/setup/mscs"
- "github.com/matrix-org/dendrite/signingkeyserver"
"github.com/matrix-org/dendrite/userapi"
uapi "github.com/matrix-org/dendrite/userapi/api"
"github.com/sirupsen/logrus"
@@ -51,7 +51,7 @@ func main() {
httpAddr := config.HTTPAddress("http://" + *httpBindAddr)
httpsAddr := config.HTTPAddress("https://" + *httpsBindAddr)
httpAPIAddr := httpAddr
-
+ options := []basepkg.BaseDendriteOptions{}
if *enableHTTPAPIs {
logrus.Warnf("DANGER! The -api option is enabled, exposing internal APIs on %q!", *apiBindAddr)
httpAPIAddr = config.HTTPAddress("http://" + *apiBindAddr)
@@ -63,32 +63,20 @@ func main() {
cfg.ClientAPI.InternalAPI.Connect = httpAPIAddr
cfg.EDUServer.InternalAPI.Connect = httpAPIAddr
cfg.FederationAPI.InternalAPI.Connect = httpAPIAddr
- cfg.FederationSender.InternalAPI.Connect = httpAPIAddr
cfg.KeyServer.InternalAPI.Connect = httpAPIAddr
cfg.MediaAPI.InternalAPI.Connect = httpAPIAddr
cfg.RoomServer.InternalAPI.Connect = httpAPIAddr
- cfg.SigningKeyServer.InternalAPI.Connect = httpAPIAddr
cfg.SyncAPI.InternalAPI.Connect = httpAPIAddr
+ options = append(options, basepkg.UseHTTPAPIs)
}
- base := setup.NewBaseDendrite(cfg, "Monolith", *enableHTTPAPIs)
+ base := basepkg.NewBaseDendrite(cfg, "Monolith", options...)
defer base.Close() // nolint: errcheck
accountDB := base.CreateAccountsDB()
federation := base.CreateFederationClient()
- skAPI := signingkeyserver.NewInternalAPI(
- &base.Cfg.SigningKeyServer, federation, base.Caches,
- )
- if base.UseHTTPAPIs {
- signingkeyserver.AddInternalRoutes(base.InternalAPIMux, skAPI, base.Caches)
- skAPI = base.SigningKeyServerHTTPClient()
- }
- keyRing := skAPI.KeyRing()
-
- rsImpl := roomserver.NewInternalAPI(
- base, keyRing,
- )
+ rsImpl := roomserver.NewInternalAPI(base)
// call functions directly on the impl unless running in HTTP mode
rsAPI := rsImpl
if base.UseHTTPAPIs {
@@ -101,16 +89,18 @@ func main() {
}
}
- fsAPI := federationsender.NewInternalAPI(
- base, federation, rsAPI, keyRing, false,
+ fsAPI := federationapi.NewInternalAPI(
+ base, federation, rsAPI, base.Caches, false,
)
if base.UseHTTPAPIs {
- federationsender.AddInternalRoutes(base.InternalAPIMux, fsAPI)
- fsAPI = base.FederationSenderHTTPClient()
+ federationapi.AddInternalRoutes(base.InternalAPIMux, fsAPI)
+ fsAPI = base.FederationAPIHTTPClient()
}
+ keyRing := fsAPI.KeyRing()
+
// The underlying roomserver implementation needs to be able to call the fedsender.
// This is different to rsAPI which can be the http client which doesn't need this dependency
- rsImpl.SetFederationSenderAPI(fsAPI)
+ rsImpl.SetFederationAPI(fsAPI)
keyAPI := keyserver.NewInternalAPI(base, &base.Cfg.KeyServer, fsAPI)
userAPI := userapi.NewInternalAPI(accountDB, &cfg.UserAPI, cfg.Derived.ApplicationServices, keyAPI)
@@ -148,13 +138,12 @@ func main() {
FedClient: federation,
KeyRing: keyRing,
- AppserviceAPI: asAPI,
- EDUInternalAPI: eduInputAPI,
- FederationSenderAPI: fsAPI,
- RoomserverAPI: rsAPI,
- ServerKeyAPI: skAPI,
- UserAPI: userAPI,
- KeyAPI: keyAPI,
+ AppserviceAPI: asAPI,
+ EDUInternalAPI: eduInputAPI,
+ FederationAPI: fsAPI,
+ RoomserverAPI: rsAPI,
+ UserAPI: userAPI,
+ KeyAPI: keyAPI,
}
monolith.AddAllPublicRoutes(
base.ProcessContext,
@@ -184,9 +173,9 @@ func main() {
if *certFile != "" && *keyFile != "" {
go func() {
base.SetupAndServeHTTP(
- setup.NoListener, // internal API
- httpsAddr, // external API
- certFile, keyFile, // TLS settings
+ basepkg.NoListener, // internal API
+ httpsAddr, // external API
+ certFile, keyFile, // TLS settings
)
}()
}
diff --git a/cmd/dendrite-polylith-multi/main.go b/cmd/dendrite-polylith-multi/main.go
index c2208ca2..edfe6cdb 100644
--- a/cmd/dendrite-polylith-multi/main.go
+++ b/cmd/dendrite-polylith-multi/main.go
@@ -21,13 +21,14 @@ import (
"github.com/matrix-org/dendrite/cmd/dendrite-polylith-multi/personalities"
"github.com/matrix-org/dendrite/setup"
+ "github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
"github.com/sirupsen/logrus"
_ "github.com/mattn/go-sqlite3"
)
-type entrypoint func(base *setup.BaseDendrite, cfg *config.Dendrite)
+type entrypoint func(base *base.BaseDendrite, cfg *config.Dendrite)
func main() {
cfg := setup.ParseFlags(true)
@@ -40,17 +41,15 @@ func main() {
}
components := map[string]entrypoint{
- "appservice": personalities.Appservice,
- "clientapi": personalities.ClientAPI,
- "eduserver": personalities.EDUServer,
- "federationapi": personalities.FederationAPI,
- "federationsender": personalities.FederationSender,
- "keyserver": personalities.KeyServer,
- "mediaapi": personalities.MediaAPI,
- "roomserver": personalities.RoomServer,
- "signingkeyserver": personalities.SigningKeyServer,
- "syncapi": personalities.SyncAPI,
- "userapi": personalities.UserAPI,
+ "appservice": personalities.Appservice,
+ "clientapi": personalities.ClientAPI,
+ "eduserver": personalities.EDUServer,
+ "federationapi": personalities.FederationAPI,
+ "keyserver": personalities.KeyServer,
+ "mediaapi": personalities.MediaAPI,
+ "roomserver": personalities.RoomServer,
+ "syncapi": personalities.SyncAPI,
+ "userapi": personalities.UserAPI,
}
start, ok := components[component]
@@ -73,8 +72,8 @@ func main() {
logrus.Infof("Starting %q component", component)
- base := setup.NewBaseDendrite(cfg, component, false) // TODO
- defer base.Close() // nolint: errcheck
+ base := base.NewBaseDendrite(cfg, component) // TODO
+ defer base.Close() // nolint: errcheck
go start(base, cfg)
base.WaitForShutdown()
diff --git a/cmd/dendrite-polylith-multi/personalities/appservice.go b/cmd/dendrite-polylith-multi/personalities/appservice.go
index d269b15d..4f74434a 100644
--- a/cmd/dendrite-polylith-multi/personalities/appservice.go
+++ b/cmd/dendrite-polylith-multi/personalities/appservice.go
@@ -16,11 +16,12 @@ package personalities
import (
"github.com/matrix-org/dendrite/appservice"
- "github.com/matrix-org/dendrite/setup"
+ "github.com/matrix-org/dendrite/setup/base"
+ basepkg "github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
)
-func Appservice(base *setup.BaseDendrite, cfg *config.Dendrite) {
+func Appservice(base *base.BaseDendrite, cfg *config.Dendrite) {
userAPI := base.UserAPIClient()
rsAPI := base.RoomserverHTTPClient()
@@ -29,7 +30,7 @@ func Appservice(base *setup.BaseDendrite, cfg *config.Dendrite) {
base.SetupAndServeHTTP(
base.Cfg.AppServiceAPI.InternalAPI.Listen, // internal listener
- setup.NoListener, // external listener
+ basepkg.NoListener, // external listener
nil, nil,
)
}
diff --git a/cmd/dendrite-polylith-multi/personalities/clientapi.go b/cmd/dendrite-polylith-multi/personalities/clientapi.go
index 5e0c4354..bd9f7a10 100644
--- a/cmd/dendrite-polylith-multi/personalities/clientapi.go
+++ b/cmd/dendrite-polylith-multi/personalities/clientapi.go
@@ -17,17 +17,17 @@ package personalities
import (
"github.com/matrix-org/dendrite/clientapi"
"github.com/matrix-org/dendrite/internal/transactions"
- "github.com/matrix-org/dendrite/setup"
+ basepkg "github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
)
-func ClientAPI(base *setup.BaseDendrite, cfg *config.Dendrite) {
+func ClientAPI(base *basepkg.BaseDendrite, cfg *config.Dendrite) {
accountDB := base.CreateAccountsDB()
federation := base.CreateFederationClient()
asQuery := base.AppserviceHTTPClient()
rsAPI := base.RoomserverHTTPClient()
- fsAPI := base.FederationSenderHTTPClient()
+ fsAPI := base.FederationAPIHTTPClient()
eduInputAPI := base.EDUServerClient()
userAPI := base.UserAPIClient()
keyAPI := base.KeyServerHTTPClient()
diff --git a/cmd/dendrite-polylith-multi/personalities/eduserver.go b/cmd/dendrite-polylith-multi/personalities/eduserver.go
index 55b986e8..8719facb 100644
--- a/cmd/dendrite-polylith-multi/personalities/eduserver.go
+++ b/cmd/dendrite-polylith-multi/personalities/eduserver.go
@@ -17,17 +17,17 @@ package personalities
import (
"github.com/matrix-org/dendrite/eduserver"
"github.com/matrix-org/dendrite/eduserver/cache"
- "github.com/matrix-org/dendrite/setup"
+ basepkg "github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
)
-func EDUServer(base *setup.BaseDendrite, cfg *config.Dendrite) {
+func EDUServer(base *basepkg.BaseDendrite, cfg *config.Dendrite) {
intAPI := eduserver.NewInternalAPI(base, cache.New(), base.UserAPIClient())
eduserver.AddInternalRoutes(base.InternalAPIMux, intAPI)
base.SetupAndServeHTTP(
base.Cfg.EDUServer.InternalAPI.Listen, // internal listener
- setup.NoListener, // external listener
+ basepkg.NoListener, // external listener
nil, nil,
)
}
diff --git a/cmd/dendrite-polylith-multi/personalities/federationapi.go b/cmd/dendrite-polylith-multi/personalities/federationapi.go
index 5488fbf3..9b59cf45 100644
--- a/cmd/dendrite-polylith-multi/personalities/federationapi.go
+++ b/cmd/dendrite-polylith-multi/personalities/federationapi.go
@@ -16,16 +16,15 @@ package personalities
import (
"github.com/matrix-org/dendrite/federationapi"
- "github.com/matrix-org/dendrite/setup"
+ basepkg "github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
)
-func FederationAPI(base *setup.BaseDendrite, cfg *config.Dendrite) {
+func FederationAPI(base *basepkg.BaseDendrite, cfg *config.Dendrite) {
userAPI := base.UserAPIClient()
federation := base.CreateFederationClient()
- serverKeyAPI := base.SigningKeyServerHTTPClient()
- keyRing := serverKeyAPI.KeyRing()
- fsAPI := base.FederationSenderHTTPClient()
+ fsAPI := base.FederationAPIHTTPClient()
+ keyRing := fsAPI.KeyRing()
rsAPI := base.RoomserverHTTPClient()
keyAPI := base.KeyServerHTTPClient()
diff --git a/cmd/dendrite-polylith-multi/personalities/federationsender.go b/cmd/dendrite-polylith-multi/personalities/federationsender.go
deleted file mode 100644
index ca9a8add..00000000
--- a/cmd/dendrite-polylith-multi/personalities/federationsender.go
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2020 The Matrix.org Foundation C.I.C.
-//
-// 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 personalities
-
-import (
- "github.com/matrix-org/dendrite/federationsender"
- "github.com/matrix-org/dendrite/setup"
- "github.com/matrix-org/dendrite/setup/config"
-)
-
-func FederationSender(base *setup.BaseDendrite, cfg *config.Dendrite) {
- federation := base.CreateFederationClient()
-
- serverKeyAPI := base.SigningKeyServerHTTPClient()
- keyRing := serverKeyAPI.KeyRing()
-
- rsAPI := base.RoomserverHTTPClient()
- fsAPI := federationsender.NewInternalAPI(
- base, federation, rsAPI, keyRing, false,
- )
- federationsender.AddInternalRoutes(base.InternalAPIMux, fsAPI)
-
- base.SetupAndServeHTTP(
- base.Cfg.FederationSender.InternalAPI.Listen, // internal listener
- setup.NoListener, // external listener
- nil, nil,
- )
-}
diff --git a/cmd/dendrite-polylith-multi/personalities/keyserver.go b/cmd/dendrite-polylith-multi/personalities/keyserver.go
index 8a99d779..f8aa57b8 100644
--- a/cmd/dendrite-polylith-multi/personalities/keyserver.go
+++ b/cmd/dendrite-polylith-multi/personalities/keyserver.go
@@ -16,12 +16,12 @@ package personalities
import (
"github.com/matrix-org/dendrite/keyserver"
- "github.com/matrix-org/dendrite/setup"
+ basepkg "github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
)
-func KeyServer(base *setup.BaseDendrite, cfg *config.Dendrite) {
- fsAPI := base.FederationSenderHTTPClient()
+func KeyServer(base *basepkg.BaseDendrite, cfg *config.Dendrite) {
+ fsAPI := base.FederationAPIHTTPClient()
intAPI := keyserver.NewInternalAPI(base, &base.Cfg.KeyServer, fsAPI)
intAPI.SetUserAPI(base.UserAPIClient())
@@ -29,7 +29,7 @@ func KeyServer(base *setup.BaseDendrite, cfg *config.Dendrite) {
base.SetupAndServeHTTP(
base.Cfg.KeyServer.InternalAPI.Listen, // internal listener
- setup.NoListener, // external listener
+ basepkg.NoListener, // external listener
nil, nil,
)
}
diff --git a/cmd/dendrite-polylith-multi/personalities/mediaapi.go b/cmd/dendrite-polylith-multi/personalities/mediaapi.go
index cf3e6882..00a2d56a 100644
--- a/cmd/dendrite-polylith-multi/personalities/mediaapi.go
+++ b/cmd/dendrite-polylith-multi/personalities/mediaapi.go
@@ -16,11 +16,11 @@ package personalities
import (
"github.com/matrix-org/dendrite/mediaapi"
- "github.com/matrix-org/dendrite/setup"
+ basepkg "github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
)
-func MediaAPI(base *setup.BaseDendrite, cfg *config.Dendrite) {
+func MediaAPI(base *basepkg.BaseDendrite, cfg *config.Dendrite) {
userAPI := base.UserAPIClient()
client := base.CreateClient()
diff --git a/cmd/dendrite-polylith-multi/personalities/roomserver.go b/cmd/dendrite-polylith-multi/personalities/roomserver.go
index 72f0f6d1..23514dbe 100644
--- a/cmd/dendrite-polylith-multi/personalities/roomserver.go
+++ b/cmd/dendrite-polylith-multi/personalities/roomserver.go
@@ -16,24 +16,21 @@ package personalities
import (
"github.com/matrix-org/dendrite/roomserver"
- "github.com/matrix-org/dendrite/setup"
+ basepkg "github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
)
-func RoomServer(base *setup.BaseDendrite, cfg *config.Dendrite) {
- serverKeyAPI := base.SigningKeyServerHTTPClient()
- keyRing := serverKeyAPI.KeyRing()
-
+func RoomServer(base *basepkg.BaseDendrite, cfg *config.Dendrite) {
asAPI := base.AppserviceHTTPClient()
- fsAPI := base.FederationSenderHTTPClient()
- rsAPI := roomserver.NewInternalAPI(base, keyRing)
- rsAPI.SetFederationSenderAPI(fsAPI)
+ fsAPI := base.FederationAPIHTTPClient()
+ rsAPI := roomserver.NewInternalAPI(base)
+ rsAPI.SetFederationAPI(fsAPI)
rsAPI.SetAppserviceAPI(asAPI)
roomserver.AddInternalRoutes(base.InternalAPIMux, rsAPI)
base.SetupAndServeHTTP(
base.Cfg.RoomServer.InternalAPI.Listen, // internal listener
- setup.NoListener, // external listener
+ basepkg.NoListener, // external listener
nil, nil,
)
}
diff --git a/cmd/dendrite-polylith-multi/personalities/signingkeyserver.go b/cmd/dendrite-polylith-multi/personalities/signingkeyserver.go
deleted file mode 100644
index 0a7fc502..00000000
--- a/cmd/dendrite-polylith-multi/personalities/signingkeyserver.go
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2020 The Matrix.org Foundation C.I.C.
-//
-// 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 personalities
-
-import (
- "github.com/matrix-org/dendrite/setup"
- "github.com/matrix-org/dendrite/setup/config"
- "github.com/matrix-org/dendrite/signingkeyserver"
-)
-
-func SigningKeyServer(base *setup.BaseDendrite, cfg *config.Dendrite) {
- federation := base.CreateFederationClient()
-
- intAPI := signingkeyserver.NewInternalAPI(&base.Cfg.SigningKeyServer, federation, base.Caches)
- signingkeyserver.AddInternalRoutes(base.InternalAPIMux, intAPI, base.Caches)
-
- base.SetupAndServeHTTP(
- base.Cfg.SigningKeyServer.InternalAPI.Listen,
- setup.NoListener,
- nil, nil,
- )
-}
diff --git a/cmd/dendrite-polylith-multi/personalities/syncapi.go b/cmd/dendrite-polylith-multi/personalities/syncapi.go
index b9b20229..6fee8419 100644
--- a/cmd/dendrite-polylith-multi/personalities/syncapi.go
+++ b/cmd/dendrite-polylith-multi/personalities/syncapi.go
@@ -15,12 +15,12 @@
package personalities
import (
- "github.com/matrix-org/dendrite/setup"
+ basepkg "github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/syncapi"
)
-func SyncAPI(base *setup.BaseDendrite, cfg *config.Dendrite) {
+func SyncAPI(base *basepkg.BaseDendrite, cfg *config.Dendrite) {
userAPI := base.UserAPIClient()
federation := base.CreateFederationClient()
diff --git a/cmd/dendrite-polylith-multi/personalities/userapi.go b/cmd/dendrite-polylith-multi/personalities/userapi.go
index 6feb906d..f147cda1 100644
--- a/cmd/dendrite-polylith-multi/personalities/userapi.go
+++ b/cmd/dendrite-polylith-multi/personalities/userapi.go
@@ -15,12 +15,12 @@
package personalities
import (
- "github.com/matrix-org/dendrite/setup"
+ basepkg "github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/userapi"
)
-func UserAPI(base *setup.BaseDendrite, cfg *config.Dendrite) {
+func UserAPI(base *basepkg.BaseDendrite, cfg *config.Dendrite) {
accountDB := base.CreateAccountsDB()
userAPI := userapi.NewInternalAPI(accountDB, &cfg.UserAPI, cfg.Derived.ApplicationServices, base.KeyServerHTTPClient())
@@ -29,7 +29,7 @@ func UserAPI(base *setup.BaseDendrite, cfg *config.Dendrite) {
base.SetupAndServeHTTP(
base.Cfg.UserAPI.InternalAPI.Listen, // internal listener
- setup.NoListener, // external listener
+ basepkg.NoListener, // external listener
nil, nil,
)
}
diff --git a/cmd/dendritejs-pinecone/main.go b/cmd/dendritejs-pinecone/main.go
index 46e65783..a430f82a 100644
--- a/cmd/dendritejs-pinecone/main.go
+++ b/cmd/dendritejs-pinecone/main.go
@@ -33,11 +33,12 @@ 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"
"github.com/matrix-org/dendrite/setup"
+ "github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/userapi"
@@ -164,10 +165,9 @@ func startup() {
cfg.UserAPI.AccountDatabase.ConnectionString = "file:/idb/dendritejs_account.db"
cfg.AppServiceAPI.Database.ConnectionString = "file:/idb/dendritejs_appservice.db"
cfg.UserAPI.DeviceDatabase.ConnectionString = "file:/idb/dendritejs_device.db"
- cfg.FederationSender.Database.ConnectionString = "file:/idb/dendritejs_fedsender.db"
+ cfg.FederationAPI.Database.ConnectionString = "file:/idb/dendritejs_fedsender.db"
cfg.MediaAPI.Database.ConnectionString = "file:/idb/dendritejs_mediaapi.db"
cfg.RoomServer.Database.ConnectionString = "file:/idb/dendritejs_roomserver.db"
- cfg.SigningKeyServer.Database.ConnectionString = "file:/idb/dendritejs_signingkeyserver.db"
cfg.SyncAPI.Database.ConnectionString = "file:/idb/dendritejs_syncapi.db"
cfg.KeyServer.Database.ConnectionString = "file:/idb/dendritejs_e2ekey.db"
cfg.Global.Kafka.UseNaffka = true
@@ -180,7 +180,7 @@ func startup() {
if err := cfg.Derive(); err != nil {
logrus.Fatalf("Failed to derive values from config: %s", err)
}
- base := setup.NewBaseDendrite(cfg, "Monolith", false)
+ base := base.NewBaseDendrite(cfg, "Monolith")
defer base.Close() // nolint: errcheck
accountDB := base.CreateAccountsDB()
@@ -192,14 +192,15 @@ func startup() {
serverKeyAPI := &signing.YggdrasilKeys{}
keyRing := serverKeyAPI.KeyRing()
- rsAPI := roomserver.NewInternalAPI(base, keyRing)
+ rsAPI := roomserver.NewInternalAPI(base)
eduInputAPI := eduserver.NewInternalAPI(base, cache.New(), userAPI)
asQuery := appservice.NewInternalAPI(
base, userAPI, rsAPI,
)
rsAPI.SetAppserviceAPI(asQuery)
- fedSenderAPI := federationsender.NewInternalAPI(base, federation, rsAPI, keyRing, true)
- rsAPI.SetFederationSenderAPI(fedSenderAPI)
+ fedSenderAPI := federationapi.NewInternalAPI(base, federation, rsAPI, base.Caches, true)
+ rsAPI.SetFederationAPI(fedSenderAPI)
+ rsAPI.SetKeyring(keyRing)
monolith := setup.Monolith{
Config: base.Cfg,
@@ -208,12 +209,12 @@ func startup() {
FedClient: federation,
KeyRing: keyRing,
- AppserviceAPI: asQuery,
- EDUInternalAPI: eduInputAPI,
- FederationSenderAPI: fedSenderAPI,
- RoomserverAPI: rsAPI,
- UserAPI: userAPI,
- KeyAPI: keyAPI,
+ AppserviceAPI: asQuery,
+ EDUInternalAPI: eduInputAPI,
+ FederationAPI: fedSenderAPI,
+ RoomserverAPI: rsAPI,
+ UserAPI: userAPI,
+ KeyAPI: keyAPI,
//ServerKeyAPI: serverKeyAPI,
ExtPublicRoomsProvider: rooms.NewPineconeRoomProvider(pRouter, pSessions, fedSenderAPI, federation),
}
diff --git a/cmd/dendritejs/main.go b/cmd/dendritejs/main.go
index 10aadb6e..9bb1f24e 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"
@@ -168,10 +168,9 @@ func main() {
cfg.UserAPI.AccountDatabase.ConnectionString = "file:/idb/dendritejs_account.db"
cfg.AppServiceAPI.Database.ConnectionString = "file:/idb/dendritejs_appservice.db"
cfg.UserAPI.DeviceDatabase.ConnectionString = "file:/idb/dendritejs_device.db"
- cfg.FederationSender.Database.ConnectionString = "file:/idb/dendritejs_fedsender.db"
+ cfg.FederationAPI.Database.ConnectionString = "file:/idb/dendritejs_fedsender.db"
cfg.MediaAPI.Database.ConnectionString = "file:/idb/dendritejs_mediaapi.db"
cfg.RoomServer.Database.ConnectionString = "file:/idb/dendritejs_roomserver.db"
- cfg.SigningKeyServer.Database.ConnectionString = "file:/idb/dendritejs_signingkeyserver.db"
cfg.SyncAPI.Database.ConnectionString = "file:/idb/dendritejs_syncapi.db"
cfg.KeyServer.Database.ConnectionString = "file:/idb/dendritejs_e2ekey.db"
cfg.Global.Kafka.UseNaffka = true
@@ -188,7 +187,7 @@ func main() {
if err := cfg.Derive(); err != nil {
logrus.Fatalf("Failed to derive values from config: %s", err)
}
- base := setup.NewBaseDendrite(cfg, "Monolith", false)
+ base := setup.NewBaseDendrite(cfg, "Monolith")
defer base.Close() // nolint: errcheck
accountDB := base.CreateAccountsDB()
@@ -205,14 +204,15 @@ func main() {
KeyDatabase: fetcher,
}
- rsAPI := roomserver.NewInternalAPI(base, keyRing)
+ rsAPI := roomserver.NewInternalAPI(base)
eduInputAPI := eduserver.NewInternalAPI(base, cache.New(), userAPI)
asQuery := appservice.NewInternalAPI(
base, userAPI, rsAPI,
)
rsAPI.SetAppserviceAPI(asQuery)
- fedSenderAPI := federationsender.NewInternalAPI(base, federation, rsAPI, &keyRing, true)
- rsAPI.SetFederationSenderAPI(fedSenderAPI)
+ fedSenderAPI := federationapi.NewInternalAPI(base, federation, rsAPI, base.Caches, true)
+ rsAPI.SetFederationAPI(fedSenderAPI)
+ rsAPI.SetKeyring(keyRing)
p2pPublicRoomProvider := NewLibP2PPublicRoomsProvider(node, fedSenderAPI, federation)
monolith := setup.Monolith{
diff --git a/cmd/dendritejs/publicrooms.go b/cmd/dendritejs/publicrooms.go
index 19afc5bc..2e3339a4 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/generate-config/main.go b/cmd/generate-config/main.go
index e300a1ca..a0407b73 100644
--- a/cmd/generate-config/main.go
+++ b/cmd/generate-config/main.go
@@ -24,12 +24,11 @@ func main() {
if *dbURI != "" {
cfg.Global.Kafka.Database.ConnectionString = config.DataSource(*dbURI)
cfg.AppServiceAPI.Database.ConnectionString = config.DataSource(*dbURI)
- cfg.FederationSender.Database.ConnectionString = config.DataSource(*dbURI)
+ cfg.FederationAPI.Database.ConnectionString = config.DataSource(*dbURI)
cfg.KeyServer.Database.ConnectionString = config.DataSource(*dbURI)
cfg.MSCs.Database.ConnectionString = config.DataSource(*dbURI)
cfg.MediaAPI.Database.ConnectionString = config.DataSource(*dbURI)
cfg.RoomServer.Database.ConnectionString = config.DataSource(*dbURI)
- cfg.SigningKeyServer.Database.ConnectionString = config.DataSource(*dbURI)
cfg.SyncAPI.Database.ConnectionString = config.DataSource(*dbURI)
cfg.UserAPI.AccountDatabase.ConnectionString = config.DataSource(*dbURI)
cfg.UserAPI.DeviceDatabase.ConnectionString = config.DataSource(*dbURI)
@@ -47,7 +46,7 @@ func main() {
},
},
}
- cfg.SigningKeyServer.KeyPerspectives = config.KeyPerspectives{
+ cfg.FederationAPI.KeyPerspectives = config.KeyPerspectives{
{
ServerName: "matrix.org",
Keys: []config.KeyPerspectiveTrustKey{
@@ -83,11 +82,11 @@ func main() {
if *defaultsForCI {
cfg.AppServiceAPI.DisableTLSValidation = true
cfg.ClientAPI.RateLimiting.Enabled = false
- cfg.FederationSender.DisableTLSValidation = true
+ cfg.FederationAPI.DisableTLSValidation = true
+ // don't hit matrix.org when running tests!!!
+ cfg.FederationAPI.KeyPerspectives = config.KeyPerspectives{}
cfg.MSCs.MSCs = []string{"msc2836", "msc2946", "msc2444", "msc2753"}
cfg.Logging[0].Level = "trace"
- // don't hit matrix.org when running tests!!!
- cfg.SigningKeyServer.KeyPerspectives = config.KeyPerspectives{}
cfg.UserAPI.BCryptCost = bcrypt.MinCost
}
diff --git a/cmd/goose/main.go b/cmd/goose/main.go
index 83c97a72..8ed5cbd9 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"