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:Rich vdH, Erik, and...
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 forgotten160160
7
URL Preview API5/_matrix/media/r0/url_preview30%Content Repository API
Extracting useful previews from untrusted HTML is hard, allowing arbitrary outbound HTTP access is hard to do securely.
0400
8
Device API2/(devices|delete_devices)350%None.https://github.com/matrix-org/dendrite/issues/4632200
9
3PID tokens3/account/3pid/*Brendan3100%?4000
10
Account Deactivation2/account/deactivate2?0200
11
Password Reset1/account/password/*3Core Registration APIsStill blocked on Core Reg APIs? I think we have concept of an account now.0404
12
Admin APIs3/admin/*3?0400
13
Auth Fallback4/auth/*/fallback3?0400
14
Room Creation1/createRoom225%None.Currently bare-bones0.51.50.51.5
15
AS Room Directory APIs4/directory/list/appservice/{networkID}/{roomID}3AS API0400
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.160160
21
Room joining remote alias, local room1/join/{roomIDOrAlias}3100%4040
22
Room joining remote alias, remote room
1/join/{roomIDOrAlias}3100%4040
23
Joined Rooms API (AS)4/joined_rooms2?0200
24
Device Keys2/keys/*3Device API0400
25
Password-based Login API1/login/*2100%Core Registration APIsPassword login works.2020
26
Riot/Other Login APIs2/login/*35%Email / MSISDN / Token login into an account. Token: https://github.com/matrix-org/dendrite/issues/4640.23.800
27
Esoteric Login APIs4/login/*3SAML2 / CAS / JWT0400
28
Logout API1/logout/*250%Core Registration APIsDoesn't work and requires /logout/all1111
29
Notifications2/notifications3Push API0400
30
Open ID4/openid/request_token2?0200
31
Presence APIs4/presence/*3None.Skip presence lists for now?0400
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!160160
35
Pushers API2/pushers/*4?Need to check these on relevant events in an efficient way. Read counts need to reach sync server.01600
36
Push Rules API2/pushrules/*4?Need to check these on relevant events in an efficient way. Read counts need to reach sync server.01600
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 msisdn1600
39
Esoteric Registration APIs4/register3SAML, LDAP, shared secret400
40
Available Username API4/register/available1100
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
42
Room Context API3/rooms/{roomID}/context/{eventID}4Sync API.Interactions with /sync and /messages make this hard. Probably needs to live on the sync server for ordering info01600
43
Forget room API3/rooms/{roomID}/forget2?0200
44
Third-Party Invite API3/rooms/{roomID}/inviteBrendan3100%?This was punted on the event auth logic. Needs to be added - currently panics4000
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. 016016
48
Read Markers3/rooms/{roomID}/read_markers3Receipts0400
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
50
Report an Event3/rooms/{roomID}/report/{eventID}2?0200
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}350%None.2200
58
Receipts2/rooms/{roomID/receipt/{receiptType}/{eventID}4?Interactions with room server make it harder than presence/typing01600
59
Room Search API3/search3?Optimisations, honouring CURRENT room membership, etc make this hard0400
60
Send-to-Device2/sendToDevice/*4Device APIBasically is message sending/receiving all over again01600
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
67
3PID lookup3/thirdparty/*2?0200
68
Account Data1/user/{userID}/account_data2100%None.2020
69
Filtering1/user/{userID}/filter2100%Sync API.Impl of filters is easy, but applying them is hard (bundled under the Sync item)2020
70
Version API5/versions1?0100
71
TURN Server APIs2/voip/turnServer1100%?https://github.com/matrix-org/dendrite/issues/2791000
72
History Visibility140%Sync API.Interactions with room server make it harder than presence/typing - currently it's all 'shared'016016
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
Who Am I1AP1100%AS support in C-S APIhttps://github.com/matrix-org/dendrite/pull/434
77
78
Server-Server API Endpoints
Work to do (arbitrary units)
79
ItemPhasePathWho?
Difficulty
Status(%)
Pre-requisitesNotesAmount doneAmount left
80
Server Key APIs1/_matrix/keys/v2/sever1100%1010
81
Transaction send API, room events1/_matrix/federation/v1/send/{txnID}/3100%4040
82
Transaction send API, typing events2/_matrix/federation/v1/send/{txnID}/20200
83
Transaction send API, receipt events2/_matrix/federation/v1/send/{txnID}/20200
84
Transaction send API, presence events2/_matrix/federation/v1/send/{txnID}/20200
85
Transaction send API, device events2/_matrix/federation/v1/send/{txnID}/20200
86
Outgoing Transactions1/_matrix/federation/v1/send/{txnID}/3100%4040
87
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
88
Missing Event API1/_matrix/federation/v1/get_missing_events/{roomID}3100%Event lookup APITricky graph queries are needed to lookup the missing events.4040
89
State APIs1/_matrix/federation/v1/state(|_ids)/{roomID}/2100%Event lookup API2020
90
Make join API1/_matrix/federation/v1/make_join/{roomID}/{userID}2100%State APIs2020
91
Send join API1/_matrix/federation/v1/send_join/{roomID}/{txnID}1100%Outgoing Transactions1010
92
Make leave API1/_matrix/federation/v1/make_leave/{roomID}/{userID}2100%State APIs2020
93
Send leave API1/_matrix/federation/v1/send_leave/{roomID}/{txnID}1100%Outgoing Transactions1010
94
Invite API1/_matrix/federation/v1/invite/{roomID}/{eventID}M3100%Handling invites from remote servers is hard to get right.4040
95
Backfill API1/_matrix/federation/v1/backfill/{roomID}/Brendan390%
Current implementation uses BFS to scan the event tree, might not be the most efficient solution. See https://github.com/matrix-org/dendrite/issues/586
3.60.43.60.4
96
Query room alias API1/_matrix/federation/v1/query/directory1100%https://github.com/matrix-org/dendrite/issues/2771010
97
Query user devices API1/_matrix/federation/v1/query/user_devices10DeviceAPIThis should be user devices API.0101
98
Query client keys API1/_matrix/federation/v1/query/client_keys10101
99
Query profile API1/_matrix/federation/v1/query/profile1100%https://github.com/matrix-org/dendrite/issues/2781010
100
User devices API2/_matrix/federation/v1/user/devices1100%DeviceAPI1000
Loading...
Main menu