From 2fd336dc21efe71dd40d729771e5a3633cbfdf56 Mon Sep 17 00:00:00 2001 From: Clint Andrew Hall Date: Tue, 12 Sep 2023 20:49:42 -0400 Subject: [PATCH 1/2] [WIP][management] Integrate a settings view into serverless projects --- .github/CODEOWNERS | 1 + package.json | 1 + .../cards_navigation/src/consts.tsx | 9 ++++ .../settings/application/README.md | 3 ++ .../settings/application/application.tsx | 47 +++++++++++++++++++ .../settings/application/hooks/index.ts | 10 ++++ .../settings/application/hooks/use_fields.ts | 22 +++++++++ .../application/hooks/use_settings.ts | 37 +++++++++++++++ .../settings/application/index.ts | 10 ++++ .../settings/application/jest.config.js | 13 +++++ .../settings/application/kibana.jsonc | 5 ++ .../settings/application/package.json | 6 +++ .../settings/application/services.tsx | 39 +++++++++++++++ .../settings/application/tsconfig.json | 25 ++++++++++ packages/kbn-optimizer/limits.yml | 2 +- .../public/{plugin.ts => plugin.tsx} | 46 ++++++++++++++++-- tsconfig.base.json | 2 + x-pack/plugins/serverless/kibana.jsonc | 2 +- x-pack/plugins/serverless/public/plugin.tsx | 23 +++++---- x-pack/plugins/serverless/public/types.ts | 3 ++ x-pack/plugins/serverless/tsconfig.json | 5 +- yarn.lock | 4 ++ 22 files changed, 295 insertions(+), 20 deletions(-) create mode 100644 packages/kbn-management/settings/application/README.md create mode 100644 packages/kbn-management/settings/application/application.tsx create mode 100644 packages/kbn-management/settings/application/hooks/index.ts create mode 100644 packages/kbn-management/settings/application/hooks/use_fields.ts create mode 100644 packages/kbn-management/settings/application/hooks/use_settings.ts create mode 100644 packages/kbn-management/settings/application/index.ts create mode 100644 packages/kbn-management/settings/application/jest.config.js create mode 100644 packages/kbn-management/settings/application/kibana.jsonc create mode 100644 packages/kbn-management/settings/application/package.json create mode 100644 packages/kbn-management/settings/application/services.tsx create mode 100644 packages/kbn-management/settings/application/tsconfig.json rename src/plugins/management/public/{plugin.ts => plugin.tsx} (78%) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 85c901fd8659e..a3767fee5d4a6 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -481,6 +481,7 @@ packages/kbn-managed-vscode-config @elastic/kibana-operations packages/kbn-managed-vscode-config-cli @elastic/kibana-operations packages/kbn-management/cards_navigation @elastic/platform-deployment-management src/plugins/management @elastic/platform-deployment-management +packages/kbn-management/settings/application @elastic/platform-deployment-management packages/kbn-management/settings/components/field_input @elastic/platform-deployment-management packages/kbn-management/settings/components/field_row @elastic/platform-deployment-management packages/kbn-management/settings/field_definition @elastic/platform-deployment-management diff --git a/package.json b/package.json index 2d4809d185c66..5ccdd2c8ffd8b 100644 --- a/package.json +++ b/package.json @@ -501,6 +501,7 @@ "@kbn/logstash-plugin": "link:x-pack/plugins/logstash", "@kbn/management-cards-navigation": "link:packages/kbn-management/cards_navigation", "@kbn/management-plugin": "link:src/plugins/management", + "@kbn/management-settings-application": "link:packages/kbn-management/settings/application", "@kbn/management-settings-components-field-input": "link:packages/kbn-management/settings/components/field_input", "@kbn/management-settings-components-field-row": "link:packages/kbn-management/settings/components/field_row", "@kbn/management-settings-field-definition": "link:packages/kbn-management/settings/field_definition", diff --git a/packages/kbn-management/cards_navigation/src/consts.tsx b/packages/kbn-management/cards_navigation/src/consts.tsx index 8a26334eae8c6..b2e145fc3af33 100644 --- a/packages/kbn-management/cards_navigation/src/consts.tsx +++ b/packages/kbn-management/cards_navigation/src/consts.tsx @@ -27,6 +27,7 @@ export enum appIds { CONNECTORS = 'triggersActionsConnectors', RULES = 'triggersActions', MAINTENANCE_WINDOWS = 'maintenanceWindows', + SERVERLESS_SETTINGS = 'settings', } // Create new type that is a union of all the appId values @@ -155,6 +156,14 @@ export const appDefinitions: Record = { }), icon: , }, + + [appIds.SERVERLESS_SETTINGS]: { + category: appCategories.OTHER, + description: i18n.translate('management.landing.withCardNavigation.settingsDescription', { + defaultMessage: 'Witty description.', + }), + icon: , + }, }; // Compose a list of app ids that belong to a given category diff --git a/packages/kbn-management/settings/application/README.md b/packages/kbn-management/settings/application/README.md new file mode 100644 index 0000000000000..42df99ed9415d --- /dev/null +++ b/packages/kbn-management/settings/application/README.md @@ -0,0 +1,3 @@ +# @kbn/management-settings-application + +Empty package generated by @kbn/generate diff --git a/packages/kbn-management/settings/application/application.tsx b/packages/kbn-management/settings/application/application.tsx new file mode 100644 index 0000000000000..7e1b7fed957a3 --- /dev/null +++ b/packages/kbn-management/settings/application/application.tsx @@ -0,0 +1,47 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import React from 'react'; + +import { SettingsStart } from '@kbn/core-ui-settings-browser'; +import { FieldRow, RowOnChangeFn } from '@kbn/management-settings-components-field-row'; +import { SettingType, UnsavedFieldChange } from '@kbn/management-settings-types'; + +import { useFields } from './hooks/use_fields'; + +export interface SettingsApplicationProps { + settingsStart: SettingsStart; +} + +export const SettingsApplication = ({ settingsStart }: SettingsApplicationProps) => { + const fields = useFields(settingsStart.client); + + const [unsavedChanges, setUnsavedChanges] = React.useState< + Record> + >({}); + + const onChange: RowOnChangeFn = (id, change) => { + if (!change) { + const { [id]: unsavedChange, ...rest } = unsavedChanges; + setUnsavedChanges(rest); + return; + } + + setUnsavedChanges((changes) => ({ ...changes, [id]: change })); + }; + + const isSavingEnabled = true; + + const fieldRows = fields.map((field) => { + const { id: key } = field; + const unsavedChange = unsavedChanges[key]; + + return ; + }); + + return <>{fieldRows}; +}; diff --git a/packages/kbn-management/settings/application/hooks/index.ts b/packages/kbn-management/settings/application/hooks/index.ts new file mode 100644 index 0000000000000..2b8e1b6ad1026 --- /dev/null +++ b/packages/kbn-management/settings/application/hooks/index.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { useFields } from './use_fields'; +export { useSettings } from './use_settings'; diff --git a/packages/kbn-management/settings/application/hooks/use_fields.ts b/packages/kbn-management/settings/application/hooks/use_fields.ts new file mode 100644 index 0000000000000..9fdde5d928ec9 --- /dev/null +++ b/packages/kbn-management/settings/application/hooks/use_fields.ts @@ -0,0 +1,22 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { IUiSettingsClient } from '@kbn/core-ui-settings-browser'; +import { getFieldDefinitions } from '@kbn/management-settings-field-definition'; +import { FieldDefinition, SettingType } from '@kbn/management-settings-types'; +import { useSettings } from './use_settings'; + +/** + * React hook which retrieves settings from a particular {@link IUiSettingsClient}, + * and returns an observed collection of {@link FieldDefinition} objects derived from + * those settings. + */ +export const useFields = (client: IUiSettingsClient): Array> => { + const settings = useSettings(client); + return getFieldDefinitions(settings, client); +}; diff --git a/packages/kbn-management/settings/application/hooks/use_settings.ts b/packages/kbn-management/settings/application/hooks/use_settings.ts new file mode 100644 index 0000000000000..5086544ba0183 --- /dev/null +++ b/packages/kbn-management/settings/application/hooks/use_settings.ts @@ -0,0 +1,37 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { useState } from 'react'; +import useEffectOnce from 'react-use/lib/useEffectOnce'; + +import { IUiSettingsClient } from '@kbn/core-ui-settings-browser'; +import { normalizeSettings } from '@kbn/management-settings-utilities'; +import { SettingType, UiSettingMetadata } from '@kbn/management-settings-types'; + +/** + * React hook which retrieves settings from a particular {@link IUiSettingsClient}, + * normalizes them to a predictable format, {@link UiSettingMetadata}, and returns + * them as an observed collection. + */ +export const useSettings = (client: IUiSettingsClient) => { + const [settings, setSettings] = useState>>( + normalizeSettings(client.getAll()) + ); + + useEffectOnce(() => { + const clientSubscription = client.getUpdate$().subscribe(() => { + setSettings(normalizeSettings(client.getAll())); + }); + + return () => { + clientSubscription.unsubscribe(); + }; + }); + + return settings; +}; diff --git a/packages/kbn-management/settings/application/index.ts b/packages/kbn-management/settings/application/index.ts new file mode 100644 index 0000000000000..d7b75113c70e8 --- /dev/null +++ b/packages/kbn-management/settings/application/index.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { SettingsApplication } from './application'; +export { SettingsApplicationKibanaProvider, SettingsApplicationProvider } from './services'; diff --git a/packages/kbn-management/settings/application/jest.config.js b/packages/kbn-management/settings/application/jest.config.js new file mode 100644 index 0000000000000..aa4230234635b --- /dev/null +++ b/packages/kbn-management/settings/application/jest.config.js @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../../../..', + roots: ['/packages/kbn-management/settings/application'], +}; diff --git a/packages/kbn-management/settings/application/kibana.jsonc b/packages/kbn-management/settings/application/kibana.jsonc new file mode 100644 index 0000000000000..ab9c47c87f60d --- /dev/null +++ b/packages/kbn-management/settings/application/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/management-settings-application", + "owner": "@elastic/platform-deployment-management" +} diff --git a/packages/kbn-management/settings/application/package.json b/packages/kbn-management/settings/application/package.json new file mode 100644 index 0000000000000..f66c66a6269fa --- /dev/null +++ b/packages/kbn-management/settings/application/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/management-settings-application", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/packages/kbn-management/settings/application/services.tsx b/packages/kbn-management/settings/application/services.tsx new file mode 100644 index 0000000000000..1cfa9e2929aac --- /dev/null +++ b/packages/kbn-management/settings/application/services.tsx @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { FC } from 'react'; + +import { + FieldRowProvider, + FieldRowKibanaProvider, + type FieldRowKibanaDependencies, + type FieldRowServices, +} from '@kbn/management-settings-components-field-row'; + +export type SettingsApplicationServices = FieldRowServices; +export type SettingsApplicationKibanaDependencies = FieldRowKibanaDependencies; + +/** + * A Context Provider that provides services to the component and its dependencies. + */ +export const SettingsApplicationProvider: FC = ({ + children, + ...services +}) => { + return {children}; +}; + +/** + * Kibana-specific Provider that maps dependencies to services. + */ +export const SettingsApplicationKibanaProvider: FC = ({ + children, + ...dependencies +}) => { + return {children}; +}; diff --git a/packages/kbn-management/settings/application/tsconfig.json b/packages/kbn-management/settings/application/tsconfig.json new file mode 100644 index 0000000000000..34064b304f21d --- /dev/null +++ b/packages/kbn-management/settings/application/tsconfig.json @@ -0,0 +1,25 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node", + "react" + ] + }, + "include": [ + "**/*.ts", + "**/*.tsx", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/core-ui-settings-browser", + "@kbn/management-settings-components-field-row", + "@kbn/management-settings-types", + "@kbn/management-settings-field-definition", + "@kbn/management-settings-utilities", + ] +} diff --git a/packages/kbn-optimizer/limits.yml b/packages/kbn-optimizer/limits.yml index ce349c219dddc..2075f7bc7f1ed 100644 --- a/packages/kbn-optimizer/limits.yml +++ b/packages/kbn-optimizer/limits.yml @@ -123,7 +123,7 @@ pageLoadAssetSize: securitySolution: 66738 securitySolutionEss: 16573 securitySolutionServerless: 45000 - serverless: 16573 + serverless: 41719 serverlessObservability: 68747 serverlessSearch: 71995 sessionView: 77750 diff --git a/src/plugins/management/public/plugin.ts b/src/plugins/management/public/plugin.tsx similarity index 78% rename from src/plugins/management/public/plugin.ts rename to src/plugins/management/public/plugin.tsx index d4ef130eb4de0..9aa1ca73a7f03 100644 --- a/src/plugins/management/public/plugin.ts +++ b/src/plugins/management/public/plugin.tsx @@ -6,11 +6,15 @@ * Side Public License, v 1. */ -import { i18n } from '@kbn/i18n'; +import React from 'react'; +import ReactDOM from 'react-dom'; +import { i18n as kbnI18n } from '@kbn/i18n'; import { BehaviorSubject } from 'rxjs'; import type { SharePluginSetup, SharePluginStart } from '@kbn/share-plugin/public'; import { HomePublicPluginSetup } from '@kbn/home-plugin/public'; import { ServerlessPluginStart } from '@kbn/serverless/public'; +import { SettingsApplication } from '@kbn/management-settings-application'; +import { SettingsApplicationKibanaProvider } from '@kbn/management-settings-application'; import { CoreSetup, CoreStart, @@ -23,6 +27,7 @@ import { AppNavLinkStatus, AppDeepLink, } from '@kbn/core/public'; +import { KibanaRenderContextProvider } from '@kbn/react-kibana-context-render'; import { ConfigSchema, ManagementSetup, ManagementStart, NavigationCardsSubject } from './types'; import { MANAGEMENT_APP_ID } from '../common/contants'; @@ -99,10 +104,10 @@ export class ManagementPlugin if (home) { home.featureCatalogue.register({ id: 'stack-management', - title: i18n.translate('management.stackManagement.managementLabel', { + title: kbnI18n.translate('management.stackManagement.managementLabel', { defaultMessage: 'Stack Management', }), - description: i18n.translate('management.stackManagement.managementDescription', { + description: kbnI18n.translate('management.stackManagement.managementDescription', { defaultMessage: 'Your center console for managing the Elastic Stack.', }), icon: 'managementApp', @@ -115,7 +120,7 @@ export class ManagementPlugin core.application.register({ id: MANAGEMENT_APP_ID, - title: i18n.translate('management.stackManagement.title', { + title: kbnI18n.translate('management.stackManagement.title', { defaultMessage: 'Stack Management', }), order: 9040, @@ -167,6 +172,39 @@ export class ManagementPlugin }); } + // I'm sure this isn't right. + if (this.managementSections.definedSections.kibana.registerApp) { + const title = kbnI18n.translate('management.settings.settingsLabel', { + defaultMessage: 'Settings', + }); + + this.managementSections.definedSections.kibana.registerApp({ + id: 'settings', + title, + order: 3, + async mount({ element }) { + const { + i18n, + docLinks, + notifications: { toasts }, + settings: settingsClient, + } = core; + + ReactDOM.render( + + + + + , + element + ); + return () => { + ReactDOM.unmountComponentAtNode(element); + }; + }, + }); + } + return { setIsSidebarEnabled: (isSidebarEnabled: boolean) => this.isSidebarEnabled$.next(isSidebarEnabled), diff --git a/tsconfig.base.json b/tsconfig.base.json index 04071f12af018..d1ab97aa7ed13 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -956,6 +956,8 @@ "@kbn/management-cards-navigation/*": ["packages/kbn-management/cards_navigation/*"], "@kbn/management-plugin": ["src/plugins/management"], "@kbn/management-plugin/*": ["src/plugins/management/*"], + "@kbn/management-settings-application": ["packages/kbn-management/settings/application"], + "@kbn/management-settings-application/*": ["packages/kbn-management/settings/application/*"], "@kbn/management-settings-components-field-input": ["packages/kbn-management/settings/components/field_input"], "@kbn/management-settings-components-field-input/*": ["packages/kbn-management/settings/components/field_input/*"], "@kbn/management-settings-components-field-row": ["packages/kbn-management/settings/components/field_row"], diff --git a/x-pack/plugins/serverless/kibana.jsonc b/x-pack/plugins/serverless/kibana.jsonc index d8993d5ac7c72..7971ada3bb2a8 100644 --- a/x-pack/plugins/serverless/kibana.jsonc +++ b/x-pack/plugins/serverless/kibana.jsonc @@ -19,4 +19,4 @@ "optionalPlugins": [], "requiredBundles": [] } -} +} \ No newline at end of file diff --git a/x-pack/plugins/serverless/public/plugin.tsx b/x-pack/plugins/serverless/public/plugin.tsx index 6333d9a5f58a0..1fd9b0b7a4d87 100644 --- a/x-pack/plugins/serverless/public/plugin.tsx +++ b/x-pack/plugins/serverless/public/plugin.tsx @@ -5,16 +5,17 @@ * 2.0. */ +import React from 'react'; +import ReactDOM from 'react-dom'; import { InternalChromeStart } from '@kbn/core-chrome-browser-internal'; import { CoreSetup, CoreStart, Plugin, PluginInitializerContext } from '@kbn/core/public'; -import { I18nProvider } from '@kbn/i18n-react'; -import { KibanaThemeProvider } from '@kbn/kibana-react-plugin/public'; import { ProjectSwitcher, ProjectSwitcherKibanaProvider } from '@kbn/serverless-project-switcher'; import { ProjectType } from '@kbn/serverless-types'; -import React from 'react'; -import ReactDOM from 'react-dom'; +import { KibanaRenderContextProvider } from '@kbn/react-kibana-context-render'; + import { API_SWITCH_PROJECT as projectChangeAPIUrl } from '../common'; import { ServerlessConfig } from './config'; + import { ServerlessPluginSetup, ServerlessPluginSetupDependencies, @@ -39,7 +40,7 @@ export class ServerlessPlugin public setup( _core: CoreSetup, - _dependencies: ServerlessPluginSetupDependencies + _setupDeps: ServerlessPluginSetupDependencies ): ServerlessPluginSetup { return {}; } @@ -89,13 +90,11 @@ export class ServerlessPlugin currentProjectType: ProjectType ) { ReactDOM.render( - - - - - - - , + + + + + , targetDomElement ); diff --git a/x-pack/plugins/serverless/public/types.ts b/x-pack/plugins/serverless/public/types.ts index 84fc2565905d6..31c31a1659b64 100644 --- a/x-pack/plugins/serverless/public/types.ts +++ b/x-pack/plugins/serverless/public/types.ts @@ -14,6 +14,7 @@ import type { } from '@kbn/core-chrome-browser'; import type { CloudSetup, CloudStart } from '@kbn/cloud-plugin/public'; import type { Observable } from 'rxjs'; +import { ManagementStart, ManagementSetup } from '@kbn/management-plugin/public'; // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface ServerlessPluginSetup {} @@ -31,8 +32,10 @@ export interface ServerlessPluginStart { export interface ServerlessPluginSetupDependencies { cloud: CloudSetup; + management: ManagementSetup; } export interface ServerlessPluginStartDependencies { cloud: CloudStart; + management: ManagementStart; } diff --git a/x-pack/plugins/serverless/tsconfig.json b/x-pack/plugins/serverless/tsconfig.json index e8224182afae9..0d50ffb0ba5f1 100644 --- a/x-pack/plugins/serverless/tsconfig.json +++ b/x-pack/plugins/serverless/tsconfig.json @@ -16,14 +16,15 @@ "kbn_references": [ "@kbn/config-schema", "@kbn/core", - "@kbn/kibana-react-plugin", "@kbn/serverless-project-switcher", "@kbn/serverless-types", "@kbn/utils", "@kbn/core-chrome-browser", "@kbn/core-chrome-browser-internal", - "@kbn/i18n-react", "@kbn/cloud-plugin", "@kbn/serverless-common-settings", + "@kbn/i18n", + "@kbn/react-kibana-context-render", + "@kbn/management-settings-application", ] } diff --git a/yarn.lock b/yarn.lock index ed2d78a553642..7d17b74d25bcc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4861,6 +4861,10 @@ version "0.0.0" uid "" +"@kbn/management-settings-application@link:packages/kbn-management/settings/application": + version "0.0.0" + uid "" + "@kbn/management-settings-components-field-input@link:packages/kbn-management/settings/components/field_input": version "0.0.0" uid "" From 574c2a15326ead0943fbd13e7dc06b55d7d36b49 Mon Sep 17 00:00:00 2001 From: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Date: Tue, 19 Sep 2023 20:12:17 +0000 Subject: [PATCH 2/2] [CI] Auto-commit changed files from 'node scripts/lint_ts_projects --fix' --- src/plugins/management/tsconfig.json | 4 +++- x-pack/plugins/serverless/tsconfig.json | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/plugins/management/tsconfig.json b/src/plugins/management/tsconfig.json index 77c3752e7b0c3..fb9f3c0a9b449 100644 --- a/src/plugins/management/tsconfig.json +++ b/src/plugins/management/tsconfig.json @@ -26,7 +26,9 @@ "@kbn/config-schema", "@kbn/core-application-browser", "@kbn/core-http-browser", - "@kbn/serverless" + "@kbn/serverless", + "@kbn/management-settings-application", + "@kbn/react-kibana-context-render" ], "exclude": [ "target/**/*" diff --git a/x-pack/plugins/serverless/tsconfig.json b/x-pack/plugins/serverless/tsconfig.json index 0d50ffb0ba5f1..7173bf0bc4dee 100644 --- a/x-pack/plugins/serverless/tsconfig.json +++ b/x-pack/plugins/serverless/tsconfig.json @@ -23,8 +23,7 @@ "@kbn/core-chrome-browser-internal", "@kbn/cloud-plugin", "@kbn/serverless-common-settings", - "@kbn/i18n", "@kbn/react-kibana-context-render", - "@kbn/management-settings-application", + "@kbn/management-plugin", ] }