diff --git a/packages/twenty-front/src/generated-metadata/graphql.ts b/packages/twenty-front/src/generated-metadata/graphql.ts index 9002294dd3..51c2634ad0 100644 --- a/packages/twenty-front/src/generated-metadata/graphql.ts +++ b/packages/twenty-front/src/generated-metadata/graphql.ts @@ -1237,7 +1237,6 @@ export enum FeatureFlagKey { IS_CORE_VIEW_SYNCING_ENABLED = 'IS_CORE_VIEW_SYNCING_ENABLED', IS_DYNAMIC_SEARCH_FIELDS_ENABLED = 'IS_DYNAMIC_SEARCH_FIELDS_ENABLED', IS_EMAILING_DOMAIN_ENABLED = 'IS_EMAILING_DOMAIN_ENABLED', - IS_GROUP_BY_ENABLED = 'IS_GROUP_BY_ENABLED', IS_IMAP_SMTP_CALDAV_ENABLED = 'IS_IMAP_SMTP_CALDAV_ENABLED', IS_JSON_FILTER_ENABLED = 'IS_JSON_FILTER_ENABLED', IS_MESSAGE_FOLDER_CONTROL_ENABLED = 'IS_MESSAGE_FOLDER_CONTROL_ENABLED', diff --git a/packages/twenty-front/src/generated/graphql.ts b/packages/twenty-front/src/generated/graphql.ts index 3bac4c43fb..64645fd66a 100644 --- a/packages/twenty-front/src/generated/graphql.ts +++ b/packages/twenty-front/src/generated/graphql.ts @@ -1201,7 +1201,6 @@ export enum FeatureFlagKey { IS_CORE_VIEW_SYNCING_ENABLED = 'IS_CORE_VIEW_SYNCING_ENABLED', IS_DYNAMIC_SEARCH_FIELDS_ENABLED = 'IS_DYNAMIC_SEARCH_FIELDS_ENABLED', IS_EMAILING_DOMAIN_ENABLED = 'IS_EMAILING_DOMAIN_ENABLED', - IS_GROUP_BY_ENABLED = 'IS_GROUP_BY_ENABLED', IS_IMAP_SMTP_CALDAV_ENABLED = 'IS_IMAP_SMTP_CALDAV_ENABLED', IS_JSON_FILTER_ENABLED = 'IS_JSON_FILTER_ENABLED', IS_MESSAGE_FOLDER_CONTROL_ENABLED = 'IS_MESSAGE_FOLDER_CONTROL_ENABLED', diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/workspace-resolver.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/workspace-resolver.factory.ts index 7b4fc435b9..15722ca67c 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/workspace-resolver.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/workspace-resolver.factory.ts @@ -17,7 +17,6 @@ import { AuthExceptionCode, } from 'src/engine/core-modules/auth/auth.exception'; import { type AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type'; -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 { ObjectMetadataMaps } from 'src/engine/metadata-modules/types/object-metadata-maps'; import { getResolverName } from 'src/engine/utils/get-resolver-name.util'; @@ -116,15 +115,8 @@ export class WorkspaceResolverFactory { continue; } - const isGroupByEnabled = - workspaceFeatureFlagsMap[FeatureFlagKey.IS_GROUP_BY_ENABLED]; - // Generate query resolvers for (const methodName of workspaceResolverBuilderMethods.queries) { - if (methodName === 'groupBy' && !isGroupByEnabled) { - continue; - } - const resolverName = getResolverName(objectMetadata, methodName); const resolverFactory = factories.get(methodName); diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-type-generators/gql-type.generator.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-type-generators/gql-type.generator.ts index 2d3a1ea49b..883c1d6b0f 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-type-generators/gql-type.generator.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-type-generators/gql-type.generator.ts @@ -42,19 +42,13 @@ export class GqlTypeGenerator { private readonly mutationTypeGenerator: MutationTypeGenerator, ) {} - async buildAndStore( - objectMetadataCollection: ObjectMetadataEntity[], - workspaceId: string, - ) { + async buildAndStore(objectMetadataCollection: ObjectMetadataEntity[]) { const compositeTypeCollection = [...compositeTypeDefinitions.values()]; this.buildAndStoreCompositeFieldMetadataGqlTypes(compositeTypeCollection); this.buildAndStoreDateFieldMetadataGroupByGqlTypes(); this.buildAndStoreObjectMetadataGqlTypes(objectMetadataCollection); - await this.queryTypeGenerator.buildAndStore( - objectMetadataCollection, - workspaceId, - ); + await this.queryTypeGenerator.buildAndStore(objectMetadataCollection); this.mutationTypeGenerator.buildAndStore(objectMetadataCollection); } diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-type-generators/root-types/query-type.generator.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-type-generators/root-types/query-type.generator.ts index 4ed380949b..30c3fca1ca 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-type-generators/root-types/query-type.generator.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-type-generators/root-types/query-type.generator.ts @@ -6,8 +6,6 @@ import { workspaceResolverBuilderMethodNames } from 'src/engine/api/graphql/work import { GqlOperation } from 'src/engine/api/graphql/workspace-schema-builder/enums/gql-operation.enum'; import { RootTypeGenerator } from 'src/engine/api/graphql/workspace-schema-builder/graphql-type-generators/root-types/root-type.generator'; import { GqlTypesStorage } from 'src/engine/api/graphql/workspace-schema-builder/storages/gql-types.storage'; -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 { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity'; @Injectable() @@ -15,23 +13,12 @@ export class QueryTypeGenerator { constructor( private readonly rootTypeGenerator: RootTypeGenerator, private readonly gqlTypesStorage: GqlTypesStorage, - private readonly featureFlagService: FeatureFlagService, ) {} - async buildAndStore( - objectMetadataCollection: ObjectMetadataEntity[], - workspaceId: string, - ) { - const isGroupByEnabled = await this.featureFlagService.isFeatureEnabled( - FeatureFlagKey.IS_GROUP_BY_ENABLED, - workspaceId, - ); - + async buildAndStore(objectMetadataCollection: ObjectMetadataEntity[]) { return this.rootTypeGenerator.buildAndStore( objectMetadataCollection, - [...workspaceResolverBuilderMethodNames.queries].filter( - (methodName) => methodName !== 'groupBy' || isGroupByEnabled, - ), + workspaceResolverBuilderMethodNames.queries, GqlOperation.Query, ); } diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-type-generators/root-types/root-type.generator.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-type-generators/root-types/root-type.generator.ts index 271a18465a..131d3357b3 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-type-generators/root-types/root-type.generator.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/graphql-type-generators/root-types/root-type.generator.ts @@ -30,7 +30,7 @@ export class RootTypeGenerator { buildAndStore( objectMetadataCollection: ObjectMetadataEntity[], - workspaceResolverMethodNames: WorkspaceResolverBuilderMethodNames[], + workspaceResolverMethodNames: readonly WorkspaceResolverBuilderMethodNames[], objectTypeName: GqlOperation, ) { if (workspaceResolverMethodNames.length === 0) { @@ -61,7 +61,7 @@ export class RootTypeGenerator { private generateFields( objectMetadataCollection: ObjectMetadataEntity[], - workspaceResolverMethodNames: WorkspaceResolverBuilderMethodNames[], + workspaceResolverMethodNames: readonly WorkspaceResolverBuilderMethodNames[], ): GraphQLRootTypeFieldConfigMap { const fieldConfigMap: GraphQLRootTypeFieldConfigMap = {}; diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/workspace-graphql-schema.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/workspace-graphql-schema.factory.ts index 69cdaf5adb..980d6f79d2 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/workspace-graphql-schema.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema-builder/workspace-graphql-schema.factory.ts @@ -19,12 +19,8 @@ export class WorkspaceGraphQLSchemaGenerator { async generateSchema( objectMetadataCollection: ObjectMetadataEntity[], - workspaceId: string, ): Promise { - await this.gqlTypeGenerator.buildAndStore( - objectMetadataCollection, - workspaceId, - ); + await this.gqlTypeGenerator.buildAndStore(objectMetadataCollection); // Assemble schema const schema = new GraphQLSchema({ diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-schema.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-schema.factory.ts index 8a2ffc4f5c..c8994b6375 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-schema.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-schema.factory.ts @@ -108,7 +108,6 @@ export class WorkspaceSchemaFactory { const autoGeneratedSchema = await this.workspaceGraphQLSchemaGenerator.generateSchema( objectMetadataCollection, - workspaceId, ); usedScalarNames = diff --git a/packages/twenty-server/src/engine/core-modules/feature-flag/enums/feature-flag-key.enum.ts b/packages/twenty-server/src/engine/core-modules/feature-flag/enums/feature-flag-key.enum.ts index c973db9e70..ec0dd41360 100644 --- a/packages/twenty-server/src/engine/core-modules/feature-flag/enums/feature-flag-key.enum.ts +++ b/packages/twenty-server/src/engine/core-modules/feature-flag/enums/feature-flag-key.enum.ts @@ -16,7 +16,6 @@ export enum FeatureFlagKey { IS_RECORD_PAGE_LAYOUT_ENABLED = 'IS_RECORD_PAGE_LAYOUT_ENABLED', IS_MESSAGE_FOLDER_CONTROL_ENABLED = 'IS_MESSAGE_FOLDER_CONTROL_ENABLED', IS_CALENDAR_VIEW_ENABLED = 'IS_CALENDAR_VIEW_ENABLED', - IS_GROUP_BY_ENABLED = 'IS_GROUP_BY_ENABLED', IS_PUBLIC_DOMAIN_ENABLED = 'IS_PUBLIC_DOMAIN_ENABLED', IS_EMAILING_DOMAIN_ENABLED = 'IS_EMAILING_DOMAIN_ENABLED', IS_DYNAMIC_SEARCH_FIELDS_ENABLED = 'IS_DYNAMIC_SEARCH_FIELDS_ENABLED', diff --git a/packages/twenty-server/src/engine/twenty-orm/entity-manager/workspace-entity-manager.spec.ts b/packages/twenty-server/src/engine/twenty-orm/entity-manager/workspace-entity-manager.spec.ts index 9b03c7e521..979af8e811 100644 --- a/packages/twenty-server/src/engine/twenty-orm/entity-manager/workspace-entity-manager.spec.ts +++ b/packages/twenty-server/src/engine/twenty-orm/entity-manager/workspace-entity-manager.spec.ts @@ -139,7 +139,6 @@ describe('WorkspaceEntityManager', () => { IS_RECORD_PAGE_LAYOUT_ENABLED: false, IS_MESSAGE_FOLDER_CONTROL_ENABLED: false, IS_CALENDAR_VIEW_ENABLED: false, - IS_GROUP_BY_ENABLED: true, IS_PUBLIC_DOMAIN_ENABLED: false, IS_EMAILING_DOMAIN_ENABLED: false, IS_DYNAMIC_SEARCH_FIELDS_ENABLED: false, @@ -171,7 +170,6 @@ describe('WorkspaceEntityManager', () => { IS_RECORD_PAGE_LAYOUT_ENABLED: false, IS_MESSAGE_FOLDER_CONTROL_ENABLED: false, IS_CALENDAR_VIEW_ENABLED: false, - IS_GROUP_BY_ENABLED: false, IS_PUBLIC_DOMAIN_ENABLED: false, IS_EMAILING_DOMAIN_ENABLED: false, IS_DYNAMIC_SEARCH_FIELDS_ENABLED: false, diff --git a/packages/twenty-server/src/engine/workspace-manager/dev-seeder/core/utils/seed-feature-flags.util.ts b/packages/twenty-server/src/engine/workspace-manager/dev-seeder/core/utils/seed-feature-flags.util.ts index 7f0123fd51..e0a3c34195 100644 --- a/packages/twenty-server/src/engine/workspace-manager/dev-seeder/core/utils/seed-feature-flags.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/dev-seeder/core/utils/seed-feature-flags.util.ts @@ -81,11 +81,6 @@ export const seedFeatureFlags = async ( workspaceId: workspaceId, value: true, }, - { - key: FeatureFlagKey.IS_GROUP_BY_ENABLED, - workspaceId: workspaceId, - value: true, - }, { key: FeatureFlagKey.IS_PUBLIC_DOMAIN_ENABLED, workspaceId: workspaceId,