diff --git a/x-pack/legacy/plugins/canvas/server/plugin.ts b/x-pack/legacy/plugins/canvas/server/plugin.ts index 713747551ff47..014ff244e6e0c 100644 --- a/x-pack/legacy/plugins/canvas/server/plugin.ts +++ b/x-pack/legacy/plugins/canvas/server/plugin.ts @@ -6,40 +6,9 @@ import { CoreSetup, PluginsSetup } from './shim'; import { functions } from '../canvas_plugin_src/functions/server'; -import { loadSampleData } from './sample_data'; export class Plugin { public setup(core: CoreSetup, plugins: PluginsSetup) { plugins.interpreter.register({ serverFunctions: functions }); - - plugins.features.registerFeature({ - id: 'canvas', - name: 'Canvas', - icon: 'canvasApp', - navLinkId: 'canvas', - app: ['canvas', 'kibana'], - catalogue: ['canvas'], - privileges: { - all: { - savedObject: { - all: ['canvas-workpad', 'canvas-element'], - read: ['index-pattern'], - }, - ui: ['save', 'show'], - }, - read: { - savedObject: { - all: [], - read: ['index-pattern', 'canvas-workpad', 'canvas-element'], - }, - ui: ['show'], - }, - }, - }); - - loadSampleData( - plugins.home.sampleData.addSavedObjectsToSampleDataset, - plugins.home.sampleData.addAppLinksToSampleDataset - ); } } diff --git a/x-pack/legacy/plugins/canvas/server/shim.ts b/x-pack/legacy/plugins/canvas/server/shim.ts index c9d70e6a721ee..c36ee3a291dae 100644 --- a/x-pack/legacy/plugins/canvas/server/shim.ts +++ b/x-pack/legacy/plugins/canvas/server/shim.ts @@ -29,10 +29,6 @@ export interface PluginsSetup { kibana: { injectedUiAppVars: ReturnType; }; - sampleData: { - addSavedObjectsToSampleDataset: any; - addAppLinksToSampleDataset: any; - }; usageCollection: UsageCollectionSetup; } diff --git a/x-pack/plugins/canvas/i18n/index.ts b/x-pack/plugins/canvas/i18n/index.ts new file mode 100644 index 0000000000000..8a65a75c0cfb9 --- /dev/null +++ b/x-pack/plugins/canvas/i18n/index.ts @@ -0,0 +1,7 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +export * from '../../../legacy/plugins/canvas/i18n'; diff --git a/x-pack/plugins/canvas/kibana.json b/x-pack/plugins/canvas/kibana.json index f18e7fe0590bc..6e12164b61c5e 100644 --- a/x-pack/plugins/canvas/kibana.json +++ b/x-pack/plugins/canvas/kibana.json @@ -5,6 +5,6 @@ "configPath": ["xpack", "canvas"], "server": true, "ui": false, - "requiredPlugins": [], + "requiredPlugins": ["features", "home"], "optionalPlugins": ["usageCollection"] } diff --git a/x-pack/plugins/canvas/server/plugin.ts b/x-pack/plugins/canvas/server/plugin.ts index 0f27c68903b3d..a94c711b56e05 100644 --- a/x-pack/plugins/canvas/server/plugin.ts +++ b/x-pack/plugins/canvas/server/plugin.ts @@ -7,11 +7,16 @@ import { first } from 'rxjs/operators'; import { CoreSetup, PluginInitializerContext, Plugin, Logger } from 'src/core/server'; import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; +import { HomeServerPluginSetup } from 'src/plugins/home/server'; +import { PluginSetupContract as FeaturesPluginSetup } from '../../features/server'; import { initRoutes } from './routes'; import { registerCanvasUsageCollector } from './collectors'; +import { loadSampleData } from './sample_data'; interface PluginsSetup { usageCollection?: UsageCollectionSetup; + features: FeaturesPluginSetup; + home: HomeServerPluginSetup; } export class CanvasPlugin implements Plugin { @@ -21,10 +26,40 @@ export class CanvasPlugin implements Plugin { } public async setup(coreSetup: CoreSetup, plugins: PluginsSetup) { + plugins.features.registerFeature({ + id: 'canvas', + name: 'Canvas', + icon: 'canvasApp', + navLinkId: 'canvas', + app: ['canvas', 'kibana'], + catalogue: ['canvas'], + privileges: { + all: { + savedObject: { + all: ['canvas-workpad', 'canvas-element'], + read: ['index-pattern'], + }, + ui: ['save', 'show'], + }, + read: { + savedObject: { + all: [], + read: ['index-pattern', 'canvas-workpad', 'canvas-element'], + }, + ui: ['show'], + }, + }, + }); + const canvasRouter = coreSetup.http.createRouter(); initRoutes({ router: canvasRouter, logger: this.logger }); + loadSampleData( + plugins.home.sampleData.addSavedObjectsToSampleDataset, + plugins.home.sampleData.addAppLinksToSampleDataset + ); + // we need the kibana index provided by global config for the Canvas usage collector const globalConfig = await this.initializerContext.config.legacy.globalConfig$ .pipe(first()) diff --git a/x-pack/legacy/plugins/canvas/server/sample_data/ecommerce_saved_objects.json b/x-pack/plugins/canvas/server/sample_data/ecommerce_saved_objects.json similarity index 100% rename from x-pack/legacy/plugins/canvas/server/sample_data/ecommerce_saved_objects.json rename to x-pack/plugins/canvas/server/sample_data/ecommerce_saved_objects.json diff --git a/x-pack/legacy/plugins/canvas/server/sample_data/flights_saved_objects.json b/x-pack/plugins/canvas/server/sample_data/flights_saved_objects.json similarity index 100% rename from x-pack/legacy/plugins/canvas/server/sample_data/flights_saved_objects.json rename to x-pack/plugins/canvas/server/sample_data/flights_saved_objects.json diff --git a/x-pack/legacy/plugins/canvas/server/sample_data/index.ts b/x-pack/plugins/canvas/server/sample_data/index.ts similarity index 100% rename from x-pack/legacy/plugins/canvas/server/sample_data/index.ts rename to x-pack/plugins/canvas/server/sample_data/index.ts diff --git a/x-pack/legacy/plugins/canvas/server/sample_data/load_sample_data.ts b/x-pack/plugins/canvas/server/sample_data/load_sample_data.ts similarity index 95% rename from x-pack/legacy/plugins/canvas/server/sample_data/load_sample_data.ts rename to x-pack/plugins/canvas/server/sample_data/load_sample_data.ts index ed505c09cc7a4..6eda02ef41722 100644 --- a/x-pack/legacy/plugins/canvas/server/sample_data/load_sample_data.ts +++ b/x-pack/plugins/canvas/server/sample_data/load_sample_data.ts @@ -4,10 +4,10 @@ * you may not use this file except in compliance with the Elastic License. */ +import { SampleDataRegistrySetup } from 'src/plugins/home/server'; import { CANVAS as label } from '../../i18n'; // @ts-ignore Untyped local import { ecommerceSavedObjects, flightsSavedObjects, webLogsSavedObjects } from './index'; -import { SampleDataRegistrySetup } from '../../../../../../src/plugins/home/server'; export function loadSampleData( addSavedObjectsToSampleDataset: SampleDataRegistrySetup['addSavedObjectsToSampleDataset'], diff --git a/x-pack/legacy/plugins/canvas/server/sample_data/web_logs_saved_objects.json b/x-pack/plugins/canvas/server/sample_data/web_logs_saved_objects.json similarity index 100% rename from x-pack/legacy/plugins/canvas/server/sample_data/web_logs_saved_objects.json rename to x-pack/plugins/canvas/server/sample_data/web_logs_saved_objects.json