mirror of
https://github.com/hoernschen/dendrite.git
synced 2025-07-29 12:42:46 +00:00
Implement key uploads (#1202)
* Add storage layer for postgres/sqlite * Return OTK counts when inserting new keys * Hook up the key DB and make a test pass * Convert postgres queries to be sqlite queries * Blacklist test due to requiring rejected events * Unbreak tests * Update blacklist
This commit is contained in:
parent
b4c07995d6
commit
9dd2ed7f65
30 changed files with 868 additions and 27 deletions
|
@ -174,6 +174,9 @@ type Dendrite struct {
|
|||
// The ServerKey database caches the public keys of remote servers.
|
||||
// It may be accessed by the FederationAPI, the ClientAPI, and the MediaAPI.
|
||||
ServerKey DataSource `yaml:"server_key"`
|
||||
// The E2EKey database stores one-time public keys for devices in addition to
|
||||
// signed device keys. Used for E2E.
|
||||
E2EKey DataSource `yaml:"e2e_key"`
|
||||
// The SyncAPI stores information used by the SyncAPI server.
|
||||
// It is only accessed by the SyncAPI server.
|
||||
SyncAPI DataSource `yaml:"sync_api"`
|
||||
|
@ -602,6 +605,7 @@ func (config *Dendrite) checkDatabase(configErrs *configErrors) {
|
|||
checkNotEmpty(configErrs, "database.sync_api", string(config.Database.SyncAPI))
|
||||
checkNotEmpty(configErrs, "database.room_server", string(config.Database.RoomServer))
|
||||
checkNotEmpty(configErrs, "database.current_state", string(config.Database.CurrentState))
|
||||
checkNotEmpty(configErrs, "database.e2e_key", string(config.Database.E2EKey))
|
||||
}
|
||||
|
||||
// checkListen verifies the parameters listen.* are valid.
|
||||
|
@ -615,6 +619,7 @@ func (config *Dendrite) checkListen(configErrs *configErrors) {
|
|||
checkNotEmpty(configErrs, "listen.server_key_api", string(config.Listen.EDUServer))
|
||||
checkNotEmpty(configErrs, "listen.user_api", string(config.Listen.UserAPI))
|
||||
checkNotEmpty(configErrs, "listen.current_state_server", string(config.Listen.CurrentState))
|
||||
checkNotEmpty(configErrs, "listen.key_server", string(config.Listen.KeyServer))
|
||||
}
|
||||
|
||||
// checkLogging verifies the parameters logging.* are valid.
|
||||
|
|
|
@ -56,6 +56,7 @@ database:
|
|||
room_server: "postgresql:///room_server"
|
||||
appservice: "postgresql:///appservice"
|
||||
current_state: "postgresql:///current_state"
|
||||
e2e_key: "postgresql:///e2e_key"
|
||||
listen:
|
||||
room_server: "localhost:7770"
|
||||
client_api: "localhost:7771"
|
||||
|
@ -66,6 +67,7 @@ listen:
|
|||
edu_server: "localhost:7778"
|
||||
user_api: "localhost:7779"
|
||||
current_state_server: "localhost:7775"
|
||||
key_server: "localhost:7776"
|
||||
logging:
|
||||
- type: "file"
|
||||
level: "info"
|
||||
|
|
|
@ -68,7 +68,7 @@ func (m *Monolith) AddAllPublicRoutes(publicMux *mux.Router) {
|
|||
publicMux, m.Config, m.KafkaProducer, m.DeviceDB, m.AccountDB,
|
||||
m.FedClient, m.RoomserverAPI,
|
||||
m.EDUInternalAPI, m.AppserviceAPI, m.StateAPI, transactions.New(),
|
||||
m.FederationSenderAPI, m.UserAPI, m.ExtPublicRoomsProvider,
|
||||
m.FederationSenderAPI, m.UserAPI, m.KeyAPI, m.ExtPublicRoomsProvider,
|
||||
)
|
||||
federationapi.AddPublicRoutes(
|
||||
publicMux, m.Config, m.UserAPI, m.FedClient,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue