[ML] Kibana context types clean up (#170868)

Corrects the types describing the services added to ML's kibana context.

Most of the churn here is me alphabetically sorting the lists of
dependencies.
Also Removes `appName` from the context as it was never actually set. In
the places where it was being used I've switched to our `PLUGIN_ID`
This commit is contained in:
James Gowdy 2023-11-09 16:14:54 +00:00 committed by GitHub
parent 397061aebc
commit 91c50c2873
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 106 additions and 112 deletions

View file

@ -51,22 +51,22 @@ export const ChangePointDetectionPage: FC = () => {
appDependencies={{
...pick(services, [
'application',
'data',
'executionContext',
'cases',
'charts',
'data',
'embeddable',
'executionContext',
'fieldFormats',
'http',
'i18n',
'lens',
'notifications',
'presentationUtil',
'share',
'storage',
'theme',
'uiSettings',
'unifiedSearch',
'theme',
'lens',
'presentationUtil',
'embeddable',
'cases',
'i18n',
'usageCollection',
]),
fieldStats: { useFieldStatsTrigger, FieldStatsFlyoutProvider },

View file

@ -45,19 +45,19 @@ export const LogCategorizationPage: FC = () => {
showFrozenDataTierChoice={showNodeInfo}
appDependencies={pick(services, [
'application',
'charts',
'data',
'executionContext',
'charts',
'fieldFormats',
'http',
'i18n',
'lens',
'notifications',
'share',
'storage',
'theme',
'uiSettings',
'unifiedSearch',
'theme',
'lens',
'i18n',
])}
/>
)}

View file

@ -48,19 +48,19 @@ export const LogRateAnalysisPage: FC = () => {
showFrozenDataTierChoice={showNodeInfo}
appDependencies={pick(services, [
'application',
'charts',
'data',
'executionContext',
'charts',
'fieldFormats',
'http',
'i18n',
'lens',
'notifications',
'share',
'storage',
'theme',
'uiSettings',
'unifiedSearch',
'theme',
'lens',
'i18n',
])}
/>
)}

View file

@ -32,10 +32,11 @@ import { mlApiServicesProvider } from './services/ml_api_service';
import { HttpService } from './services/http_service';
import type { PageDependencies } from './routing/router';
import { EnabledFeaturesContextProvider } from './contexts/ml';
import type { StartServices } from './contexts/kibana';
export type MlDependencies = Omit<
MlSetupDependencies,
'share' | 'fieldFormats' | 'maps' | 'cases' | 'licensing'
'share' | 'fieldFormats' | 'maps' | 'cases' | 'licensing' | 'uiActions'
> &
MlStartDependencies;
@ -78,31 +79,32 @@ const App: FC<AppProps> = ({ coreStart, deps, appMountParams, isServerless, mlFe
setBreadcrumbs: coreStart.chrome!.setBreadcrumbs,
};
const services = useMemo(() => {
const services: StartServices = useMemo(() => {
return {
kibanaVersion: deps.kibanaVersion,
share: deps.share,
cases: deps.cases,
charts: deps.charts,
contentManagement: deps.contentManagement,
dashboard: deps.dashboard,
data: deps.data,
dataViewEditor: deps.dataViewEditor,
security: deps.security,
licenseManagement: deps.licenseManagement,
storage: localStorage,
embeddable: deps.embeddable,
maps: deps.maps,
triggersActionsUi: deps.triggersActionsUi,
dataViews: deps.data.dataViews,
dataVisualizer: deps.dataVisualizer,
usageCollection: deps.usageCollection,
embeddable: deps.embeddable,
fieldFormats: deps.fieldFormats,
dashboard: deps.dashboard,
charts: deps.charts,
cases: deps.cases,
unifiedSearch: deps.unifiedSearch,
licensing: deps.licensing,
kibanaVersion: deps.kibanaVersion,
lens: deps.lens,
licenseManagement: deps.licenseManagement,
maps: deps.maps,
presentationUtil: deps.presentationUtil,
savedObjectsManagement: deps.savedObjectsManagement,
savedSearch: deps.savedSearch,
contentManagement: deps.contentManagement,
presentationUtil: deps.presentationUtil,
security: deps.security,
share: deps.share,
storage: localStorage,
triggersActionsUi: deps.triggersActionsUi,
uiActions: deps.uiActions,
unifiedSearch: deps.unifiedSearch,
usageCollection: deps.usageCollection,
...coreStart,
mlServices: getMlGlobalServices(coreStart.http, deps.usageCollection),
};

View file

@ -10,7 +10,7 @@ import type { DataViewsPublicPluginStart } from '@kbn/data-views-plugin/public';
import type { CoreStart } from '@kbn/core/public';
import type { UsageCollectionSetup } from '@kbn/usage-collection-plugin/public';
import { useKibana, KibanaReactContextValue } from '@kbn/kibana-react-plugin/public';
import type { SecurityPluginSetup } from '@kbn/security-plugin/public';
import type { SecurityPluginStart } from '@kbn/security-plugin/public';
import type { LicenseManagementUIPluginSetup } from '@kbn/license-management-plugin/public';
import type { SharePluginStart } from '@kbn/share-plugin/public';
import type { IStorageWrapper } from '@kbn/kibana-utils-plugin/public';
@ -18,7 +18,6 @@ import type { EmbeddableStart } from '@kbn/embeddable-plugin/public';
import type { MapsStartApi } from '@kbn/maps-plugin/public';
import type { DataVisualizerPluginStart } from '@kbn/data-visualizer-plugin/public';
import type { TriggersAndActionsUIPublicPluginStart } from '@kbn/triggers-actions-ui-plugin/public';
import type { FieldFormatsRegistry } from '@kbn/field-formats-plugin/common';
import type { DashboardStart } from '@kbn/dashboard-plugin/public';
import type { SpacesPluginStart } from '@kbn/spaces-plugin/public';
import type { ChartsPluginStart } from '@kbn/charts-plugin/public';
@ -30,33 +29,34 @@ import type { ContentManagementPublicStart } from '@kbn/content-management-plugi
import type { SavedSearchPublicPluginStart } from '@kbn/saved-search-plugin/public';
import type { PresentationUtilPluginStart } from '@kbn/presentation-util-plugin/public';
import type { DataViewEditorStart } from '@kbn/data-view-editor-plugin/public';
import type { FieldFormatsStart } from '@kbn/field-formats-plugin/public';
import type { UiActionsStart } from '@kbn/ui-actions-plugin/public';
import type { MlServicesContext } from '../../app';
interface StartPlugins {
cases?: CasesUiStart;
charts: ChartsPluginStart;
contentManagement: ContentManagementPublicStart;
dashboard: DashboardStart;
data: DataPublicPluginStart;
dataViewEditor: DataViewEditorStart;
dataViews: DataViewsPublicPluginStart;
security?: SecurityPluginSetup;
licenseManagement?: LicenseManagementUIPluginSetup;
share: SharePluginStart;
embeddable: EmbeddableStart;
maps?: MapsStartApi;
triggersActionsUi?: TriggersAndActionsUIPublicPluginStart;
dataVisualizer?: DataVisualizerPluginStart;
usageCollection?: UsageCollectionSetup;
fieldFormats: FieldFormatsRegistry;
dashboard: DashboardStart;
spacesApi?: SpacesPluginStart;
charts: ChartsPluginStart;
cases?: CasesUiStart;
unifiedSearch: UnifiedSearchPublicPluginStart;
core: CoreStart;
appName: string;
embeddable: EmbeddableStart;
fieldFormats: FieldFormatsStart;
lens: LensPublicStart;
licenseManagement?: LicenseManagementUIPluginSetup;
maps?: MapsStartApi;
presentationUtil: PresentationUtilPluginStart;
savedObjectsManagement: SavedObjectsManagementPluginStart;
savedSearch: SavedSearchPublicPluginStart;
contentManagement: ContentManagementPublicStart;
presentationUtil: PresentationUtilPluginStart;
security?: SecurityPluginStart;
share: SharePluginStart;
spacesApi?: SpacesPluginStart;
triggersActionsUi?: TriggersAndActionsUIPublicPluginStart;
uiActions: UiActionsStart;
unifiedSearch: UnifiedSearchPublicPluginStart;
usageCollection?: UsageCollectionSetup;
}
export type StartServices = CoreStart &
StartPlugins & {

View file

@ -19,6 +19,7 @@ import { QueryStringInput } from '@kbn/unified-search-plugin/public';
import { QueryErrorMessage } from '@kbn/ml-error-utils';
import { SEARCH_QUERY_LANGUAGE, SearchQueryLanguage } from '@kbn/ml-query-utils';
import { PLUGIN_ID } from '../../../../../../../common/constants/app';
import { Dictionary } from '../../../../../../../common/types/common';
import { removeFilterFromQueryString } from '../../../../../explorer/explorer_utils';
import { useMlKibana } from '../../../../../contexts/kibana';
@ -53,17 +54,8 @@ export const ExplorationQueryBar: FC<ExplorationQueryBarProps> = ({
);
const { services } = useMlKibana();
const {
unifiedSearch,
data,
storage,
appName,
notifications,
http,
docLinks,
uiSettings,
dataViews,
} = services;
const { unifiedSearch, data, storage, notifications, http, docLinks, uiSettings, dataViews } =
services;
const searchChangeHandler = (q: Query) => setSearchInput(q);
@ -206,7 +198,7 @@ export const ExplorationQueryBar: FC<ExplorationQueryBarProps> = ({
disableAutoFocus={true}
dataTestSubj="mlDFAnalyticsQueryInput"
languageSwitcherPopoverAnchorPosition="rightDown"
appName={appName}
appName={PLUGIN_ID}
deps={{
unifiedSearch,
notifications,

View file

@ -15,6 +15,7 @@ import type { DataView } from '@kbn/data-views-plugin/common';
import type { QueryErrorMessage } from '@kbn/ml-error-utils';
import type { InfluencersFilterQuery } from '@kbn/ml-anomaly-utils';
import { SEARCH_QUERY_LANGUAGE } from '@kbn/ml-query-utils';
import { PLUGIN_ID } from '../../../../../common/constants/app';
import { useAnomalyExplorerContext } from '../../anomaly_explorer_context';
import { useMlKibana } from '../../../contexts/kibana';
@ -113,7 +114,6 @@ export const ExplorerQueryBar: FC<ExplorerQueryBarProps> = ({
unifiedSearch,
data,
storage,
appName,
notifications,
http,
docLinks,
@ -176,7 +176,7 @@ export const ExplorerQueryBar: FC<ExplorerQueryBarProps> = ({
disableAutoFocus
dataTestSubj="explorerQueryInput"
languageSwitcherPopoverAnchorPosition="rightDown"
appName={appName}
appName={PLUGIN_ID}
deps={{
unifiedSearch,
notifications,

View file

@ -70,45 +70,45 @@ import type { MlCapabilities } from './shared';
import { ElasticModels } from './application/services/elastic_models_service';
export interface MlStartDependencies {
dataViewEditor: DataViewEditorStart;
data: DataPublicPluginStart;
unifiedSearch: UnifiedSearchPublicPluginStart;
licensing: LicensingPluginStart;
share: SharePluginStart;
uiActions: UiActionsStart;
spaces?: SpacesPluginStart;
embeddable: EmbeddableStart;
maps?: MapsStartApi;
triggersActionsUi?: TriggersAndActionsUIPublicPluginStart;
dataVisualizer: DataVisualizerPluginStart;
fieldFormats: FieldFormatsStart;
dashboard: DashboardStart;
charts: ChartsPluginStart;
lens?: LensPublicStart;
cases?: CasesUiStart;
security: SecurityPluginStart;
charts: ChartsPluginStart;
contentManagement: ContentManagementPublicStart;
dashboard: DashboardStart;
data: DataPublicPluginStart;
dataViewEditor: DataViewEditorStart;
dataVisualizer: DataVisualizerPluginStart;
embeddable: EmbeddableStart;
fieldFormats: FieldFormatsStart;
lens: LensPublicStart;
licensing: LicensingPluginStart;
maps?: MapsStartApi;
presentationUtil: PresentationUtilPluginStart;
savedObjectsManagement: SavedObjectsManagementPluginStart;
savedSearch: SavedSearchPublicPluginStart;
contentManagement: ContentManagementPublicStart;
presentationUtil: PresentationUtilPluginStart;
security: SecurityPluginStart;
share: SharePluginStart;
spaces?: SpacesPluginStart;
triggersActionsUi?: TriggersAndActionsUIPublicPluginStart;
uiActions: UiActionsStart;
unifiedSearch: UnifiedSearchPublicPluginStart;
}
export interface MlSetupDependencies {
maps?: MapsSetupApi;
alerting?: AlertingSetup;
cases?: CasesUiSetup;
dashboard: DashboardSetup;
embeddable: EmbeddableSetup;
fieldFormats: FieldFormatsSetup;
home?: HomePublicPluginSetup;
kibanaVersion: string;
licenseManagement?: LicenseManagementUIPluginSetup;
licensing: LicensingPluginSetup;
management?: ManagementSetup;
licenseManagement?: LicenseManagementUIPluginSetup;
home?: HomePublicPluginSetup;
embeddable: EmbeddableSetup;
uiActions: UiActionsSetup;
kibanaVersion: string;
maps?: MapsSetupApi;
share: SharePluginSetup;
triggersActionsUi?: TriggersAndActionsUIPublicPluginSetup;
alerting?: AlertingSetup;
uiActions: UiActionsSetup;
usageCollection?: UsageCollectionSetup;
fieldFormats: FieldFormatsSetup;
dashboard: DashboardSetup;
cases?: CasesUiSetup;
}
export type MlCoreSetup = CoreSetup<MlStartDependencies, MlPluginStart>;
@ -154,31 +154,31 @@ export class MlPlugin implements Plugin<MlPluginSetup, MlPluginStart> {
return renderApp(
coreStart,
{
cases: pluginsStart.cases,
charts: pluginsStart.charts,
contentManagement: pluginsStart.contentManagement,
dashboard: pluginsStart.dashboard,
data: pluginsStart.data,
dataViewEditor: pluginsStart.dataViewEditor,
unifiedSearch: pluginsStart.unifiedSearch,
dashboard: pluginsStart.dashboard,
share: pluginsStart.share,
security: pluginsStart.security,
dataVisualizer: pluginsStart.dataVisualizer,
embeddable: { ...pluginsSetup.embeddable, ...pluginsStart.embeddable },
fieldFormats: pluginsStart.fieldFormats,
home: pluginsSetup.home,
kibanaVersion: this.initializerContext.env.packageInfo.version,
lens: pluginsStart.lens,
licenseManagement: pluginsSetup.licenseManagement,
licensing: pluginsStart.licensing,
management: pluginsSetup.management,
licenseManagement: pluginsSetup.licenseManagement,
home: pluginsSetup.home,
embeddable: { ...pluginsSetup.embeddable, ...pluginsStart.embeddable },
maps: pluginsStart.maps,
uiActions: pluginsStart.uiActions,
kibanaVersion: this.initializerContext.env.packageInfo.version,
triggersActionsUi: pluginsStart.triggersActionsUi,
dataVisualizer: pluginsStart.dataVisualizer,
usageCollection: pluginsSetup.usageCollection,
fieldFormats: pluginsStart.fieldFormats,
lens: pluginsStart.lens,
cases: pluginsStart.cases,
presentationUtil: pluginsStart.presentationUtil,
savedObjectsManagement: pluginsStart.savedObjectsManagement,
savedSearch: pluginsStart.savedSearch,
contentManagement: pluginsStart.contentManagement,
presentationUtil: pluginsStart.presentationUtil,
security: pluginsStart.security,
share: pluginsStart.share,
triggersActionsUi: pluginsStart.triggersActionsUi,
uiActions: pluginsStart.uiActions,
unifiedSearch: pluginsStart.unifiedSearch,
usageCollection: pluginsSetup.usageCollection,
},
params,
this.isServerless,