Skip to content

hmcts/opal-user-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

569 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

opal-user-service

Building the application

The project uses Gradle as a build tool. It already contains ./gradlew wrapper script, so there's no need to install gradle.

To build the project execute the following command:

  ./gradlew build

Running the application

Create the image of the application by executing the following command:

  ./gradlew assemble

Create docker image:

  docker-compose build

Run the distribution (created in build/install/opal-user-service directory) by executing the following command:

  docker-compose up

This will start the API container exposing the application's port (set to 4555 in this template app). The database is available on jdbc:postgresql://localhost:5433/opal-user-db with username and password opal-user.

Running within IntelliJ

You can run the code for testing/debugging purposes within IntelliJ, but you will still need to run the opal-user-db database container in the background. The class to run is uk.gov.hmcts.reform.opal.Application, and you will need to provide the following envvar:

OPAL_USER_DB_PORT=5433

Testing

In order to test if the application is up, you can call its health endpoint:

  curl http://localhost:4555/health

You should get a response similar to this:

  {"status":"UP","diskSpace":{"status":"UP","total":249644974080,"free":137188298752,"threshold":10485760}}

Running functional tests

Functional tests live under src/functionalTest and call the running service over HTTP. By default they target http://localhost:4555. To run them against another environment, set TEST_URL first.

Run the default Opal functional suite:

./gradlew functionalOpal

Run the full functional task with report aggregation:

./gradlew functional

Run the toggle-only functional scenarios:

./gradlew functionalOpalToggle

The default functional suite only runs scenarios under src/functionalTest/resources/features/functional. Toggle scenarios are kept separately under src/functionalTest/resources/features/toggle and should only be run against an environment with the expected feature-flag configuration.

Run the functional tests against a non-local environment:

TEST_URL=http://localhost:4555 ./gradlew functionalOpal
TEST_URL=https://<target-host> ./gradlew functionalOpalToggle

Serenity HTML output is copied to:

functional-test-report/index.html

Alternative script to run application

To skip all the setting up and building, just execute the following command:

./bin/run-in-docker.sh

For more information:

./bin/run-in-docker.sh -h

Script includes bare minimum environment variables necessary to start api instance. Whenever any variable is changed or any other script regarding docker image/container build, the suggested way to ensure all is cleaned up properly is by this command:

docker-compose rm

It clears stopped containers correctly. Might consider removing clutter of images too, especially the ones fiddled with:

docker images

docker image rm <image-id>

There is no need to remove postgres and java or similar core images.

License

This project is licensed under the MIT License - see the LICENSE file for details

About

Opal Authentication and Authorisation service

Topics

Resources

License

Contributing

Stars

4 stars

Watchers

12 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors