From ccd49dc52dd208349330e5217227f1e955107c3f Mon Sep 17 00:00:00 2001 From: "kian.kwa" Date: Tue, 6 Jan 2026 13:38:49 +0000 Subject: [PATCH 01/11] Add shared third party model class --- .../model/subscription/ThirdPartyInfo.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/main/java/uk/gov/hmcts/reform/pip/model/subscription/ThirdPartyInfo.java diff --git a/src/main/java/uk/gov/hmcts/reform/pip/model/subscription/ThirdPartyInfo.java b/src/main/java/uk/gov/hmcts/reform/pip/model/subscription/ThirdPartyInfo.java new file mode 100644 index 00000000..a899c6f7 --- /dev/null +++ b/src/main/java/uk/gov/hmcts/reform/pip/model/subscription/ThirdPartyInfo.java @@ -0,0 +1,21 @@ +package uk.gov.hmcts.reform.pip.model.subscription; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.UUID; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class ThirdPartyInfo { + private String destinationUrl; + private String tokenUrl; + private String clientIdKey; + private String clientSecretKey; + private String scopeKey; + private UUID publicationId; +} From 8502c33a7c7dfa534242309a467eff42a709c2b5 Mon Sep 17 00:00:00 2001 From: "kian.kwa" Date: Tue, 6 Jan 2026 13:48:25 +0000 Subject: [PATCH 02/11] Add angus dependency --- build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle b/build.gradle index b526781a..dbdba192 100644 --- a/build.gradle +++ b/build.gradle @@ -129,6 +129,7 @@ dependencies { implementation "org.apache.logging.log4j:log4j-api:${log4JVersion}" implementation "org.apache.logging.log4j:log4j-to-slf4j:${log4JVersion}" + implementation 'org.eclipse.angus:angus-activation:2.0.3' implementation "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.20.1" implementation "com.opencsv:opencsv:5.12.0" From 1ee6901e9302cba10967f7c856bb3c9203640671 Mon Sep 17 00:00:00 2001 From: "kian.kwa" Date: Tue, 6 Jan 2026 15:20:06 +0000 Subject: [PATCH 03/11] Update third-party model classes --- .../ApiOauthConfiguration.java} | 7 ++----- .../model/thirdparty/ThirdPartyAction.java | 7 +++++++ .../thirdparty/ThirdPartySubscription.java | 19 +++++++++++++++++++ 3 files changed, 28 insertions(+), 5 deletions(-) rename src/main/java/uk/gov/hmcts/reform/pip/model/{subscription/ThirdPartyInfo.java => thirdparty/ApiOauthConfiguration.java} (70%) create mode 100644 src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyAction.java create mode 100644 src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartySubscription.java diff --git a/src/main/java/uk/gov/hmcts/reform/pip/model/subscription/ThirdPartyInfo.java b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ApiOauthConfiguration.java similarity index 70% rename from src/main/java/uk/gov/hmcts/reform/pip/model/subscription/ThirdPartyInfo.java rename to src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ApiOauthConfiguration.java index a899c6f7..cd24a5c2 100644 --- a/src/main/java/uk/gov/hmcts/reform/pip/model/subscription/ThirdPartyInfo.java +++ b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ApiOauthConfiguration.java @@ -1,21 +1,18 @@ -package uk.gov.hmcts.reform.pip.model.subscription; +package uk.gov.hmcts.reform.pip.model.thirdparty; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import java.util.UUID; - @Getter @Setter @NoArgsConstructor @AllArgsConstructor -public class ThirdPartyInfo { +public class ApiOauthConfiguration { private String destinationUrl; private String tokenUrl; private String clientIdKey; private String clientSecretKey; private String scopeKey; - private UUID publicationId; } diff --git a/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyAction.java b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyAction.java new file mode 100644 index 00000000..d4e406ae --- /dev/null +++ b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyAction.java @@ -0,0 +1,7 @@ +package uk.gov.hmcts.reform.pip.model.thirdparty; + +public enum ThirdPartyAction { + NEW_PUBLICATION, + UPDATE_PUBLICATION, + DELETE_PUBLICATION +} diff --git a/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartySubscription.java b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartySubscription.java new file mode 100644 index 00000000..bd2cdddd --- /dev/null +++ b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartySubscription.java @@ -0,0 +1,19 @@ +package uk.gov.hmcts.reform.pip.model.thirdparty; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; +import java.util.UUID; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class ThirdPartySubscription { + List apiOauthConfigurationList; + UUID publicationArtefactId; + ThirdPartyAction thirdPartyAction; +} From 508392f22cc25d3ceda84987777818065f7e0e5b Mon Sep 17 00:00:00 2001 From: "kian.kwa" Date: Tue, 6 Jan 2026 15:30:51 +0000 Subject: [PATCH 04/11] Add superseded count to Artefact model --- .../uk/gov/hmcts/reform/pip/model/publication/Artefact.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/uk/gov/hmcts/reform/pip/model/publication/Artefact.java b/src/main/java/uk/gov/hmcts/reform/pip/model/publication/Artefact.java index 776f9efd..4def14d8 100644 --- a/src/main/java/uk/gov/hmcts/reform/pip/model/publication/Artefact.java +++ b/src/main/java/uk/gov/hmcts/reform/pip/model/publication/Artefact.java @@ -96,4 +96,9 @@ public class Artefact { * Metadata that will be indexed for searching. */ private Map> search; + + /** + * A counter to show how many times the artefact has been superseded. Default is 0. + */ + private int supersededCount; } From 221af4c6d53d4439a8d297e6c067cc33bcb4cbe9 Mon Sep 17 00:00:00 2001 From: "kian.kwa" Date: Tue, 6 Jan 2026 18:06:29 +0000 Subject: [PATCH 05/11] Renamed class --- ...thConfiguration.java => ThirdPartyOauthConfiguration.java} | 2 +- .../reform/pip/model/thirdparty/ThirdPartySubscription.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/{ApiOauthConfiguration.java => ThirdPartyOauthConfiguration.java} (89%) diff --git a/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ApiOauthConfiguration.java b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java similarity index 89% rename from src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ApiOauthConfiguration.java rename to src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java index cd24a5c2..bc17d1b7 100644 --- a/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ApiOauthConfiguration.java +++ b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java @@ -9,7 +9,7 @@ @Setter @NoArgsConstructor @AllArgsConstructor -public class ApiOauthConfiguration { +public class ThirdPartyOauthConfiguration { private String destinationUrl; private String tokenUrl; private String clientIdKey; diff --git a/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartySubscription.java b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartySubscription.java index bd2cdddd..218bc5eb 100644 --- a/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartySubscription.java +++ b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartySubscription.java @@ -13,7 +13,7 @@ @NoArgsConstructor @AllArgsConstructor public class ThirdPartySubscription { - List apiOauthConfigurationList; - UUID publicationArtefactId; + List thirdPartyOauthConfigurationList; + UUID publicationId; ThirdPartyAction thirdPartyAction; } From 07c68f9a031b55f185c9782e3a897565f384fb77 Mon Sep 17 00:00:00 2001 From: "kian.kwa" Date: Mon, 12 Jan 2026 15:02:43 +0000 Subject: [PATCH 06/11] Renamed third-party classes --- ...PartySubscription.java => LegacyThirdPartySubscription.java} | 2 +- ...nArtefact.java => LegacyThirdPartySubscriptionArtefact.java} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/main/java/uk/gov/hmcts/reform/pip/model/subscription/{ThirdPartySubscription.java => LegacyThirdPartySubscription.java} (89%) rename src/main/java/uk/gov/hmcts/reform/pip/model/subscription/{ThirdPartySubscriptionArtefact.java => LegacyThirdPartySubscriptionArtefact.java} (88%) diff --git a/src/main/java/uk/gov/hmcts/reform/pip/model/subscription/ThirdPartySubscription.java b/src/main/java/uk/gov/hmcts/reform/pip/model/subscription/LegacyThirdPartySubscription.java similarity index 89% rename from src/main/java/uk/gov/hmcts/reform/pip/model/subscription/ThirdPartySubscription.java rename to src/main/java/uk/gov/hmcts/reform/pip/model/subscription/LegacyThirdPartySubscription.java index 1f1d3778..63791dcc 100644 --- a/src/main/java/uk/gov/hmcts/reform/pip/model/subscription/ThirdPartySubscription.java +++ b/src/main/java/uk/gov/hmcts/reform/pip/model/subscription/LegacyThirdPartySubscription.java @@ -12,7 +12,7 @@ @Setter @NoArgsConstructor @AllArgsConstructor -public class ThirdPartySubscription { +public class LegacyThirdPartySubscription { @NotNull String apiDestination; diff --git a/src/main/java/uk/gov/hmcts/reform/pip/model/subscription/ThirdPartySubscriptionArtefact.java b/src/main/java/uk/gov/hmcts/reform/pip/model/subscription/LegacyThirdPartySubscriptionArtefact.java similarity index 88% rename from src/main/java/uk/gov/hmcts/reform/pip/model/subscription/ThirdPartySubscriptionArtefact.java rename to src/main/java/uk/gov/hmcts/reform/pip/model/subscription/LegacyThirdPartySubscriptionArtefact.java index 3608c06a..ec7dc4b0 100644 --- a/src/main/java/uk/gov/hmcts/reform/pip/model/subscription/ThirdPartySubscriptionArtefact.java +++ b/src/main/java/uk/gov/hmcts/reform/pip/model/subscription/LegacyThirdPartySubscriptionArtefact.java @@ -11,7 +11,7 @@ @Setter @AllArgsConstructor @NoArgsConstructor -public class ThirdPartySubscriptionArtefact { +public class LegacyThirdPartySubscriptionArtefact { @NotNull String apiDestination; From 778534d35cf98528d06e66e3af7dccff58a0256d Mon Sep 17 00:00:00 2001 From: "kian.kwa" Date: Fri, 6 Feb 2026 14:38:29 +0000 Subject: [PATCH 07/11] Add third-party name to OAuth info for logging --- .../pip/model/thirdparty/ThirdPartyOauthConfiguration.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java index bc17d1b7..42a4dea0 100644 --- a/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java +++ b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java @@ -10,6 +10,7 @@ @NoArgsConstructor @AllArgsConstructor public class ThirdPartyOauthConfiguration { + private String name; private String destinationUrl; private String tokenUrl; private String clientIdKey; From 2f11f5b9c34b9230c8a145bbcf0cb9ba6527ce3a Mon Sep 17 00:00:00 2001 From: "kian.kwa" Date: Fri, 6 Feb 2026 14:39:25 +0000 Subject: [PATCH 08/11] Add third-party user ID to OAuth info for logging --- .../pip/model/thirdparty/ThirdPartyOauthConfiguration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java index 42a4dea0..2e593db5 100644 --- a/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java +++ b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java @@ -10,7 +10,7 @@ @NoArgsConstructor @AllArgsConstructor public class ThirdPartyOauthConfiguration { - private String name; + private String userId; private String destinationUrl; private String tokenUrl; private String clientIdKey; From 1a8465da578975cf972f82d7a9644c6db2094c20 Mon Sep 17 00:00:00 2001 From: "kian.kwa" Date: Fri, 6 Feb 2026 14:45:06 +0000 Subject: [PATCH 09/11] Use UUID for user ID --- .../pip/model/thirdparty/ThirdPartyOauthConfiguration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java index 2e593db5..eb777223 100644 --- a/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java +++ b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java @@ -10,7 +10,7 @@ @NoArgsConstructor @AllArgsConstructor public class ThirdPartyOauthConfiguration { - private String userId; + private UUID userId; private String destinationUrl; private String tokenUrl; private String clientIdKey; From f4f0058aac0e1a6d8ea41aadbec81fb99306314d Mon Sep 17 00:00:00 2001 From: "kian.kwa" Date: Fri, 6 Feb 2026 14:46:43 +0000 Subject: [PATCH 10/11] Use UUID for user ID --- .../pip/model/thirdparty/ThirdPartyOauthConfiguration.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java index eb777223..6311d577 100644 --- a/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java +++ b/src/main/java/uk/gov/hmcts/reform/pip/model/thirdparty/ThirdPartyOauthConfiguration.java @@ -5,6 +5,8 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.UUID; + @Getter @Setter @NoArgsConstructor From 86506b9f3e1b79a47401ade430bac3ccba280871 Mon Sep 17 00:00:00 2001 From: "kian.kwa" Date: Thu, 19 Feb 2026 13:30:41 +0000 Subject: [PATCH 11/11] Merge new audit action additions from PUB-3097 --- .../uk/gov/hmcts/reform/pip/model/enums/AuditAction.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/uk/gov/hmcts/reform/pip/model/enums/AuditAction.java b/src/main/java/uk/gov/hmcts/reform/pip/model/enums/AuditAction.java index 3eac16d8..601ae291 100644 --- a/src/main/java/uk/gov/hmcts/reform/pip/model/enums/AuditAction.java +++ b/src/main/java/uk/gov/hmcts/reform/pip/model/enums/AuditAction.java @@ -31,5 +31,10 @@ public enum AuditAction { RESUBMIT_SUBSCRIPTION, CREATE_LOCATION_METADATA, UPDATE_LOCATION_METADATA, - DELETE_LOCATION_METADATA + DELETE_LOCATION_METADATA, + THIRD_PARTY_SUBSCRIBER_CREATION, + DELETE_THIRD_PARTY_SUBSCRIBER, + VIEW_THIRD_PARTY_SUBSCRIBERS, + MANAGE_THIRD_PARTY_SUBSCRIBER_VIEW, + THIRD_PARTY_SUBSCRIBER_OAUTH_CONFIG_CREATED }