Telodendria/TODO.txt

164 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.
[~] 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.
[~] User-Interactive fallback
[~] Password
[~] 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.