From 1fa0cce2d45fd3c6034711b20e44edec071cb21c Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 1 Jun 2026 20:57:39 +0000 Subject: [PATCH] fix(platform-objects): drop invalid `unique` validation on sys_user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #1485 removed `'unique'` from the enforceable validation-rule types, but sys_user still declared a `type: 'unique'` validation — a semantic merge conflict on main that fails FlowSchema/ObjectSchema parse (ZodError: invalid discriminator value) and breaks Test Core for every PR. Email uniqueness is already enforced by the unique index (`indexes: [{ fields: ['email'], unique: true }]`), so the redundant validation block is removed. https://claude.ai/code/session_012ti8cx3TkdiQdjCnZXZg2Q --- .changeset/fix-sys-user-unique-validation.md | 13 +++++++++++++ .../src/identity/sys-user.object.ts | 14 ++++---------- 2 files changed, 17 insertions(+), 10 deletions(-) create mode 100644 .changeset/fix-sys-user-unique-validation.md diff --git a/.changeset/fix-sys-user-unique-validation.md b/.changeset/fix-sys-user-unique-validation.md new file mode 100644 index 0000000000..f7742a7375 --- /dev/null +++ b/.changeset/fix-sys-user-unique-validation.md @@ -0,0 +1,13 @@ +--- +"@objectstack/platform-objects": patch +--- + +fix(platform-objects): remove invalid `unique` validation rule on sys_user + +`sys_user` declared a `validations: [{ type: 'unique', ... }]` rule, but #1485 +removed `'unique'` from the enforceable validation-rule types (uniqueness is an +index concern, not a validation rule). The stray rule slipped onto `main` as a +semantic merge conflict and failed schema parse at registration (ZodError: +invalid discriminator value), breaking Test Core. Email uniqueness is already +enforced by the unique index (`indexes: [{ fields: ['email'], unique: true }]`), +so the redundant validation block is removed. diff --git a/packages/platform-objects/src/identity/sys-user.object.ts b/packages/platform-objects/src/identity/sys-user.object.ts index 380318876f..7937261d3c 100644 --- a/packages/platform-objects/src/identity/sys-user.object.ts +++ b/packages/platform-objects/src/identity/sys-user.object.ts @@ -439,14 +439,8 @@ export const SysUser = ObjectSchema.create({ mru: true, }, - validations: [ - { - name: 'email_unique', - type: 'unique', - severity: 'error', - message: 'Email must be unique', - fields: ['email'], - caseSensitive: false, - }, - ], + // Email uniqueness is enforced by the unique index declared above + // (`indexes: [{ fields: ['email'], unique: true }]`). The standalone `unique` + // validation rule was removed in #1485 — uniqueness is an index concern, not + // an enforceable validation-rule type — so no `validations` block is needed. });