Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
709237a
Migrate DMNs to API-first calls via event handlers
EllisD-B Feb 20, 2026
7983910
Merge origin/master into task_mgmt_api
EllisD-B Feb 20, 2026
4ec9413
Merge branch 'master' into task_mgmt_api
ed14537 Feb 20, 2026
ce61aab
Cleanup and skip sonar on model classes
EllisD-B Feb 20, 2026
3e0a364
Merge remote-tracking branch 'origin/task_mgmt_api' into task_mgmt_api
EllisD-B Feb 20, 2026
295a8da
cleanup and checkstyle
EllisD-B Feb 20, 2026
356843c
test coverage
EllisD-B Feb 20, 2026
f5f3c21
delete WA FTs
EllisD-B Feb 20, 2026
628398d
delete util classes
EllisD-B Feb 20, 2026
5dee3af
update lib
EllisD-B Mar 5, 2026
0645492
Merge branch 'master' into task_mgmt_api
ed14537 Mar 5, 2026
4c152a9
minor fixes
EllisD-B Mar 5, 2026
2d9acf7
minor fixes
EllisD-B Mar 5, 2026
5399e41
minor fixes
EllisD-B Mar 6, 2026
192de2a
correct task-mgmt url in preview
EllisD-B Mar 6, 2026
89f2865
delete unneeded camunda dmns and tests
EllisD-B Mar 11, 2026
d231308
cleanup
EllisD-B Mar 11, 2026
871067d
cleanup and permissions fix
EllisD-B Mar 11, 2026
cc27897
Merge branch 'master' into task_mgmt_api
ed14537 Mar 11, 2026
dc04f06
cleanup + test additions
EllisD-B Mar 11, 2026
4f2a775
temporarily restore completion dmn
EllisD-B Mar 11, 2026
67229e4
temporarily restore completion dmn
EllisD-B Mar 11, 2026
91edfe0
add task_supervisor
EllisD-B Mar 11, 2026
0c7be7f
add task-supervisor to all task inits
EllisD-B Mar 12, 2026
8f25c14
add hmctsServiceId
EllisD-B Mar 12, 2026
307d1ee
Merge branch 'master' into task_mgmt_api
EllisD-B Mar 12, 2026
7bb9ef1
fix test after merge
EllisD-B Mar 12, 2026
d48789f
Fix null issue with role category
EllisD-B Mar 12, 2026
41a18f8
Update pr number for task-mgmt-api change
EllisD-B Mar 13, 2026
7c56a3f
Temporarily remove task supervisor
EllisD-B Mar 13, 2026
1340844
bug fix
EllisD-B Mar 13, 2026
1651025
Revert "Temporarily remove task supervisor"
EllisD-B Mar 13, 2026
b3c148a
null instead of empty strings
EllisD-B Mar 13, 2026
0231969
Update task supervisor - remove OWN permission
EllisD-B Mar 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 82 additions & 11 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,19 @@ configurations {
cftlibTestRuntime.extendsFrom testRuntime
}

configurations.configureEach {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.github.hmcts') {
if (details.requested.name == 'decentralised-runtime'
|| details.requested.name == 'task-management'
|| details.requested.name == 'ccd-config-generator') {
details.useVersion 'task-mgmt-40.1-46b69557'
details.because 'Ensure task-management, decentralised-runtime and ccd-config-generator stay aligned'
}
}
}
}

tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Werror"
}
Expand Down Expand Up @@ -245,7 +258,8 @@ def sonarExclusions = [
'**/uk/gov/hmcts/sptribs/ciccase/model/UserRolesForAccessProfiles.java',
'**/uk/gov/hmcts/sptribs/common/config/**',
'**/uk/gov/hmcts/sptribs/common/event/UpdateCaseDataEvent.java',
'**/uk/gov/hmcts/sptribs/common/service/CaseDataFieldService.java'
'**/uk/gov/hmcts/sptribs/common/service/CaseDataFieldService.java',
'**/uk/gov/hmcts/sptribs/taskmanagement/model/**'
]

sonarqube {
Expand Down Expand Up @@ -330,6 +344,10 @@ def versions = [
dependencies {
// uncomment for local version
// implementation group: 'com.github.hmcts', name: 'ccd-config-generator', version: 'DEV-SNAPSHOT'
// implementation 'com.github.hmcts:task-management:DEV-SNAPSHOT'
implementation 'com.github.hmcts:task-management:task-mgmt-40.1-46b69557'
implementation 'com.github.hmcts:decentralised-runtime:task-mgmt-40.1-46b69557'
implementation 'com.github.hmcts:ccd-config-generator:task-mgmt-40.1-46b69557'

implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: versions.jackson
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: versions.jackson
Expand Down Expand Up @@ -430,6 +448,10 @@ dependencies {

// Provides fast-reload of just the sptribs service.
cftlibImplementation 'org.springframework.boot:spring-boot-devtools'
cftlibTestImplementation sourceSets.test.runtimeClasspath
cftlibTestImplementation 'com.github.hmcts:task-management:task-mgmt-40.1-46b69557'
cftlibTestImplementation 'com.github.hmcts:decentralised-runtime:task-mgmt-40.1-46b69557'
cftlibTestImplementation 'com.github.hmcts:ccd-config-generator:task-mgmt-40.1-46b69557'
cftlibTestImplementation 'com.microsoft.playwright:playwright:1.58.0'
cftlibTestImplementation 'org.junit-pioneer:junit-pioneer:2.3.0'
cftlibTestImplementation 'io.github.artsok:rerunner-jupiter:2.1.6'
Expand Down Expand Up @@ -525,10 +547,66 @@ ccd {
configDir = file('build/definitions')
}

def localRseCftLibDir = file('../rse-cft-lib')
def localWaTaskManagementApiDir = file("${localRseCftLibDir}/projects/wa-task-management-api")
def localCftLibPublishingInit = file("${localRseCftLibDir}/cftlib/buildSrc/configurePublishing.gradle")
def localWaPublishingFixInit = file("$rootDir/gradle/wa-publish-fix.init.gradle")
def localWaM2Jar = file("${System.properties['user.home']}/.m2/repository/com/github/hmcts/rse-cft-lib/wa-task-management-api/0.19.2017/wa-task-management-api-0.19.2017.jar")
def useLocalWaTaskManagementApi = (project.findProperty('useLocalWaTaskManagementApi') ?: 'false').toString().toBoolean()

tasks.register('publishLocalWaTaskManagementApiToMavenLocal', Exec) {
group = 'ccd tasks'
description = 'Publishes local WA task-management-api for cftlib (if ../rse-cft-lib is present)'
onlyIf {
useLocalWaTaskManagementApi
&& localWaTaskManagementApiDir.exists()
&& localCftLibPublishingInit.exists()
&& localWaPublishingFixInit.exists()
}
workingDir localWaTaskManagementApiDir
commandLine './gradlew', '--no-daemon',
'-I', localCftLibPublishingInit.absolutePath,
'-I', localWaPublishingFixInit.absolutePath,
'publishToMavenLocal'
environment 'RELEASE_VERSION', '0.19.2017'
}

tasks.withType(CftlibExec).configureEach {
dependsOn tasks.named('publishLocalWaTaskManagementApiToMavenLocal')
environment 'RSE_LIB_ADDITIONAL_DATABASES', 'sptribs'
environment 'CCD_DECENTRALISED_CASE-TYPE-SERVICE-URLS_CriminalInjuriesCompensation', 'http://localhost:4013'
environment 'SPRING_JMS_SERVICEBUS_ENABLED', 'false'
// The IDAM simulator authorizes /api/v1/users requests only when the token subject exists in simulator memory.
// Default data-store system user is not present there, which causes 401s in cftlib parity tests.
// Keep explicit env override support for local/custom setups.
environment 'IDAM_DATA_STORE_SYSTEM_USER_USERNAME',
System.getenv('IDAM_DATA_STORE_SYSTEM_USER_USERNAME') ?: 'TEST_CASE_WORKER_USER@mailinator.com'
environment 'TASK_MANAGEMENT_EXCLUSIVE_CLIENTS',
'wa_task_management_api,wa_task_monitor,wa_case_event_handler,wa_workflow_api,nfdiv_case_api,sptribs_case_api'
environment 'TASK_MANAGEMENT_PRIVILEGED_CLIENTS',
'wa_task_management_api,xui_webapp,ccd_case_disposer,sptribs_case_api'
doFirst {
def waManifest = file("$buildDir/cftlib/wa-task-management-api")
if (useLocalWaTaskManagementApi && waManifest.exists() && localWaM2Jar.exists()) {
def lines = waManifest.readLines()
if (lines.size() > 1) {
lines[1] = localWaM2Jar.absolutePath
waManifest.text = lines.join(System.lineSeparator()) + System.lineSeparator()
}
}

def selectClass = project.findProperty('cftlibSelectClass')
if (name == 'cftlibTest' && selectClass) {
def libTestManifest = file("$buildDir/cftlib/libTest")
if (libTestManifest.exists()) {
def lines = libTestManifest.readLines()
if (!lines.isEmpty()) {
lines[0] = "org.junit.platform.console.ConsoleLauncher --select-class=${selectClass}"
libTestManifest.text = lines.join(System.lineSeparator()) + System.lineSeparator()
}
}
}
}
}

bootWithCCD {
Expand Down Expand Up @@ -573,15 +651,13 @@ cftlibTest {
environment 'CASE_DOCUMENT_AM_API_ATTACH_DOCUMENT_ENABLED', 'false'
environment 'CASE_DATA_STORE_BASEURL', 'http://localhost:4452'
environment 'ROLE_ASSIGNMENT_URL', 'http://localhost:4096'
environment 'TASK_MANAGEMENT_API_URL', 'http://localhost:8087'
environment 'TASK_MONITOR_API_URL', 'http://localhost:8087'
environment 'WA_S2S_AUTHORIZED_SERVICES', 'ccd,ccd_data,ccd_gw,ccd_ps,iac,wa_task_management_api,xui_webapp,wa_task_monitor,camunda_bpm,wa_workflow_api,wa_case_event_handler,ccd_case_disposer,civil_service,sscs,sptribs_case_api'
environment 'CCD_S2S_AUTHORISED_SERVICES_CASE_USER_ROLES', 'sptribs_case_api'
environment 'DATA_STORE_S2S_AUTHORISED_SERVICES', 'ccd_gw,fpl_case_service,ccd_data,ccd_ps,sptribs_frontend,xui_webapp,sptribs_case_api,ccd_case_document_am_api,am_role_assignment_service'
}

// exclude the logback binding is coming in via cftlib
configurations.cftlibTestImplementation {
exclude group: 'ch.qos.logback', module: 'logback-classic'
}

tasks.register('installChromium', JavaExec) {
// group = "Execution"
// description = "Run the main class with JavaExecTask"
Expand All @@ -592,11 +668,6 @@ tasks.register('installChromium', JavaExec) {

tasks.cftlibTest.dependsOn(installChromium)

// exclude the logback binding is coming in via cftlib
configurations.testImplementation {
exclude group: 'ch.qos.logback', module: 'logback-classic'
}

tasks.named("processContractTestResources") {
duplicatesStrategy = 'include'
}
Expand Down
3 changes: 3 additions & 0 deletions charts/sptribs-case-api/values.preview.template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ java:
devmemoryLimits: 2Gi
environment:
PDF_API_URL: "http://rpe-pdf-service-aat.service.core-compute-aat.internal"
TASK_MONITOR_API_URL: ${TASK_MONITOR_API_URL}
TASK_MANAGEMENT_API_URL: ${TASK_MANAGEMENT_API_URL}
ROLE_ASSIGNMENT_API_URL: ${ROLE_ASSIGNMENT_API_URL}
CASE_DATA_STORE_BASEURL: http://{{ .Release.Name }}-ccd-data-store-api
CASE_DOCUMENT_AM_BASEURL: http://${SERVICE_NAME}-ccd-case-document-am-api
BUNDLING_API_URL: https://em-ccdorc-${SERVICE_FQDN}
Expand Down
9 changes: 8 additions & 1 deletion charts/sptribs-case-api/values.wa.preview.template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@ java:
key: connectionString
environment:
SPRING_JMS_SERVICEBUS_ENABLED: true
SPTRIBS_SERVICEBUS_SCHEDULER_ENABLED: true
SPTRIBS_SERVICEBUS_SCHEDULER_ENABLED: false
TASK_MONITOR_API_URL: ${TASK_MONITOR_API_URL}
TASK_MANAGEMENT_API_URL: ${TASK_MANAGEMENT_API_URL}
ROLE_ASSIGNMENT_API_URL: ${ROLE_ASSIGNMENT_API_URL}
AZURE_SERVICE_BUS_TOPIC_NAME: ${SERVICE_NAME}-asb-ccd-case-events
AZURE_SERVICE_BUS_SUBSCRIPTION_NAME: ${SERVICE_NAME}-asb-ccd-case-events

Expand Down Expand Up @@ -72,9 +75,13 @@ wa:
wa-task-management-api:
java:
ingressHost: wa-task-management-api-${SERVICE_FQDN}
image: 'hmctspublic.azurecr.io/wa/task-management-api:pr-1598'
environment:
ALLOWED_CASE_TYPES: wacasetype,criminalinjuriescompensation
ALLOWED_JURISDICTIONS: wa,st_cic
WA_S2S_AUTHORIZED_SERVICES: ccd,ccd_data,ccd_gw,ccd_ps,iac,wa_task_management_api,xui_webapp,wa_task_monitor,camunda_bpm,wa_workflow_api,wa_case_event_handler,ccd_case_disposer,civil_service,sscs,sptribs_case_api
TASK_MANAGEMENT_EXCLUSIVE_CLIENTS: wa_task_management_api,wa_task_monitor,wa_case_event_handler,wa_workflow_api,nfdiv_case_api,sptribs_case_api
TASK_MANAGEMENT_PRIVILEGED_CLIENTS: wa_task_management_api,xui_webapp,ccd_case_disposer,sptribs_case_api

wa-task-monitor:
java:
Expand Down
9 changes: 9 additions & 0 deletions gradle/wa-publish-fix.init.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
allprojects {
afterEvaluate { p ->
if (p.tasks.findByName('sourcesJar') && p.tasks.findByName('openApiGenerate')) {
p.tasks.named('sourcesJar') {
dependsOn p.tasks.named('openApiGenerate')
}
}
}
}
1 change: 0 additions & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,3 @@ rootProject.name = 'sptribs-case-api'
if (file(configGenerator).exists()) {
includeBuild configGenerator
}*/

16 changes: 14 additions & 2 deletions src/cftlib/java/uk/gov/hmcts/sptribs/cftlib/CftLibConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,23 @@ public class CftLibConfig implements CFTLibConfigurer {
@Override
public void configure(CFTLib lib) throws Exception {

List<String> roleList = List.of("caseworker",
List<String> roleList = List.of(
"caseworker",
"caseworker-st_cic",
"caseworker-st_cic-caseworker",
"caseworker-st_cic-senior-caseworker",
"caseworker-st_cic-hearing-centre-admin",
"caseworker-st_cic-hearing-centre-team-leader",
"caseworker-st_cic-senior-judge",
"caseworker-st_cic-judge",
"caseworker-st_cic-respondent",
"caseworker-wa-task-configuration",
"caseworker-sptribs-systemupdate",
"caseworker-sptribs-superuser",
"citizen",
"pui-case-manager",
"jrd-admin");
"jrd-admin"
);

Map<String, List<String>> users = Map.of(
"TEST_CASE_WORKER_USER@mailinator.com", roleList,
Expand Down
Loading