diff --git a/appservice/storage/cosmosdb/storage.go b/appservice/storage/cosmosdb/storage.go index 3639010e1..2f07167b9 100644 --- a/appservice/storage/cosmosdb/storage.go +++ b/appservice/storage/cosmosdb/storage.go @@ -16,6 +16,7 @@ package cosmosdb import ( + "github.com/matrix-org/dendrite/internal/cosmosdbutil" "context" "database/sql" @@ -37,6 +38,7 @@ type Database struct { // NewDatabase opens a new database func NewDatabase(dbProperties *config.DatabaseOptions) (*Database, error) { + dbProperties.ConnectionString = cosmosdbutil.GetConnectionString(&dbProperties.ConnectionString) var result Database var err error if result.db, err = sqlutil.Open(dbProperties); err != nil { diff --git a/federationsender/storage/cosmosdb/storage.go b/federationsender/storage/cosmosdb/storage.go index da429046b..fb38d6e6d 100644 --- a/federationsender/storage/cosmosdb/storage.go +++ b/federationsender/storage/cosmosdb/storage.go @@ -16,6 +16,7 @@ package cosmosdb import ( + "github.com/matrix-org/dendrite/internal/cosmosdbutil" "database/sql" _ "github.com/mattn/go-sqlite3" @@ -37,6 +38,7 @@ type Database struct { // NewDatabase opens a new database func NewDatabase(dbProperties *config.DatabaseOptions, cache caching.FederationSenderCache) (*Database, error) { + dbProperties.ConnectionString = cosmosdbutil.GetConnectionString(&dbProperties.ConnectionString) var d Database var err error if d.db, err = sqlutil.Open(dbProperties); err != nil { diff --git a/keyserver/storage/cosmosdb/storage.go b/keyserver/storage/cosmosdb/storage.go index ba000cb24..c4a0c0c97 100644 --- a/keyserver/storage/cosmosdb/storage.go +++ b/keyserver/storage/cosmosdb/storage.go @@ -15,12 +15,14 @@ package cosmosdb import ( + "github.com/matrix-org/dendrite/internal/cosmosdbutil" "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/dendrite/keyserver/storage/shared" "github.com/matrix-org/dendrite/setup/config" ) func NewDatabase(dbProperties *config.DatabaseOptions) (*shared.Database, error) { + dbProperties.ConnectionString = cosmosdbutil.GetConnectionString(&dbProperties.ConnectionString) db, err := sqlutil.Open(dbProperties) if err != nil { return nil, err diff --git a/mediaapi/storage/cosmosdb/storage.go b/mediaapi/storage/cosmosdb/storage.go index b05373868..43b2879df 100644 --- a/mediaapi/storage/cosmosdb/storage.go +++ b/mediaapi/storage/cosmosdb/storage.go @@ -16,6 +16,7 @@ package cosmosdb import ( + "github.com/matrix-org/dendrite/internal/cosmosdbutil" "context" "database/sql" @@ -36,6 +37,7 @@ type Database struct { // Open opens a postgres database. func Open(dbProperties *config.DatabaseOptions) (*Database, error) { + dbProperties.ConnectionString = cosmosdbutil.GetConnectionString(&dbProperties.ConnectionString) d := Database{ writer: sqlutil.NewExclusiveWriter(), } diff --git a/roomserver/storage/cosmosdb/storage.go b/roomserver/storage/cosmosdb/storage.go index bb3f6af2e..aa712d07d 100644 --- a/roomserver/storage/cosmosdb/storage.go +++ b/roomserver/storage/cosmosdb/storage.go @@ -16,6 +16,7 @@ package cosmosdb import ( + "github.com/matrix-org/dendrite/internal/cosmosdbutil" "context" "database/sql" @@ -37,6 +38,7 @@ type Database struct { // Open a sqlite database. func Open(dbProperties *config.DatabaseOptions, cache caching.RoomServerCaches) (*Database, error) { + dbProperties.ConnectionString = cosmosdbutil.GetConnectionString(&dbProperties.ConnectionString) var d Database var db *sql.DB var err error diff --git a/setup/kafka/kafka.go b/setup/kafka/kafka.go index a2902c962..431da23b6 100644 --- a/setup/kafka/kafka.go +++ b/setup/kafka/kafka.go @@ -1,6 +1,7 @@ package kafka import ( + "github.com/matrix-org/dendrite/internal/cosmosdbutil" "github.com/Shopify/sarama" "github.com/matrix-org/dendrite/setup/config" "github.com/matrix-org/naffka" @@ -46,6 +47,10 @@ func setupNaffka(cfg *config.Kafka) (sarama.Consumer, sarama.SyncProducer) { if naffkaInstance != nil { return naffkaInstance, naffkaInstance } + if(cfg.Database.ConnectionString.IsCosmosDB()) { + cfg.Database.ConnectionString = cosmosdbutil.GetConnectionString(&cfg.Database.ConnectionString) + } + naffkaDB, err := naffkaStorage.NewDatabase(string(cfg.Database.ConnectionString)) if err != nil { logrus.WithError(err).Panic("Failed to setup naffka database") diff --git a/signingkeyserver/storage/cosmosdb/keydb.go b/signingkeyserver/storage/cosmosdb/keydb.go index 0f4371bce..46c95d88a 100644 --- a/signingkeyserver/storage/cosmosdb/keydb.go +++ b/signingkeyserver/storage/cosmosdb/keydb.go @@ -16,6 +16,7 @@ package cosmosdb import ( + "github.com/matrix-org/dendrite/internal/cosmosdbutil" "context" "golang.org/x/crypto/ed25519" @@ -44,6 +45,7 @@ func NewDatabase( serverKey ed25519.PublicKey, serverKeyID gomatrixserverlib.KeyID, ) (*Database, error) { + dbProperties.ConnectionString = cosmosdbutil.GetConnectionString(&dbProperties.ConnectionString) db, err := sqlutil.Open(dbProperties) if err != nil { return nil, err diff --git a/syncapi/storage/cosmosdb/syncserver.go b/syncapi/storage/cosmosdb/syncserver.go index 7bf1a1387..719c8fdad 100644 --- a/syncapi/storage/cosmosdb/syncserver.go +++ b/syncapi/storage/cosmosdb/syncserver.go @@ -16,6 +16,7 @@ package cosmosdb import ( + "github.com/matrix-org/dendrite/internal/cosmosdbutil" "database/sql" // Import the sqlite3 package @@ -40,6 +41,7 @@ type SyncServerDatasource struct { // NewDatabase creates a new sync server database // nolint: gocyclo func NewDatabase(dbProperties *config.DatabaseOptions) (*SyncServerDatasource, error) { + dbProperties.ConnectionString = cosmosdbutil.GetConnectionString(&dbProperties.ConnectionString) var d SyncServerDatasource var err error if d.db, err = sqlutil.Open(dbProperties); err != nil { diff --git a/userapi/storage/accounts/cosmosdb/storage.go b/userapi/storage/accounts/cosmosdb/storage.go index 0524d499b..2e9f2888d 100644 --- a/userapi/storage/accounts/cosmosdb/storage.go +++ b/userapi/storage/accounts/cosmosdb/storage.go @@ -15,6 +15,7 @@ package cosmosdb import ( + "github.com/matrix-org/dendrite/internal/cosmosdbutil" "context" "database/sql" "encoding/json" @@ -55,6 +56,7 @@ type Database struct { // NewDatabase creates a new accounts and profiles database func NewDatabase(dbProperties *config.DatabaseOptions, serverName gomatrixserverlib.ServerName, bcryptCost int, openIDTokenLifetimeMS int64) (*Database, error) { + dbProperties.ConnectionString = cosmosdbutil.GetConnectionString(&dbProperties.ConnectionString) db, err := sqlutil.Open(dbProperties) if err != nil { return nil, err diff --git a/userapi/storage/devices/cosmosdb/storage.go b/userapi/storage/devices/cosmosdb/storage.go index 338210148..d414e9026 100644 --- a/userapi/storage/devices/cosmosdb/storage.go +++ b/userapi/storage/devices/cosmosdb/storage.go @@ -15,6 +15,7 @@ package cosmosdb import ( + "github.com/matrix-org/dendrite/internal/cosmosdbutil" "context" "crypto/rand" "database/sql" @@ -41,6 +42,7 @@ type Database struct { // NewDatabase creates a new device database func NewDatabase(dbProperties *config.DatabaseOptions, serverName gomatrixserverlib.ServerName) (*Database, error) { + dbProperties.ConnectionString = cosmosdbutil.GetConnectionString(&dbProperties.ConnectionString) db, err := sqlutil.Open(dbProperties) if err != nil { return nil, err