Telodendria/TODO.txt
Jordan Bancino 313249ca88 Fixed some caching bugs in Db.
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.
2023-04-24 15:43:24 +00:00

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.