telodendria/TODO.txt
Jordan Bancino f3c4c0ac65 Add a global log configuration.
This is the easiest and cleanest way to get logging into some of the
fundamental APIs, such as the database and TLS APIs. We don't want to
have to pass logging functions to those, but they can safely use the
global logging configuration.
2023-03-22 14:52:04 +00:00

123 lines
3.1 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
[ ] Proper HTTP request router
- Support regex matching
[ ] Move configuration to database
[ ] Initial configuration
[ ] If no config, create one-time use registration token that
grants user admin privileges.
[ ] /_telodendria/admin/config endpoint
[ ] Refactor TelodendriaConfig to just Config (ConfigLock() and ConfigUnlock())
[ ] 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
[ ] Pass TLS certs and keys into HttpServer
[ ] Documentation
[ ] Io
[ ] Stream
[ ] Tls
[ ] HttpClient
[ ] Uri
[ ] td
[ ] tt
[ ] http-debug-server
[ ] tp
[ ] send-patch
[ ] Log
[~] 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.