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. });