no longer use an enum for home's FeatureCatalogueCategory (#129599)

* no longer use an enum for home's FeatureCatalogueCategory

* use export type for `FeatureCatalogueCategory`

* fix unused import

* remove home as requiredBundle for more kibana manifests

* fix imports

* how did I mess that?

* fixing the mess, bis

* fix duplicate import

* fix some merge problems

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Pierre Gayvallet 2022-04-19 13:32:25 +02:00 committed by GitHub
parent b62c81506f
commit 813193d8c3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
73 changed files with 119 additions and 152 deletions

View file

@ -5,7 +5,7 @@
"ui": true,
"requiredPlugins": ["management"],
"optionalPlugins": ["home", "usageCollection"],
"requiredBundles": ["kibanaReact", "kibanaUtils", "home"],
"requiredBundles": ["kibanaReact", "kibanaUtils"],
"owner": {
"name": "Kibana Core",
"githubTeam": "kibana-core"

View file

@ -8,7 +8,6 @@
import { i18n } from '@kbn/i18n';
import { CoreSetup, Plugin } from '@kbn/core/public';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import { ComponentRegistry } from './component_registry';
import { AdvancedSettingsSetup, AdvancedSettingsStart, AdvancedSettingsPluginSetup } from './types';
@ -55,7 +54,7 @@ export class AdvancedSettingsPlugin
icon: 'gear',
path: '/app/management/kibana/settings',
showOnHomePage: false,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
});
}

View file

@ -11,5 +11,5 @@
"configPath": ["console"],
"requiredPlugins": ["devTools", "share"],
"optionalPlugins": ["usageCollection", "home"],
"requiredBundles": ["esUiShared", "kibanaReact", "kibanaUtils", "home"]
"requiredBundles": ["esUiShared", "kibanaReact", "kibanaUtils"]
}

View file

@ -9,7 +9,6 @@
import { i18n } from '@kbn/i18n';
import { Plugin, CoreSetup, PluginInitializerContext } from '@kbn/core/public';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import {
AppSetupUIPluginDependencies,
ClientConfigType,
@ -41,7 +40,7 @@ export class ConsoleUIPlugin implements Plugin<void, void, AppSetupUIPluginDepen
icon: 'consoleApp',
path: '/app/dev_tools#/console',
showOnHomePage: false,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
});
}

View file

@ -30,5 +30,5 @@
],
"server": true,
"ui": true,
"requiredBundles": ["home", "kibanaReact", "kibanaUtils", "presentationUtil"]
"requiredBundles": ["kibanaReact", "kibanaUtils", "presentationUtil"]
}

View file

@ -32,7 +32,7 @@ import { createKbnUrlTracker } from './services/kibana_utils';
import { UsageCollectionSetup } from './services/usage_collection';
import { UiActionsSetup, UiActionsStart } from './services/ui_actions';
import { PresentationUtilPluginStart } from './services/presentation_util';
import { FeatureCatalogueCategory, HomePublicPluginSetup } from './services/home';
import type { HomePublicPluginSetup } from './services/home';
import { NavigationPublicPluginStart as NavigationStart } from './services/navigation';
import { DataPublicPluginSetup, DataPublicPluginStart } from './services/data';
import { SharePluginSetup, SharePluginStart } from './services/share';
@ -321,7 +321,7 @@ export class DashboardPlugin
icon: 'dashboardApp',
path: `/app/dashboards#${DashboardConstants.LANDING_PAGE_PATH}`,
showOnHomePage: false,
category: FeatureCatalogueCategory.DATA,
category: 'data',
solutionId: 'kibana',
order: 100,
});

View file

@ -17,7 +17,7 @@
"dataViewEditor"
],
"optionalPlugins": ["home", "share", "usageCollection", "spaces", "triggersActionsUi"],
"requiredBundles": ["kibanaUtils", "home", "kibanaReact", "dataViews"],
"requiredBundles": ["kibanaUtils", "kibanaReact", "dataViews"],
"extraPublicDirs": ["common"],
"owner": {
"name": "Data Discovery",

View file

@ -7,7 +7,7 @@
*/
import { i18n } from '@kbn/i18n';
import { FeatureCatalogueCategory, HomePublicPluginSetup } from '@kbn/home-plugin/public';
import type { HomePublicPluginSetup } from '@kbn/home-plugin/public';
export function registerFeature(home: HomePublicPluginSetup) {
home.featureCatalogue.register({
@ -24,7 +24,7 @@ export function registerFeature(home: HomePublicPluginSetup) {
icon: 'discoverApp',
path: '/app/discover#/',
showOnHomePage: false,
category: FeatureCatalogueCategory.DATA,
category: 'data',
solutionId: 'kibana',
order: 200,
});

View file

@ -8,10 +8,9 @@
import React from 'react';
import { shallow } from 'enzyme';
import type { HomeProps } from './home';
import { Home } from './home';
import { FeatureCatalogueCategory } from '../../services';
import { Welcome } from './welcome';
let mockHasIntegrationsPermission = true;
@ -132,7 +131,7 @@ describe('home', () => {
icon: 'indexPatternApp',
path: 'index_management_landing_page',
showOnHomePage: true,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin' as const,
};
const component = await renderHome({
@ -150,7 +149,7 @@ describe('home', () => {
icon: 'managementApp',
path: 'management_landing_page',
showOnHomePage: false,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin' as const,
};
const component = await renderHome({
@ -172,7 +171,7 @@ describe('home', () => {
path: 'path-to-advanced_settings',
showOnHomePage: false,
title: 'Advanced settings',
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
},
],
});

View file

@ -12,8 +12,11 @@ import { METRIC_TYPE } from '@kbn/analytics';
import { i18n } from '@kbn/i18n';
import { KibanaPageTemplate, OverviewPageFooter } from '@kbn/kibana-react-plugin/public';
import { HOME_APP_BASE_PATH } from '../../../common/constants';
import type { FeatureCatalogueEntry, FeatureCatalogueSolution } from '../../services';
import { FeatureCatalogueCategory } from '../../services';
import type {
FeatureCatalogueEntry,
FeatureCatalogueSolution,
FeatureCatalogueCategory,
} from '../../services';
import { getServices } from '../kibana_services';
import { AddData } from './add_data';
import { ManageData } from './manage_data';
@ -126,7 +129,7 @@ export class Home extends Component<HomeProps, State> {
const { application, trackUiMetric } = getServices();
const isDarkMode = getServices().uiSettings?.get('theme:darkMode') || false;
const devTools = this.findDirectoryById('console');
const manageDataFeatures = this.getFeaturesByCategory(FeatureCatalogueCategory.ADMIN);
const manageDataFeatures = this.getFeaturesByCategory('admin');
// Show card for console if none of the manage data plugins are available, most likely in OSS
if (manageDataFeatures.length < 1 && devTools) {

View file

@ -10,7 +10,7 @@ import React from 'react';
import { ManageData } from './manage_data';
import { shallowWithIntl } from '@kbn/test-jest-helpers';
import { ApplicationStart } from '@kbn/core/public';
import { FeatureCatalogueEntry, FeatureCatalogueCategory } from '../../../services';
import { FeatureCatalogueEntry } from '../../../services';
jest.mock('../app_navigation_handler', () => {
return {
@ -41,7 +41,7 @@ const addBasePathMock = jest.fn((path: string) => (path ? path : 'path'));
const mockFeatures: FeatureCatalogueEntry[] = [
{
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
description: 'Control who has access and what tasks they can perform.',
icon: 'securityApp',
id: 'security',
@ -51,7 +51,7 @@ const mockFeatures: FeatureCatalogueEntry[] = [
showOnHomePage: true,
},
{
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
description: 'Track the real-time health and performance of your deployment.',
icon: 'monitoringApp',
id: 'monitoring',
@ -61,7 +61,7 @@ const mockFeatures: FeatureCatalogueEntry[] = [
showOnHomePage: true,
},
{
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
description:
'Save snapshots to a backup repository, and restore to recover index and cluster state.',
icon: 'storage',
@ -72,7 +72,7 @@ const mockFeatures: FeatureCatalogueEntry[] = [
showOnHomePage: true,
},
{
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
description: 'Define lifecycle policies to automatically perform operations as an index ages.',
icon: 'indexSettings',
id: 'index_lifecycle_management',

View file

@ -16,10 +16,9 @@ export type {
HomePublicPluginStart,
} from './plugin';
export { FeatureCatalogueCategory } from './services';
export type {
AddDataTab,
FeatureCatalogueCategory,
FeatureCatalogueEntry,
FeatureCatalogueRegistry,
FeatureCatalogueSolution,

View file

@ -26,7 +26,6 @@ import { ConfigSchema } from '../config';
import {
EnvironmentService,
EnvironmentServiceSetup,
FeatureCatalogueCategory,
FeatureCatalogueRegistry,
FeatureCatalogueRegistrySetup,
TutorialService,
@ -124,7 +123,7 @@ export class HomePublicPlugin
icon: 'indexOpen',
showOnHomePage: true,
path: `${HOME_APP_BASE_PATH}#/tutorial_directory`,
category: 'data' as FeatureCatalogueCategory.DATA,
category: 'data',
order: 500,
});

View file

@ -8,7 +8,6 @@
import {
FeatureCatalogueRegistry,
FeatureCatalogueCategory,
FeatureCatalogueEntry,
FeatureCatalogueSolution,
} from './feature_catalogue_registry';
@ -20,7 +19,7 @@ const DASHBOARD_FEATURE: FeatureCatalogueEntry = {
icon: 'dashboardApp',
path: `/app/kibana#dashboard`,
showOnHomePage: true,
category: FeatureCatalogueCategory.DATA,
category: 'data',
};
const KIBANA_SOLUTION: FeatureCatalogueSolution = {

View file

@ -10,11 +10,7 @@ import { Capabilities } from '@kbn/core/public';
import { IconType } from '@elastic/eui';
/** @public */
export enum FeatureCatalogueCategory {
ADMIN = 'admin',
DATA = 'data',
OTHER = 'other',
}
export type FeatureCatalogueCategory = 'admin' | 'data' | 'other';
/** @public */
export interface FeatureCatalogueEntry {

View file

@ -6,9 +6,10 @@
* Side Public License, v 1.
*/
export { FeatureCatalogueCategory, FeatureCatalogueRegistry } from './feature_catalogue_registry';
export { FeatureCatalogueRegistry } from './feature_catalogue_registry';
export type {
FeatureCatalogueCategory,
FeatureCatalogueEntry,
FeatureCatalogueSolution,
FeatureCatalogueRegistrySetup,

View file

@ -6,9 +6,10 @@
* Side Public License, v 1.
*/
export { FeatureCatalogueCategory, FeatureCatalogueRegistry } from './feature_catalogue';
export { FeatureCatalogueRegistry } from './feature_catalogue';
export type {
FeatureCatalogueCategory,
FeatureCatalogueEntry,
FeatureCatalogueSolution,
FeatureCatalogueRegistrySetup,

View file

@ -9,11 +9,10 @@
import React from 'react';
import { AddData } from './add_data';
import { shallowWithIntl } from '@kbn/test-jest-helpers';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
const mockFeatures = [
{
category: FeatureCatalogueCategory.DATA,
category: 'data' as const,
description: 'Ingest data from popular apps and services.',
showOnHomePage: true,
icon: 'indexOpen',
@ -23,7 +22,7 @@ const mockFeatures = [
title: 'Ingest data',
},
{
category: FeatureCatalogueCategory.ADMIN,
category: 'admin' as const,
description: 'Add and manage your fleet of Elastic Agents and integrations.',
showOnHomePage: true,
icon: 'indexManagementApp',
@ -33,7 +32,7 @@ const mockFeatures = [
title: 'Add Elastic Agent',
},
{
category: FeatureCatalogueCategory.DATA,
category: 'data' as const,
description: 'Import your own CSV, NDJSON, or log file',
showOnHomePage: true,
icon: 'document',

View file

@ -12,7 +12,7 @@ import { EuiButtonEmpty, EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiTitle } from '
import { FormattedMessage } from '@kbn/i18n-react';
import { CoreStart } from '@kbn/core/public';
import { RedirectAppLinks, useKibana } from '@kbn/kibana-react-plugin/public';
import { FeatureCatalogueEntry, FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import { FeatureCatalogueEntry } from '@kbn/home-plugin/public';
// @ts-expect-error untyped component
import { Synopsis } from '../synopsis';
import { METRIC_TYPE, trackUiMetric } from '../../lib/ui_metric';
@ -94,7 +94,7 @@ AddData.propTypes = {
icon: PropTypes.string.isRequired,
path: PropTypes.string.isRequired,
showOnHomePage: PropTypes.bool.isRequired,
category: PropTypes.oneOf(Object.values(FeatureCatalogueCategory)).isRequired,
category: PropTypes.string.isRequired,
order: PropTypes.number as PropTypes.Validator<number | undefined>,
}).isRequired
).isRequired,

View file

@ -9,11 +9,10 @@
import React from 'react';
import { ManageData } from './manage_data';
import { shallowWithIntl } from '@kbn/test-jest-helpers';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
const mockFeatures = [
{
category: FeatureCatalogueCategory.ADMIN,
category: 'admin' as const,
description: 'Control who has access and what tasks they can perform.',
icon: 'securityApp',
id: 'security',
@ -23,7 +22,7 @@ const mockFeatures = [
showOnHomePage: true,
},
{
category: FeatureCatalogueCategory.ADMIN,
category: 'admin' as const,
description: 'Track the real-time health and performance of your deployment.',
icon: 'monitoringApp',
id: 'monitoring',
@ -33,7 +32,7 @@ const mockFeatures = [
showOnHomePage: true,
},
{
category: FeatureCatalogueCategory.ADMIN,
category: 'admin' as const,
description:
'Save snapshots to a backup repository, and restore to recover index and cluster state.',
icon: 'storage',
@ -44,7 +43,7 @@ const mockFeatures = [
showOnHomePage: true,
},
{
category: FeatureCatalogueCategory.ADMIN,
category: 'admin' as const,
description: 'Define lifecycle policies to automatically perform operations as an index ages.',
icon: 'indexSettings',
id: 'index_lifecycle_management',

View file

@ -12,7 +12,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiHorizontalRule, EuiSpacer, EuiTitle } fro
import { FormattedMessage } from '@kbn/i18n-react';
import { CoreStart } from '@kbn/core/public';
import { RedirectAppLinks, useKibana } from '@kbn/kibana-react-plugin/public';
import { FeatureCatalogueEntry, FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import { FeatureCatalogueEntry } from '@kbn/home-plugin/public';
// @ts-expect-error untyped component
import { Synopsis } from '../synopsis';
import { METRIC_TYPE, trackUiMetric } from '../../lib/ui_metric';
@ -81,7 +81,7 @@ ManageData.propTypes = {
icon: PropTypes.string.isRequired,
path: PropTypes.string.isRequired,
showOnHomePage: PropTypes.bool.isRequired,
category: PropTypes.oneOf(Object.values(FeatureCatalogueCategory)).isRequired,
category: PropTypes.string.isRequired,
order: PropTypes.number as PropTypes.Validator<number | undefined>,
}).isRequired
).isRequired,

View file

@ -14,8 +14,7 @@ import { act } from 'react-dom/test-utils';
import { ReactWrapper } from 'enzyme';
import { Overview } from './overview';
import { mountWithIntl } from '@kbn/test-jest-helpers';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import type { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
const mockNewsFetchResult = {
error: null,
feedItems: [
@ -103,7 +102,7 @@ const mockFeatures = [
icon: 'dashboardApp',
path: 'dashboard_landing_page',
showOnHomePage: false,
category: FeatureCatalogueCategory.DATA,
category: 'data' as FeatureCatalogueCategory,
},
{
id: 'discover',
@ -112,7 +111,7 @@ const mockFeatures = [
icon: 'discoverApp',
path: 'discover_landing_page',
showOnHomePage: false,
category: FeatureCatalogueCategory.DATA,
category: 'data' as FeatureCatalogueCategory,
},
{
id: 'canvas',
@ -121,7 +120,7 @@ const mockFeatures = [
icon: 'canvasApp',
path: 'canvas_landing_page',
showOnHomePage: false,
category: FeatureCatalogueCategory.DATA,
category: 'data' as FeatureCatalogueCategory,
},
];

View file

@ -68,7 +68,7 @@ export const Overview: FC<Props> = ({ newsFetchResult, solutions, features }) =>
.get('MANAGEMENT_APP_LOCATOR')
?.useUrl({ sectionId: '' });
const getFeaturesByCategory = (category: string) =>
const getFeaturesByCategory = (category: FeatureCatalogueCategory) =>
features
.filter((feature) => feature.showOnHomePage && feature.category === category)
.sort(sortByOrder);
@ -78,8 +78,8 @@ export const Overview: FC<Props> = ({ newsFetchResult, solutions, features }) =>
const findFeatureById = (featureId: string) => features.find(({ id }) => id === featureId);
const kibanaApps = features.filter(({ solutionId }) => solutionId === 'kibana').sort(sortByOrder);
const addDataFeatures = getFeaturesByCategory(FeatureCatalogueCategory.DATA);
const manageDataFeatures = getFeaturesByCategory(FeatureCatalogueCategory.ADMIN);
const addDataFeatures = getFeaturesByCategory('data');
const manageDataFeatures = getFeaturesByCategory('admin');
const devTools = findFeatureById('console');
const noDataConfig: KibanaPageTemplateProps['noDataConfig'] = {
solution: i18n.translate('kibanaOverview.noDataConfig.solutionName', {

View file

@ -4,7 +4,7 @@
"server": true,
"ui": true,
"optionalPlugins": ["home", "share"],
"requiredBundles": ["kibanaReact", "kibanaUtils", "home"],
"requiredBundles": ["kibanaReact", "kibanaUtils"],
"owner": {
"name": "Vis Editors",
"githubTeam": "kibana-vis-editors"

View file

@ -9,7 +9,7 @@
import { i18n } from '@kbn/i18n';
import { BehaviorSubject } from 'rxjs';
import type { SharePluginSetup, SharePluginStart } from '@kbn/share-plugin/public';
import { FeatureCatalogueCategory, HomePublicPluginSetup } from '@kbn/home-plugin/public';
import { HomePublicPluginSetup } from '@kbn/home-plugin/public';
import {
CoreSetup,
CoreStart,
@ -89,7 +89,7 @@ export class ManagementPlugin
icon: 'managementApp',
path: '/app/management',
showOnHomePage: false,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
visible: () => this.hasAnyEnabledApps,
});
}

View file

@ -10,5 +10,5 @@
"requiredPlugins": ["management", "data", "dataViews"],
"optionalPlugins": ["home", "savedObjectsTaggingOss", "spaces"],
"extraPublicDirs": ["public/lib"],
"requiredBundles": ["kibanaReact", "home"]
"requiredBundles": ["kibanaReact"]
}

View file

@ -12,7 +12,7 @@ import type { SpacesPluginStart } from '@kbn/spaces-plugin/public';
import { ManagementSetup } from '@kbn/management-plugin/public';
import { DataPublicPluginStart } from '@kbn/data-plugin/public';
import { DataViewsPublicPluginStart } from '@kbn/data-views-plugin/public';
import { HomePublicPluginSetup, FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import { HomePublicPluginSetup } from '@kbn/home-plugin/public';
import { SavedObjectTaggingOssPluginStart } from '@kbn/saved-objects-tagging-oss-plugin/public';
import {
SavedObjectsManagementActionService,
@ -76,7 +76,7 @@ export class SavedObjectsManagementPlugin
icon: 'savedObjectsApp',
path: '/app/management/kibana/objects',
showOnHomePage: false,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
});
}

View file

@ -17,7 +17,7 @@
"dataViews"
],
"optionalPlugins": ["home", "share", "usageCollection", "spaces", "savedObjectsTaggingOss"],
"requiredBundles": ["kibanaUtils", "discover", "kibanaReact", "home"],
"requiredBundles": ["kibanaUtils", "discover", "kibanaReact"],
"extraPublicDirs": ["common/constants", "common/utils", "common/expression_functions"],
"owner": {
"name": "Vis Editors",

View file

@ -24,7 +24,6 @@ import {
Storage,
withNotifyOnErrors,
} from '@kbn/kibana-utils-plugin/public';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import type {
PluginInitializerContext,
@ -323,7 +322,7 @@ export class VisualizationsPlugin
icon: 'visualizeApp',
path: `/app/visualize#${VisualizeConstants.LANDING_PAGE_PATH}`,
showOnHomePage: false,
category: FeatureCatalogueCategory.DATA,
category: 'data',
});
}

View file

@ -35,7 +35,6 @@
"configPath": ["xpack", "apm"],
"requiredBundles": [
"fleet",
"home",
"kibanaReact",
"kibanaUtils",
"ml",

View file

@ -6,7 +6,7 @@
*/
import { i18n } from '@kbn/i18n';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import type { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
export const featureCatalogueEntry = {
id: 'apm',
@ -19,5 +19,5 @@ export const featureCatalogueEntry = {
icon: 'apmApp',
path: '/app/apm',
showOnHomePage: false,
category: FeatureCatalogueCategory.DATA,
category: 'data' as FeatureCatalogueCategory,
};

View file

@ -32,7 +32,6 @@
"optionalPlugins": ["home", "reporting", "spaces", "usageCollection"],
"requiredBundles": [
"discover",
"home",
"kibanaReact",
"kibanaUtils",
"lens",

View file

@ -6,7 +6,7 @@
*/
import { i18n } from '@kbn/i18n';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import type { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
export const featureCatalogueEntry = {
id: 'canvas',
@ -20,7 +20,7 @@ export const featureCatalogueEntry = {
icon: 'canvasApp',
path: '/app/canvas',
showOnHomePage: false,
category: FeatureCatalogueCategory.DATA,
category: 'data' as FeatureCatalogueCategory,
solutionId: 'kibana',
order: 300,
};

View file

@ -33,7 +33,6 @@
"management"
],
"requiredBundles": [
"home",
"savedObjects"
],
"server":true,

View file

@ -6,7 +6,6 @@
*/
import { CoreSetup, CoreStart, Plugin, PluginInitializerContext } from '@kbn/core/public';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import { ManagementAppMountParams } from '@kbn/management-plugin/public';
import { Storage } from '@kbn/kibana-utils-plugin/public';
import { CasesUiStart, CasesPluginSetup, CasesPluginStart } from './types';
@ -51,7 +50,7 @@ export class CasesUiPlugin
icon: 'watchesApp',
path: APP_PATH,
showOnHomePage: false,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
});
}

View file

@ -25,7 +25,6 @@
"cloud"
],
"requiredBundles": [
"home",
"kibanaReact",
"maps",
"esUiShared",

View file

@ -7,7 +7,6 @@
import { i18n } from '@kbn/i18n';
import type { HomePublicPluginSetup } from '@kbn/home-plugin/public';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import { FileDataVisualizerWrapper } from './lazy_load_bundle/component_wrapper';
import {
featureTitle,
@ -36,7 +35,7 @@ export function registerHomeFeatureCatalogue(home: HomePublicPluginSetup) {
icon: 'document',
path: applicationPath,
showOnHomePage: true,
category: FeatureCatalogueCategory.DATA,
category: 'data',
order: 520,
});
}

View file

@ -7,7 +7,7 @@
"optionalPlugins": ["usageCollection", "home", "cloud", "customIntegrations"],
"server": true,
"ui": true,
"requiredBundles": ["home", "kibanaReact"],
"requiredBundles": ["kibanaReact"],
"owner": {
"name": "Enterprise Search",
"githubTeam": "enterprise-search-frontend"

View file

@ -17,7 +17,7 @@ import {
DEFAULT_APP_CATEGORIES,
} from '@kbn/core/public';
import { DataPublicPluginStart } from '@kbn/data-plugin/public';
import { FeatureCatalogueCategory, HomePublicPluginSetup } from '@kbn/home-plugin/public';
import type { HomePublicPluginSetup } from '@kbn/home-plugin/public';
import { LicensingPluginStart } from '@kbn/licensing-plugin/public';
import { SecurityPluginSetup, SecurityPluginStart } from '@kbn/security-plugin/public';
@ -34,6 +34,7 @@ import { docLinks } from './applications/shared/doc_links';
export interface ClientConfigType {
host?: string;
}
export interface ClientData extends InitialAppData {
publicUrl?: string;
errorConnectingMessage?: string;
@ -44,6 +45,7 @@ interface PluginsSetup {
home?: HomePublicPluginSetup;
security: SecurityPluginSetup;
}
export interface PluginsStart {
cloud?: CloudSetup & CloudStart;
licensing: LicensingPluginStart;
@ -171,7 +173,7 @@ export class EnterpriseSearchPlugin implements Plugin {
icon: 'appSearchApp',
description: APP_SEARCH_PLUGIN.DESCRIPTION,
path: APP_SEARCH_PLUGIN.URL,
category: FeatureCatalogueCategory.DATA,
category: 'data',
showOnHomePage: false,
});
@ -181,7 +183,7 @@ export class EnterpriseSearchPlugin implements Plugin {
icon: 'workplaceSearchApp',
description: WORKPLACE_SEARCH_PLUGIN.DESCRIPTION,
path: WORKPLACE_SEARCH_PLUGIN.URL,
category: FeatureCatalogueCategory.DATA,
category: 'data',
showOnHomePage: false,
});
}

View file

@ -11,5 +11,5 @@
"requiredPlugins": ["licensing", "data", "encryptedSavedObjects", "navigation", "customIntegrations", "share", "spaces", "security"],
"optionalPlugins": ["features", "cloud", "usageCollection", "home", "globalSearch", "telemetry"],
"extraPublicDirs": ["common"],
"requiredBundles": ["kibanaReact", "cloud", "esUiShared", "home", "infra", "kibanaUtils", "usageCollection", "unifiedSearch"]
"requiredBundles": ["kibanaReact", "cloud", "esUiShared", "infra", "kibanaUtils", "usageCollection", "unifiedSearch"]
}

View file

@ -35,7 +35,6 @@ import type { UsageCollectionSetup } from '@kbn/usage-collection-plugin/public';
import { DEFAULT_APP_CATEGORIES, AppNavLinkStatus } from '@kbn/core/public';
import type { DataPublicPluginSetup, DataPublicPluginStart } from '@kbn/data-plugin/public';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import type { HomePublicPluginSetup } from '@kbn/home-plugin/public';
import { Storage } from '@kbn/kibana-utils-plugin/public';
import type { LicensingPluginStart } from '@kbn/licensing-plugin/public';
@ -236,7 +235,7 @@ export class FleetPlugin implements Plugin<FleetSetup, FleetStart, FleetSetupDep
icon: 'indexManagementApp',
showOnHomePage: true,
path: INTEGRATIONS_BASE_PATH,
category: FeatureCatalogueCategory.DATA,
category: 'data',
order: 510,
});
}

View file

@ -22,8 +22,7 @@
"requiredBundles": [
"unifiedSearch",
"kibanaUtils",
"kibanaReact",
"home"
"kibanaReact"
],
"owner": {
"name": "Data Discovery",

View file

@ -24,11 +24,7 @@ import { NavigationPublicPluginStart as NavigationStart } from '@kbn/navigation-
import { DataPublicPluginStart } from '@kbn/data-plugin/public';
import { LicensingPluginStart } from '@kbn/licensing-plugin/public';
import {
FeatureCatalogueCategory,
HomePublicPluginSetup,
HomePublicPluginStart,
} from '@kbn/home-plugin/public';
import type { HomePublicPluginSetup, HomePublicPluginStart } from '@kbn/home-plugin/public';
import { SavedObjectsStart } from '@kbn/saved-objects-plugin/public';
import { checkLicense } from '../common/check_license';
import { ConfigSchema } from '../config';
@ -67,7 +63,7 @@ export class GraphPlugin
icon: 'graphApp',
path: '/app/graph',
showOnHomePage: false,
category: FeatureCatalogueCategory.DATA,
category: 'data',
solutionId: 'kibana',
order: 600,
});

View file

@ -6,7 +6,7 @@
*/
import { i18n } from '@kbn/i18n';
import { FeatureCatalogueCategory, HomePublicPluginSetup } from '@kbn/home-plugin/public';
import type { HomePublicPluginSetup } from '@kbn/home-plugin/public';
export const registerFeature = (homePlugin: HomePublicPluginSetup) => {
homePlugin.featureCatalogue.register({
@ -20,6 +20,6 @@ export const registerFeature = (homePlugin: HomePublicPluginSetup) => {
icon: 'grokApp',
path: '/app/dev_tools#/grokdebugger',
showOnHomePage: false,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
});
};

View file

@ -10,5 +10,5 @@
"requiredPlugins": ["licensing", "management", "features", "share"],
"optionalPlugins": ["cloud", "usageCollection", "indexManagement", "home"],
"configPath": ["xpack", "ilm"],
"requiredBundles": ["indexManagement", "kibanaReact", "esUiShared", "home"]
"requiredBundles": ["indexManagement", "kibanaReact", "esUiShared"]
}

View file

@ -8,7 +8,6 @@
import { firstValueFrom } from 'rxjs';
import { i18n } from '@kbn/i18n';
import { CoreSetup, PluginInitializerContext, Plugin } from '@kbn/core/public';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import { PLUGIN } from '../common/constants';
import { init as initHttp } from './application/services/http';
import { init as initUiMetric } from './application/services/ui_metric';
@ -99,7 +98,7 @@ export class IndexLifecycleManagementPlugin
icon: 'indexRollupApp',
path: '/app/management/data/index_lifecycle_management',
showOnHomePage: true,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
order: 640,
});
}
@ -117,5 +116,6 @@ export class IndexLifecycleManagementPlugin
}
public start() {}
public stop() {}
}

View file

@ -27,7 +27,6 @@
"licenseManagement",
"kibanaUtils",
"kibanaReact",
"home",
"ml",
"embeddable"
],

View file

@ -6,7 +6,7 @@
*/
import { i18n } from '@kbn/i18n';
import { HomePublicPluginSetup, FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import type { HomePublicPluginSetup } from '@kbn/home-plugin/public';
export const registerFeatures = (homePlugin: HomePublicPluginSetup) => {
homePlugin.featureCatalogue.register({
@ -21,7 +21,7 @@ export const registerFeatures = (homePlugin: HomePublicPluginSetup) => {
icon: 'metricsApp',
path: `/app/metrics`,
showOnHomePage: false,
category: FeatureCatalogueCategory.DATA,
category: 'data',
});
homePlugin.featureCatalogue.register({
@ -36,6 +36,6 @@ export const registerFeatures = (homePlugin: HomePublicPluginSetup) => {
icon: 'logsApp',
path: `/app/logs`,
showOnHomePage: false,
category: FeatureCatalogueCategory.DATA,
category: 'data',
});
};

View file

@ -11,5 +11,5 @@
"optionalPlugins": ["home", "monitoring", "security"],
"server": true,
"ui": true,
"requiredBundles": ["esUiShared", "home", "kibanaReact"]
"requiredBundles": ["esUiShared", "kibanaReact"]
}

View file

@ -11,7 +11,7 @@ import { map } from 'rxjs/operators';
import { once } from 'lodash';
import { Capabilities, CoreSetup, CoreStart, Plugin } from '@kbn/core/public';
import { HomePublicPluginSetup, FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import { HomePublicPluginSetup } from '@kbn/home-plugin/public';
import { ManagementSetup } from '@kbn/management-plugin/public';
import { LicensingPluginSetup } from '@kbn/licensing-plugin/public';
@ -75,7 +75,7 @@ export class LogstashPlugin implements Plugin<void, void, SetupDeps> {
icon: 'pipelineApp',
path: '/app/management/ingest/pipelines',
showOnHomePage: false,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
});
});
}

View file

@ -46,7 +46,6 @@
"kibanaReact",
"kibanaUtils",
"usageCollection",
"home",
"unifiedSearch"
]
}

View file

@ -6,7 +6,7 @@
*/
import { i18n } from '@kbn/i18n';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import type { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import { APP_ID, APP_ICON } from '../common/constants';
import { getAppTitle } from '../common/i18n_getters';
@ -22,7 +22,7 @@ export const featureCatalogueEntry = {
icon: APP_ICON,
path: '/app/maps',
showOnHomePage: false,
category: FeatureCatalogueCategory.DATA,
category: 'data' as FeatureCatalogueCategory,
solutionId: 'kibana',
order: 400,
};

View file

@ -40,7 +40,6 @@
"dashboard",
"esUiShared",
"fieldFormats",
"home",
"kibanaReact",
"kibanaUtils",
"maps",

View file

@ -6,7 +6,7 @@
*/
import { i18n } from '@kbn/i18n';
import { FeatureCatalogueCategory, HomePublicPluginSetup } from '@kbn/home-plugin/public';
import type { HomePublicPluginSetup } from '@kbn/home-plugin/public';
import { PLUGIN_ID } from '../common/constants/app';
export const registerFeature = (home: HomePublicPluginSetup) => {
@ -26,7 +26,7 @@ export const registerFeature = (home: HomePublicPluginSetup) => {
icon: 'machineLearningApp',
path: '/app/ml',
showOnHomePage: false,
category: FeatureCatalogueCategory.DATA,
category: 'data',
solutionId: 'kibana',
order: 500,
});

View file

@ -22,7 +22,6 @@
"ui": true,
"requiredBundles": [
"kibanaUtils",
"home",
"alerting",
"kibanaReact"
]

View file

@ -15,7 +15,7 @@ import {
PluginInitializerContext,
} from '@kbn/core/public';
import { DEFAULT_APP_CATEGORIES } from '@kbn/core/public';
import { FeatureCatalogueCategory, HomePublicPluginSetup } from '@kbn/home-plugin/public';
import type { HomePublicPluginSetup } from '@kbn/home-plugin/public';
import { UsageCollectionSetup } from '@kbn/usage-collection-plugin/public';
import { TriggersAndActionsUIPublicPluginSetup } from '@kbn/triggers-actions-ui-plugin/public';
import {
@ -45,6 +45,7 @@ interface MonitoringSetupPluginDependencies {
triggersActionsUi: TriggersAndActionsUIPublicPluginSetup;
usageCollection: UsageCollectionSetup;
}
export class MonitoringPlugin
implements
Plugin<void, void, MonitoringSetupPluginDependencies, MonitoringStartPluginDependencies>
@ -76,7 +77,7 @@ export class MonitoringPlugin
icon,
path: '/app/monitoring',
showOnHomePage: true,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
description: i18n.translate('xpack.monitoring.featureCatalogueDescription', {
defaultMessage: 'Track the real-time health and performance of your deployment.',
}),

View file

@ -9,8 +9,6 @@ import { firstValueFrom } from 'rxjs';
import { i18n } from '@kbn/i18n';
import { Plugin, CoreSetup } from '@kbn/core/public';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import { ILicense } from '@kbn/licensing-plugin/common/types';
import { PLUGIN } from '../common/constants';
@ -38,7 +36,7 @@ export class PainlessLabUIPlugin implements Plugin<void, void, PluginDependencie
icon: 'empty',
path: '/app/dev_tools#/painless_lab',
showOnHomePage: false,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
});
const devTool = devTools.register({

View file

@ -21,11 +21,7 @@ import {
} from '@kbn/core/public';
import type { ScreenshotModePluginSetup } from '@kbn/screenshot-mode-plugin/public';
import { CONTEXT_MENU_TRIGGER } from '@kbn/embeddable-plugin/public';
import {
FeatureCatalogueCategory,
HomePublicPluginSetup,
HomePublicPluginStart,
} from '@kbn/home-plugin/public';
import type { HomePublicPluginSetup, HomePublicPluginStart } from '@kbn/home-plugin/public';
import { ManagementSetup, ManagementStart } from '@kbn/management-plugin/public';
import { LicensingPluginStart } from '@kbn/licensing-plugin/public';
import { durationToNumber } from '../common/schema_utils';
@ -170,7 +166,7 @@ export class ReportingPublicPlugin
icon: 'reportingApp',
path: '/app/management/insightsAndAlerting/reporting',
showOnHomePage: false,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
});
management.sections.section.insightsAndAlerting.registerApp({

View file

@ -11,5 +11,5 @@
"requiredPlugins": ["management", "licensing", "features"],
"optionalPlugins": ["home", "indexManagement", "usageCollection", "visTypeTimeseries"],
"configPath": ["xpack", "rollup"],
"requiredBundles": ["kibanaUtils", "kibanaReact", "home", "esUiShared", "data"]
"requiredBundles": ["kibanaUtils", "kibanaReact", "esUiShared", "data"]
}

View file

@ -7,7 +7,7 @@
import { i18n } from '@kbn/i18n';
import { CoreSetup, CoreStart, Plugin, PluginInitializerContext } from '@kbn/core/public';
import { FeatureCatalogueCategory, HomePublicPluginSetup } from '@kbn/home-plugin/public';
import type { HomePublicPluginSetup } from '@kbn/home-plugin/public';
import { ManagementSetup } from '@kbn/management-plugin/public';
import { IndexManagementPluginSetup } from '@kbn/index-management-plugin/public';
import { UsageCollectionSetup } from '@kbn/usage-collection-plugin/public';
@ -57,7 +57,7 @@ export class RollupPlugin implements Plugin {
icon: 'indexRollupApp',
path: `/app/management/data/rollup_jobs/job_list`,
showOnHomePage: false,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
});
}

View file

@ -8,8 +8,6 @@
import { firstValueFrom } from 'rxjs';
import { i18n } from '@kbn/i18n';
import { Plugin, CoreSetup } from '@kbn/core/public';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import { ILicense } from '@kbn/licensing-plugin/common/types';
import { PLUGIN } from '../common';
@ -37,7 +35,7 @@ export class SearchProfilerUIPlugin implements Plugin<void, void, AppPublicPlugi
icon: 'searchProfilerApp',
path: '/app/dev_tools#/searchprofiler',
showOnHomePage: false,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
});
const devTool = devTools.register({

View file

@ -14,7 +14,6 @@
"ui": true,
"enabledOnAnonymousPages": true,
"requiredBundles": [
"home",
"kibanaReact",
"spaces",
"esUiShared"

View file

@ -15,7 +15,6 @@ import type {
import type { DataViewsPublicPluginStart } from '@kbn/data-views-plugin/public';
import type { FeaturesPluginStart } from '@kbn/features-plugin/public';
import type { HomePublicPluginSetup } from '@kbn/home-plugin/public';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import { i18n } from '@kbn/i18n';
import type { LicensingPluginSetup } from '@kbn/licensing-plugin/public';
import type { ManagementSetup, ManagementStart } from '@kbn/management-plugin/public';
@ -126,7 +125,7 @@ export class SecurityPlugin
icon: 'securityApp',
path: '/app/management/security/roles',
showOnHomePage: true,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
order: 600,
});
}

View file

@ -10,5 +10,5 @@
"requiredPlugins": ["licensing", "management", "features", "share"],
"optionalPlugins": ["usageCollection", "security", "cloud", "home"],
"configPath": ["xpack", "snapshot_restore"],
"requiredBundles": ["esUiShared", "kibanaReact", "home"]
"requiredBundles": ["esUiShared", "kibanaReact"]
}

View file

@ -10,7 +10,7 @@ import { CoreSetup, PluginInitializerContext } from '@kbn/core/public';
import { UsageCollectionSetup } from '@kbn/usage-collection-plugin/public';
import { ManagementSetup } from '@kbn/management-plugin/public';
import { SharePluginSetup } from '@kbn/share-plugin/public';
import { FeatureCatalogueCategory, HomePublicPluginSetup } from '@kbn/home-plugin/public';
import type { HomePublicPluginSetup } from '@kbn/home-plugin/public';
import { PLUGIN } from '../common/constants';
@ -80,7 +80,7 @@ export class SnapshotRestoreUIPlugin {
icon: 'storage',
path: '/app/management/data/snapshot_restore',
showOnHomePage: true,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
order: 630,
});
}
@ -94,5 +94,6 @@ export class SnapshotRestoreUIPlugin {
}
public start() {}
public stop() {}
}

View file

@ -20,7 +20,6 @@
"extraPublicDirs": ["common"],
"requiredBundles": [
"esUiShared",
"kibanaReact",
"home"
"kibanaReact"
]
}

View file

@ -6,7 +6,6 @@
*/
import type { FeatureCatalogueEntry } from '@kbn/home-plugin/public';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import { i18n } from '@kbn/i18n';
import { getSpacesFeatureDescription } from './constants';
@ -21,6 +20,6 @@ export const createSpacesFeatureCatalogueEntry = (): FeatureCatalogueEntry => {
icon: 'spacesApp',
path: '/app/management/kibana/spaces',
showOnHomePage: false,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
};
};

View file

@ -6,7 +6,7 @@
*/
import { i18n } from '@kbn/i18n';
import { HomePublicPluginSetup, FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import type { HomePublicPluginSetup } from '@kbn/home-plugin/public';
export const registerFeature = (home: HomePublicPluginSetup) => {
// register Transforms so it appears on the Kibana home page
@ -22,6 +22,6 @@ export const registerFeature = (home: HomePublicPluginSetup) => {
icon: 'managementApp', // there is currently no Transforms icon, so using the general management app icon
path: '/app/management/data/transform',
showOnHomePage: false,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
});
};

View file

@ -11,5 +11,5 @@
"requiredPlugins": ["management", "charts", "data", "kibanaReact", "kibanaUtils", "savedObjects", "unifiedSearch", "dataViews"],
"configPath": ["xpack", "trigger_actions_ui"],
"extraPublicDirs": ["public/common", "public/common/constants"],
"requiredBundles": ["home", "alerting", "esUiShared", "kibanaReact", "kibanaUtils"]
"requiredBundles": ["alerting", "esUiShared", "kibanaReact", "kibanaUtils"]
}

View file

@ -13,7 +13,7 @@ import { PluginInitializerContext } from '@kbn/core/public';
import { FeaturesPluginStart } from '@kbn/features-plugin/public';
import { KibanaFeature } from '@kbn/features-plugin/common';
import { ManagementAppMountParams, ManagementSetup } from '@kbn/management-plugin/public';
import { FeatureCatalogueCategory, HomePublicPluginSetup } from '@kbn/home-plugin/public';
import type { HomePublicPluginSetup } from '@kbn/home-plugin/public';
import { ChartsPluginStart } from '@kbn/charts-plugin/public';
import { PluginStartContract as AlertingStart } from '@kbn/alerting-plugin/public';
import { DataPublicPluginStart } from '@kbn/data-plugin/public';
@ -131,7 +131,7 @@ export class Plugin
icon: 'watchesApp',
path: '/app/management/insightsAndAlerting/triggersActions',
showOnHomePage: false,
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
});
}

View file

@ -23,7 +23,7 @@
"server": true,
"ui": true,
"version": "8.0.0",
"requiredBundles": ["unifiedSearch", "fleet", "home", "kibanaReact", "kibanaUtils", "ml", "observability"],
"requiredBundles": ["unifiedSearch", "fleet", "kibanaReact", "kibanaUtils", "ml", "observability"],
"owner": {
"name": "Uptime",
"githubTeam": "uptime"

View file

@ -19,7 +19,7 @@ import { SharePluginSetup, SharePluginStart } from '@kbn/share-plugin/public';
import { DiscoverStart } from '@kbn/discover-plugin/public';
import { DEFAULT_APP_CATEGORIES } from '@kbn/core/public';
import { FeatureCatalogueCategory, HomePublicPluginSetup } from '@kbn/home-plugin/public';
import type { HomePublicPluginSetup } from '@kbn/home-plugin/public';
import { EmbeddableStart } from '@kbn/embeddable-plugin/public';
import {
TriggersAndActionsUIPublicPluginSetup,
@ -91,7 +91,7 @@ export class UptimePlugin
icon: 'uptimeApp',
path: '/app/uptime',
showOnHomePage: false,
category: FeatureCatalogueCategory.DATA,
category: 'data',
});
}
const getUptimeDataHelper = async () => {

View file

@ -10,7 +10,7 @@ import { CoreSetup, Plugin, CoreStart, Capabilities } from '@kbn/core/public';
import { first, map, skip } from 'rxjs/operators';
import { Subject, combineLatest } from 'rxjs';
import { FeatureCatalogueCategory } from '@kbn/home-plugin/public';
import type { FeatureCatalogueEntry } from '@kbn/home-plugin/public';
import { ILicense } from '@kbn/licensing-plugin/public';
import { LicenseStatus } from '../common/types/license_status';
import { PLUGIN } from '../common/constants';
@ -89,10 +89,10 @@ export class WatcherUIPlugin implements Plugin<void, void, Dependencies, any> {
// Because the home feature catalogue does not have enable/disable functionality we pass
// the config in but keep a reference for enabling and disabling showing on home based on
// license updates.
const watcherHome = {
const watcherHome: FeatureCatalogueEntry = {
id: 'watcher',
title: 'Watcher', // This is a product name so we don't translate it.
category: FeatureCatalogueCategory.ADMIN,
category: 'admin',
description: i18n.translate('xpack.watcher.watcherDescription', {
defaultMessage: 'Detect changes in your data by creating, managing, and monitoring alerts.',
}),