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
 
 
Still loading...
ABCDEFGHIJKLMNOPQRSTUVWXYZAAABAC
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
Client-Server API Endpoints
Work to do (arbitrary units)
Work to do (phase 1)
4
ItemPhasePath
Difficulty
Status(%)
Pre-requisitesNotesAmount doneAmount leftAmount doneAmount left
5
Content Repository API1/_matrix/media/r0/*4100%None.Thumbnailing mustn't be forgotten8080
10
Password Reset1/account/password/*3Core Registration APIs0404
13
Room Creation1/createRoom225%None.Currently bare-bones0.51.50.51.5
15
Room Directory APIs, local alias1/directory/room/{roomAlias}20%None.0202
16
Room Directory APIs, remote alias1/directory/room/{roomAlias}1100%None.1010
17
Room joining local alias, local room.1/join/{roomIDOrAlias}10%Room Directory APICan join by room ID via 'Event state sending API'0101
18
Room joining invite, local room1/join/{roomIDOrAlias}10%0101
19
Room joining invite, remote room1/join/{roomIDOrAlias}425%Hard because we need to add infrastructure for storing invites outside of the main room server database.2626
20
Room joining remote alias, local room
1/join/{roomIDOrAlias}350%2222
21
Room joining remote alias, remote room
1/join/{roomIDOrAlias}3100%4040
24
Core Login API1/login/*295%Core Registration APIsPassword login into an account1.90.11.90.1
27
Logout API1/logout/*2100%Core Registration APIs2020
31
Profile APIs1/profile/{userID}/(displayname|avatar_url)2100%Core Registration APIs2020
32
Profile APIs sending m.room.member
1/profile/{userID}/(displayname|avatar_url)20%Core Registration APIsGnarly as this needs to affect all m.room.member events for the user. Needs to propagate through all processes0202
33
Published room API1/publicRooms (or equiv)4Room Directory APIsKeeping the list up-to-date is tricky!0808
36
Core Registration APIs1/register395%None.Add concept of an 'Account'. Access tokens. Devices. Passwords.3.80.23.80.2
40
Membership APIs1/rooms/{roomID}/(join|kick|ban|unban|leave|invite)1None.These are just syntax sugar for the main membership APIs which are already implemented 0101
44
View Membership APIs1/rooms/{roomID}/members|joined_members2None.0202
45
Pagination API1/rooms/{roomID}/messages4Sync API.Optimisations, backfilling, interactions with Sync Server make this hard. 0808
47
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
49
Event sending API1/rooms/{roomID}/send/{eventType}250%None.Generic impl - needs idempotent PUTs1111
50
Room State API1/rooms/{roomID}/state2?This needs to hit the syncserver or..?0202
51
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
52
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
58
Sync1/sync540%None.Currently bare-bones. Need optimisations. Lots of APIs glue in bits into the /sync response, filtering, etc6.49.66.49.6
60
Account Data1/user/{userID}/account_data2None.0202
61
Filtering1/user/{userID}/filter2Sync API.Impl of filters is easy, but applying them is hard (bundled under the Sync item)0202
64
History Visibility140%Sync API.Interactions with room server make it harder than presence/typing - currently it's all 'shared'0808
65
66
Server-Server API Endpoints
Work to do (arbitrary units)
67
ItemPath
Difficulty
Status(%)
Pre-requisitesNotesAmount doneAmount left
68
Server Key APIs1/_matrix/keys/v2/sever1100%1010
69
Transaction send API, room events1/_matrix/federation/v1/send/{txnID}/3100%4040
74
Outgoing Transactions1/_matrix/federation/v1/send/{txnID}/3100%4040
75
Event lookup API1/_matrix/federation/v1/event/{eventID}/3
Need to ensure that only the servers that should be able to get an event can do so. (Otherwise this should be fairly easy)
0404
76
Missing Event API1/_matrix/federation/v1/get_missing_events/{roomID}3Event lookup APITricky graph queries are needed to lookup the missing events.0404
77
State APIs1/_matrix/federation/v1/state(|_ids)/{roomID}/2Event lookup API0202
78
Make join API1/_matrix/federation/v1/make_join/{roomID}/{userID}210%State APIs0.21.80.21.8
79
Send join API1/_matrix/federation/v1/send_join/{roomID}/{txnID}110%Outgoing Transactions0.10.90.10.9
80
Make leave API1/_matrix/federation/v1/make_leave/{roomID}/{userID}210%State APIs0.21.80.21.8
81
Send leave API1/_matrix/federation/v1/send_leave/{roomID}/{txnID}110%Outgoing Transactions0.10.90.10.9
82
Invite API1/_matrix/federation/v1/invite/{roomID}/{eventID}3Handling invites from remote servers is hard to get right.0404
83
Backfill API1/_matrix/federation/v1/backfill/{roomID}/3Tricky graph queries are needed to lookup the historic events.0404
84
Query room alias API1/_matrix/federation/v1/query/directory110%0.10.90.10.9
85
Query user devices API1/_matrix/federation/v1/query/user_devices10101
86
Query client keys API1/_matrix/federation/v1/query/client_keys10101
87
Query profile API1/_matrix/federation/v1/query/profile10101
91
Transaction pull API1/_matrix/federation/v1/pull/2Outgoing Transactions0202
97
Event Auth API1/_matrix/federation/v1/event_auth/{roomID}/{eventID}1Event lookup API0101
98
Query Auth API1/_matrix/federation/v1/query_auth/{roomID}/{eventID}30404
99
Server version API1/_matrix/federation/v1/version10101
100
101
Other
102
Item
Difficulty
Status(%)
Pre-requisitesNotes
109
1Event Auth5100%The research into this made this hard and take a long time (guessing, will need Mark input)160160
110
1Event Signing5100%The research into this made this hard and take a long time (guessing, will need Mark input)160160
111
1State resolution5100%The research into this made this hard and take a long time (guessing, will need Mark input)160160
112
1Room server skeleton3100%4040
113
1Room server schema3100%4040
114
1Client API skeleton2100%2020
115
1Syncserver skeleton3100%4040
116
1Common app infrastructure (CLI, Kafka, etc)3100%4040
117
118
119
120
121
122
123
Work doneWork leftWork done (P1)Work left (P1)
124
Total:112.8283.2112.8103.2
125
126
127
128
129
Difficulty
Amount of Work (arbitrary units)
130
11
131
22
132
34
133
48
134
516
135
136
137
Phase
Amount of Work (arbitrary units)
Description
138
1216
Minimum viable usable server for powerusers wanting a basic HS that works with Riot
139
298
Non-essential but very useful features: Push, Typing, Tagging, RRs, VoIP, E2E APIs
140
339
"Convenience" features: 3PIDs, Search & Context, Admin APIs
141
434
ASes (because we can limp along for a while yet with ASes being hosted by synapse); exotic auth mechanisms
142
59
Full parity with synapse (just URL previews?)
143
144
145
146
147
148
149
150
Loading...
 
 
 
Sheet1