From 3409a20707ba5826d55be0ad450ad70851ee6ab7 Mon Sep 17 00:00:00 2001 From: "tom.droza2" Date: Wed, 26 Nov 2025 12:36:38 +0000 Subject: [PATCH 1/4] CCM-12616: Add SSM and validation into MESH Poll diagrams CCM-12616: Add senderId into MESHInboxMessageReceived event --- docs/assets/aws-icons-mermaid.json | 6 ++-- .../_diagrams/c4code-mesh-poller.md | 4 ++- .../_diagrams/sequence-mesh-download.md | 29 ++++++++++++------- .../_diagrams/sequence-mesh-poll.md | 12 ++++---- ...sh-inbox-message-received-data.schema.yaml | 3 ++ ...tters.reporting.report.sent.v1.schema.yaml | 9 +++--- src/cloudevents/readme-index.yaml | 2 +- 7 files changed, 39 insertions(+), 26 deletions(-) diff --git a/docs/assets/aws-icons-mermaid.json b/docs/assets/aws-icons-mermaid.json index f43480f44..4e4ae2fc5 100644 --- a/docs/assets/aws-icons-mermaid.json +++ b/docs/assets/aws-icons-mermaid.json @@ -3530,6 +3530,9 @@ "res-amazon-eventbridge-event": { "body": "" }, + "res-aws-systems-manager-parameter-store": { + "body": "" + }, "reserved-instance-reporting": { "body": "", "height": 64, @@ -3997,9 +4000,6 @@ "systems-manager-opscenter": { "body": "" }, - "systems-manager-parameter-store": { - "body": "" - }, "systems-manager-patch-manager": { "body": "" }, diff --git a/docs/collections/_diagrams/c4code-mesh-poller.md b/docs/collections/_diagrams/c4code-mesh-poller.md index e52cd3eca..d359bc31c 100644 --- a/docs/collections/_diagrams/c4code-mesh-poller.md +++ b/docs/collections/_diagrams/c4code-mesh-poller.md @@ -10,9 +10,11 @@ architecture-beta service meshDownloaded(aws:res-amazon-eventbridge-event)[MeshPollerTimerExpired Event] service pdmSaved(aws:res-amazon-eventbridge-event)[MESHInboxMessageReceived Event] service meshPollLambda(logos:aws-lambda)[MeshPoll] in meshPoller + service clientConfig(aws:res-aws-systems-manager-parameter-store)[Client Configuration] in meshPoller service mesh(server)[MESH] meshDownloaded:R -- L:meshPollLambda - meshPollLambda:T --> B:mesh + clientConfig:B --> T:meshPollLambda + meshPollLambda:B --> T:mesh meshPollLambda:R --> L:pdmSaved ``` diff --git a/docs/collections/_diagrams/sequence-mesh-download.md b/docs/collections/_diagrams/sequence-mesh-download.md index 1121ef84b..8f3bf68f3 100644 --- a/docs/collections/_diagrams/sequence-mesh-download.md +++ b/docs/collections/_diagrams/sequence-mesh-download.md @@ -7,20 +7,27 @@ title: v ```mermaid sequenceDiagram - participant meshMailbox as MESH
Mailbox + actor trust as Trust participant eventBus as EventBus - participant sqs as SQS
MeshRetrieveQueue - participant meshRetrieve as Lambda
MESHRetrieve + participant sqs as SQS
MeshDownloadQueue + participant meshDownload as Lambda
MESHDownload + participant meshMailbox as MESH
Mailbox participant s3 as S3 Bucket
DigitalLetters - eventBus -) sqs: MESHInboxMessageReceived(meshFileId) - sqs -) meshRetrieve: MESHInboxMessageReceived(meshFileId) - activate meshRetrieve - meshRetrieve ->> meshMailbox: Retrieve file(meshFileId) + eventBus -) sqs: MESHInboxMessageReceived(meshMessageId) + sqs -) meshDownload: MESHInboxMessageReceived(meshMessageId) + activate meshDownload + meshDownload ->> meshMailbox: Retrieve file(meshMessageId) activate meshMailbox - meshMailbox -->> meshRetrieve: File + meshMailbox -->> meshDownload: File deactivate meshMailbox - meshRetrieve ->> s3: Upload file - meshRetrieve -) eventBus: MESHInboxMessageDownloaded(S3FileId) Event - deactivate meshRetrieve + meshDownload ->> s3: Upload file + activate s3 + s3 -->> meshDownload: S3Uri + deactivate s3 + meshDownload -) eventBus: MESHInboxMessageDownloaded(senderId, messageReference, messageUri) Event + meshDownload -) meshMailbox: Ack + meshMailbox ->> meshMailbox: Delete(meshMessageId) + meshDownload -) trust: Ack + deactivate meshDownload ``` diff --git a/docs/collections/_diagrams/sequence-mesh-poll.md b/docs/collections/_diagrams/sequence-mesh-poll.md index 91df24620..2dbe2526d 100644 --- a/docs/collections/_diagrams/sequence-mesh-poll.md +++ b/docs/collections/_diagrams/sequence-mesh-poll.md @@ -10,19 +10,21 @@ sequenceDiagram actor trust as Trust participant meshMailbox as MESH
Mailbox participant meshPoll as Lambda
MESHPoll + participant clientConfig as SSM
Client Config participant eventBus as EventBus trust ->> meshMailbox: MESH (DocumentReference) - activate meshMailbox - meshMailbox ->> trust: MESH Ack - deactivate meshMailbox - Loop Interval TBC + Loop 5 min interval eventBus -) meshPoll: Scheduled event activate meshPoll end meshPoll ->> meshMailbox: Check for new files - meshPoll -) eventBus: MESHInboxMessageReceived Event(meshFileId) + meshPoll ->> clientConfig: GetClientConfig(mailboxId) + activate clientConfig + clientConfig -->> meshPoll: ClientConfig + deactivate clientConfig + meshPoll -) eventBus: MESHInboxMessageReceived Event
(meshMessageId, senderId) deactivate meshPoll ``` diff --git a/src/cloudevents/domains/digital-letters/2025-10-draft/data/digital-letters-mesh-inbox-message-received-data.schema.yaml b/src/cloudevents/domains/digital-letters/2025-10-draft/data/digital-letters-mesh-inbox-message-received-data.schema.yaml index 6a01f4cff..9770c5551 100644 --- a/src/cloudevents/domains/digital-letters/2025-10-draft/data/digital-letters-mesh-inbox-message-received-data.schema.yaml +++ b/src/cloudevents/domains/digital-letters/2025-10-draft/data/digital-letters-mesh-inbox-message-received-data.schema.yaml @@ -6,5 +6,8 @@ additionalProperties: false properties: meshMessageId: $ref: ../defs/mesh.schema.yaml#/properties/meshMessageId + senderId: + $ref: ../defs/requests.schema.yaml#/properties/senderId required: - meshMessageId + - senderId diff --git a/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.reporting.report.sent.v1.schema.yaml b/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.reporting.report.sent.v1.schema.yaml index 33a3c5b1d..eeef261ad 100644 --- a/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.reporting.report.sent.v1.schema.yaml +++ b/src/cloudevents/domains/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.reporting.report.sent.v1.schema.yaml @@ -6,7 +6,7 @@ allOf: properties: type: type: string - const: uk.nhs.notify.digital.letters.reporting.report.generated.v1 + const: uk.nhs.notify.digital.letters.reporting.report.sent.v1 description: Concrete versioned event type string for this event (.vN suffix). source: type: string @@ -15,10 +15,9 @@ properties: dataschema: type: string - const: ../data/digital-letter-base-data.schema.yaml + const: ../data/digital-letters-reporting-report-sent-data.schema.yaml description: Canonical URI of the event's data schema. examples: - - digital-letter-base-data.schema.yaml + - digital-letters-reporting-report-sent-data.schema.yaml data: - $ref: ../data/digital-letter-base-data.schema.yaml - description: Example payload wrapper containing notify-payload. + $ref: ../data/digital-letters-reporting-report-sent-data.schema.yaml diff --git a/src/cloudevents/readme-index.yaml b/src/cloudevents/readme-index.yaml index 7b72e2f4f..651ef0bfe 100644 --- a/src/cloudevents/readme-index.yaml +++ b/src/cloudevents/readme-index.yaml @@ -3,7 +3,7 @@ # To regenerate, run: make update-readme # To customize labels and purposes, edit: readme-metadata.yaml -generated: '2025-11-21T12:22:19.666Z' +generated: '2025-11-26T12:32:47.898Z' common: null domains: - name: digital-letters From 933cbcffa0a2e8dab59cd29330bd264376ad9b9f Mon Sep 17 00:00:00 2001 From: Tom D'Roza <83403414+tdroza-nhs@users.noreply.github.com> Date: Wed, 26 Nov 2025 14:30:44 +0000 Subject: [PATCH 2/4] Update docs/collections/_diagrams/sequence-mesh-download.md Co-authored-by: lapenna-bjss <160487283+lapenna-bjss@users.noreply.github.com> --- docs/collections/_diagrams/sequence-mesh-download.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/collections/_diagrams/sequence-mesh-download.md b/docs/collections/_diagrams/sequence-mesh-download.md index 8f3bf68f3..f2323149f 100644 --- a/docs/collections/_diagrams/sequence-mesh-download.md +++ b/docs/collections/_diagrams/sequence-mesh-download.md @@ -14,7 +14,7 @@ sequenceDiagram participant meshMailbox as MESH
Mailbox participant s3 as S3 Bucket
DigitalLetters - eventBus -) sqs: MESHInboxMessageReceived(meshMessageId) + eventBus -) sqs: MESHInboxMessageReceived(meshMessageId, senderId) sqs -) meshDownload: MESHInboxMessageReceived(meshMessageId) activate meshDownload meshDownload ->> meshMailbox: Retrieve file(meshMessageId) From 1134bf6b68776bf4f06b05718635be8aa33d6184 Mon Sep 17 00:00:00 2001 From: Tom D'Roza <83403414+tdroza-nhs@users.noreply.github.com> Date: Wed, 26 Nov 2025 14:31:10 +0000 Subject: [PATCH 3/4] Update docs/collections/_diagrams/sequence-mesh-download.md Co-authored-by: lapenna-bjss <160487283+lapenna-bjss@users.noreply.github.com> --- docs/collections/_diagrams/sequence-mesh-download.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/collections/_diagrams/sequence-mesh-download.md b/docs/collections/_diagrams/sequence-mesh-download.md index f2323149f..d70a98eef 100644 --- a/docs/collections/_diagrams/sequence-mesh-download.md +++ b/docs/collections/_diagrams/sequence-mesh-download.md @@ -15,7 +15,7 @@ sequenceDiagram participant s3 as S3 Bucket
DigitalLetters eventBus -) sqs: MESHInboxMessageReceived(meshMessageId, senderId) - sqs -) meshDownload: MESHInboxMessageReceived(meshMessageId) + sqs -) meshDownload: MESHInboxMessageReceived(meshMessageId, senderId) activate meshDownload meshDownload ->> meshMailbox: Retrieve file(meshMessageId) activate meshMailbox From 684604656f87a201b4aa79b79d439b0f14968b19 Mon Sep 17 00:00:00 2001 From: Tom D'Roza <83403414+tdroza-nhs@users.noreply.github.com> Date: Wed, 26 Nov 2025 14:31:24 +0000 Subject: [PATCH 4/4] Update docs/collections/_diagrams/sequence-mesh-download.md Co-authored-by: lapenna-bjss <160487283+lapenna-bjss@users.noreply.github.com> --- docs/collections/_diagrams/sequence-mesh-download.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/collections/_diagrams/sequence-mesh-download.md b/docs/collections/_diagrams/sequence-mesh-download.md index d70a98eef..c3bf7baf4 100644 --- a/docs/collections/_diagrams/sequence-mesh-download.md +++ b/docs/collections/_diagrams/sequence-mesh-download.md @@ -23,7 +23,7 @@ sequenceDiagram deactivate meshMailbox meshDownload ->> s3: Upload file activate s3 - s3 -->> meshDownload: S3Uri + s3 -->> meshDownload: messageUri deactivate s3 meshDownload -) eventBus: MESHInboxMessageDownloaded(senderId, messageReference, messageUri) Event meshDownload -) meshMailbox: Ack