Family public law's implementation of the CCD template
- Docker
- realpath-osx (Mac OS only)
- jq
- access to Azure key vault
- active VPN
- Azure CLI (optional for secret management)
Create the following two files (they are already included in .gitignore)
service/src/main/resources/application-user-mappings.yaml
:
spring:
profiles: user-mappings
fpl:
local_authority_user:
mapping: <get from key vault>
and service/src/main/resources/application-feature-toggle.yaml
:
spring:
config:
activate:
on-profile: feature-toggle
ld:
sdk_key: <get from key vault>
(See fpl-service for more information on Feature Toggle)
To get values from vault login into https://portal.azure.com/ and find related vault and value, or run
az login
az keyvault secret show --name <secret_name> --vault-name <vault_name> | grep value
(If you can't access the resource try signing in with a different tenant.)
To ensure you have the correct dependencies run yarn install
in the command line.
The project uses Gradle as a build tool. It already contains
./gradlew
wrapper script, so there's no need to install gradle.
To run the application use:
./gradlew bootWithCCD
or from IntelliJ: right-click the bootWithCCD Gradle task and select 'Run...'
then you can access XUI on http://localhost:3000
(You may be prompted to run az login
to set up account.)
To run code linting enter yarn lint
in the command line.
Some functionality requires Docmosis Tornado to be started.
It requires DOCMOSIS_KEY
to be exposed as environment variable on your machine.
Refer to the confluence page at https://tools.hmcts.net/confluence/x/QRTgWw for additional explanation.
We use Playwright with TypeScript. All the details can be found in the E2E README.md.
Application must be up and running
./gradlew runApiTest
In order to run the template tests locally you need to add the gov.uk.notify test-key here:
Create the file in this location service/src/integrationTest/resources/application-email-template-test.yaml
(it's already included in .gitignore)
spring:
profiles: email-template-test
integration-test:
notify-service:
key: <get from key vault>
(the key will start with integrationtests-*, hence not sending real emails since this is a test key, see https://docs.notifications.service.gov.uk/java.html#api-keys)
Report is generated in build/reports/serenity
To run all E2E tests against a PR
PR=<PR_NUMBER>; NODE_TLS_REJECT_UNAUTHORIZED=0 PARALLEL_CHUNKS=1 SHOW_BROWSER_WINDOW=TRUE URL=https://xui-fpl-case-service-pr-$PR.service.core-compute-preview.internal IDAM_API_URL="https://idam-api.aat.platform.hmcts.net" CASE_SERVICE_URL=http://fpl-case-service-pr-$PR.service.core-compute-preview.internal yarn test
To run a selected E2E test against a PR
PR=<PR_NUMBER>; NODE_TLS_REJECT_UNAUTHORIZED=0 PARALLEL_CHUNKS=1 SHOW_BROWSER_WINDOW=TRUE URL=https://xui-fpl-case-service-pr-$PR.service.core-compute-preview.internal IDAM_API_URL="https://idam-api.aat.platform.hmcts.net" CASE_SERVICE_URL=http://fpl-case-service-pr-$PR.service.core-compute-preview.internal yarn test --grep 'Case administration after submission'
- Hostname =
family-public-law-preview.postgres.database.azure.com
- Port =
5432
- Database Name =
pr-<number>-data-store
- Username =
hmcts
- SSL (Parameters) =
require
Password can be found in Kubernetes Services -> preview environment
-> Kubernetes resources -> workloads
-> fpl-case-service-pr-<number>-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 family-public-law
kubectl port-forward fpl-case-service-pr-<PR-ID>-es-master-0 9210:9200
then
curl http://localhost:9210/care_supervision_epo_cases-000001/_search
A list of port numbers is available on RSE CFT lib
On PR env following ccd definition files are generated and stored as jenkins job artefacts:
- ccd-fpl-preview-<PR_ID>-toggle-on.xlsx (uploaded automatically by jenkins)
- ccd-fpl-preview-<PR_ID>-toggle-off.xlsx
you can download these files and import against PR env like follow (vpn needed):
PR=<PR_ID> \
CCD_DEFINITION_STORE_API_BASE_URL=https://ccd-definition-store-fpl-case-service-pr-$PR.service.core-compute-preview.internal \
SERVICE_AUTH_PROVIDER_API_BASE_URL=http://rpe-service-auth-provider-aat.service.core-compute-aat.internal \
IDAM_API_BASE_URL=https://idam-api.aat.platform.hmcts.net \
CCD_IDAM_REDIRECT_URL=https://ccd-case-management-web-aat.service.core-compute-aat.internal/oauth2redirect \
CCD_CONFIGURER_IMPORTER_USERNAME=<USER> \
CCD_CONFIGURER_IMPORTER_PASSWORD=<PASSWORD> \
CCD_API_GATEWAY_IDAM_CLIENT_SECRET=<IDAM_CLIENT_SECRET> \
CCD_API_GATEWAY_S2S_SECRET=<S2S_SECRET> \
bin/ccd-import-definition.sh <FILEPATH>
where:
- PR_ID - id of pr, file will be uploaded into this PR env
- USER - vault: fpl-aat.ccd-importer-username
- PASSWORD - vault: fpl-aat.ccd-importer-password
- IDAM_CLIENT_SECRET - vault: ccd-aat.ccd-api-gateway-oauth2-client-secret
- S2S_SECRET - vault: s2s-aat.microservicekey-ccd-gw
- FILEPATH - path to file to be uploaded
to get values from vault login into https://portal.azure.com/ and find related vault and value or
az login
az keyvault secret show --name <secret_name> --vault-name <vault_name> | grep value
See fpl-service for more information on custom configuration parameters, feature toggle, scheduler.
This project is licensed under the MIT License - see the LICENSE file for details.