Skip to content

Latest commit

 

History

History
76 lines (47 loc) · 3.14 KB

File metadata and controls

76 lines (47 loc) · 3.14 KB

Orchestration component

The Orchestration component is responsible for maintaining the RP facing Open ID Connect API for GOV.UK One Login as well as directing users between different GOV.UK One Login components.

Diagrams

High level sequence diagrams for the Orchestration component are located here and outline the different flows supported by Orchestration.

Infrastructure:

Most of the infrastructure for the Orchestration component is defined in the main cloudformation template as well as a small template snippet for anomaly alerts. However, there are still some resources defined in the Terraform (./ci/terraform/...).

Code

The Orchestration codebase is gradually being separated from the Authentication codebase. The Orchestration code is located in the following locations:

  • ipv-api
  • oidc-api
  • client-registry-api
  • doc-checking-app-api
  • Any directory starting with orchestration-*

Each of these directories corresponds to separate modules with some shared code. A brief description of each provided below:

  • IPV API: Manages the redirect and callback from the IPV component.
  • OIDC API: Manages the OIDC interactions with Relying Parties and the callback from the Authentication component.
  • Client Registry API: Exposes some API endpoints to allow interactions with the SSE Admin Tool.
  • Doc Checking App API: Manages the interactions between Orchestration and the Document Checking App service.

Testing:

Unit tests:

To run all the unit tests in the project you can run the following command:

./gradlew --parallel test -x integration-tests:test -x account-management-integration-tests:test -x delivery-receipts-integration-tests:test

However, it may be useful to run the tests in a specific module in the codebase. For example the following command runs the tests in oidc-api:

./gradlew oidc-api:test

Alternatively you can run a single test file:

./gradlew oidc-api:test --tests uk.gov.di.authentication.oidc.lambda.AuthCodeHandlerTest

Integration tests:

To run all the integration tests in the project you can run the following command:

./gradlew integration-tests:test

Acceptance Tests:

Acceptance tests for Orchestration are stored in the orchestration-acceptance-tests repository.

Deploying to dev:

We currently use a workflow in GitHub Actions to deploy Orchestration to the development environment for manual testing.

Documentation:

If a lambda has specific documentation, it will live under docs/<lambdaName> for example the Authorisation Handler. Most of our documentation can be found in confluence.

Useful links: