forked from Telodendria/Telodendria
Jordan Bancino
313249ca88
Note that Db has the potential to deadlock when caching is being used, and when caching isn't being used, an inconsistent state can occur. Future changes to Db will fix both of these issues.
167 lines
4 KiB
Text
167 lines
4 KiB
Text
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
|
|
[x] Debug OpenSSL
|
|
[x] Replace all usages of curl with http
|
|
[x] Proper HTTP request router
|
|
[x] Support regex matching
|
|
[x] Replace current routing system
|
|
[x] Add route for requestToken endpoints
|
|
[x] Move TelodendriaBuildRouter() to Routes
|
|
|
|
[~] Move configuration to database
|
|
[x] Token permissions
|
|
[x] Initial configuration
|
|
[x] If no config, create one-time use registration token that
|
|
grants user admin privileges.
|
|
[~] /_telodendria/admin/config endpoint
|
|
[x] JsonDuplicate()
|
|
[x] Refactor TelodendriaConfig to just Config
|
|
|
|
[ ] Documentation
|
|
[ ] Array
|
|
[ ] Io
|
|
[ ] Stream
|
|
[ ] Tls
|
|
[ ] HttpClient
|
|
[ ] Uri
|
|
[ ] td
|
|
[ ] tt
|
|
[ ] http-debug-server
|
|
[ ] tp
|
|
[ ] send-patch
|
|
[ ] Log
|
|
[ ] TelodendriaConfig -> Config
|
|
[ ] HashMap
|
|
[ ] HttpRouter
|
|
[ ] Str
|
|
[x] telodendria-admin
|
|
[x] telodendria-setup
|
|
[x] telodendria-config
|
|
[ ] Refactor dev pages so function description and
|
|
return value are in the same location.
|
|
|
|
[ ] Debug memory leaks with caching
|
|
[ ] Debug OpenSSL
|
|
|
|
[~] 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.
|
|
[x] User-Interactive fallback
|
|
[x] Password
|
|
[x] Registration token
|
|
[~] 4: Account management
|
|
[~] Deactivate
|
|
[x] Make sure UserLogin() fails if user is deactivated.
|
|
[x] Change password
|
|
[~] Whoami
|
|
[ ] Attach device id to user object
|
|
[ ] Use UserAuthenticate()
|
|
[~] 9: User Data
|
|
[ ] 5: Capabilities negotiation
|
|
[ ] 10: Security (Rate Limiting)
|
|
|
|
Milestone: v0.4.0
|
|
-----------------
|
|
|
|
[ ] HTTP/1.1 support
|
|
|
|
[ ] Client-Server API
|
|
[ ] 6: Filtering
|
|
[ ] 7: Events
|
|
[ ] 8: Rooms
|
|
|
|
Milestone: v0.5.0
|
|
-----------------
|
|
|
|
[~] Client-Server API
|
|
[ ] Modules
|
|
[ ] Content Repository
|
|
|
|
Milestone: v0.6.0
|
|
-----------------
|
|
|
|
[~] Client-Server API
|
|
[ ] Modules
|
|
[ ] Instant Messaging
|
|
[ ] Voice over IP
|
|
[ ] Receipts
|
|
[ ] Fully Read Markers
|
|
[ ] Send-To-Device Messaging
|
|
|
|
Milestone: v0.7.0
|
|
-----------------
|
|
|
|
[ ] Server-Server API
|
|
|
|
Milestone: v0.8.0
|
|
-----------------
|
|
|
|
[ ] Application Service API
|
|
|
|
Milestone: v0.9.0
|
|
-----------------
|
|
|
|
[ ] Identity Service API
|
|
|
|
Milestone: v1.0.0
|
|
-----------------
|
|
|
|
[ ] 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.
|