Skip to content

Adoption Case Orchestration Service Spring boot application

License

Notifications You must be signed in to change notification settings

hmcts/adoption-cos-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Adoption Case Orchestration Service API License: MIT

This API handles callbacks from CCD for the ADOPTION case type.

Overview

                    ┌─────────────────┐
                    │                 │
                    │ADOPTION-COS-API │
                    │                 │
                    └───────▲─────────┘
                            │
                            │
                    ┌───────▼────────┐
                    │                │
              ┌─────►      CCD       ◄─────┐
              │     │                │     │
              │     └────────────────┘     │
              │                            │
      ┌───────┴─────────┐        ┌─────────┴───────┐
      │                 │        │                 │
      │ ADOPTION-WEB    │        │       XUI       │
      │                 │        │                 │
      └─────────────────┘        └─────────────────┘

Building and deploying the application

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/adoption-cos-api directory) by executing the following command

docker-compose up

This will start the API container exposing the application's port (set to 4550 in this template app).

The application exposes health endpoint (https://localhost:4550/health):

curl https://localhost:4550/health

You should get a response similar to this:

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

Running the application locally with CCD and XUI

Preliminary steps:

  • Open file /bin/generate-ccd-definition.sh and amend:

    docker run --pull always --user $UID --rm --name json2xlsx \

    by removing "--user $UID" to:

    docker run --pull always --rm --name json2xlsx \

  • Then build:

    ./gradlew build

  • Connect to F5 VPN:
    Go to the webpage https://portal.platform.hmcts.net/ and follow the instruction to connect to F5 VPN.

  • Then login to the subscription (you will need to get the subscription id from another dev):

    az acr login --name hmctspublic --subscription [SUBSCRIPTION ID]

You can now run the full CCD and XUI stack locally using:

./gradlew bootWithCcd
  • Then you can access XUI on https://localhost:3000

Generate CCD JSON files

To generate the CCD JSON files from the Java Model run the following from the root of the project:

./gradlew ccd-definitions:generateCCDConfig

Generate TypeScript definitions for CCD definition

./gradlew generateTypeScript

Plugins

The project contains the following plugins:

Connect to Preview Database

Hostname = adoption-preview.postgres.database.azure.com Port = 5432 Database Name = pr--data-store Username = hmcts SSL (Parameters) = require

Password can be found in Kubernetes Services -> preview environment -> workloads -> select deployment name adoption-cos-api-pr--ccd-data-store-api -> select pod -> select container (overview) -> environment variables tab -> click postgres link for DATA_STORE_DB_PASSWORD -> click eye to decrypt

To view the databases: kubectl get flexibleserversdatabases -n adoption

License

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