mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-26 16:23:09 -06:00
* - Implement Cosmos for the devices_table - Use the ConnectionString in the YAML to include the Tenant - Revert all other non implemented tables back to use SQLLite3 * - Change the Config to use "test.criticicalarc.com" Container - Add generic function GetDocumentOrNil to standardize GetDocument - Add func to return CrossPartition queries for Aggregates - Add func GetNextSequence() as generic seq generator for AutoIncrement - Add cosmosdbutil.ErrNoRows to return (emulate) sql.ErrNoRows - Add a "fake" ExclusiveWriterFake - Add standard "getXX", "setXX" and "queryXX" to all TABLE class files - Add specific Table SEQ for the Events table - Add specific Table SEQ for the Rooms table - Add specific Table SEQ for the StateSnapshot table * - Use CosmosDB for the KeyServer - Replace the ConnString in the YAML to Cosmos - Update the 4 tables to use Cosmos |
||
|---|---|---|
| .. | ||
| api | ||
| internal | ||
| inthttp | ||
| producers | ||
| storage | ||
| keyserver.go | ||
| README.md | ||
Key Server
This is an internal component which manages E2E keys from clients. It handles all the Key Management APIs with the exception of /keys/changes which is handled by Sync API. This component is designed to shard by user ID.
Keys are uploaded and stored in this component, and key changes are emitted to a Kafka topic for downstream components such as Sync API.
Internal APIs
PerformUploadKeysstores identity keys and one-time public keys for given user(s).PerformClaimKeysacquires one-time public keys for given user(s). This may involve outbound federation calls.QueryKeysreturns identity keys for given user(s). This may involve outbound federation calls. This component may then cache federated identity keys to avoid repeatedly hitting remote servers.- A topic which emits identity keys every time there is a change (addition or deletion).
### Endpoint mappings
- Client API maps
/keys/uploadtoPerformUploadKeys. - Client API maps
/keys/querytoQueryKeys. - Client API maps
/keys/claimtoPerformClaimKeys. - Federation API maps
/user/keys/querytoQueryKeys. - Federation API maps
/user/keys/claimtoPerformClaimKeys. - Sync API maps
/keys/changesto consuming from the Kafka topic.