Skip to main content

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

Metadata

Release files for automatilib 1.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for automatilib 1.2.1
File Size Uploaded
automatilib-1.2.1.tar.gz 7.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for automatilib 1.2.1
File Interpreter ABI Platform
automatilib-1.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 15.2 kB

Release files / automatilib-1.2.1.tar.gz

Download URL automatilib-1.2.1.tar.gz
Size 7.3 kB
Tags Source
SHA-256 checksum
How to use checksums
78523dc7184040f7738f9e775b7e453914e3d3aefe12e3a7a680410e94fbfa58
BLAKE2b-256 checksum
How to use checksums
fc846a25b01af8dcc963168049e23333bdd2a80b54196a9f86f14797b6320dec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.7

Release files / automatilib-1.2.1-py3-none-any.whl

Download URL automatilib-1.2.1-py3-none-any.whl
Size 8.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dac23aa454ea9b9521c5c8a5a4357014faca50e72f685007d2c861ef72d20bcf
BLAKE2b-256 checksum
How to use checksums
44ef9f9be23d9701276ef64cb72127abc0db916e7be9cd06f49e94996b4bb48f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.7

Release history Release notifications | RSS feed

This release

1.2.1 This release

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page