Telodendria To-Do List ====================== Key: [ ] Not Started [x] Done [~] In Progress [!] Won't Do Milestone: v0.3.0 ----------------- [x] Stream API [x] Implementation [x] Convert all code that deals with I/O [!] Multi-output (proof of concept) [!] Memory streams (proof of concept) [x] TLS [!] SOCKS [x] Move/convert UtilStreamCopy() [x] HTTP Client API [x] Document HttpParseHeaders() [x] Test on other platforms [x] Option to pretty-print Json [x] Document JsonEncode() and JsonEncodeValue() [x] Document Telodendria and Main [x] Simple command line tool to make matrix requests [x] Built on HTTP client API [x] http man page [x] Simple command line tool for working with JSON [x] Pretty-print Json [x] Query fields for use in shell scripts. [x] Encode user-provided JSON strings [x] json man page [x] Global log object - So we don't have to pass LogConfig around everywhere - Also allows debug and error logging in other APIs [x] Make 'listen' directive in config an array of objects - Each object has port, threads, maxConnections - If tls is given, it can be null, false, or an object with cert and key [x] Pass TLS certs and keys into HttpServer [ ] Move configuration to database [ ] Initial configuration [ ] If no config, create one-time use registration token that grants user admin privileges. [ ] /_telodendria/admin/config endpoint [x] Refactor TelodendriaConfig to just Config [ ] Proper HTTP request router - Support regex matching [ ] Documentation [ ] Array [ ] Io [ ] Stream [ ] Tls [ ] HttpClient [ ] Uri [ ] td [ ] tt [ ] http-debug-server [ ] tp [ ] send-patch [ ] Log [ ] TelodendriaConfig -> Config [~] Client-Server API [x] 4: Token-based user registration [x] Implement user-interactive auth flow [x] Token validity endpoint [x] Add m.login.registration_token to registration endpoint flow - Ensure that registration tokens can be used even if registration is disabled. [~] 4: Account management [~] Deactivate [x] Make sure UserLogin() fails if user is deactivated. [ ] Change password [x] Whoami [ ] 9: User Data [ ] 5: Capabilities negotiation [ ] 10: Security (Rate Limiting) Milestone: v0.4.0 ----------------- [ ] Client-Server API [ ] 6: Filtering [ ] 7: Events [ ] 8: Rooms Milestone: v0.5.0 ----------------- [~] Client-Server API [ ] Modules [ ] Content Repository Milestone: v1.0.0 ----------------- [~] Client-Server API [ ] Modules [ ] Instant Messaging [ ] Voice over IP [ ] Receipts [ ] Fully Read Markers [ ] Send-To-Device Messaging [ ] Server-Server API [ ] Application Service API [ ] Identity Service API [ ] Push Gateway API [ ] Room Versions Milestone v1.1.0 ---------------- [ ] 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.