Final Report
It's the end of Google Summer of Code, and I've achieved what I set out to do! I want to say a big thank you to my mentors anoa, Nico and red_sky for the help they have given, and to the others in the community who have made suggestions for or comments on this project. I've learnt a lot in the past couple months, like how to work on big codebases within a big ecosystem, why unit tests can be useful, a bit of C++, and how to be on Matrix Live :-)
Links to all the work I've done are below, but in summary:
- I wrote a Matrix Spec Change (MSC) proposal for token authenticated registration
- I implemented the MSC in Synapse, the (currently) most used Matrix homeserver
- I implemented the MSC in Nheko, a popular cross-platform Matrix client
Of course, there are still a few things to do:
- Displaying a message to the user when they enter an invalid registration token in Nheko
- Tests for Nheko once the Synapse code is merged
- Pagination of the
GET /_synapse/admin/v1/registration_tokens
endpoint in Synapse - Tests in Complement
- Getting the MSC merged
- And supporting registration tokens in more clients! (and servers)
Contributions
Before the start of the coding period I worked on a couple of good first issues for Synapse and Nheko in order to get a feel for the codebases and workflows.
- Make reason and score optional for report_event (Synapse)
- Registration well known (Nheko)
- MSC3231: Token authenticated registration (Matrix specification)
- Implement MSC3231: Token authenticated registration (Synapse)
- Display an error during failure of fallback UIA (Synapse)
- Reorganise src/RegisterPage.cpp (Nheko)
- Support registration token UIA type (mtxclient)
- Support token authenticated registration (Nheko)
- Support registration token validity checking (mtxclient)
How to try it
None of the code has been released yet, so you'll need to get the latest
sources of each project.
The Synapse implementation is released in v1.42.0, but for Nheko you will need
to get the latest source:
git clone https://github.com/Nheko-Reborn/nheko.gitand follow the installation instructions using the bundled mtxclient.
<- Back to index