Dendrite Checklist (for Synapse parity)
 Share
The version of the browser you are using is no longer supported. Please upgrade to a supported browser.Dismiss

 
View only
 
 
ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACAD
1
Notes: Difficulty is 1-5 (1=easy, 5=hard). If item is 4 or 5, it MUST be justified in the notes why it is hard. Status is % completed (0-100). Pre-requisites indicates a dependency on another item which isn't ready yet.
2
3
Our cast:
Mark, Kegan, Brendan, Rich vdH, Erik, (((Rob))), (=0=)
4
Client-Server API Endpoints
Work to do (arbitrary units)
Work to do (phase 1)
5
ItemPhasePathWho?
Difficulty
Status(%)
Pre-requisitesNotesAmount doneAmount leftAmount doneAmount left
6
Content Repository API1/_matrix/media/r0/*4100%None.Thumbnailing mustn't be forgotten8080
8
Device API2/(devices|delete_devices)3?https://github.com/matrix-org/dendrite/issues/2800400
10
Account Deactivation2/account/deactivate2?0200
11
Password Reset1/account/password/*3Core Registration APIs0404
14
Room Creation1/createRoom225%None.Currently bare-bones0.51.50.51.5
16
Room Directory APIs, local alias1/directory/room/{roomAlias}2100%None.2020
17
Room Directory APIs, remote alias1/directory/room/{roomAlias}1100%None.1010
18
Room joining local alias, local room.1/join/{roomIDOrAlias}1100%Room Directory APICan join by room ID via 'Event state sending API'1010
19
Room joining invite, local room1/join/{roomIDOrAlias}M1100%1010
20
Room joining invite, remote room1/join/{roomIDOrAlias}M4100%Hard because we need to add infrastructure for storing invites outside of the main room server database.8080
21
Room joining remote alias, local room1/join/{roomIDOrAlias}3100%4040
22
Room joining remote alias, remote room
1/join/{roomIDOrAlias}3100%4040
24
Device Keys2/keys/*3Device API
Is this API still in flux on Synapse? (No, we think it's finalised now, and from reviewing it t'other day it looks good --Matthew)
0400
25
Core Login API1/login/*295%Core Registration APIsPassword login into an account1.90.11.90.1
26
Riot Login APIs2/login/*3Email / MSISDN login into an account0400
28
Logout API1/logout/*250%Core Registration APIsDoesn't work and requires /logout/all1111
29
Notifications2/notifications3Push API0400
32
Profile APIs1/profile/{userID}/(displayname|avatar_url)2100%Core Registration APIs2020
33
Profile APIs sending m.room.member1/profile/{userID}/(displayname|avatar_url)2100%Core Registration APIsGnarly as this needs to affect all m.room.member events for the user. Needs to propagate through all processes2020
34
Published room API1/publicRooms (or equiv)Brendan4100%Room Directory APIsKeeping the list up-to-date is tricky!8080
35
Pushers API2/pushers/*4?Need to check these on relevant events in an efficient way. Read counts need to reach sync server.0800
36
Push Rules API2/pushrules/*4?Need to check these on relevant events in an efficient way. Read counts need to reach sync server.0800
37
Core Registration APIs1/register395%None.Add concept of an 'Account'. Access tokens. Devices. Passwords. (Missing tests)3.80.23.80.2
38
Riot Registration APIs2/register4captcha, email and msisdn800
41
Membership APIs1/rooms/{roomID}/(join|kick|ban|unban|leave|invite)Brendan1100%None.These are just syntax sugar for the main membership APIs which are already implemented 1010
45
View Membership APIs1/rooms/{roomID}/members|joined_membersBrendan2100%None.2020
46
View Membership APIs for users who left
1/rooms/{roomID}/members|joined_membersBrendan2100%None.2020
47
Pagination API1/rooms/{roomID}/messages4Sync API.Optimisations, backfilling, interactions with Sync Server make this hard. 0808
49
Redaction API1/rooms/{roomID}/redact/{eventID}3?Making sure ALL processes load the redacted event is fiddly as it touches a lot of things.0404
51
Event sending API1/rooms/{roomID}/send/{eventType}Brendan2100%None.Generic impl - needs idempotent PUTs2020
52
Event sending API1/rooms/{roomID}/send/{eventType}/{txnID}vdh20%None.Generic impl - needs idempotent PUTs0202
53
Room State API1/rooms/{roomID}/stateBrendan2100%?This needs to hit the syncserver or..?2020
54
Event state sending API1/rooms/{roomID}/state/{eventType}/{stateKey}275%None.Generic impl - invites need special casing. https://github.com/matrix-org/gomatrixserverlib/pull/371.50.51.50.5
55
Room Peek API, stub1/rooms/{roomID}/initialSync1100%None.This is just a stub to allow Riot Web to join the room without it trying to peek into the room.1010
56
Room Tagging2/rooms/{roomID}/tags3None.0400
57
Typing API2/rooms/{roomID}/typing/{userID}3None.0400
58
Receipts2/rooms/{roomID/receipt/{receiptType}/{eventID}4?Interactions with room server make it harder than presence/typing0800
60
Send-to-Device2/sendToDevice/*4Device APIBasically is message sending/receiving all over again0800
61
Sync messages and state1/sync3100%None.Currently bare-bones. Need optimisations. Lots of APIs glue in bits into the /sync response, filtering, etc4040
62
Sync history visibility1/sync30%None.Currently bare-bones. Need optimisations. Lots of APIs glue in bits into the /sync response, filtering, etc0404
63
Sync account data1/sync2100%None.Currently bare-bones. Need optimisations. Lots of APIs glue in bits into the /sync response, filtering, etc2020
64
Sync invites1/syncM3100%None.Currently bare-bones. Need optimisations. Lots of APIs glue in bits into the /sync response, filtering, etc4040
65
Sync invites federation edge cases (#252)
1/sync20202
66
Sync filtering1/sync20%None.Currently bare-bones. Need optimisations. Lots of APIs glue in bits into the /sync response, filtering, etc0202
68
Account Data1/user/{userID}/account_data2100%None.2020
69
Filtering1/user/{userID}/filter2Sync API.Impl of filters is easy, but applying them is hard (bundled under the Sync item)0202
71
TURN Server APIs2/voip/turnServer1?https://github.com/matrix-org/dendrite/issues/2790100
72
History Visibility140%Sync API.Interactions with room server make it harder than presence/typing - currently it's all 'shared'0808
73
Make sytest run Dendrite1vdH2100%
74
Dendrite Monolith Server1M2100%
75
Event auth for Third-Party Invites1Brendan3100%Cargocult the auth checks including validating the crypto on the 3PID invites from Synapse
76
77
Server-Server API Endpoints
Work to do (arbitrary units)
78
ItemPathWho?
Difficulty
Status(%)
Pre-requisitesNotesAmount doneAmount left
79
Server Key APIs1/_matrix/keys/v2/sever1100%1010
80
Transaction send API, room events1/_matrix/federation/v1/send/{txnID}/3100%4040
81
Transaction send API, typing events2/_matrix/federation/v1/send/{txnID}/20200
82
Transaction send API, receipt events2/_matrix/federation/v1/send/{txnID}/20200
83
Transaction send API, presence events2/_matrix/federation/v1/send/{txnID}/20200
84
Transaction send API, device events2/_matrix/federation/v1/send/{txnID}/20200
85
Outgoing Transactions1/_matrix/federation/v1/send/{txnID}/3100%4040
86
Event lookup API1/_matrix/federation/v1/event/{eventID}/3100%
Need to ensure that only the servers that should be able to get an event can do so. (Otherwise this should be fairly easy)
4040
87
Missing Event API1/_matrix/federation/v1/get_missing_events/{roomID}3Event lookup APITricky graph queries are needed to lookup the missing events.0404
88
State APIs1/_matrix/federation/v1/state(|_ids)/{roomID}/2Event lookup API0202
89
Make join API1/_matrix/federation/v1/make_join/{roomID}/{userID}210%State APIs0.21.80.21.8
90
Send join API1/_matrix/federation/v1/send_join/{roomID}/{txnID}110%Outgoing Transactions0.10.90.10.9
91
Make leave API1/_matrix/federation/v1/make_leave/{roomID}/{userID}210%State APIs0.21.80.21.8
92
Send leave API1/_matrix/federation/v1/send_leave/{roomID}/{txnID}110%Outgoing Transactions0.10.90.10.9
93
Invite API1/_matrix/federation/v1/invite/{roomID}/{eventID}M3100%Handling invites from remote servers is hard to get right.4040
94
Backfill API1/_matrix/federation/v1/backfill/{roomID}/3Tricky graph queries are needed to lookup the historic events.0404
95
Query room alias API1/_matrix/federation/v1/query/directory110%https://github.com/matrix-org/dendrite/issues/2770.10.90.10.9
96
Query user devices API1/_matrix/federation/v1/query/user_devices1DeviceAPI0101
97
Query client keys API1/_matrix/federation/v1/query/client_keys10101
98
Query profile API1/_matrix/federation/v1/query/profile1https://github.com/matrix-org/dendrite/issues/2780101
99
User devices API2/_matrix/federation/v1/user/devices1DeviceAPI0100
100
E2E key lookup API2/_matrix/federation/v1/user/keys/claim1Device Keys0100
101
E2E key claim API2/_matrix/federation/v1/user/keys/query1Device Keys0100
102
Transaction pull API1/_matrix/federation/v1/pull/2Outgoing Transactions0202
103
Outbound Ratelimiting2*20200
104
Inbound Ratelimiting2*20200
108
Event Auth API1/_matrix/federation/v1/event_auth/{roomID}/{eventID}1Event lookup API0101
109
Query Auth API1/_matrix/federation/v1/query_auth/{roomID}/{eventID}30404
110
Server version API1/_matrix/federation/v1/version10101
111
112
Other
113
Item
Difficulty
Status(%)
Pre-requisitesNotes
114
2Push APIs (Sygnal?)40800
116
2Rate-Limiting30400
119
2Email notification API3Riot email notifications0400
120
1Event Auth5100%The research into this made this hard and take a long time (guessing, will need Mark input)160160
121
1Event Signing5100%The research into this made this hard and take a long time (guessing, will need Mark input)160160
122
1State resolution5100%The research into this made this hard and take a long time (guessing, will need Mark input)160160
123
1Room server skeleton3100%4040
124
1Room server schema3100%4040
125
1Client API skeleton2100%2020
Loading...
 
 
 
Sheet1