Skip to content

Commit ae8ab44

Browse files
CCM-14238: Status Update For Records With Id "Test" (#450)
* Init * Event envelope allows wider subject resource id * Bump version and clean up * Ignore regex false positives * Fix trivy vulnerabilities * bump version in lock --------- Co-authored-by: Steve Buxton <steve.buxton@nhs.net>
1 parent 4400b7e commit ae8ab44

File tree

4 files changed

+29
-4
lines changed

4 files changed

+29
-4
lines changed

internal/events/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,5 @@
3737
"typecheck": "tsc --noEmit"
3838
},
3939
"types": "dist/index.d.ts",
40-
"version": "1.0.13"
40+
"version": "1.0.14"
4141
}

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,5 +364,27 @@ describe("EventEnvelope schema validation", () => {
364364
const result = $EnvelopeNoPrefix.safeParse(envelope);
365365
expect(result.success).toBe(false);
366366
});
367+
368+
it("should accept subject with non uuid resource id", () => {
369+
const envelope = {
370+
...baseLetterEnvelope,
371+
subject: "letter-origin/letter-rendering/letter/Some_Letter_12345",
372+
};
373+
374+
const result = $EnvelopeWithPrefix.safeParse(envelope);
375+
expect(result.error).toBeUndefined();
376+
expect(result.success).toBe(true);
377+
});
378+
379+
it("should accept subject with multi sub path resource id", () => {
380+
const envelope = {
381+
...baseLetterEnvelope,
382+
subject: "letter-origin/letter-rendering/letter/a/B/c/123",
383+
};
384+
385+
const result = $EnvelopeWithPrefix.safeParse(envelope);
386+
expect(result.error).toBeUndefined();
387+
expect(result.success).toBe(true);
388+
});
367389
});
368390
});

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ export function EventEnvelope<TData extends z.ZodTypeAny>(
8181

8282
source: z
8383
.string()
84+
// eslint-disable-next-line security/detect-unsafe-regex
8485
.regex(/^\/data-plane\/supplier-api(?:\/.*)?$/)
8586
.meta({
8687
title: "Event Source",
@@ -90,8 +91,10 @@ export function EventEnvelope<TData extends z.ZodTypeAny>(
9091

9192
subject: z
9293
.string()
93-
94-
.regex(new RegExp(`^${subjectPrefixRegex}${resourceName}/[a-z0-9-]+$`))
94+
.regex(
95+
// eslint-disable-next-line security/detect-non-literal-regexp
96+
new RegExp(`^${subjectPrefixRegex}${resourceName}/[^/]+(?:/.*)?$`),
97+
)
9598
.meta({
9699
title: "Event Subject",
97100
description:

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.

0 commit comments

Comments
 (0)