Telodendria To-Do List ====================== Key: [ ] Not Started [x] Done [~] In Progress [!] Won't Do Milestone: v0.4.0 ----------------- [~] /_telodendria/admin/config endpoint [ ] Update only certain values [~] Client-Server API [x] 6: Filtering [x] Finish validating filters before saving them. [~] 7: Events [x] Compute size of JSON object in Canonical JSON [x] Rename Sha2.h to just Sha; add Sha1() function [x] Make Sha256() return raw bytes; add function to convert to hex string. [~] 8: Rooms [~] 9: User Data [x] Profiles [~] Directory [ ] Admin API [ ] Registration token endpoints [~] Cytoplasm [~] Debug OpenSSL [x] Database corruption [ ] File descriptor exhaustion [ ] Random memory corruption after many requests. [~] j2s [x] Properly support arrays of primitives. [ ] How to set default value of true on boolean? - defaults probably need to be set at parser level, not enough to set it after. - Or booleans should default to -1 if not specified, let the higher level logic set the default from there. [ ] Write man page. [x] Refactor MatrixErrorCreate() to take a custom message or NULL to use the default. This will make debugging a lot easier. [ ] Use detailed error messages for HTTP 500s at the minimum. Other error messages might also be useful. [x] Make sure admin registration token is printed to log, not stdout. Unless they are the same, of course. [ ] Refactor Config to use j2s. [ ] Refactor other endpoints to use j2s for validating request bodies. [ ] Add parser API to parse the identifier grammers [ ] Use in alias endpoints [ ] Finish RouteRoomAliases [ ] Get from "id" in aliases [ ] Note to check permissions according to spec [ ] Finish RouteAliasDirectory [ ] Add "id" objects when putting aliases [ ] Delete from "id" when deleting alias [ ] Add alias admin privilege to allow admins to manage aliases Milestone: v0.5.0 ----------------- [~] Client-Server API [ ] Modules [ ] Content Repository [ ] HTTP/1.1 support [ ] Content-Length [ ] Keep connections open [ ] Chunked encoding [ ] Refactor Memory API to use mmap(). Milestone: v0.6.0 ----------------- [~] Client-Server API [ ] Modules [ ] Instant Messaging [ ] Voice over IP [ ] Receipts [ ] Fully Read Markers [ ] Send-To-Device Messaging [ ] 10: Security (Rate Limiting) Milestone: v0.7.0 ----------------- [ ] Server-Server API Milestone: v0.8.0 ----------------- [ ] Application Service API Milestone: v0.9.0 ----------------- [ ] Identity Service API Milestone: v1.7.0 ----------------- [ ] Push Gateway API [ ] Room Versions Milestone v1.7.1 ---------------- [ ] Database upgrades/migration path [ ] Create a command line tool to manage Telodendria [ ] User management [ ] Room management [ ] Migrate from Synapse or Dendrite, whichever is more mainstream by the time we get here.