mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-06 14:33:10 -06:00
This changes the detection of already executed migrations for the roomserver state block and keychange refactor. It now uses schema tables provided by the database engine to check if the column was already removed. We now also store the migration in the migrations table. This should stop e.g. Postgres from logging errors like `ERROR: column "event_nid" does not exist at character 8`. |
||
|---|---|---|
| .. | ||
| api | ||
| consumers | ||
| internal | ||
| inthttp | ||
| producers | ||
| storage | ||
| types | ||
| 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.