aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-08-08Bug: Prevent fall-through to verification if code is expired.Frederick Muriuki Muriithi
2024-08-08Get data from form too.Frederick Muriuki Muriithi
2024-08-08Forward email to email verification page.Frederick Muriuki Muriithi
2024-08-07Log out user registration errors at the `ERROR` log-level.Frederick Muriuki Muriithi
2024-08-07Log out exceptions at the `ERROR` log levelFrederick Muriuki Muriithi
Log out any unhandled exceptions at the `ERROR` log level to ensure that any and all unhandled errors show up in the logs under normal running of the application.
2024-08-07Include email text templates.Frederick Muriuki Muriithi
2024-08-05Fix linting errors.Frederick Muriuki Muriithi
2024-08-02docs: update documentation to include wsgi and be more detailed on local set upJohn Nduli
2024-08-02feat: improve local set up utility functionsJohn Nduli
Ensures running `init_dev_users` and `init_dev_clients` multiple times succeeds and updates the local database entry. Also provide a custom flag to set the gn2's client url and add jwt-bearer to list of accepted grants.
2024-08-02fix: use json to support parsing oauth2 requestsJohn Nduli
The local sign in request used by gn2 uses json. However, the default parsing assumes form data, see: - https://github.com/lepture/authlib/blob/v1.2.0/authlib/integrations/flask_oauth2/authorization_server.py#L72 - https://github.com/lepture/authlib/blob/v1.2.0/authlib/integrations/flask_helpers.py#L5 We create a custom Authorization server that defaults to `use_json=True` when creating the oauth request object
2024-08-01Handle generic exception and return a value.enable-key-rotationFrederick Muriuki Muriithi
2024-07-31Add missing image for favicon.icoFrederick Muriuki Muriithi
2024-07-31Update all endpoints to use the `client_secret_post` auth method.Frederick Muriuki Muriithi
2024-07-31Use customised JWTBearerToken classFrederick Muriuki Muriithi
2024-07-31Extend default JWTBearerToken to include a user member.Frederick Muriuki Muriithi
2024-07-31Authenticate JWTs using all available keys.Frederick Muriuki Muriithi
2024-07-31Add endpoint for favicon.icoFrederick Muriuki Muriithi
Helps with silencing NotFound errors in the logs.
2024-07-31Add some debug logging for errors.Frederick Muriuki Muriithi
2024-07-31Setup secrets for test to prevent errors.Frederick Muriuki Muriithi
2024-07-31Bug: Pass in app rather than path.Frederick Muriuki Muriithi
2024-07-31Fetch a client's JWKs from a URIFrederick Muriuki Muriithi
2024-07-31Enable registration of a public-jwks-uri for every clientFrederick Muriuki Muriithi
2024-07-31Fix styling: Use bootstrap styling.Frederick Muriuki Muriithi
2024-07-31Remove the `CLIENTS_SSL_PUBLIC_KEYS_DIR` configurationFrederick Muriuki Muriithi
Moving forward, each client will advertise it's current JWKs at a known endpoint, and we'll use those, rather than having a configuration that requires manual update of the certificates. This will make it easier to implement key rotation on the clients too.
2024-07-31Enable external configuration of session expiry periodFrederick Muriuki Muriithi
Enable passing in the number of minutes that a session can be valid for. This enables the length of time that the session can last to be configurable rather than hard-coded.
2024-07-31Ignore warning from mypy.Frederick Muriuki Muriithi
2024-07-31Validate JWTs against all existing JWKs.Frederick Muriuki Muriithi
2024-07-31Remove obsoleted SSL_PRIVATE_KEY configurationFrederick Muriuki Muriithi
With the key rotation in place, eliminate the use of the SSL_PRIVATE_KEY configuration which pointed to a specific non-changing JWK.
2024-07-31Update datetime references on changed import.Frederick Muriuki Muriithi
2024-07-31Retrieve newest JWK, creating a new JWK where necessary.Frederick Muriuki Muriithi
To help with key rotation, we fetch the latest key, creating a new JWK in any of the following 2 conditions: * There is no JWK in the first place * The "newest" key is older than a specified number of days
2024-07-31Simplify jwks_directory() functionFrederick Muriuki Muriithi
Pass in the app object rather than a path and compute the secrets directory within the function.
2024-07-30JWT refresh: Deactivate the checks and revocationFrederick Muriuki Muriithi
The checks for whether a token is already linked, and then revoking it and raising an error were causing issues in multi-threaded environments, where there'd be multiple requests to the auth server all using an expired token. This just links the refresh token and avoids the check and revocation for the time being.
2024-07-18List any/all existing JWKsFrederick Muriuki Muriithi
List any/all existing JWKs that the server currently supports.
2024-07-18Add module to handle JWK filesFrederick Muriuki Muriithi
2024-07-17Fix linting issuesFrederick Muriuki Muriithi
2024-07-17Add non-interactive script to assign make data public by default.Frederick Muriuki Muriithi
2024-07-17Remove flask CLI commandFrederick Muriuki Muriithi
We run the scripts directly, not via flask.
2024-07-15Rename script.Frederick Muriuki Muriithi
2024-07-15Make only non-human data public automaticallyFrederick Muriuki Muriithi
Ensure that the scripted process of making data automatically public only works for data that is non-human - this is because human data has legal issues with privacy, security and the like. Human data is made public only via a manual process where (a) human(s) get to make a judgement call.
2024-07-12Remove fieldset that breaks UI in google-chrome.Frederick Muriuki Muriithi
2024-06-28Enable logging in script.Frederick Muriuki Muriithi
2024-06-25Roles: Get rid of use of GroupRole; use Role directly for resourcesFrederick Muriuki Muriithi
The GroupRole idea was flawed, and led to a critical bug that would have allowed privilege escalation. This uses the Role directly acting on a specific resource when assigning said role to a user.
2024-06-20Move deactivated tests to module where they will be re-implementedFrederick Muriuki Muriithi
2024-06-20Reorganise test fixtures. Fix tests and issues caught.Frederick Muriuki Muriithi
Reorganise test fixtures to more closely follow the design of the auth system. Fix the broken tests due to refactors and fix all issues caught by the running tests.
2024-06-18Update tests for new paradigmFrederick Muriuki Muriithi
* Create a jwt token generator in place of a static token * Update some fixtures * Skip some tests that will require more work to fix
2024-06-18fix mypy errorsFrederick Muriuki Muriithi
2024-06-17Fix mypy errorsFrederick Muriuki Muriithi
2024-06-17Remove obsolete endpoint.Frederick Muriuki Muriithi
2024-06-17Fix linting errorsFrederick Muriuki Muriithi
2024-06-17Remove deprecated endpoint.Frederick Muriuki Muriithi