From 253a3eb83f18cc7fb31d557829d383aa99ddade4 Mon Sep 17 00:00:00 2001 From: Chandragupt Gosavi <59999646+chandraguptgosavi@users.noreply.github.com> Date: Mon, 3 Feb 2025 22:00:08 +0530 Subject: [PATCH] fix: prevent updating isCustom on object and field metadata (#9968) This PR prevents updating isCustom on object and field metadata. Example graphql mutation now cannot be used to modify existing field's isCustom property as expected. ``` mutation UpdateOneFieldMetadataItem( $idToUpdate: UUID! $updatePayload: UpdateFieldInput! ) { updateOneField(input: { id: $idToUpdate, update: $updatePayload }) { id isCustom } } ``` Example payload is not allowed now and it will return error in response. ``` { "idToUpdate": "80c6c8df-f719-42d2-985a-353468a3ed00", "updatePayload": { "isCustom": true } } ``` fixes- #6581 --- packages/twenty-front/src/generated/graphql.tsx | 1 - .../metadata-modules/field-metadata/dtos/update-field.input.ts | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/twenty-front/src/generated/graphql.tsx b/packages/twenty-front/src/generated/graphql.tsx index 594e40568..cf4d5acbf 100644 --- a/packages/twenty-front/src/generated/graphql.tsx +++ b/packages/twenty-front/src/generated/graphql.tsx @@ -1681,7 +1681,6 @@ export type UpdateFieldInput = { description?: InputMaybe; icon?: InputMaybe; isActive?: InputMaybe; - isCustom?: InputMaybe; isLabelSyncedWithName?: InputMaybe; isNullable?: InputMaybe; isSystem?: InputMaybe; diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/dtos/update-field.input.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/dtos/update-field.input.ts index 81f2ef8bd..ac81b2172 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/dtos/update-field.input.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/dtos/update-field.input.ts @@ -15,7 +15,7 @@ import { FieldMetadataDTO } from 'src/engine/metadata-modules/field-metadata/dto @InputType() export class UpdateFieldInput extends OmitType( PartialType(FieldMetadataDTO, InputType), - ['id', 'type', 'createdAt', 'updatedAt'] as const, + ['id', 'type', 'createdAt', 'updatedAt', 'isCustom'] as const, ) { @HideField() id: string;