From 6aa43b68f7855e93071d671af47ba1664a96916d Mon Sep 17 00:00:00 2001 From: Paul Rastoin <45004772+prastoin@users.noreply.github.com> Date: Wed, 21 Jan 2026 17:00:23 +0100 Subject: [PATCH] Identification cleanup (#17301) # Introduction following https://github.com/twentyhq/twenty/pull/17279 As we've finally identified all the syncable metadata entities, which means they're expected to have non nullable applicationId and universalIdentifier at pg_level we can remove previous retro comp universalIdentifier fallbacking and update the dto too ~~This needs IdentifyRemainingEntitiesMetadataCommand and MakeRemainingEntitiesUniversalIdentifierAndApplicationIdNotNullableMigrationCommand to be run~~ ```ts [Nest] 197 - 01/21/2026, 3:08:35 PM LOG [MakeRemainingEntitiesUniversalIdentifierAndApplicationIdNotNullableMigrationCommand] Successfully run MakeRemainingEntitiesUniversalIdentifierAndApplicationIdNotNullableMigrationCommand ``` --- .../src/generated-metadata/graphql.ts | 18 +++++++++--------- packages/twenty-front/src/generated/graphql.ts | 4 ++-- ...pace-flat-cron-trigger-map-cache.service.ts | 3 +-- ...-trigger-input-to-flat-cron-trigger.util.ts | 2 +- ...database-event-trigger-map-cache.service.ts | 4 +--- ...nput-to-flat-database-event-trigger.util.ts | 2 +- .../field-metadata/dtos/field-metadata.dto.ts | 5 ++--- ...ransform-agent-entity-to-flat-agent.util.ts | 3 +-- ...adata-entity-to-flat-field-metadata.util.ts | 6 +----- ...ld-metadata-from-create-field-input.util.ts | 4 ++-- ...adata-entity-to-flat-index-metadata.util.ts | 3 +-- ...-and-flat-field-metadatas-to-create.util.ts | 3 +-- ...ect-metadata-to-object-metadata-dto.util.ts | 2 ++ ...data-entity-to-flat-object-metadata.util.ts | 5 +---- ...-tab-entity-to-flat-page-layout-tab.util.ts | 3 +-- ...t-entity-to-flat-page-layout-widget.util.ts | 5 ++--- ...e-layout-entity-to-flat-page-layout.util.ts | 3 +-- ...e-target-entity-to-flat-role-target.util.ts | 2 +- ...e-role-input-to-flat-role-to-create.util.ts | 2 +- .../from-role-entity-to-flat-role.util.ts | 4 ++-- ...flat-row-level-permission-predicate.util.ts | 3 +-- ...ow-level-permission-predicate-group.util.ts | 3 +-- .../from-skill-entity-to-flat-skill.util.ts | 2 +- ...-input-to-flat-view-field-to-create.util.ts | 3 +-- ...iew-field-entity-to-flat-view-field.util.ts | 4 +--- ...up-entity-to-flat-view-filter-group.util.ts | 3 +-- ...input-to-flat-view-filter-to-create.util.ts | 3 +-- ...w-filter-entity-to-flat-view-filter.util.ts | 4 +--- ...-input-to-flat-view-group-to-create.util.ts | 3 +-- ...iew-group-entity-to-flat-view-group.util.ts | 4 +--- ...e-view-input-to-flat-view-to-create.util.ts | 2 +- .../from-view-entity-to-flat-view.util.ts | 4 +--- .../dtos/object-metadata.dto.ts | 4 ++-- .../metadata-modules/role/role.resolver.ts | 2 +- .../role/utils/fromFlatRoleToRoleDto.util.ts | 2 +- ...ace-flat-route-trigger-map-cache.service.ts | 3 +-- ...trigger-input-to-flat-route-trigger.util.ts | 3 ++- ...-entity-to-flat-serverless-function.util.ts | 4 +--- 38 files changed, 54 insertions(+), 85 deletions(-) diff --git a/packages/twenty-front/src/generated-metadata/graphql.ts b/packages/twenty-front/src/generated-metadata/graphql.ts index 8dda5b86c8..952468516b 100644 --- a/packages/twenty-front/src/generated-metadata/graphql.ts +++ b/packages/twenty-front/src/generated-metadata/graphql.ts @@ -1460,7 +1460,7 @@ export enum FeatureFlagKey { export type Field = { __typename?: 'Field'; - applicationId?: Maybe; + applicationId: Scalars['UUID']; createdAt: Scalars['DateTime']; defaultValue?: Maybe; description?: Maybe; @@ -3164,7 +3164,7 @@ export type NotesConfiguration = { export type Object = { __typename?: 'Object'; - applicationId?: Maybe; + applicationId: Scalars['UUID']; createdAt: Scalars['DateTime']; description?: Maybe; duplicateCriteria?: Maybe>>; @@ -5688,7 +5688,7 @@ export type UpdateOneApplicationVariableMutationVariables = Exact<{ export type UpdateOneApplicationVariableMutation = { __typename?: 'Mutation', updateOneApplicationVariable: boolean }; -export type ApplicationFieldsFragment = { __typename?: 'Application', id: string, name: string, description: string, version: string, universalIdentifier: string, canBeUninstalled: boolean, applicationVariables: Array<{ __typename?: 'ApplicationVariable', id: string, key: string, value: string, description: string, isSecret: boolean }>, agents: Array<{ __typename?: 'Agent', id: string, name: string, label: string, description?: string | null, icon?: string | null, prompt: string, modelId: string, responseFormat?: any | null, roleId?: string | null, isCustom: boolean, modelConfiguration?: any | null, evaluationInputs: Array, applicationId?: string | null, createdAt: string, updatedAt: string }>, objects: Array<{ __typename?: 'Object', id: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isRemote: boolean, isActive: boolean, isSystem: boolean, isUIReadOnly: boolean, createdAt: string, updatedAt: string, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, applicationId?: string | null, shortcut?: string | null, isLabelSyncedWithName: boolean, isSearchable: boolean, duplicateCriteria?: Array> | null, indexMetadataList: Array<{ __typename?: 'Index', id: string, createdAt: string, updatedAt: string, name: string, indexWhereClause?: string | null, indexType: IndexType, isUnique: boolean, isCustom?: boolean | null, indexFieldMetadataList: Array<{ __typename?: 'IndexField', id: string, fieldMetadataId: string, createdAt: string, updatedAt: string, order: number }> }>, fieldsList: Array<{ __typename?: 'Field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isSystem?: boolean | null, isUIReadOnly?: boolean | null, isNullable?: boolean | null, isUnique?: boolean | null, createdAt: string, updatedAt: string, defaultValue?: any | null, options?: any | null, settings?: any | null, isLabelSyncedWithName?: boolean | null, morphId?: string | null, applicationId?: string | null, relation?: { __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } } | null, morphRelations?: Array<{ __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } }> | null }> }>, serverlessFunctions: Array<{ __typename?: 'ServerlessFunction', id: string, name: string, description?: string | null, runtime: string, timeoutSeconds: number, latestVersion?: string | null, publishedVersions: Array, handlerPath: string, handlerName: string, toolInputSchema?: any | null, isTool: boolean, applicationId?: string | null, createdAt: string, updatedAt: string, cronTriggers?: Array<{ __typename?: 'CronTrigger', id: string, settings: any, createdAt: string, updatedAt: string }> | null, databaseEventTriggers?: Array<{ __typename?: 'DatabaseEventTrigger', id: string, settings: any, createdAt: string, updatedAt: string }> | null, routeTriggers?: Array<{ __typename?: 'RouteTrigger', id: string, path: string, isAuthRequired: boolean, httpMethod: HttpMethod, forwardedRequestHeaders: Array, createdAt: string, updatedAt: string }> | null }> }; +export type ApplicationFieldsFragment = { __typename?: 'Application', id: string, name: string, description: string, version: string, universalIdentifier: string, canBeUninstalled: boolean, applicationVariables: Array<{ __typename?: 'ApplicationVariable', id: string, key: string, value: string, description: string, isSecret: boolean }>, agents: Array<{ __typename?: 'Agent', id: string, name: string, label: string, description?: string | null, icon?: string | null, prompt: string, modelId: string, responseFormat?: any | null, roleId?: string | null, isCustom: boolean, modelConfiguration?: any | null, evaluationInputs: Array, applicationId?: string | null, createdAt: string, updatedAt: string }>, objects: Array<{ __typename?: 'Object', id: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isRemote: boolean, isActive: boolean, isSystem: boolean, isUIReadOnly: boolean, createdAt: string, updatedAt: string, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, applicationId: string, shortcut?: string | null, isLabelSyncedWithName: boolean, isSearchable: boolean, duplicateCriteria?: Array> | null, indexMetadataList: Array<{ __typename?: 'Index', id: string, createdAt: string, updatedAt: string, name: string, indexWhereClause?: string | null, indexType: IndexType, isUnique: boolean, isCustom?: boolean | null, indexFieldMetadataList: Array<{ __typename?: 'IndexField', id: string, fieldMetadataId: string, createdAt: string, updatedAt: string, order: number }> }>, fieldsList: Array<{ __typename?: 'Field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isSystem?: boolean | null, isUIReadOnly?: boolean | null, isNullable?: boolean | null, isUnique?: boolean | null, createdAt: string, updatedAt: string, defaultValue?: any | null, options?: any | null, settings?: any | null, isLabelSyncedWithName?: boolean | null, morphId?: string | null, applicationId: string, relation?: { __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } } | null, morphRelations?: Array<{ __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } }> | null }> }>, serverlessFunctions: Array<{ __typename?: 'ServerlessFunction', id: string, name: string, description?: string | null, runtime: string, timeoutSeconds: number, latestVersion?: string | null, publishedVersions: Array, handlerPath: string, handlerName: string, toolInputSchema?: any | null, isTool: boolean, applicationId?: string | null, createdAt: string, updatedAt: string, cronTriggers?: Array<{ __typename?: 'CronTrigger', id: string, settings: any, createdAt: string, updatedAt: string }> | null, databaseEventTriggers?: Array<{ __typename?: 'DatabaseEventTrigger', id: string, settings: any, createdAt: string, updatedAt: string }> | null, routeTriggers?: Array<{ __typename?: 'RouteTrigger', id: string, path: string, isAuthRequired: boolean, httpMethod: HttpMethod, forwardedRequestHeaders: Array, createdAt: string, updatedAt: string }> | null }> }; export type FindManyApplicationsQueryVariables = Exact<{ [key: string]: never; }>; @@ -5700,7 +5700,7 @@ export type FindOneApplicationQueryVariables = Exact<{ }>; -export type FindOneApplicationQuery = { __typename?: 'Query', findOneApplication: { __typename?: 'Application', id: string, name: string, description: string, version: string, universalIdentifier: string, canBeUninstalled: boolean, applicationVariables: Array<{ __typename?: 'ApplicationVariable', id: string, key: string, value: string, description: string, isSecret: boolean }>, agents: Array<{ __typename?: 'Agent', id: string, name: string, label: string, description?: string | null, icon?: string | null, prompt: string, modelId: string, responseFormat?: any | null, roleId?: string | null, isCustom: boolean, modelConfiguration?: any | null, evaluationInputs: Array, applicationId?: string | null, createdAt: string, updatedAt: string }>, objects: Array<{ __typename?: 'Object', id: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isRemote: boolean, isActive: boolean, isSystem: boolean, isUIReadOnly: boolean, createdAt: string, updatedAt: string, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, applicationId?: string | null, shortcut?: string | null, isLabelSyncedWithName: boolean, isSearchable: boolean, duplicateCriteria?: Array> | null, indexMetadataList: Array<{ __typename?: 'Index', id: string, createdAt: string, updatedAt: string, name: string, indexWhereClause?: string | null, indexType: IndexType, isUnique: boolean, isCustom?: boolean | null, indexFieldMetadataList: Array<{ __typename?: 'IndexField', id: string, fieldMetadataId: string, createdAt: string, updatedAt: string, order: number }> }>, fieldsList: Array<{ __typename?: 'Field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isSystem?: boolean | null, isUIReadOnly?: boolean | null, isNullable?: boolean | null, isUnique?: boolean | null, createdAt: string, updatedAt: string, defaultValue?: any | null, options?: any | null, settings?: any | null, isLabelSyncedWithName?: boolean | null, morphId?: string | null, applicationId?: string | null, relation?: { __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } } | null, morphRelations?: Array<{ __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } }> | null }> }>, serverlessFunctions: Array<{ __typename?: 'ServerlessFunction', id: string, name: string, description?: string | null, runtime: string, timeoutSeconds: number, latestVersion?: string | null, publishedVersions: Array, handlerPath: string, handlerName: string, toolInputSchema?: any | null, isTool: boolean, applicationId?: string | null, createdAt: string, updatedAt: string, cronTriggers?: Array<{ __typename?: 'CronTrigger', id: string, settings: any, createdAt: string, updatedAt: string }> | null, databaseEventTriggers?: Array<{ __typename?: 'DatabaseEventTrigger', id: string, settings: any, createdAt: string, updatedAt: string }> | null, routeTriggers?: Array<{ __typename?: 'RouteTrigger', id: string, path: string, isAuthRequired: boolean, httpMethod: HttpMethod, forwardedRequestHeaders: Array, createdAt: string, updatedAt: string }> | null }> } }; +export type FindOneApplicationQuery = { __typename?: 'Query', findOneApplication: { __typename?: 'Application', id: string, name: string, description: string, version: string, universalIdentifier: string, canBeUninstalled: boolean, applicationVariables: Array<{ __typename?: 'ApplicationVariable', id: string, key: string, value: string, description: string, isSecret: boolean }>, agents: Array<{ __typename?: 'Agent', id: string, name: string, label: string, description?: string | null, icon?: string | null, prompt: string, modelId: string, responseFormat?: any | null, roleId?: string | null, isCustom: boolean, modelConfiguration?: any | null, evaluationInputs: Array, applicationId?: string | null, createdAt: string, updatedAt: string }>, objects: Array<{ __typename?: 'Object', id: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isRemote: boolean, isActive: boolean, isSystem: boolean, isUIReadOnly: boolean, createdAt: string, updatedAt: string, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, applicationId: string, shortcut?: string | null, isLabelSyncedWithName: boolean, isSearchable: boolean, duplicateCriteria?: Array> | null, indexMetadataList: Array<{ __typename?: 'Index', id: string, createdAt: string, updatedAt: string, name: string, indexWhereClause?: string | null, indexType: IndexType, isUnique: boolean, isCustom?: boolean | null, indexFieldMetadataList: Array<{ __typename?: 'IndexField', id: string, fieldMetadataId: string, createdAt: string, updatedAt: string, order: number }> }>, fieldsList: Array<{ __typename?: 'Field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isSystem?: boolean | null, isUIReadOnly?: boolean | null, isNullable?: boolean | null, isUnique?: boolean | null, createdAt: string, updatedAt: string, defaultValue?: any | null, options?: any | null, settings?: any | null, isLabelSyncedWithName?: boolean | null, morphId?: string | null, applicationId: string, relation?: { __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } } | null, morphRelations?: Array<{ __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } }> | null }> }>, serverlessFunctions: Array<{ __typename?: 'ServerlessFunction', id: string, name: string, description?: string | null, runtime: string, timeoutSeconds: number, latestVersion?: string | null, publishedVersions: Array, handlerPath: string, handlerName: string, toolInputSchema?: any | null, isTool: boolean, applicationId?: string | null, createdAt: string, updatedAt: string, cronTriggers?: Array<{ __typename?: 'CronTrigger', id: string, settings: any, createdAt: string, updatedAt: string }> | null, databaseEventTriggers?: Array<{ __typename?: 'DatabaseEventTrigger', id: string, settings: any, createdAt: string, updatedAt: string }> | null, routeTriggers?: Array<{ __typename?: 'RouteTrigger', id: string, path: string, isAuthRequired: boolean, httpMethod: HttpMethod, forwardedRequestHeaders: Array, createdAt: string, updatedAt: string }> | null }> } }; export type UploadFileMutationVariables = Exact<{ file: Scalars['Upload']; @@ -6010,7 +6010,7 @@ export type DeleteFileMutationVariables = Exact<{ export type DeleteFileMutation = { __typename?: 'Mutation', deleteFile: { __typename?: 'File', id: string, path: string, size: number, createdAt: string } }; -export type ObjectMetadataFieldsFragment = { __typename?: 'Object', id: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isRemote: boolean, isActive: boolean, isSystem: boolean, isUIReadOnly: boolean, createdAt: string, updatedAt: string, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, applicationId?: string | null, shortcut?: string | null, isLabelSyncedWithName: boolean, isSearchable: boolean, duplicateCriteria?: Array> | null, indexMetadataList: Array<{ __typename?: 'Index', id: string, createdAt: string, updatedAt: string, name: string, indexWhereClause?: string | null, indexType: IndexType, isUnique: boolean, isCustom?: boolean | null, indexFieldMetadataList: Array<{ __typename?: 'IndexField', id: string, fieldMetadataId: string, createdAt: string, updatedAt: string, order: number }> }>, fieldsList: Array<{ __typename?: 'Field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isSystem?: boolean | null, isUIReadOnly?: boolean | null, isNullable?: boolean | null, isUnique?: boolean | null, createdAt: string, updatedAt: string, defaultValue?: any | null, options?: any | null, settings?: any | null, isLabelSyncedWithName?: boolean | null, morphId?: string | null, applicationId?: string | null, relation?: { __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } } | null, morphRelations?: Array<{ __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } }> | null }> }; +export type ObjectMetadataFieldsFragment = { __typename?: 'Object', id: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isRemote: boolean, isActive: boolean, isSystem: boolean, isUIReadOnly: boolean, createdAt: string, updatedAt: string, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, applicationId: string, shortcut?: string | null, isLabelSyncedWithName: boolean, isSearchable: boolean, duplicateCriteria?: Array> | null, indexMetadataList: Array<{ __typename?: 'Index', id: string, createdAt: string, updatedAt: string, name: string, indexWhereClause?: string | null, indexType: IndexType, isUnique: boolean, isCustom?: boolean | null, indexFieldMetadataList: Array<{ __typename?: 'IndexField', id: string, fieldMetadataId: string, createdAt: string, updatedAt: string, order: number }> }>, fieldsList: Array<{ __typename?: 'Field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isSystem?: boolean | null, isUIReadOnly?: boolean | null, isNullable?: boolean | null, isUnique?: boolean | null, createdAt: string, updatedAt: string, defaultValue?: any | null, options?: any | null, settings?: any | null, isLabelSyncedWithName?: boolean | null, morphId?: string | null, applicationId: string, relation?: { __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } } | null, morphRelations?: Array<{ __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } }> | null }> }; export type CreateOneObjectMetadataItemMutationVariables = Exact<{ input: CreateOneObjectInput; @@ -6024,7 +6024,7 @@ export type CreateOneFieldMetadataItemMutationVariables = Exact<{ }>; -export type CreateOneFieldMetadataItemMutation = { __typename?: 'Mutation', createOneField: { __typename?: 'Field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isUnique?: boolean | null, isNullable?: boolean | null, createdAt: string, updatedAt: string, settings?: any | null, defaultValue?: any | null, options?: any | null, isLabelSyncedWithName?: boolean | null, applicationId?: string | null, object?: { __typename?: 'Object', id: string } | null } }; +export type CreateOneFieldMetadataItemMutation = { __typename?: 'Mutation', createOneField: { __typename?: 'Field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isUnique?: boolean | null, isNullable?: boolean | null, createdAt: string, updatedAt: string, settings?: any | null, defaultValue?: any | null, options?: any | null, isLabelSyncedWithName?: boolean | null, applicationId: string, object?: { __typename?: 'Object', id: string } | null } }; export type UpdateOneFieldMetadataItemMutationVariables = Exact<{ idToUpdate: Scalars['UUID']; @@ -6032,7 +6032,7 @@ export type UpdateOneFieldMetadataItemMutationVariables = Exact<{ }>; -export type UpdateOneFieldMetadataItemMutation = { __typename?: 'Mutation', updateOneField: { __typename?: 'Field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isUnique?: boolean | null, isNullable?: boolean | null, createdAt: string, updatedAt: string, settings?: any | null, isLabelSyncedWithName?: boolean | null, applicationId?: string | null, object?: { __typename?: 'Object', id: string } | null } }; +export type UpdateOneFieldMetadataItemMutation = { __typename?: 'Mutation', updateOneField: { __typename?: 'Field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isUnique?: boolean | null, isNullable?: boolean | null, createdAt: string, updatedAt: string, settings?: any | null, isLabelSyncedWithName?: boolean | null, applicationId: string, object?: { __typename?: 'Object', id: string } | null } }; export type UpdateOneObjectMetadataItemMutationVariables = Exact<{ idToUpdate: Scalars['UUID']; @@ -6054,12 +6054,12 @@ export type DeleteOneFieldMetadataItemMutationVariables = Exact<{ }>; -export type DeleteOneFieldMetadataItemMutation = { __typename?: 'Mutation', deleteOneField: { __typename?: 'Field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isUnique?: boolean | null, isNullable?: boolean | null, createdAt: string, updatedAt: string, settings?: any | null, applicationId?: string | null, object?: { __typename?: 'Object', id: string } | null } }; +export type DeleteOneFieldMetadataItemMutation = { __typename?: 'Mutation', deleteOneField: { __typename?: 'Field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isUnique?: boolean | null, isNullable?: boolean | null, createdAt: string, updatedAt: string, settings?: any | null, applicationId: string, object?: { __typename?: 'Object', id: string } | null } }; export type ObjectMetadataItemsQueryVariables = Exact<{ [key: string]: never; }>; -export type ObjectMetadataItemsQuery = { __typename?: 'Query', objects: { __typename?: 'ObjectConnection', edges: Array<{ __typename?: 'ObjectEdge', node: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isRemote: boolean, isActive: boolean, isSystem: boolean, isUIReadOnly: boolean, createdAt: string, updatedAt: string, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, applicationId?: string | null, shortcut?: string | null, isLabelSyncedWithName: boolean, isSearchable: boolean, duplicateCriteria?: Array> | null, indexMetadataList: Array<{ __typename?: 'Index', id: string, createdAt: string, updatedAt: string, name: string, indexWhereClause?: string | null, indexType: IndexType, isUnique: boolean, isCustom?: boolean | null, indexFieldMetadataList: Array<{ __typename?: 'IndexField', id: string, fieldMetadataId: string, createdAt: string, updatedAt: string, order: number }> }>, fieldsList: Array<{ __typename?: 'Field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isSystem?: boolean | null, isUIReadOnly?: boolean | null, isNullable?: boolean | null, isUnique?: boolean | null, createdAt: string, updatedAt: string, defaultValue?: any | null, options?: any | null, settings?: any | null, isLabelSyncedWithName?: boolean | null, morphId?: string | null, applicationId?: string | null, relation?: { __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } } | null, morphRelations?: Array<{ __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } }> | null }> } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } }; +export type ObjectMetadataItemsQuery = { __typename?: 'Query', objects: { __typename?: 'ObjectConnection', edges: Array<{ __typename?: 'ObjectEdge', node: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isRemote: boolean, isActive: boolean, isSystem: boolean, isUIReadOnly: boolean, createdAt: string, updatedAt: string, labelIdentifierFieldMetadataId?: string | null, imageIdentifierFieldMetadataId?: string | null, applicationId: string, shortcut?: string | null, isLabelSyncedWithName: boolean, isSearchable: boolean, duplicateCriteria?: Array> | null, indexMetadataList: Array<{ __typename?: 'Index', id: string, createdAt: string, updatedAt: string, name: string, indexWhereClause?: string | null, indexType: IndexType, isUnique: boolean, isCustom?: boolean | null, indexFieldMetadataList: Array<{ __typename?: 'IndexField', id: string, fieldMetadataId: string, createdAt: string, updatedAt: string, order: number }> }>, fieldsList: Array<{ __typename?: 'Field', id: string, type: FieldMetadataType, name: string, label: string, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isSystem?: boolean | null, isUIReadOnly?: boolean | null, isNullable?: boolean | null, isUnique?: boolean | null, createdAt: string, updatedAt: string, defaultValue?: any | null, options?: any | null, settings?: any | null, isLabelSyncedWithName?: boolean | null, morphId?: string | null, applicationId: string, relation?: { __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } } | null, morphRelations?: Array<{ __typename?: 'Relation', type: RelationType, sourceObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, targetObjectMetadata: { __typename?: 'Object', id: string, nameSingular: string, namePlural: string }, sourceFieldMetadata: { __typename?: 'Field', id: string, name: string }, targetFieldMetadata: { __typename?: 'Field', id: string, name: string } }> | null }> } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } }; export type SkipBookOnboardingStepMutationVariables = Exact<{ [key: string]: never; }>; diff --git a/packages/twenty-front/src/generated/graphql.ts b/packages/twenty-front/src/generated/graphql.ts index 60e6e6edfd..08b72b0103 100644 --- a/packages/twenty-front/src/generated/graphql.ts +++ b/packages/twenty-front/src/generated/graphql.ts @@ -1437,7 +1437,7 @@ export enum FeatureFlagKey { export type Field = { __typename?: 'Field'; - applicationId?: Maybe; + applicationId: Scalars['UUID']; createdAt: Scalars['DateTime']; defaultValue?: Maybe; description?: Maybe; @@ -3074,7 +3074,7 @@ export type NotesConfiguration = { export type Object = { __typename?: 'Object'; - applicationId?: Maybe; + applicationId: Scalars['UUID']; createdAt: Scalars['DateTime']; description?: Maybe; duplicateCriteria?: Maybe>>; diff --git a/packages/twenty-server/src/engine/metadata-modules/cron-trigger/services/workspace-flat-cron-trigger-map-cache.service.ts b/packages/twenty-server/src/engine/metadata-modules/cron-trigger/services/workspace-flat-cron-trigger-map-cache.service.ts index 44090d9890..689e25d513 100644 --- a/packages/twenty-server/src/engine/metadata-modules/cron-trigger/services/workspace-flat-cron-trigger-map-cache.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/cron-trigger/services/workspace-flat-cron-trigger-map-cache.service.ts @@ -43,8 +43,7 @@ export class WorkspaceFlatCronTriggerMapCacheService extends WorkspaceCacheProvi cronTriggerEntity, getMetadataEntityRelationProperties('cronTrigger'), ), - universalIdentifier: - cronTriggerEntity.universalIdentifier ?? cronTriggerEntity.id, + universalIdentifier: cronTriggerEntity.universalIdentifier, createdAt: cronTriggerEntity.createdAt.toISOString(), updatedAt: cronTriggerEntity.updatedAt.toISOString(), } satisfies FlatCronTrigger; diff --git a/packages/twenty-server/src/engine/metadata-modules/cron-trigger/utils/from-create-cron-trigger-input-to-flat-cron-trigger.util.ts b/packages/twenty-server/src/engine/metadata-modules/cron-trigger/utils/from-create-cron-trigger-input-to-flat-cron-trigger.util.ts index e4af7c2099..dda4e55733 100644 --- a/packages/twenty-server/src/engine/metadata-modules/cron-trigger/utils/from-create-cron-trigger-input-to-flat-cron-trigger.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/cron-trigger/utils/from-create-cron-trigger-input-to-flat-cron-trigger.util.ts @@ -17,7 +17,7 @@ export const fromCreateCronTriggerInputToFlatCronTrigger = ({ return { id, - universalIdentifier: createCronTriggerInput.universalIdentifier ?? id, + universalIdentifier: createCronTriggerInput.universalIdentifier ?? v4(), settings: createCronTriggerInput.settings, serverlessFunctionId: createCronTriggerInput.serverlessFunctionId, applicationId: workspaceCustomApplicationId, diff --git a/packages/twenty-server/src/engine/metadata-modules/database-event-trigger/services/workspace-flat-database-event-trigger-map-cache.service.ts b/packages/twenty-server/src/engine/metadata-modules/database-event-trigger/services/workspace-flat-database-event-trigger-map-cache.service.ts index c910d447b5..d2db7b8b39 100644 --- a/packages/twenty-server/src/engine/metadata-modules/database-event-trigger/services/workspace-flat-database-event-trigger-map-cache.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/database-event-trigger/services/workspace-flat-database-event-trigger-map-cache.service.ts @@ -44,9 +44,7 @@ export class WorkspaceFlatDatabaseEventTriggerMapCacheService extends WorkspaceC databaseEventTriggerEntity, getMetadataEntityRelationProperties('databaseEventTrigger'), ), - universalIdentifier: - databaseEventTriggerEntity.universalIdentifier ?? - databaseEventTriggerEntity.id, + universalIdentifier: databaseEventTriggerEntity.universalIdentifier, createdAt: databaseEventTriggerEntity.createdAt.toISOString(), updatedAt: databaseEventTriggerEntity.updatedAt.toISOString(), } satisfies FlatDatabaseEventTrigger; diff --git a/packages/twenty-server/src/engine/metadata-modules/database-event-trigger/utils/from-create-database-event-trigger-input-to-flat-database-event-trigger.util.ts b/packages/twenty-server/src/engine/metadata-modules/database-event-trigger/utils/from-create-database-event-trigger-input-to-flat-database-event-trigger.util.ts index e9b84772fc..88b06f4a5f 100644 --- a/packages/twenty-server/src/engine/metadata-modules/database-event-trigger/utils/from-create-database-event-trigger-input-to-flat-database-event-trigger.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/database-event-trigger/utils/from-create-database-event-trigger-input-to-flat-database-event-trigger.util.ts @@ -18,7 +18,7 @@ export const fromCreateDatabaseEventTriggerInputToFlatDatabaseEventTrigger = ({ return { id, universalIdentifier: - createDatabaseEventTriggerInput.universalIdentifier ?? id, + createDatabaseEventTriggerInput.universalIdentifier ?? uuidV4(), settings: createDatabaseEventTriggerInput.settings, serverlessFunctionId: createDatabaseEventTriggerInput.serverlessFunctionId, workspaceId, diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto.ts index 861b28520d..5e6e25c850 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto.ts @@ -166,7 +166,6 @@ export class FieldMetadataDTO { @Field() updatedAt: Date; - // TODO prastoin make non nullable once MakeFieldMetadataUniversalIdentifierAndApplicationIdNotNullableMigrationCommand has passed in production @Field(() => UUIDScalarType, { nullable: true }) - @Field(() => UUIDScalarType, { nullable: true }) - applicationId?: string; + @Field(() => UUIDScalarType) + applicationId: string; } diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-agent/utils/transform-agent-entity-to-flat-agent.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-agent/utils/transform-agent-entity-to-flat-agent.util.ts index 6c1626a730..142c33fa0c 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-agent/utils/transform-agent-entity-to-flat-agent.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-agent/utils/transform-agent-entity-to-flat-agent.util.ts @@ -19,8 +19,7 @@ export const transformAgentEntityToFlatAgent = ( responseFormat: agentEntity.responseFormat, workspaceId: agentEntity.workspaceId, isCustom: agentEntity.isCustom, - // TODO remove once MakeAgentUniversalIdentifierAndApplicationIdNotNullableMigrationCommand has been run once - universalIdentifier: agentEntity.universalIdentifier ?? agentEntity.id, + universalIdentifier: agentEntity.universalIdentifier, applicationId: agentEntity.applicationId, modelConfiguration: agentEntity.modelConfiguration, evaluationInputs: agentEntity.evaluationInputs, diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/from-field-metadata-entity-to-flat-field-metadata.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/from-field-metadata-entity-to-flat-field-metadata.util.ts index 47d6fdf812..733a34e644 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/from-field-metadata-entity-to-flat-field-metadata.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/from-field-metadata-entity-to-flat-field-metadata.util.ts @@ -18,11 +18,7 @@ export const fromFieldMetadataEntityToFlatFieldMetadata = < return { ...fieldMetadataWithoutRelations, - // TODO remove once MakeFieldMetadataUniversalIdentifierAndApplicationIdNotNullableMigrationCommand has been run once - universalIdentifier: - fieldMetadataWithoutRelations.universalIdentifier ?? - fieldMetadataWithoutRelations.standardId ?? - fieldMetadataWithoutRelations.id, + universalIdentifier: fieldMetadataWithoutRelations.universalIdentifier, createdAt: fieldMetadataWithoutRelations.createdAt.toISOString(), updatedAt: fieldMetadataWithoutRelations.updatedAt.toISOString(), kanbanAggregateOperationViewIds: diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/get-default-flat-field-metadata-from-create-field-input.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/get-default-flat-field-metadata-from-create-field-input.util.ts index 5d31cc0a07..a68b8d3b48 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/get-default-flat-field-metadata-from-create-field-input.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/utils/get-default-flat-field-metadata-from-create-field-input.util.ts @@ -1,4 +1,5 @@ import { extractAndSanitizeObjectStringFields } from 'twenty-shared/utils'; +import { v4 } from 'uuid'; import { type CreateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/create-field.input'; import { generateDefaultValue } from 'src/engine/metadata-modules/field-metadata/utils/generate-default-value'; @@ -48,8 +49,7 @@ export const getDefaultFlatFieldMetadata = ({ standardId: createFieldInput.standardId ?? null, standardOverrides: null, type: createFieldInput.type, - universalIdentifier: - createFieldInput.universalIdentifier ?? fieldMetadataId, + universalIdentifier: createFieldInput.universalIdentifier ?? v4(), workspaceId, options: createFieldInput.options ?? null, defaultValue: defaultValue ?? generateDefaultValue(createFieldInput.type), diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-index-metadata/utils/from-index-metadata-entity-to-flat-index-metadata.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-index-metadata/utils/from-index-metadata-entity-to-flat-index-metadata.util.ts index b123a8b2f2..db87999c01 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-index-metadata/utils/from-index-metadata-entity-to-flat-index-metadata.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-index-metadata/utils/from-index-metadata-entity-to-flat-index-metadata.util.ts @@ -17,8 +17,7 @@ export const fromIndexMetadataEntityToFlatIndexMetadata = ( createdAt: indexMetadataEntity.createdAt.toISOString(), updatedAt: indexMetadataEntity.updatedAt.toISOString(), universalIdentifier: - indexMetadataEntityWithoutRelations.universalIdentifier ?? - indexMetadataEntityWithoutRelations.id, + indexMetadataEntityWithoutRelations.universalIdentifier, flatIndexFieldMetadatas: indexMetadataEntity.indexFieldMetadatas.map( (indexFieldMetadata) => ({ ...removePropertiesFromRecord(indexFieldMetadata, [ diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-create-object-input-to-flat-object-metadata-and-flat-field-metadatas-to-create.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-create-object-input-to-flat-object-metadata-and-flat-field-metadatas-to-create.util.ts index 52ad4aecc2..1a55c08ac5 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-create-object-input-to-flat-object-metadata-and-flat-field-metadatas-to-create.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-create-object-input-to-flat-object-metadata-and-flat-field-metadatas-to-create.util.ts @@ -96,8 +96,7 @@ export const fromCreateObjectInputToFlatObjectMetadataAndFlatFieldMetadatasToCre standardId: createObjectInput.standardId ?? null, standardOverrides: null, applicationId: workspaceCustomApplicationId, - universalIdentifier: - createObjectInput.universalIdentifier ?? objectMetadataId, + universalIdentifier: createObjectInput.universalIdentifier ?? v4(), targetTableName: 'DEPRECATED', workspaceId, }; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadata-to-object-metadata-dto.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadata-to-object-metadata-dto.util.ts index 24bfdf6d9e..f0faa66188 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadata-to-object-metadata-dto.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-flat-object-metadata-to-object-metadata-dto.util.ts @@ -27,6 +27,7 @@ export const fromFlatObjectMetadataToObjectMetadataDto = ( workspaceId, imageIdentifierFieldMetadataId, labelIdentifierFieldMetadataId, + applicationId, } = flatObjectMetadata; return { @@ -52,5 +53,6 @@ export const fromFlatObjectMetadataToObjectMetadataDto = ( standardOverrides: standardOverrides ?? undefined, shortcut: shortcut ?? undefined, duplicateCriteria: duplicateCriteria ?? undefined, + applicationId, }; }; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-object-metadata-entity-to-flat-object-metadata.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-object-metadata-entity-to-flat-object-metadata.util.ts index db5e24195e..762a62643e 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-object-metadata-entity-to-flat-object-metadata.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-object-metadata/utils/from-object-metadata-entity-to-flat-object-metadata.util.ts @@ -14,11 +14,8 @@ export const fromObjectMetadataEntityToFlatObjectMetadata = ( return { ...objectMetadataEntityWithoutRelations, - // TODO remove once MakeObjectMetadataUniversalIdentifierAndApplicationIdNotNullableMigrationCommand has been run once universalIdentifier: - objectMetadataEntityWithoutRelations.universalIdentifier ?? - objectMetadataEntityWithoutRelations.standardId ?? - objectMetadataEntityWithoutRelations.id, + objectMetadataEntityWithoutRelations.universalIdentifier, createdAt: objectMetadataEntity.createdAt.toISOString(), updatedAt: objectMetadataEntity.updatedAt.toISOString(), viewIds: objectMetadataEntity.views.map((viewEntity) => viewEntity.id), diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-page-layout-tab/utils/transform-page-layout-tab-entity-to-flat-page-layout-tab.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-page-layout-tab/utils/transform-page-layout-tab-entity-to-flat-page-layout-tab.util.ts index d884f1a3a8..095d6ae8bd 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-page-layout-tab/utils/transform-page-layout-tab-entity-to-flat-page-layout-tab.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-page-layout-tab/utils/transform-page-layout-tab-entity-to-flat-page-layout-tab.util.ts @@ -13,8 +13,7 @@ export const transformPageLayoutTabEntityToFlatPageLayoutTab = ( position: pageLayoutTabEntity.position, pageLayoutId: pageLayoutTabEntity.pageLayoutId, workspaceId: pageLayoutTabEntity.workspaceId, - universalIdentifier: - pageLayoutTabEntity.universalIdentifier ?? pageLayoutTabEntity.id, + universalIdentifier: pageLayoutTabEntity.universalIdentifier, applicationId: pageLayoutTabEntity.applicationId, widgetIds: pageLayoutTabEntity.widgets.map((widget) => widget.id), }; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-page-layout-widget/utils/from-page-layout-widget-entity-to-flat-page-layout-widget.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-page-layout-widget/utils/from-page-layout-widget-entity-to-flat-page-layout-widget.util.ts index 8e801ab2c8..dbee9ffc93 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-page-layout-widget/utils/from-page-layout-widget-entity-to-flat-page-layout-widget.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-page-layout-widget/utils/from-page-layout-widget-entity-to-flat-page-layout-widget.util.ts @@ -18,8 +18,7 @@ export const fromPageLayoutWidgetEntityToFlatPageLayoutWidget = ( updatedAt: pageLayoutWidgetEntity.updatedAt.toISOString(), deletedAt: pageLayoutWidgetEntity.deletedAt?.toISOString() ?? null, universalIdentifier: - pageLayoutWidgetEntityWithoutRelations.universalIdentifier ?? - pageLayoutWidgetEntityWithoutRelations.id, - applicationId: pageLayoutWidgetEntityWithoutRelations.applicationId ?? null, + pageLayoutWidgetEntityWithoutRelations.universalIdentifier, + applicationId: pageLayoutWidgetEntityWithoutRelations.applicationId, }; }; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-page-layout/utils/transform-page-layout-entity-to-flat-page-layout.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-page-layout/utils/transform-page-layout-entity-to-flat-page-layout.util.ts index 673b5c6b9e..7c81a4e7ba 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-page-layout/utils/transform-page-layout-entity-to-flat-page-layout.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-page-layout/utils/transform-page-layout-entity-to-flat-page-layout.util.ts @@ -13,8 +13,7 @@ export const transformPageLayoutEntityToFlatPageLayout = ( type: pageLayoutEntity.type, objectMetadataId: pageLayoutEntity.objectMetadataId, workspaceId: pageLayoutEntity.workspaceId, - universalIdentifier: - pageLayoutEntity.universalIdentifier ?? pageLayoutEntity.id, + universalIdentifier: pageLayoutEntity.universalIdentifier, applicationId: pageLayoutEntity.applicationId, tabIds: pageLayoutEntity.tabs.map((tab) => tab.id), }; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-role-target/utils/from-role-target-entity-to-flat-role-target.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-role-target/utils/from-role-target-entity-to-flat-role-target.util.ts index 0252778638..0def7de8d2 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-role-target/utils/from-role-target-entity-to-flat-role-target.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-role-target/utils/from-role-target-entity-to-flat-role-target.util.ts @@ -12,7 +12,7 @@ export const fromRoleTargetsEntityToFlatRoleTarget = ( agentId: roleTarget.agentId, apiKeyId: roleTarget.apiKeyId, applicationId: roleTarget.applicationId, - universalIdentifier: roleTarget.universalIdentifier ?? roleTarget.id, + universalIdentifier: roleTarget.universalIdentifier, createdAt: roleTarget.createdAt.toISOString(), updatedAt: roleTarget.updatedAt.toISOString(), }; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-role/utils/from-create-role-input-to-flat-role-to-create.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-role/utils/from-create-role-input-to-flat-role-to-create.util.ts index aae26f68f4..8e0354b07a 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-role/utils/from-create-role-input-to-flat-role-to-create.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-role/utils/from-create-role-input-to-flat-role-to-create.util.ts @@ -48,7 +48,7 @@ export const fromCreateRoleInputToFlatRoleToCreate = ({ workspaceId, createdAt: now, updatedAt: now, - universalIdentifier: createRoleInput.universalIdentifier ?? id, + universalIdentifier: createRoleInput.universalIdentifier ?? v4(), applicationId, roleTargetIds: [], objectPermissionIds: [], diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-role/utils/from-role-entity-to-flat-role.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-role/utils/from-role-entity-to-flat-role.util.ts index 58fb046d25..9edaebbe50 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-role/utils/from-role-entity-to-flat-role.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-role/utils/from-role-entity-to-flat-role.util.ts @@ -21,8 +21,8 @@ export const fromRoleEntityToFlatRole = (role: RoleEntity): FlatRole => { workspaceId: role.workspaceId, createdAt: role.createdAt.toISOString(), updatedAt: role.updatedAt.toISOString(), - universalIdentifier: role.universalIdentifier ?? role.standardId ?? role.id, - applicationId: role.applicationId ?? null, + universalIdentifier: role.universalIdentifier, + applicationId: role.applicationId, roleTargetIds: role.roleTargets.map((rt) => rt.id), objectPermissionIds: role.objectPermissions.map((op) => op.id), permissionFlagIds: role.permissionFlags.map((pf) => pf.id), diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-row-level-permission-predicate/utils/from-row-level-permission-predicate-entity-to-flat-row-level-permission-predicate.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-row-level-permission-predicate/utils/from-row-level-permission-predicate-entity-to-flat-row-level-permission-predicate.util.ts index 4391e1a704..5c2059c8e5 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-row-level-permission-predicate/utils/from-row-level-permission-predicate-entity-to-flat-row-level-permission-predicate.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-row-level-permission-predicate/utils/from-row-level-permission-predicate-entity-to-flat-row-level-permission-predicate.util.ts @@ -22,7 +22,6 @@ export const fromRowLevelPermissionPredicateEntityToFlatRowLevelPermissionPredic deletedAt: rowLevelPermissionPredicateEntity.deletedAt?.toISOString() ?? null, universalIdentifier: - rowLevelPermissionPredicateEntityWithoutRelations.universalIdentifier ?? - rowLevelPermissionPredicateEntityWithoutRelations.id, + rowLevelPermissionPredicateEntityWithoutRelations.universalIdentifier, }; }; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-row-level-permission-predicate/utils/from-row-level-permission-predicate-group-entity-to-flat-row-level-permission-predicate-group.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-row-level-permission-predicate/utils/from-row-level-permission-predicate-group-entity-to-flat-row-level-permission-predicate-group.util.ts index c80ecf5e95..e0febae41a 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-row-level-permission-predicate/utils/from-row-level-permission-predicate-group-entity-to-flat-row-level-permission-predicate-group.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-row-level-permission-predicate/utils/from-row-level-permission-predicate-group-entity-to-flat-row-level-permission-predicate-group.util.ts @@ -22,8 +22,7 @@ export const fromRowLevelPermissionPredicateGroupEntityToFlatRowLevelPermissionP deletedAt: rowLevelPermissionPredicateGroupEntity.deletedAt?.toISOString() ?? null, universalIdentifier: - rowLevelPermissionPredicateGroupEntityWithoutRelations.universalIdentifier ?? - rowLevelPermissionPredicateGroupEntityWithoutRelations.id, + rowLevelPermissionPredicateGroupEntityWithoutRelations.universalIdentifier, childRowLevelPermissionPredicateGroupIds: ( rowLevelPermissionPredicateGroupEntity.childRowLevelPermissionPredicateGroups ?? [] diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-skill/utils/from-skill-entity-to-flat-skill.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-skill/utils/from-skill-entity-to-flat-skill.util.ts index 5433532075..1a1014dc26 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-skill/utils/from-skill-entity-to-flat-skill.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-skill/utils/from-skill-entity-to-flat-skill.util.ts @@ -17,7 +17,7 @@ export const fromSkillEntityToFlatSkill = ( workspaceId: skillEntity.workspaceId, isCustom: skillEntity.isCustom, isActive: skillEntity.isActive, - universalIdentifier: skillEntity.standardId || skillEntity.id, + universalIdentifier: skillEntity.universalIdentifier, applicationId: skillEntity.applicationId, }; }; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-view-field/utils/from-create-view-field-input-to-flat-view-field-to-create.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-view-field/utils/from-create-view-field-input-to-flat-view-field-to-create.util.ts index fde05ca3cf..ead78241bf 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-view-field/utils/from-create-view-field-input-to-flat-view-field-to-create.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-view-field/utils/from-create-view-field-input-to-flat-view-field-to-create.util.ts @@ -33,8 +33,7 @@ export const fromCreateViewFieldInputToFlatViewFieldToCreate = ({ createdAt: createdAt, updatedAt: createdAt, deletedAt: null, - universalIdentifier: - createViewFieldInput.universalIdentifier ?? viewFieldId, + universalIdentifier: createViewFieldInput.universalIdentifier ?? v4(), isVisible: createViewFieldInput.isVisible ?? true, size: createViewFieldInput.size ?? DEFAULT_VIEW_FIELD_SIZE, position: createViewFieldInput.position ?? 0, diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-view-field/utils/from-view-field-entity-to-flat-view-field.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-view-field/utils/from-view-field-entity-to-flat-view-field.util.ts index 6e10109b30..0d230da1ab 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-view-field/utils/from-view-field-entity-to-flat-view-field.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-view-field/utils/from-view-field-entity-to-flat-view-field.util.ts @@ -17,8 +17,6 @@ export const fromViewFieldEntityToFlatViewField = ( createdAt: viewFieldEntity.createdAt.toISOString(), updatedAt: viewFieldEntity.updatedAt.toISOString(), deletedAt: viewFieldEntity.deletedAt?.toISOString() ?? null, - universalIdentifier: - viewFieldEntityWithoutRelations.universalIdentifier ?? - viewFieldEntityWithoutRelations.id, + universalIdentifier: viewFieldEntityWithoutRelations.universalIdentifier, }; }; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-view-filter-group/utils/from-view-filter-group-entity-to-flat-view-filter-group.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-view-filter-group/utils/from-view-filter-group-entity-to-flat-view-filter-group.util.ts index 40c9649f5a..f82bac627d 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-view-filter-group/utils/from-view-filter-group-entity-to-flat-view-filter-group.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-view-filter-group/utils/from-view-filter-group-entity-to-flat-view-filter-group.util.ts @@ -18,8 +18,7 @@ export const fromViewFilterGroupEntityToFlatViewFilterGroup = ( updatedAt: viewFilterGroupEntity.updatedAt.toISOString(), deletedAt: viewFilterGroupEntity.deletedAt?.toISOString() ?? null, universalIdentifier: - viewFilterGroupEntityWithoutRelations.universalIdentifier ?? - viewFilterGroupEntityWithoutRelations.id, + viewFilterGroupEntityWithoutRelations.universalIdentifier, viewFilterIds: viewFilterGroupEntity.viewFilters?.map((viewFilter) => viewFilter.id) ?? [], diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-view-filter/utils/from-create-view-filter-input-to-flat-view-filter-to-create.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-view-filter/utils/from-create-view-filter-input-to-flat-view-filter-to-create.util.ts index eb9fc1b82d..13ab260ea0 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-view-filter/utils/from-create-view-filter-input-to-flat-view-filter-to-create.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-view-filter/utils/from-create-view-filter-input-to-flat-view-filter-to-create.util.ts @@ -38,8 +38,7 @@ export const fromCreateViewFilterInputToFlatViewFilterToCreate = ({ createdAt: createdAt, updatedAt: createdAt, deletedAt: null, - universalIdentifier: - createViewFilterInput.universalIdentifier ?? viewFilterId, + universalIdentifier: createViewFilterInput.universalIdentifier ?? v4(), operand: createViewFilterInput.operand ?? ViewFilterOperand.CONTAINS, value: value, viewFilterGroupId: createViewFilterInput.viewFilterGroupId ?? null, diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-view-filter/utils/from-view-filter-entity-to-flat-view-filter.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-view-filter/utils/from-view-filter-entity-to-flat-view-filter.util.ts index 793a81ad84..b83cd4784b 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-view-filter/utils/from-view-filter-entity-to-flat-view-filter.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-view-filter/utils/from-view-filter-entity-to-flat-view-filter.util.ts @@ -17,8 +17,6 @@ export const fromViewFilterEntityToFlatViewFilter = ( createdAt: viewFilterEntity.createdAt.toISOString(), updatedAt: viewFilterEntity.updatedAt.toISOString(), deletedAt: viewFilterEntity.deletedAt?.toISOString() ?? null, - universalIdentifier: - viewFilterEntityWithoutRelations.universalIdentifier ?? - viewFilterEntityWithoutRelations.id, + universalIdentifier: viewFilterEntityWithoutRelations.universalIdentifier, }; }; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-view-group/utils/from-create-view-group-input-to-flat-view-group-to-create.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-view-group/utils/from-create-view-group-input-to-flat-view-group-to-create.util.ts index 67fd4323ac..64ce5c99ee 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-view-group/utils/from-create-view-group-input-to-flat-view-group-to-create.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-view-group/utils/from-create-view-group-input-to-flat-view-group-to-create.util.ts @@ -29,8 +29,7 @@ export const fromCreateViewGroupInputToFlatViewGroupToCreate = ({ createdAt: createdAt, updatedAt: createdAt, deletedAt: null, - universalIdentifier: - createViewGroupInput.universalIdentifier ?? viewGroupId, + universalIdentifier: createViewGroupInput.universalIdentifier ?? v4(), isVisible: createViewGroupInput.isVisible ?? true, fieldValue: createViewGroupInput.fieldValue, position: createViewGroupInput.position ?? 0, diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-view-group/utils/from-view-group-entity-to-flat-view-group.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-view-group/utils/from-view-group-entity-to-flat-view-group.util.ts index 73708e1625..f6bd3fb1df 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-view-group/utils/from-view-group-entity-to-flat-view-group.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-view-group/utils/from-view-group-entity-to-flat-view-group.util.ts @@ -17,8 +17,6 @@ export const fromViewGroupEntityToFlatViewGroup = ( createdAt: viewGroupEntity.createdAt.toISOString(), updatedAt: viewGroupEntity.updatedAt.toISOString(), deletedAt: viewGroupEntity.deletedAt?.toISOString() ?? null, - universalIdentifier: - viewGroupEntityWithoutRelations.universalIdentifier ?? - viewGroupEntityWithoutRelations.id, + universalIdentifier: viewGroupEntityWithoutRelations.universalIdentifier, }; }; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-view/utils/from-create-view-input-to-flat-view-to-create.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-view/utils/from-create-view-input-to-flat-view-to-create.util.ts index fb4455ac09..9336f572ae 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-view/utils/from-create-view-input-to-flat-view-to-create.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-view/utils/from-create-view-input-to-flat-view-to-create.util.ts @@ -62,7 +62,7 @@ export const fromCreateViewInputToFlatViewToCreate = ({ openRecordIn: createViewInput.openRecordIn ?? ViewOpenRecordIn.SIDE_PANEL, position: createViewInput.position ?? 0, type: createViewInput.type ?? ViewType.TABLE, - universalIdentifier: createViewInput.universalIdentifier ?? viewId, + universalIdentifier: createViewInput.universalIdentifier ?? v4(), visibility: createViewInput.visibility ?? ViewVisibility.WORKSPACE, createdByUserWorkspaceId: createdByUserWorkspaceId ?? null, viewFieldIds: [], diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-view/utils/from-view-entity-to-flat-view.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-view/utils/from-view-entity-to-flat-view.util.ts index 6929bda5df..8f0bb812c4 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-view/utils/from-view-entity-to-flat-view.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-view/utils/from-view-entity-to-flat-view.util.ts @@ -15,9 +15,7 @@ export const fromViewEntityToFlatView = (viewEntity: ViewEntity): FlatView => { createdAt: viewEntity.createdAt.toISOString(), updatedAt: viewEntity.updatedAt.toISOString(), deletedAt: viewEntity.deletedAt?.toISOString() ?? null, - universalIdentifier: - viewEntityWithoutRelations.universalIdentifier ?? - viewEntityWithoutRelations.id, + universalIdentifier: viewEntityWithoutRelations.universalIdentifier, viewFieldIds: viewEntity.viewFields.map((viewField) => viewField.id), viewFilterIds: viewEntity.viewFilters.map((viewFilter) => viewFilter.id), viewGroupIds: viewEntity.viewGroups.map((viewGroup) => viewGroup.id), diff --git a/packages/twenty-server/src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto.ts b/packages/twenty-server/src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto.ts index 43f4ac07aa..e35c7c13a0 100644 --- a/packages/twenty-server/src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto.ts +++ b/packages/twenty-server/src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto.ts @@ -77,8 +77,8 @@ export class ObjectMetadataDTO { @HideField() workspaceId: string; - @Field(() => UUIDScalarType, { nullable: true }) - applicationId?: string; + @Field(() => UUIDScalarType) + applicationId: string; @Field() createdAt: Date; diff --git a/packages/twenty-server/src/engine/metadata-modules/role/role.resolver.ts b/packages/twenty-server/src/engine/metadata-modules/role/role.resolver.ts index ea8badab2f..70c31d34af 100644 --- a/packages/twenty-server/src/engine/metadata-modules/role/role.resolver.ts +++ b/packages/twenty-server/src/engine/metadata-modules/role/role.resolver.ts @@ -313,7 +313,7 @@ export class RoleResolver { createdAt: agentEntity.createdAt.toISOString(), updatedAt: agentEntity.updatedAt.toISOString(), deletedAt: agentEntity.deletedAt?.toISOString() ?? null, - universalIdentifier: agentEntity.universalIdentifier ?? agentEntity.id, + universalIdentifier: agentEntity.universalIdentifier, roleId: role.id, }), ); diff --git a/packages/twenty-server/src/engine/metadata-modules/role/utils/fromFlatRoleToRoleDto.util.ts b/packages/twenty-server/src/engine/metadata-modules/role/utils/fromFlatRoleToRoleDto.util.ts index a706f83126..4967845760 100644 --- a/packages/twenty-server/src/engine/metadata-modules/role/utils/fromFlatRoleToRoleDto.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/role/utils/fromFlatRoleToRoleDto.util.ts @@ -35,6 +35,6 @@ export const fromFlatRoleToRoleDto = ({ description: description ?? undefined, icon: icon ?? undefined, standardId: standardId ?? undefined, - universalIdentifier: universalIdentifier ?? undefined, + universalIdentifier, }; }; diff --git a/packages/twenty-server/src/engine/metadata-modules/route-trigger/services/workspace-flat-route-trigger-map-cache.service.ts b/packages/twenty-server/src/engine/metadata-modules/route-trigger/services/workspace-flat-route-trigger-map-cache.service.ts index 5eac83d31a..a75476669d 100644 --- a/packages/twenty-server/src/engine/metadata-modules/route-trigger/services/workspace-flat-route-trigger-map-cache.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/route-trigger/services/workspace-flat-route-trigger-map-cache.service.ts @@ -46,8 +46,7 @@ export class WorkspaceFlatRouteTriggerMapCacheService extends WorkspaceCacheProv ...routeTriggerEntityWithoutRelations, createdAt: routeTriggerEntity.createdAt.toISOString(), updatedAt: routeTriggerEntity.updatedAt.toISOString(), - universalIdentifier: - routeTriggerEntity.universalIdentifier ?? routeTriggerEntity.id, + universalIdentifier: routeTriggerEntity.universalIdentifier, } satisfies FlatRouteTrigger; addFlatEntityToFlatEntityMapsThroughMutationOrThrow({ diff --git a/packages/twenty-server/src/engine/metadata-modules/route-trigger/utils/from-create-route-trigger-input-to-flat-route-trigger.util.ts b/packages/twenty-server/src/engine/metadata-modules/route-trigger/utils/from-create-route-trigger-input-to-flat-route-trigger.util.ts index 6a8a07eef0..c33b4305d5 100644 --- a/packages/twenty-server/src/engine/metadata-modules/route-trigger/utils/from-create-route-trigger-input-to-flat-route-trigger.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/route-trigger/utils/from-create-route-trigger-input-to-flat-route-trigger.util.ts @@ -17,7 +17,8 @@ export const fromCreateRouteTriggerInputToFlatRouteTrigger = ({ return { id, - universalIdentifier: createRouteTriggerInput.universalIdentifier ?? id, + universalIdentifier: + createRouteTriggerInput.universalIdentifier ?? uuidV4(), path: createRouteTriggerInput.path, isAuthRequired: createRouteTriggerInput.isAuthRequired, httpMethod: createRouteTriggerInput.httpMethod, diff --git a/packages/twenty-server/src/engine/metadata-modules/serverless-function/utils/from-serverless-function-entity-to-flat-serverless-function.util.ts b/packages/twenty-server/src/engine/metadata-modules/serverless-function/utils/from-serverless-function-entity-to-flat-serverless-function.util.ts index 7c5adce3c4..35a90054eb 100644 --- a/packages/twenty-server/src/engine/metadata-modules/serverless-function/utils/from-serverless-function-entity-to-flat-serverless-function.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/serverless-function/utils/from-serverless-function-entity-to-flat-serverless-function.util.ts @@ -28,8 +28,6 @@ export const fromServerlessFunctionEntityToFlatServerlessFunction = ( serverlessFunctionEntity.routeTriggers.map((el) => el.id) ?? [], databaseEventTriggerIds: serverlessFunctionEntity.databaseEventTriggers.map((el) => el.id) ?? [], - universalIdentifier: - serverlessFunctionEntity.universalIdentifier ?? - serverlessFunctionEntity.id, + universalIdentifier: serverlessFunctionEntity.universalIdentifier, }; };