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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file automatilib-1.2.1.tar.gz.

File metadata

  • Download URL: automatilib-1.2.1.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for automatilib-1.2.1.tar.gz
Algorithm Hash digest
SHA256 78523dc7184040f7738f9e775b7e453914e3d3aefe12e3a7a680410e94fbfa58
MD5 bd06feaabd153215fb21928e7a6d4de6
BLAKE2b-256 fc846a25b01af8dcc963168049e23333bdd2a80b54196a9f86f14797b6320dec

See more details on using hashes here.

File details

Details for the file automatilib-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: automatilib-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for automatilib-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dac23aa454ea9b9521c5c8a5a4357014faca50e72f685007d2c861ef72d20bcf
MD5 5600f374148999d658130400134e4384
BLAKE2b-256 44ef9f9be23d9701276ef64cb72127abc0db916e7be9cd06f49e94996b4bb48f

See more details on using hashes here.

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