Skip to content

First release TODO #2

Description

@serialuart

This issue serves as a list of tasks that will have to be done before the first release.

API

  • Standardize, implement and document server<->client communications with websockets (standardized in the rewrite)
  • Implement federation (may require some changes to the protocol)
  • Missing endpoints:
    • /api/v1/accounts\invites/by-name endpoints
    • Search endpoints

Authentication

  • Standardize, implement and document authentication (currently looking at OAuth2 with authlib) (Draft: implement OAuth2 #7)
    • Client settings (web interface)
    • Auth tokens for API access
    • New web interface for auth management
  • Write tests

Tests

  • API (2ae65a9)
    • They're terrible. Rewrite, or split up. Rewritten! (02f1ea9)
    • Add more fail cases (Crossing this one off for the sake of focusing on other things)
  • Objects (036d654)
    • Add fail cases to get 100% coverage on objects (c7991f5)
  • Database (96e24a8)
    • Clean up, add fail cases
  • Look into pytest (5da5278, 2ae65a9)
  • Add code coverage checks (826ca4e)
  • Web interface
  • Auth, see Auth section

Documentation

  • Setup for development (6757d4d)
  • Setup for production
  • API response documentation
  • Development documentation

Meta, code quality

  • Add .flake8 file with default flake8 config
  • Add GitHub issue templates (and GitLab issue templates, if we move there)
  • Replace error pings; clean up error handling?

Web

  • Admin UI, update config when instance object is edited
  • Instance about page
  • Design refresh / general project-wide brand identity

Missing features

  • Implement user deletion; my idea is, we give a 15-day time where the account isn't fully deleted, just nulled out (so that we can recover it for example when a hacker removes the account) then redirect all messages with this uses set as an owner to a stub object
  • Proper username validation (Draft: implement OAuth2 #7)

For future consideration

  • Some kind of file attachment API, since we don't want to force users to use external CDNs. Overall client support will probably need a huge protocol update of its own.

Old, finished tasks

Database backends

Objects

  • Add new variable for keys that take IDs, so that it can be used in a function that checks if these IDs exist (things like quoted message IDs or conference user roles) (87e37e6, still needs to handle lists)

Others

  • Implement all existing API methods (as of PR2) (81fa2ce, except for ones that require authentication)
  • Get id_lists working in init_object (0b0afbc)
  • Properly handle dates (7b3655e and some extras)
  • Add unique key value for object classes to prevent multiple accounts/invites with the same name from being created (0e02770)
  • Fix error handling in __patch_object and __post_object functions
  • Report function (make reports objects for easier federation?) (f6d1280)
  • e-mail validation in forms(?) (e98bae4)

Metadata

Metadata

Assignees

No one assigned

    Labels

    APIDiscussions related to server API handling designTODOUI/UXUser interface and user experienceprotocolMay require protocol modifications

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions