From 90754d4fa97c478868c71c9f63deed70a848fb88 Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Tue, 12 Apr 2022 13:12:09 -0400 Subject: [PATCH] Remove strict validation from `PermissionCriteria` schemas Signed-off-by: Joe Porpeglia --- .changeset/curvy-wolves-worry.md | 6 ++++++ .../permission-common/src/PermissionClient.ts | 15 +++------------ .../createPermissionIntegrationRouter.ts | 18 ++++++++---------- 3 files changed, 17 insertions(+), 22 deletions(-) create mode 100644 .changeset/curvy-wolves-worry.md diff --git a/.changeset/curvy-wolves-worry.md b/.changeset/curvy-wolves-worry.md new file mode 100644 index 0000000000..449bdc4fee --- /dev/null +++ b/.changeset/curvy-wolves-worry.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-permission-common': patch +'@backstage/plugin-permission-node': patch +--- + +Removed [strict](https://github.com/colinhacks/zod#strict) validation from `PermissionCriteria` schemas to support backward-compatible changes. diff --git a/plugins/permission-common/src/PermissionClient.ts b/plugins/permission-common/src/PermissionClient.ts index 223209c69f..9a7bb0bba4 100644 --- a/plugins/permission-common/src/PermissionClient.ts +++ b/plugins/permission-common/src/PermissionClient.ts @@ -43,18 +43,9 @@ const permissionCriteriaSchema: z.ZodSchema< resourceType: z.string(), params: z.array(z.unknown()), }) - .strict() - .or( - z - .object({ anyOf: z.array(permissionCriteriaSchema).nonempty() }) - .strict(), - ) - .or( - z - .object({ allOf: z.array(permissionCriteriaSchema).nonempty() }) - .strict(), - ) - .or(z.object({ not: permissionCriteriaSchema }).strict()), + .or(z.object({ anyOf: z.array(permissionCriteriaSchema).nonempty() })) + .or(z.object({ allOf: z.array(permissionCriteriaSchema).nonempty() })) + .or(z.object({ not: permissionCriteriaSchema })), ); const authorizePermissionResponseSchema: z.ZodSchema = diff --git a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts index b4cf4ac08c..4bdb4397dd 100644 --- a/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts +++ b/plugins/permission-node/src/integration/createPermissionIntegrationRouter.ts @@ -38,16 +38,14 @@ const permissionCriteriaSchema: z.ZodSchema< PermissionCriteria > = z.lazy(() => z.union([ - z.object({ anyOf: z.array(permissionCriteriaSchema).nonempty() }).strict(), - z.object({ allOf: z.array(permissionCriteriaSchema).nonempty() }).strict(), - z.object({ not: permissionCriteriaSchema }).strict(), - z - .object({ - rule: z.string(), - resourceType: z.string(), - params: z.array(z.unknown()), - }) - .strict(), + z.object({ anyOf: z.array(permissionCriteriaSchema).nonempty() }), + z.object({ allOf: z.array(permissionCriteriaSchema).nonempty() }), + z.object({ not: permissionCriteriaSchema }), + z.object({ + rule: z.string(), + resourceType: z.string(), + params: z.array(z.unknown()), + }), ]), );