Skip to content

Commit cfe54b7

Browse files
committed
Add 'dataschemaversion' field to letter request schemas and update version to 1.1.5
1 parent a25a6fd commit cfe54b7

10 files changed

+22
-2
lines changed

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/events/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,5 @@
4040
"test:unit": "jest",
4141
"prepare": "npm run build"
4242
},
43-
"version": "1.1.4"
43+
"version": "1.1.5"
4444
}

packages/events/schemas/examples/letter-request.prepared.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"dataschema": "https://notify.nhs.uk/cloudevents/schemas/letter-rendering/letter-request.PREPARED.1.0.0.schema.json",
1919
"dataschemaversion": "1.0.0",
2020
"id": "23f1f09c-a555-4d9b-8405-0b33490bc920",
21+
"plane": "data",
2122
"recordedtime": "2025-08-28T08:45:00.000Z",
2223
"severitynumber": 2,
2324
"severitytext": "INFO",

packages/events/src/events/__tests__/event-envelope.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ describe("EventEnvelope schema validation", () => {
88
const baseValidEnvelope: Envelope = {
99
dataschema:
1010
"https://notify.nhs.uk/cloudevents/schemas/letter-rendering/order.read.1.0.0.schema.json",
11+
dataschemaversion: "1.0.0",
1112
specversion: "1.0",
1213
id: "6f1c2a53-3d54-4a0a-9a0b-0e9ae2d4c111",
1314
source: "/data-plane/letter-rendering/ordering",
@@ -260,6 +261,7 @@ describe("EventEnvelope schema validation", () => {
260261
type: "uk.nhs.notify.letter-rendering.letter.created.v1" as const,
261262
dataschema:
262263
"https://notify.nhs.uk/cloudevents/schemas/letter-rendering/letter.created.1.0.0.schema.json",
264+
dataschemaversion: "1.0.0",
263265
source: "/data-plane/letter-rendering/letters",
264266
time: "2025-10-01T10:15:30.000Z",
265267
data: { status: "CREATED" },
@@ -318,6 +320,7 @@ describe("EventEnvelope schema validation", () => {
318320
type: "uk.nhs.notify.letter-rendering.order.read.v1" as const,
319321
dataschema:
320322
"https://notify.nhs.uk/cloudevents/schemas/letter-rendering/order.read.1.0.0.schema.json",
323+
dataschemaversion: "1.0.0",
321324
source: "/data-plane/letter-rendering/ordering",
322325
subject: "order/769acdd4",
323326
time: "2025-10-01T10:15:30.000Z",
@@ -365,6 +368,7 @@ describe("EventEnvelope schema validation", () => {
365368
type: "uk.nhs.notify.letter-rendering.order.read.v1" as const,
366369
dataschema:
367370
"https://notify.nhs.uk/cloudevents/schemas/letter-rendering/order.read.1.0.0.schema.json",
371+
dataschemaversion: "1.0.0",
368372
source: "/data-plane/letter-rendering/ordering",
369373
subject: "prefix/letter-rendering/order/769acdd4",
370374
time: "2025-10-01T10:15:30.000Z",

packages/events/src/events/__tests__/testData/letter-request-prepared-valid.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
},
1717
"datacontenttype": "application/json",
1818
"dataschema": "https://notify.nhs.uk/cloudevents/schemas/letter-rendering/letter-request.prepared.1.0.0.schema.json",
19+
"dataschemaversion": "1.0.0",
1920
"id": "23f1f09c-a555-4d9b-8405-0b33490bc920",
2021
"plane": "data",
2122
"recordedtime": "2025-08-28T08:45:00.000Z",

packages/events/src/events/__tests__/testData/letter-request-prepared-with-invalid-major-version.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
},
1717
"datacontenttype": "application/json",
1818
"dataschema": "https://notify.nhs.uk/cloudevents/schemas/letter-rendering/letter-request.prepared.0.1.0.schema.json",
19+
"dataschemaversion": "0.1.0",
1920
"id": "23f1f09c-a555-4d9b-8405-0b33490bc920",
2021
"plane": "data",
2122
"recordedtime": "2025-08-28T08:45:00.000Z",

packages/events/src/events/__tests__/testData/letter-request-prepared-with-missing-fields.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
},
1616
"datacontenttype": "application/json",
1717
"dataschema": "https://notify.nhs.uk/cloudevents/schemas/letter-rendering/letter-request.prepared.1.0.0.schema.json",
18+
"dataschemaversion": "1.0.0",
1819
"id": "23f1f09c-a555-4d9b-8405-0b33490bc920",
1920
"plane": "data",
2021
"recordedtime": "2025-08-28T08:45:00.000Z",

packages/events/src/events/__tests__/testData/letter-request-prepared-with-partial-optional-fields.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
},
1414
"datacontenttype": "application/json",
1515
"dataschema": "https://notify.nhs.uk/cloudevents/schemas/letter-rendering/letter-request.prepared.1.0.0.schema.json",
16+
"dataschemaversion": "1.0.0",
1617
"id": "23f1f09c-a555-4d9b-8405-0b33490bc920",
1718
"plane": "data",
1819
"recordedtime": "2025-08-28T08:45:00.000Z",

packages/events/src/events/__tests__/testData/letter-request-prepared-without-optional-fields.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
},
1212
"datacontenttype": "application/json",
1313
"dataschema": "https://notify.nhs.uk/cloudevents/schemas/letter-rendering/letter-request.prepared.1.0.0.schema.json",
14+
"dataschemaversion": "1.0.0",
1415
"id": "23f1f09c-a555-4d9b-8405-0b33490bc920",
1516
"plane": "data",
1617
"recordedtime": "2025-08-28T08:45:00.000Z",

packages/events/src/events/event-envelope.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,16 @@ export function EventEnvelope<TData extends z.ZodTypeAny>(
6262
examples: schemaExamples,
6363
}),
6464

65+
dataschemaversion: z
66+
.string()
67+
.regex(/^1\.\d+\.\d+$/)
68+
.meta({
69+
title: "Data Schema Version",
70+
description:
71+
"Version of the data schema in semver format (must match the version suffix in dataschema URI).",
72+
examples: ["1.0.0"],
73+
}),
74+
6575
source: z
6676
.string()
6777
.regex(/^\/data-plane\/(letter-rendering|digital-letters)(?:\/.*)?$/)

0 commit comments

Comments
 (0)