finrem-case-orchestration
is a Spring Boot application and is responsible for handling all CCD callbacks
for Financial Remedy cases. It provides the business logic to enable Financial Remedy cases to be progressed through
the justice system.
The CCD definitions supported by this service can be found here.
The project uses Gradle as a build tool, but you don't have to install it locally since there is a
./gradlew
wrapper script.
To build project execute the following command:
./gradlew build
To get the project to build in IntelliJ IDEA, you have to:
- Install the Lombok plugin: Settings -> Plugins
- Enable Annotation Processing: Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors
The service can be run with
./gradlew bootRun
The service listens on port 9000 http://localhost:9000
However, in order to develop and test fincase-case-orchestration
you should run the service with the
cftlib plugin.
cftlib is a Gradle plugin that provides a local CCD/ExUI environment
in which finrem-case-orchestration
can be developed and tested.
The integration between the plugin and finrem-case-orchestration
can be found in:
build.gradle
- seebootWithCCD
- src/cftlib
cftlib can be configured to run either
- using AAT services. See cftlib AAT
- in a pure local environment without any AAT dependencies. See cftlib Local
Application logs for the services running locally can be found in build/cftlib/logs
.
API documentation is provided with Swagger. This is available locally at: http://localhost:9000/swagger-ui.html
To run all unit tests and local functional tests execute following command:
./gradlew test
To run all checks (including unit tests) execute following command:
./gradlew check
To run all mutation tests execute the following command:
./gradlew pitest
To run the OWASP checks for vulnerabilities in dependencies:
./gradlew dependencyCheckAggregate
You can manually run a cron task from the cli:
TASK_NAME=[task] java -jar finrem-case-orchestration-service.jar run
# E.g.
TASK_NAME=AddApplicationTypeTask java -jar finrem-case-orchestration-service.jar
# or
TASK_NAME=AddApplicationTypeTask ./gradlew bootRun
- Make a copy of
src/main/resources/example-application-aat.properties
assrc/main/resources/application-aat.properties
- Make a copy of
src/functionalTests/resources/example-application-local.properties
assrc/functionalTests/resources/application-local.properties
- Replace the
replace_me
secrets in both of the newly created files. You can get the values from SCM and Azure secrets key vault (the new files are in .gitignore and should not be committed to git) - Start the app with AAT config using
./gradlew clean bootRunAat
- Start the test with AAT config using
./gradlew clean functional
- Add one or more appropriate labels to your PR in GitHub. Valid labels are:
enable_security_scan
enable_fortify_scan
- Trigger a build of your PR in Jenkins. Fortify scans will take place asynchronously as part of the Static Checks/Container Build step.
- Check the Blue Ocean view for live monitoring, and review the logs once complete for any issues.
- As Fortify scans execute during the Static Checks/Container Build step, you will need to ensure this is triggered by making a minor change to the PR, such as bumping the chart version.
We use SemVer for versioning. For the versions available, see the tags on this repository.
This project is licensed under the MIT License - see the LICENSE.md file for details.