forked from Telodendria/Telodendria
Jordan Bancino
f3c4c0ac65
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.
123 lines
3.1 KiB
Text
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.
|