mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-26 16:23:09 -06:00
- Update the Config to use Cosmos for the sync API - Ensure Cosmos DocId does not contain escape chars - Create a shared Cosmos PartitionOffet table and refactor to use it - Hardcode the "nafka" Connstring to use the "file:naffka.db" - Create seq documents for each of the nextXXXID methods |
||
|---|---|---|
| .. | ||
| 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.