1. 31 Dec, 2019 2 commits
  2. 04 Dec, 2019 1 commit
  3. 28 Nov, 2019 1 commit
  4. 26 Nov, 2019 2 commits
  5. 24 Nov, 2019 1 commit
    • HacKan's avatar
      Upgrade Python version and packages · 123120b2
      HacKan authored
      Improve Dockerfile by pinning OS packages version and makeing it more
      generic. Implement a build argument for tests (which currently don't
      exist).
      
      Upgrade Poetry (its requirements file) to v1.0.0b3 and Gunicorn to v20
      (including necessary OS packages in Dockerfile).
      
      Improve pipeline by installing the many flake8 plugins using poetry and
      also going into backend subdir first (to make use of specific dot
      files)
      123120b2
  6. 10 Oct, 2019 1 commit
  7. 06 Oct, 2019 2 commits
    • HacKan's avatar
      Bump version 0.3.0 · 8b72d993
      HacKan authored
      8b72d993
    • Erus's avatar
      Improve project readmes · f3bd1f72
      Erus authored
      The registration flow details was improved and a description for
      development was added.
      Some typos was fixed and repeated information was removed.
      
      closes #4
      f3bd1f72
  8. 05 Oct, 2019 3 commits
    • HacKan's avatar
      Properly use build argument for app version in Dockerfile · d284e072
      HacKan authored
      This commit removes default value for Dockerfile arg `APP_VERSION` so
      that builders know they need to pass it the app version value.
      Additionally, it modifies the build task to reflect this and also to
      automatically tag with "latest".
      Finally, fix the repo URL which was pointing to the old address and bump
      the Dockerfile version.
      d284e072
    • Erus's avatar
      Fix diagrams with new registration flow · 5104156f
      Erus authored
      Add new diagrams for delete registration request (users only).
      Modify readme with updated diagrams.
      
      closes #3
      5104156f
    • HacKan's avatar
      Return retry-after header when rate limit hits · e1cd1b28
      HacKan authored
      Additionally, change sample Nginx file to set the error code to 429 (Too
      Many Requests) instead of its default 503 (Service Unavailable).
      
      BREAKING CHANGE: The RateLimit method `get_expiration_time` has been
      renamed to `compute_expiration_time` which is more clear and that name
      has been used for the method that returns the expiration time for an
      identifier.
      e1cd1b28
  9. 03 Oct, 2019 1 commit
  10. 02 Oct, 2019 2 commits
  11. 01 Oct, 2019 6 commits
  12. 30 Sep, 2019 5 commits
  13. 29 Sep, 2019 1 commit
    • Erus's avatar
      Refactor structure and implement background tasks · 9f5d27c9
      Erus authored
      Change the application flow: users create a new registration request,
      optionally sending an email for notifications; then managers approve
      or reject and if approved the user sends the wanted Matrix account
      username, thus the account is created (with a randomly generated
      password). Since the user has not sent username nor password, encryption
      is not needed because no data is stored.
      
      Only users can now delete their registration request.
      
      Move the FastAPI application to backend subdirectory (frontend will
      come soon). Split FastAPI application definition into files inside an
      app module, create a configuration module, add auto discovery of API
      routes (no need to manually add them to the app). Implement settings
      check to verify that all required settings are set. Properly document
      settings in its file and in a sample environment file for Docker. The
      CRUD was greatly improved by efficiently handle objects and being more
      flexible. The API authentication was custom and is now implemented with
      BasicAuth. Create a new development mode and a fake Matrix API that
      makes it easy for the developers to try the app and add new features.
      The code quality and performance was greatly improved.
      
      Email notifications and Matrix account registration are implemented as
      background tasks which provides immediate response w/o bottlenecks.
      
      Create a neat Dockerfile with stages to achieve the smallest image size
      w/o loosing security nor reproducibility of the builds.
      
      Add an invoke tasks file with several convenient task such as easily
      start and run the app, spawning a redis and a smtp server and so on.
      
      Create a deploy subdirectory with the required files.
      
      Split the readme between one with information for the backend and other
      with general information and deploy instructions.
      9f5d27c9
  14. 22 Sep, 2019 3 commits
    • HacKan's avatar
      Implement a crypto module and encrypt user password · 03c07458
      HacKan authored
      Generate user password at creation phase, and store it encrypted with
      the user token.
      Create a specific class to hash tokens implementing Argon2 (this was
      already happening but I moved to logic to the crypto module).
      03c07458
    • HacKan's avatar
      Remove dataclass module in favor of a shorter method · 16814dfb
      HacKan authored
      I copied the whole `asdict` function from `dataclass` just to be able to
      skip unpickable objects, which was a very brute approach. Instead, I
      created a simple smaller method that simply allows exclusion of given
      fields.
      16814dfb
    • HacKan's avatar
      Initiate Yog Sothoth project · 48f4438f
      HacKan authored
      Create a small API app using FastAPI to be a front for Matrix/Synapse
      homeservers and allow user registration with approvals.
      
      This commit is not a fully functional app but barely an API that works
      and correctly interacts with a Redis cache, nothing else.
      48f4438f
  15. 19 Sep, 2019 1 commit