Skip to main content

Automatilib is common django code used by the i.AI team.

Project description

i.AI Shared Code

automatilib is a django package used and developed by the i.AI team within the Cabinet Office. It provides common features used in many of our applications.

Features

  • Timestamped, UUID and base user models
  • Initial migration for above models
  • Logic for authenticating with COLA

Settings

  • LOGIN_REDIRECT_URL - The URL to redirect users to post-login
  • LOGIN_URL - The URL to redirect users to if they are not logged in
  • COLA_COOKIE_NAME - The name of the cookie to check for COLA JWT
  • COLA_COGNITO_CLIENT_ID - The cognito client ID found in AWS
  • COLA_LOGIN_FAILURE - Where the user should be redirected to in the event of authentication failure.
  • AWS_REGION_NAME - The AWS region that the user pool and cognito client live in
  • COLA_COGNITO_USER_POOL_ID - The cognito user pool ID in AWS
  • LOGIN_FAILURE_TEMPLATE_PATH - The path to an error template for authenticating with COLA errors
  • CONTACT_EMAIL - The contact email to be used in the login error template

This is where some of the above can be found:

  • COLA_COOKIE_NAME: In your json settings file for COLA
  • COLA_COOKIE_DOMAIN: is .cabinetoffice.gov.uk by default
  • COLA_COGNITO_CLIENT_ID: In AWS, go to your cognito user pool, then to app integration, then at the bottom you can find your client ID in the table
  • AWS_REGION_NAME: Whichever region in AWS your Cognito pool lives, likely to be eu-west-2
  • COLA_COGNITO_USER_POOL_ID: In AWS, go to your cognito user pool, in the top table called User pool overview, your User pool ID is there
  • COLA_LOGIN_URL: Ask the COLA team for this URL
  • COLA_JWT_REGEX_PATTERN: This is one you can adjust how you want to, the baseline is (?<=:).*(?=\.)
  • COLA_LOGIN_FAILURE - This should be a route in your app, if not specified the user will get a raw 401 plain text message.

To make use of COLA

see the example settings in this repo

Add these into your INSTALLED_APPS settings:

INSTALLED_APPS = [
    "automatilib.core.apps.IdotAIConfig",
    "automatilib.cola.apps.ColaAuthConfig",
    ...
]

Add this into your AUTHENTICATION_BACKEND setting:

AUTHENTICATION_BACKENDS = [
    "automatilib.cola.backend.COLAAuthenticationBackend",
    "django.contrib.auth.backends.ModelBackend",  # This includes the default backend
]

Import and add the following to your url_patterns:

from automatilib.cola.urls import url_patterns as cola_urls
urlpatterns = other_urlpatterns + cola_urls

How to run Tests

DJANGO_SETTINGS_MODULE=example_project.settings pytest --cov cola --cov core --cov-report term-missing --cov-fail-under 80

Licence

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

automatilib-1.2.1.tar.gz (7.3 kB view hashes)

Uploaded Source

Built Distribution

automatilib-1.2.1-py3-none-any.whl (8.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page