diff --git a/packages/twenty-server/src/engine/core-modules/open-api/open-api.service.ts b/packages/twenty-server/src/engine/core-modules/open-api/open-api.service.ts index 1cac24584c..5f8e1176c9 100644 --- a/packages/twenty-server/src/engine/core-modules/open-api/open-api.service.ts +++ b/packages/twenty-server/src/engine/core-modules/open-api/open-api.service.ts @@ -6,6 +6,7 @@ import { capitalize, isDefined } from 'twenty-shared/utils'; import { DatabaseEventAction } from 'src/engine/api/graphql/graphql-query-runner/enums/database-event-action'; import { AccessTokenService } from 'src/engine/core-modules/auth/token/services/access-token.service'; +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 { baseSchema } from 'src/engine/core-modules/open-api/utils/base-schema.utils'; import { @@ -189,6 +190,12 @@ export class OpenApiService { return schema; } + const workspaceFeatureFlagsMap = + await this.featureFlagService.getWorkspaceFeatureFlagsMap(workspace.id); + + const isPageLayoutEnabled = + workspaceFeatureFlagsMap[FeatureFlagKey.IS_PAGE_LAYOUT_ENABLED]; + const metadata = [ { nameSingular: 'object', @@ -230,6 +237,22 @@ export class OpenApiService { nameSingular: 'viewFilterGroup', namePlural: 'viewFilterGroups', }, + ...(isPageLayoutEnabled + ? [ + { + nameSingular: 'pageLayout', + namePlural: 'pageLayouts', + }, + { + nameSingular: 'pageLayoutTab', + namePlural: 'pageLayoutTabs', + }, + { + nameSingular: 'pageLayoutWidget', + namePlural: 'pageLayoutWidgets', + }, + ] + : []), ]; schema.paths = metadata.reduce((path, item) => {