feat: CommandMenuItem entity and FrontComponent support in command menu (#17555)

https://github.com/user-attachments/assets/6f172ffc-d43d-42fd-a26b-94f591fb767e
This commit is contained in:
Abdul Rahman
2026-01-30 22:05:06 +05:30
committed by GitHub
parent 6462ff6c5f
commit 51a2a90b0a
45 changed files with 899 additions and 34 deletions
@@ -1,8 +1,8 @@
import { Injectable } from '@nestjs/common';
import { InjectDataSource } from '@nestjs/typeorm';
import { DataSource } from 'typeorm';
import { ALL_METADATA_NAME } from 'twenty-shared/metadata';
import { DataSource } from 'typeorm';
import { ApplicationService } from 'src/engine/core-modules/application/application.service';
import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum';
@@ -17,6 +17,7 @@ import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/work
import { SeededWorkspacesIds } from 'src/engine/workspace-manager/dev-seeder/core/constants/seeder-workspaces.constant';
import { DevSeederPermissionsService } from 'src/engine/workspace-manager/dev-seeder/core/services/dev-seeder-permissions.service';
import { seedCoreSchema } from 'src/engine/workspace-manager/dev-seeder/core/utils/seed-core-schema.util';
import { seedFrontComponentsAndCommandMenuItems } from 'src/engine/workspace-manager/dev-seeder/core/utils/seed-front-components-and-command-menu-items.util';
import { seedPageLayoutTabs } from 'src/engine/workspace-manager/dev-seeder/core/utils/seed-page-layout-tabs.util';
import { seedPageLayoutWidgets } from 'src/engine/workspace-manager/dev-seeder/core/utils/seed-page-layout-widgets.util';
import { seedPageLayouts } from 'src/engine/workspace-manager/dev-seeder/core/utils/seed-page-layouts.util';
@@ -145,6 +146,23 @@ export class DevSeederService {
featureFlags: featureFlagsMap,
});
await seedFrontComponentsAndCommandMenuItems({
dataSource: this.coreDataSource,
schemaName: 'core',
workspaceId,
applicationId: workspaceCustomFlatApplication.id,
});
const relatedCommandMenuItemAndFrontComponentCacheKeysToInvalidate = [
...getMetadataRelatedMetadataNames(ALL_METADATA_NAME.commandMenuItem),
...getMetadataRelatedMetadataNames(ALL_METADATA_NAME.frontComponent),
].map(getMetadataFlatEntityMapsKey);
await this.workspaceCacheService.invalidateAndRecompute(
workspaceId,
relatedCommandMenuItemAndFrontComponentCacheKeysToInvalidate,
);
await this.workspaceCacheStorageService.flush(workspaceId, undefined);
}
}