This repo contains the backend code and infrastructure for the Authentication and Orchestration components for GOV.UK One Login.
High level sequence diagrams outlining different journeys can be found in Diagrams.
Documentation for the Orchestration component can be found in the Orchestration README.
To run the unit test in this repo, run the following command:
./gradlew --parallel test jacocoTestReport -x integration-tests:test -x account-management-integration-tests:test -x delivery-receipts-integration-tests:testTo run the integration tests in this repo, you can run the following command
./gradlew integration-tests:testIf the tests aren't running in account-management-integration-tests refer to the Local Running README and make sure
you have the correct repositories up to date.
The alarm-management.sh script provides utilities for managing CloudWatch alarms and SNS subscriptions. It allows you to test alarm functionality, manage SNS topic subscriptions, and verify alarm configurations across different environments. The script supports operations like triggering test alarms, subscribing/unsubscribing from SNS topics, and validating alarm states.
./scripts/test/alarm-management.shThe repo has config set up for a custom pre-commit hook in .pre-commit-config.yaml.
Pre-commit checks include applying formatting, so after the script has run you may see files updated with formatting changes.
To implement the pre-commit hook, you will need to install pre-commit:
brew install pre-commitand then set up the hook by running
pre-commit installThis repo uses Spotless for its formatting. You run this by running the following command:
./gradlew spotlessApply- Use the following GitHub actions to deploy to specific dev environments
- For a slightly faster deployment (by deploying specific modules), you can use the following script sam-deploy-authdevs.sh
- This can be used to deploy changes to an individual module, rather than the full api
NOTE: We are in the process of migrating all of our api modules to SAM
- Similarly to SAM, there is a GitHub Action to deploy the authentication-api to the dev env (can't be used for authdevs)
- These will deploy in our old account (
di-auth-development)
- Use the deploy-authdevs.sh to deploy to an authdev
- Make sure to include the
-pflag