From 2e9a77f702942f2e56a90f5e31e4bf141dec2633 Mon Sep 17 00:00:00 2001 From: Thomas Trompette Date: Tue, 21 Jan 2025 16:11:57 +0100 Subject: [PATCH] Hide workflows + remove feature flag from entities (#9768) From now on workflow entities and views will be seed for every new workspace. What will prevent user to see those is the feature flag used in frontend. It will prevent workflow objects to be stored in the recoil state. Without feature flag, workflows will: - remain invisible in metadata - not be accessible through views or show page - remain invisible on side menu --- .../hooks/useRefreshObjectMetadataItem.ts | 21 +++++++++++++++++-- .../data-seed-dev-workspace.command.ts | 8 ------- .../seed-workspace-with-demo-data.ts | 2 -- .../seed-view-with-demo-data.ts | 11 +++------- .../standard-objects-prefill-data.ts | 2 -- .../workspace-manager.service.ts | 13 ------------ .../favorite.workspace-entity.ts | 20 ------------------ .../timeline-activity.workspace-entity.ts | 20 ------------------ ...orkflow-event-listener.workspace-entity.ts | 5 ----- .../workflow-run.workspace-entity.ts | 5 ----- .../workflow-version.workspace-entity.ts | 5 ----- .../workflow.workspace-entity.ts | 5 ----- 12 files changed, 22 insertions(+), 95 deletions(-) diff --git a/packages/twenty-front/src/modules/object-metadata/hooks/useRefreshObjectMetadataItem.ts b/packages/twenty-front/src/modules/object-metadata/hooks/useRefreshObjectMetadataItem.ts index f1e9eec68e..e959e627ab 100644 --- a/packages/twenty-front/src/modules/object-metadata/hooks/useRefreshObjectMetadataItem.ts +++ b/packages/twenty-front/src/modules/object-metadata/hooks/useRefreshObjectMetadataItem.ts @@ -2,10 +2,16 @@ import { FIND_MANY_OBJECT_METADATA_ITEMS } from '@/object-metadata/graphql/queri import { useApolloMetadataClient } from '@/object-metadata/hooks/useApolloMetadataClient'; import { isAppWaitingForFreshObjectMetadataState } from '@/object-metadata/states/isAppWaitingForFreshObjectMetadataState'; import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState'; +import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; +import { isWorkflowSubObjectMetadata } from '@/object-metadata/utils/isWorkflowSubObjectMetadata'; import { mapPaginatedObjectMetadataItemsToObjectMetadataItems } from '@/object-metadata/utils/mapPaginatedObjectMetadataItemsToObjectMetadataItems'; +import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled'; import { useRecoilCallback } from 'recoil'; -import { ObjectMetadataItemsQuery } from '~/generated-metadata/graphql'; +import { + FeatureFlagKey, + ObjectMetadataItemsQuery, +} from '~/generated-metadata/graphql'; import { isDeeplyEqual } from '~/utils/isDeeplyEqual'; type FetchPolicy = 'network-only' | 'cache-first'; @@ -14,6 +20,9 @@ export const useRefreshObjectMetadataItems = ( fetchPolicy: FetchPolicy = 'cache-first', ) => { const client = useApolloMetadataClient(); + const isWorkflowEnabled = useIsFeatureEnabled( + FeatureFlagKey.IsWorkflowEnabled, + ); const refreshObjectMetadataItems = async () => { const result = await client.query({ @@ -27,7 +36,15 @@ export const useRefreshObjectMetadataItems = ( pagedObjectMetadataItems: result.data, }); - replaceObjectMetadataItemIfDifferent(objectMetadataItems); + const filteredObjectMetadataItems = objectMetadataItems.filter((object) => { + return ( + isWorkflowEnabled || + (object.nameSingular !== CoreObjectNameSingular.Workflow && + !isWorkflowSubObjectMetadata(object.nameSingular)) + ); + }); + + replaceObjectMetadataItemIfDifferent(filteredObjectMetadataItems); }; const replaceObjectMetadataItemIfDifferent = useRecoilCallback( diff --git a/packages/twenty-server/src/database/commands/data-seed-dev-workspace.command.ts b/packages/twenty-server/src/database/commands/data-seed-dev-workspace.command.ts index fadcd08715..34cc58d127 100644 --- a/packages/twenty-server/src/database/commands/data-seed-dev-workspace.command.ts +++ b/packages/twenty-server/src/database/commands/data-seed-dev-workspace.command.ts @@ -32,7 +32,6 @@ import { TypeORMService } from 'src/database/typeorm/typeorm.service'; import { InjectCacheStorage } from 'src/engine/core-modules/cache-storage/decorators/cache-storage.decorator'; import { CacheStorageService } from 'src/engine/core-modules/cache-storage/services/cache-storage.service'; import { CacheStorageNamespace } from 'src/engine/core-modules/cache-storage/types/cache-storage-namespace.enum'; -import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum'; import { FeatureFlagService } from 'src/engine/core-modules/feature-flag/services/feature-flag.service'; import { DataSourceEntity } from 'src/engine/metadata-modules/data-source/data-source.entity'; import { DataSourceService } from 'src/engine/metadata-modules/data-source/data-source.service'; @@ -183,12 +182,6 @@ export class DataSeedWorkspaceCommand extends CommandRunner { dataSourceMetadata.workspaceId, ); - const isWorkflowEnabled = - await this.featureFlagService.isFeatureEnabled( - FeatureFlagKey.IsWorkflowEnabled, - dataSourceMetadata.workspaceId, - ); - await seedCompanies(entityManager, dataSourceMetadata.schema); await seedPeople(entityManager, dataSourceMetadata.schema); await seedOpportunity(entityManager, dataSourceMetadata.schema); @@ -229,7 +222,6 @@ export class DataSeedWorkspaceCommand extends CommandRunner { entityManager, dataSourceMetadata.schema, objectMetadataStandardIdToIdMap, - isWorkflowEnabled, ); const devViewDefinitionsWithId = await createWorkspaceViews( diff --git a/packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/seed-workspace-with-demo-data.ts b/packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/seed-workspace-with-demo-data.ts index 3817850662..f2d889e248 100644 --- a/packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/seed-workspace-with-demo-data.ts +++ b/packages/twenty-server/src/engine/workspace-manager/demo-objects-prefill-data/seed-workspace-with-demo-data.ts @@ -13,7 +13,6 @@ export const seedWorkspaceWithDemoData = async ( workspaceDataSource: DataSource, schemaName: string, objectMetadata: ObjectMetadataEntity[], - isWorkflowEnabled: boolean, ) => { const objectMetadataMap = objectMetadata.reduce((acc, object) => { acc[object.standardId ?? ''] = { @@ -38,7 +37,6 @@ export const seedWorkspaceWithDemoData = async ( entityManager, schemaName, objectMetadataMap, - isWorkflowEnabled, ); await seedWorkspaceFavorites( diff --git a/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/seed-view-with-demo-data.ts b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/seed-view-with-demo-data.ts index 2136e0a8e0..5030b01cd0 100644 --- a/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/seed-view-with-demo-data.ts +++ b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/seed-view-with-demo-data.ts @@ -18,7 +18,6 @@ export const seedViewWithDemoData = async ( entityManager: EntityManager, schemaName: string, objectMetadataStandardIdToIdMap: ObjectMetadataStandardIdToIdMap, - isWorkflowEnabled: boolean, ) => { const viewDefinitions = [ seedCompaniesAllView(objectMetadataStandardIdToIdMap), @@ -28,13 +27,9 @@ export const seedViewWithDemoData = async ( notesAllView(objectMetadataStandardIdToIdMap), tasksAllView(objectMetadataStandardIdToIdMap), tasksByStatusView(objectMetadataStandardIdToIdMap), - ...(isWorkflowEnabled - ? [ - workflowsAllView(objectMetadataStandardIdToIdMap), - workflowVersionsAllView(objectMetadataStandardIdToIdMap), - workflowRunsAllView(objectMetadataStandardIdToIdMap), - ] - : []), + workflowsAllView(objectMetadataStandardIdToIdMap), + workflowVersionsAllView(objectMetadataStandardIdToIdMap), + workflowRunsAllView(objectMetadataStandardIdToIdMap), ]; return createWorkspaceViews(entityManager, schemaName, viewDefinitions); diff --git a/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/standard-objects-prefill-data.ts b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/standard-objects-prefill-data.ts index 4fe9c86b86..68aa1a688e 100644 --- a/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/standard-objects-prefill-data.ts +++ b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/standard-objects-prefill-data.ts @@ -11,7 +11,6 @@ export const standardObjectsPrefillData = async ( workspaceDataSource: DataSource, schemaName: string, objectMetadata: ObjectMetadataEntity[], - isWorkflowEnabled: boolean, ) => { const objectMetadataMap = objectMetadata.reduce((acc, object) => { if (!object.standardId) { @@ -41,7 +40,6 @@ export const standardObjectsPrefillData = async ( entityManager, schemaName, objectMetadataMap, - isWorkflowEnabled, ); await seedWorkspaceFavorites( diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-manager.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-manager.service.ts index 958a34363e..39eb7d12ba 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-manager.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-manager.service.ts @@ -1,6 +1,5 @@ import { Injectable } from '@nestjs/common'; -import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum'; import { FeatureFlagService } from 'src/engine/core-modules/feature-flag/services/feature-flag.service'; import { DataSourceEntity } from 'src/engine/metadata-modules/data-source/data-source.entity'; import { DataSourceService } from 'src/engine/metadata-modules/data-source/data-source.service'; @@ -104,16 +103,10 @@ export class WorkspaceManagerService { const createdObjectMetadata = await this.objectMetadataService.findManyWithinWorkspace(workspaceId); - const isWorkflowEnabled = await this.featureFlagService.isFeatureEnabled( - FeatureFlagKey.IsWorkflowEnabled, - workspaceId, - ); - await standardObjectsPrefillData( workspaceDataSource, dataSourceMetadata.schema, createdObjectMetadata, - isWorkflowEnabled, ); } @@ -140,16 +133,10 @@ export class WorkspaceManagerService { const createdObjectMetadata = await this.objectMetadataService.findManyWithinWorkspace(workspaceId); - const isWorkflowEnabled = await this.featureFlagService.isFeatureEnabled( - FeatureFlagKey.IsWorkflowEnabled, - workspaceId, - ); - await seedWorkspaceWithDemoData( workspaceDataSource, dataSourceMetadata.schema, createdObjectMetadata, - isWorkflowEnabled, ); await this.seederService.seedCustomObjects( diff --git a/packages/twenty-server/src/modules/favorite/standard-objects/favorite.workspace-entity.ts b/packages/twenty-server/src/modules/favorite/standard-objects/favorite.workspace-entity.ts index edc7cbb9c9..6b3797d0a4 100644 --- a/packages/twenty-server/src/modules/favorite/standard-objects/favorite.workspace-entity.ts +++ b/packages/twenty-server/src/modules/favorite/standard-objects/favorite.workspace-entity.ts @@ -2,14 +2,12 @@ import { FieldMetadataType } from 'twenty-shared'; import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface'; -import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum'; import { RelationMetadataType } from 'src/engine/metadata-modules/relation-metadata/relation-metadata.entity'; import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity'; import { CustomWorkspaceEntity } from 'src/engine/twenty-orm/custom.workspace-entity'; import { WorkspaceDynamicRelation } from 'src/engine/twenty-orm/decorators/workspace-dynamic-relation.decorator'; import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator'; import { WorkspaceField } from 'src/engine/twenty-orm/decorators/workspace-field.decorator'; -import { WorkspaceGate } from 'src/engine/twenty-orm/decorators/workspace-gate.decorator'; import { WorkspaceIsNotAuditLogged } from 'src/engine/twenty-orm/decorators/workspace-is-not-audit-logged.decorator'; import { WorkspaceIsNullable } from 'src/engine/twenty-orm/decorators/workspace-is-nullable.decorator'; import { WorkspaceIsSystem } from 'src/engine/twenty-orm/decorators/workspace-is-system.decorator'; @@ -137,16 +135,10 @@ export class FavoriteWorkspaceEntity extends BaseWorkspaceEntity { inverseSideTarget: () => WorkflowWorkspaceEntity, inverseSideFieldKey: 'favorites', }) - @WorkspaceGate({ - featureFlag: FeatureFlagKey.IsWorkflowEnabled, - }) @WorkspaceIsNullable() workflow: Relation | null; @WorkspaceJoinColumn('workflow') - @WorkspaceGate({ - featureFlag: FeatureFlagKey.IsWorkflowEnabled, - }) workflowId: string; @WorkspaceRelation({ @@ -158,16 +150,10 @@ export class FavoriteWorkspaceEntity extends BaseWorkspaceEntity { inverseSideTarget: () => WorkflowVersionWorkspaceEntity, inverseSideFieldKey: 'favorites', }) - @WorkspaceGate({ - featureFlag: FeatureFlagKey.IsWorkflowEnabled, - }) @WorkspaceIsNullable() workflowVersion: Relation | null; @WorkspaceJoinColumn('workflowVersion') - @WorkspaceGate({ - featureFlag: FeatureFlagKey.IsWorkflowEnabled, - }) workflowVersionId: string; @WorkspaceRelation({ @@ -179,16 +165,10 @@ export class FavoriteWorkspaceEntity extends BaseWorkspaceEntity { inverseSideTarget: () => WorkflowRunWorkspaceEntity, inverseSideFieldKey: 'favorites', }) - @WorkspaceGate({ - featureFlag: FeatureFlagKey.IsWorkflowEnabled, - }) @WorkspaceIsNullable() workflowRun: Relation | null; @WorkspaceJoinColumn('workflowRun') - @WorkspaceGate({ - featureFlag: FeatureFlagKey.IsWorkflowEnabled, - }) workflowRunId: string; @WorkspaceRelation({ diff --git a/packages/twenty-server/src/modules/timeline/standard-objects/timeline-activity.workspace-entity.ts b/packages/twenty-server/src/modules/timeline/standard-objects/timeline-activity.workspace-entity.ts index de2fea0b83..e1f9839dce 100644 --- a/packages/twenty-server/src/modules/timeline/standard-objects/timeline-activity.workspace-entity.ts +++ b/packages/twenty-server/src/modules/timeline/standard-objects/timeline-activity.workspace-entity.ts @@ -2,14 +2,12 @@ import { FieldMetadataType } from 'twenty-shared'; import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface'; -import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum'; import { RelationMetadataType } from 'src/engine/metadata-modules/relation-metadata/relation-metadata.entity'; import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity'; import { CustomWorkspaceEntity } from 'src/engine/twenty-orm/custom.workspace-entity'; import { WorkspaceDynamicRelation } from 'src/engine/twenty-orm/decorators/workspace-dynamic-relation.decorator'; import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator'; import { WorkspaceField } from 'src/engine/twenty-orm/decorators/workspace-field.decorator'; -import { WorkspaceGate } from 'src/engine/twenty-orm/decorators/workspace-gate.decorator'; import { WorkspaceIsNotAuditLogged } from 'src/engine/twenty-orm/decorators/workspace-is-not-audit-logged.decorator'; import { WorkspaceIsNullable } from 'src/engine/twenty-orm/decorators/workspace-is-nullable.decorator'; import { WorkspaceIsSystem } from 'src/engine/twenty-orm/decorators/workspace-is-system.decorator'; @@ -198,16 +196,10 @@ export class TimelineActivityWorkspaceEntity extends BaseWorkspaceEntity { inverseSideTarget: () => WorkflowWorkspaceEntity, inverseSideFieldKey: 'timelineActivities', }) - @WorkspaceGate({ - featureFlag: FeatureFlagKey.IsWorkflowEnabled, - }) @WorkspaceIsNullable() workflow: Relation | null; @WorkspaceJoinColumn('workflow') - @WorkspaceGate({ - featureFlag: FeatureFlagKey.IsWorkflowEnabled, - }) workflowId: string | null; @WorkspaceRelation({ @@ -219,16 +211,10 @@ export class TimelineActivityWorkspaceEntity extends BaseWorkspaceEntity { inverseSideTarget: () => WorkflowVersionWorkspaceEntity, inverseSideFieldKey: 'timelineActivities', }) - @WorkspaceGate({ - featureFlag: FeatureFlagKey.IsWorkflowEnabled, - }) @WorkspaceIsNullable() workflowVersion: Relation | null; @WorkspaceJoinColumn('workflowVersion') - @WorkspaceGate({ - featureFlag: FeatureFlagKey.IsWorkflowEnabled, - }) workflowVersionId: string | null; @WorkspaceRelation({ @@ -240,16 +226,10 @@ export class TimelineActivityWorkspaceEntity extends BaseWorkspaceEntity { inverseSideTarget: () => WorkflowRunWorkspaceEntity, inverseSideFieldKey: 'timelineActivities', }) - @WorkspaceGate({ - featureFlag: FeatureFlagKey.IsWorkflowEnabled, - }) @WorkspaceIsNullable() workflowRun: Relation | null; @WorkspaceJoinColumn('workflowRun') - @WorkspaceGate({ - featureFlag: FeatureFlagKey.IsWorkflowEnabled, - }) workflowRunId: string | null; @WorkspaceDynamicRelation({ diff --git a/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-event-listener.workspace-entity.ts b/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-event-listener.workspace-entity.ts index d54f1219dc..57a41f0d22 100644 --- a/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-event-listener.workspace-entity.ts +++ b/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-event-listener.workspace-entity.ts @@ -2,12 +2,10 @@ import { FieldMetadataType } from 'twenty-shared'; import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface'; -import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum'; import { RelationMetadataType } from 'src/engine/metadata-modules/relation-metadata/relation-metadata.entity'; import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity'; import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator'; import { WorkspaceField } from 'src/engine/twenty-orm/decorators/workspace-field.decorator'; -import { WorkspaceGate } from 'src/engine/twenty-orm/decorators/workspace-gate.decorator'; import { WorkspaceIsNullable } from 'src/engine/twenty-orm/decorators/workspace-is-nullable.decorator'; import { WorkspaceIsSystem } from 'src/engine/twenty-orm/decorators/workspace-is-system.decorator'; import { WorkspaceJoinColumn } from 'src/engine/twenty-orm/decorators/workspace-join-column.decorator'; @@ -27,9 +25,6 @@ import { WorkflowWorkspaceEntity } from 'src/modules/workflow/common/standard-ob labelIdentifierStandardId: WORKFLOW_EVENT_LISTENER_STANDARD_FIELD_IDS.eventName, }) -@WorkspaceGate({ - featureFlag: FeatureFlagKey.IsWorkflowEnabled, -}) @WorkspaceIsSystem() export class WorkflowEventListenerWorkspaceEntity extends BaseWorkspaceEntity { @WorkspaceField({ diff --git a/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-run.workspace-entity.ts b/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-run.workspace-entity.ts index d3eaaef135..48e0f13cab 100644 --- a/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-run.workspace-entity.ts +++ b/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-run.workspace-entity.ts @@ -2,7 +2,6 @@ import { FieldMetadataType } from 'twenty-shared'; import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface'; -import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum'; import { ActorMetadata, FieldActorSource, @@ -14,7 +13,6 @@ import { import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity'; import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator'; import { WorkspaceField } from 'src/engine/twenty-orm/decorators/workspace-field.decorator'; -import { WorkspaceGate } from 'src/engine/twenty-orm/decorators/workspace-gate.decorator'; import { WorkspaceIsNullable } from 'src/engine/twenty-orm/decorators/workspace-is-nullable.decorator'; import { WorkspaceIsSystem } from 'src/engine/twenty-orm/decorators/workspace-is-system.decorator'; import { WorkspaceJoinColumn } from 'src/engine/twenty-orm/decorators/workspace-join-column.decorator'; @@ -59,9 +57,6 @@ export type WorkflowRunOutput = { labelIdentifierStandardId: WORKFLOW_RUN_STANDARD_FIELD_IDS.name, icon: STANDARD_OBJECT_ICONS.workflowRun, }) -@WorkspaceGate({ - featureFlag: FeatureFlagKey.IsWorkflowEnabled, -}) export class WorkflowRunWorkspaceEntity extends BaseWorkspaceEntity { @WorkspaceField({ standardId: WORKFLOW_RUN_STANDARD_FIELD_IDS.name, diff --git a/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-version.workspace-entity.ts b/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-version.workspace-entity.ts index de6d47d43e..cdac25e797 100644 --- a/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-version.workspace-entity.ts +++ b/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-version.workspace-entity.ts @@ -2,7 +2,6 @@ import { FieldMetadataType } from 'twenty-shared'; import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface'; -import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum'; import { FieldMetadataComplexOption } from 'src/engine/metadata-modules/field-metadata/dtos/options.input'; import { RelationMetadataType, @@ -11,7 +10,6 @@ import { import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity'; import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator'; import { WorkspaceField } from 'src/engine/twenty-orm/decorators/workspace-field.decorator'; -import { WorkspaceGate } from 'src/engine/twenty-orm/decorators/workspace-gate.decorator'; import { WorkspaceIsNullable } from 'src/engine/twenty-orm/decorators/workspace-is-nullable.decorator'; import { WorkspaceIsSystem } from 'src/engine/twenty-orm/decorators/workspace-is-system.decorator'; import { WorkspaceJoinColumn } from 'src/engine/twenty-orm/decorators/workspace-join-column.decorator'; @@ -69,9 +67,6 @@ const WorkflowVersionStatusOptions: FieldMetadataComplexOption[] = [ icon: STANDARD_OBJECT_ICONS.workflowVersion, labelIdentifierStandardId: WORKFLOW_VERSION_STANDARD_FIELD_IDS.name, }) -@WorkspaceGate({ - featureFlag: FeatureFlagKey.IsWorkflowEnabled, -}) export class WorkflowVersionWorkspaceEntity extends BaseWorkspaceEntity { @WorkspaceField({ standardId: WORKFLOW_VERSION_STANDARD_FIELD_IDS.name, diff --git a/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow.workspace-entity.ts b/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow.workspace-entity.ts index 3c4fd1359f..5314a2d4ae 100644 --- a/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow.workspace-entity.ts +++ b/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow.workspace-entity.ts @@ -2,7 +2,6 @@ import { FieldMetadataType } from 'twenty-shared'; import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface'; -import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum'; import { ActorMetadata, FieldActorSource, @@ -15,7 +14,6 @@ import { import { BaseWorkspaceEntity } from 'src/engine/twenty-orm/base.workspace-entity'; import { WorkspaceEntity } from 'src/engine/twenty-orm/decorators/workspace-entity.decorator'; import { WorkspaceField } from 'src/engine/twenty-orm/decorators/workspace-field.decorator'; -import { WorkspaceGate } from 'src/engine/twenty-orm/decorators/workspace-gate.decorator'; import { WorkspaceIsNullable } from 'src/engine/twenty-orm/decorators/workspace-is-nullable.decorator'; import { WorkspaceIsSystem } from 'src/engine/twenty-orm/decorators/workspace-is-system.decorator'; import { WorkspaceRelation } from 'src/engine/twenty-orm/decorators/workspace-relation.decorator'; @@ -65,9 +63,6 @@ const WorkflowStatusOptions: FieldMetadataComplexOption[] = [ shortcut: 'W', labelIdentifierStandardId: WORKFLOW_STANDARD_FIELD_IDS.name, }) -@WorkspaceGate({ - featureFlag: FeatureFlagKey.IsWorkflowEnabled, -}) export class WorkflowWorkspaceEntity extends BaseWorkspaceEntity { @WorkspaceField({ standardId: WORKFLOW_STANDARD_FIELD_IDS.name,