diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/workspace-field.comparator.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/workspace-field.comparator.ts index 8febe3a6d..0cc2e222e 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/workspace-field.comparator.ts +++ b/packages/twenty-server/src/workspace/workspace-sync-metadata/comparators/workspace-field.comparator.ts @@ -39,8 +39,11 @@ export class WorkspaceFieldComparator { string, Partial > = {}; + // Double security to only compare non-custom fields + const filteredOriginalFieldCollection = + originalObjectMetadata.fields.filter((field) => !field.isCustom); const originalFieldMetadataMap = transformMetadataForComparison( - originalObjectMetadata.fields, + filteredOriginalFieldCollection, { propertiesToIgnore: fieldPropertiesToIgnore, propertiesToStringify: fieldPropertiesToStringify, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-sync-object-metadata.service.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-sync-object-metadata.service.ts index c268b72e5..d120ea42a 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-sync-object-metadata.service.ts +++ b/packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-sync-object-metadata.service.ts @@ -43,7 +43,11 @@ export class WorkspaceSyncObjectMetadataService { // Retrieve object metadata collection from DB const originalObjectMetadataCollection = await objectMetadataRepository.find({ - where: { workspaceId: context.workspaceId, isCustom: false }, + where: { + workspaceId: context.workspaceId, + isCustom: false, + fields: { isCustom: false }, + }, relations: ['dataSource', 'fields'], }); diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-sync-relation-metadata.service.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-sync-relation-metadata.service.ts index d4cd98003..29c55abc6 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-sync-relation-metadata.service.ts +++ b/packages/twenty-server/src/workspace/workspace-sync-metadata/services/workspace-sync-relation-metadata.service.ts @@ -44,7 +44,11 @@ export class WorkspaceSyncRelationMetadataService { // Retrieve object metadata collection from DB const originalObjectMetadataCollection = await objectMetadataRepository.find({ - where: { workspaceId: context.workspaceId, isCustom: false }, + where: { + workspaceId: context.workspaceId, + isCustom: false, + fields: { isCustom: false }, + }, relations: ['dataSource', 'fields'], }); @@ -58,10 +62,12 @@ export class WorkspaceSyncRelationMetadataService { ); // Retrieve relation metadata collection from DB - // TODO: filter out custom relations once isCustom has been added to relationMetadata table const originalRelationMetadataCollection = await relationMetadataRepository.find({ - where: { workspaceId: context.workspaceId }, + where: { + workspaceId: context.workspaceId, + fromFieldMetadata: { isCustom: false }, + }, }); // Create standard relation metadata collection