Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
6faa981
[NP:Kibana:homeAPI] initializes a new plugin (WIP)
TinaHeiligers Nov 12, 2019
a24e7f2
Merge branch 'master' of github.com:elastic/kibana into NP_kibana_ser…
TinaHeiligers Nov 12, 2019
eeeaae6
Typing
TinaHeiligers Nov 12, 2019
7a78b55
New plugin tutorials not needing server working
TinaHeiligers Nov 12, 2019
dfa5e34
Retains legacy tutorial registration and adds new route for new platf…
TinaHeiligers Nov 12, 2019
31548ef
Adds comment on where to pre-register general non-plugin specific tut…
TinaHeiligers Nov 13, 2019
560e7d2
Merge branch 'master' of github.com:elastic/kibana into NP_kibana_plu…
TinaHeiligers Nov 13, 2019
c22d787
Converts TutorialsPlugin to TutorialsRegistry service in new Home plugin
TinaHeiligers Nov 13, 2019
1741e3c
Changes call to location of registerTutorial in registerTutorials
TinaHeiligers Nov 13, 2019
aca40b9
Adds console log for the home plugin that's returning an empty object
TinaHeiligers Nov 13, 2019
10d477a
Removes async from setup and start methods in the home plugin and the…
TinaHeiligers Nov 13, 2019
de06bc0
Starts writing tests and creating mocks
TinaHeiligers Nov 14, 2019
7a7ce9a
Adds basic tests for TutorialRegistry service
TinaHeiligers Nov 14, 2019
fcedb41
Adds basic tests for TutorialRegistry service
TinaHeiligers Nov 14, 2019
a77aced
Merge branch 'master' of github.com:elastic/kibana into NP_kibana_plu…
TinaHeiligers Nov 14, 2019
1862438
Merge branch 'master' of github.com:elastic/kibana into NP_kibana_plu…
TinaHeiligers Nov 14, 2019
628e410
Adds test for route
TinaHeiligers Nov 14, 2019
cc978bd
Adds mocks and tests for the home plugin
TinaHeiligers Nov 14, 2019
6607a40
Adds home plugin to security plugin and registers scoped tutorials se…
TinaHeiligers Nov 15, 2019
a4fba59
Merge branch 'master' of github.com:elastic/kibana into NP_kibana_plu…
TinaHeiligers Nov 15, 2019
8e6177f
Removes incorrect addition to src core server
TinaHeiligers Nov 15, 2019
14d3068
Fixes type errors
TinaHeiligers Nov 15, 2019
16a0a38
Deletes unused code
TinaHeiligers Nov 15, 2019
4f9399f
[Kibana NP migration] begins moving the feature_catalogue plugin into…
TinaHeiligers Nov 15, 2019
02176a4
Fixes feature_catalogue imports
TinaHeiligers Nov 15, 2019
93d67d6
Deletes duplicate golangMetricsSpecProvider registration
TinaHeiligers Nov 15, 2019
f493a7e
Deletes feature_catalogue plugin
TinaHeiligers Nov 16, 2019
1d79358
Merge branch 'master' of github.com:elastic/kibana into NP_kibana_plu…
TinaHeiligers Nov 16, 2019
100380e
Merge branch 'master' of github.com:elastic/kibana into NP_kibana_plu…
TinaHeiligers Nov 16, 2019
8d49809
Nests tutorials service in a tutorials key in the home plugin, change…
TinaHeiligers Nov 16, 2019
4bdbaf2
Merge branch 'NP_kibana_plugin_home' into NP_kibana_plugin_home_featu…
TinaHeiligers Nov 16, 2019
e40089d
Nests featureCatalogue methods into an object within the HomePublicPl…
TinaHeiligers Nov 16, 2019
7f553fb
Changes url variable names
TinaHeiligers Nov 17, 2019
043af9a
Merge branch 'NP_kibana_plugin_home' into NP_kibana_plugin_home_featu…
TinaHeiligers Nov 17, 2019
cb1a9f3
Merge branch 'master' of github.com:elastic/kibana into NP_kibana_plu…
TinaHeiligers Nov 17, 2019
6dc0205
Merge branch 'master' of github.com:elastic/kibana into NP_kibana_plu…
TinaHeiligers Nov 17, 2019
d5a120e
Merge branch 'master' of github.com:elastic/kibana into NP_kibana_plu…
TinaHeiligers Nov 18, 2019
cbb950c
Merge branch 'NP_kibana_plugin_home' into NP_kibana_plugin_home_featu…
TinaHeiligers Nov 18, 2019
9a0f060
Merge branch 'master' of github.com:elastic/kibana into NP_kibana_plu…
TinaHeiligers Nov 18, 2019
68159e5
Changes HomePlugin to HomePluginServer
TinaHeiligers Nov 18, 2019
a485ba2
Merge branch 'master' of github.com:elastic/kibana into NP_kibana_plu…
TinaHeiligers Nov 19, 2019
2fad345
Merge branch 'master' of github.com:elastic/kibana into NP_kibana_plu…
TinaHeiligers Nov 19, 2019
83a43bf
Update src/core/MIGRATION.md
TinaHeiligers Nov 19, 2019
e0faa71
Moves feature_catalogue services into a subfolder
TinaHeiligers Nov 19, 2019
9a73942
Moves tutorials-related service files into a subfolder in the server …
TinaHeiligers Nov 19, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/core/MIGRATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -1139,7 +1139,7 @@ import { setup, start } from '../core_plugins/visualizations/public/legacy';
| `ui/embeddable` | `embeddables` | still in progress |
| `ui/filter_manager` | `data.filter` | -- |
| `ui/index_patterns` | `data.indexPatterns` | still in progress |
| `ui/registry/feature_catalogue | `feature_catalogue.register` | Must add `feature_catalogue` as a dependency in your kibana.json. |
| `ui/registry/feature_catalogue` | `home.featureCatalogue.register` | Must add `home` as a dependency in your kibana.json. |
| `ui/registry/vis_types` | `visualizations.types` | -- |
| `ui/vis` | `visualizations.types` | -- |
| `ui/share` | `share` | `showShareContextMenu` is now called `toggleShareContextMenu`, `ShareContextMenuExtensionsRegistryProvider` is now called `register` |
Expand Down Expand Up @@ -1182,7 +1182,7 @@ This table shows where these uiExports have moved to in the New Platform. In mos
| `fieldFormatEditors` | | |
| `fieldFormats` | | |
| `hacks` | n/a | Just run the code in your plugin's `start` method. |
| `home` | [`plugins.feature_catalogue.register`](./src/plugins/feature_catalogue) | Must add `feature_catalogue` as a dependency in your kibana.json. |
| `home` | [`plugins.home.featureCatalogue.register`](./src/plugins/home/public/feature_catalogue) | Must add `home` as a dependency in your kibana.json. |
| `indexManagement` | | Should be an API on the indexManagement plugin. |
| `injectDefaultVars` | n/a | Plugins will only be able to "whitelist" config values for the frontend. See [#41990](https://github.com/elastic/kibana/issues/41990) |
| `inspectorViews` | | Should be an API on the data (?) plugin. |
Expand Down
4 changes: 2 additions & 2 deletions src/legacy/core_plugins/console/np_ready/public/legacy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,15 @@ import { I18nContext } from 'ui/i18n';

export interface XPluginSet {
devTools: DevToolsSetup;
feature_catalogue: FeatureCatalogueSetup;
home: HomePublicPluginSetup;
__LEGACY: {
I18nContext: any;
};
}

import { plugin } from '.';
import { DevToolsSetup } from '../../../../../plugins/dev_tools/public';
import { FeatureCatalogueSetup } from '../../../../../plugins/feature_catalogue/public';
import { HomePublicPluginSetup } from '../../../../../plugins/home/public';

const pluginInstance = plugin({} as any);

Expand Down
4 changes: 2 additions & 2 deletions src/legacy/core_plugins/console/np_ready/public/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,10 @@ export class ConsoleUIPlugin implements Plugin<any, any> {
const {
__LEGACY: { I18nContext },
devTools,
feature_catalogue,
home,
} = pluginSet;

feature_catalogue.register({
home.featureCatalogue.register({
id: 'console',
title: i18n.translate('console.devToolsTitle', {
defaultMessage: 'Console',
Expand Down
4 changes: 2 additions & 2 deletions src/legacy/core_plugins/kibana/public/home/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,11 @@ let copiedLegacyCatalogue = false;
const Private = injector.get<IPrivate>('Private');
// Merge legacy registry with new registry
(Private(FeatureCatalogueRegistryProvider as any) as any).inTitleOrder.map(
npSetup.plugins.feature_catalogue.register
npSetup.plugins.home.featureCatalogue.register
);
copiedLegacyCatalogue = true;
}
return npStart.plugins.feature_catalogue.get();
return npStart.plugins.home.featureCatalogue.get();
},
getAngularDependencies,
localApplicationService,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import {
UiSettingsState,
} from 'kibana/public';
import { UiStatsMetricType } from '@kbn/analytics';
import { FeatureCatalogueEntry } from '../../../../../plugins/feature_catalogue/public';
import { FeatureCatalogueEntry } from '../../../../../plugins/home/public';

export interface HomeKibanaServices {
indexPatternService: any;
Expand Down
2 changes: 1 addition & 1 deletion src/legacy/core_plugins/kibana/public/home/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import { UiStatsMetricType } from '@kbn/analytics';
import { DataStart } from '../../../data/public';
import { LocalApplicationService } from '../local_application_service';
import { setServices } from './kibana_services';
import { FeatureCatalogueEntry } from '../../../../../plugins/feature_catalogue/public';
import { FeatureCatalogueEntry } from '../../../../../plugins/home/public';

export interface LegacyAngularInjectedDependencies {
telemetryOptInProvider: any;
Expand Down
9 changes: 3 additions & 6 deletions src/legacy/ui/public/new_platform/new_platform.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,14 @@ import {
} from '../../../../plugins/inspector/public';
import { EuiUtilsStart } from '../../../../plugins/eui_utils/public';
import { DevToolsSetup, DevToolsStart } from '../../../../plugins/dev_tools/public';
import {
FeatureCatalogueSetup,
FeatureCatalogueStart,
} from '../../../../plugins/feature_catalogue/public';
import { HomePublicPluginSetup, HomePublicPluginStart } from '../../../../plugins/home/public';
import { SharePluginSetup, SharePluginStart } from '../../../../plugins/share/public';

export interface PluginsSetup {
data: ReturnType<DataPlugin['setup']>;
embeddable: EmbeddableSetup;
expressions: ReturnType<ExpressionsPlugin['setup']>;
feature_catalogue: FeatureCatalogueSetup;
home: HomePublicPluginSetup;
inspector: InspectorSetup;
uiActions: IUiActionsSetup;
share: SharePluginSetup;
Expand All @@ -51,7 +48,7 @@ export interface PluginsStart {
embeddable: EmbeddableStart;
eui_utils: EuiUtilsStart;
expressions: ReturnType<ExpressionsPlugin['start']>;
feature_catalogue: FeatureCatalogueStart;
home: HomePublicPluginStart;
inspector: InspectorStart;
uiActions: IUiActionsStart;
share: SharePluginStart;
Expand Down
2 changes: 1 addition & 1 deletion src/legacy/ui/public/registry/feature_catalogue.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

import { uiRegistry } from './_registry';
import { capabilities } from '../capabilities';
export { FeatureCatalogueCategory } from '../../../../plugins/feature_catalogue/public';
export { FeatureCatalogueCategory } from '../../../../plugins/home/public';

export const FeatureCatalogueRegistryProvider = uiRegistry({
name: 'featureCatalogue',
Expand Down
6 changes: 0 additions & 6 deletions src/plugins/feature_catalogue/kibana.json

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# Feature catalogue plugin
# home plugin
Moves the legacy `ui/registry/feature_catalogue` module for registering "features" that should be shown in the home page's feature catalogue to a service within a "home" plugin. The feature catalogue refered to here should not be confused with the "feature" plugin for registering features used to derive UI capabilities for feature controls.

# Feature catalogue (public service)

Replaces the legacy `ui/registry/feature_catalogue` module for registering "features" that should be showed in the home
page's feature catalogue. This should not be confused with the "feature" plugin for registering features used to derive
Expand All @@ -9,15 +12,15 @@ UI capabilities for feature controls.
```ts
// For legacy plugins
import { npSetup } from 'ui/new_platform';
npSetup.plugins.feature_catalogue.register(/* same details here */);
npSetup.plugins.home.featureCatalogue.register(/* same details here */);

// For new plugins: first add 'feature_catalogue` to the list of `optionalPlugins`
// For new plugins: first add 'home` to the list of `optionalPlugins`
// in your kibana.json file. Then access the plugin directly in `setup`:

class MyPlugin {
setup(core, plugins) {
if (plugins.feature_catalogue) {
plugins.feature_catalogue.register(/* same details here. */);
if (plugins.home) {
plugins.home.featureCatalgoue.register(/* same details here. */);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/plugins/home/kibana.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"id": "home",
"version": "kibana",
"server": true,
"ui": false
"ui": true
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@
* under the License.
*/

export { FeatureCatalogueSetup, FeatureCatalogueStart } from './plugin';
export {
FeatureCatalogueSetup,
FeatureCatalogueStart,
HomePublicPluginSetup,
HomePublicPluginStart,
} from './plugin';
export { FeatureCatalogueEntry, FeatureCatalogueCategory } from './services';
import { FeatureCataloguePlugin } from './plugin';
import { HomePublicPlugin } from './plugin';

export const plugin = () => new FeatureCataloguePlugin();
export const plugin = () => new HomePublicPlugin();
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
* under the License.
*/

import { featureCatalogueRegistryMock } from './services/feature_catalogue_registry.mock';
import { featureCatalogueRegistryMock } from './services/feature_catalogue/feature_catalogue_registry.mock';

export const registryMock = featureCatalogueRegistryMock.create();
jest.doMock('./services', () => ({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,32 +18,32 @@
*/

import { registryMock } from './plugin.test.mocks';
import { FeatureCataloguePlugin } from './plugin';
import { HomePublicPlugin } from './plugin';

describe('FeatureCataloguePlugin', () => {
describe('HomePublicPlugin', () => {
beforeEach(() => {
registryMock.setup.mockClear();
registryMock.start.mockClear();
});

describe('setup', () => {
test('wires up and returns registry', async () => {
const setup = await new FeatureCataloguePlugin().setup();
expect(registryMock.setup).toHaveBeenCalledWith();
expect(setup.register).toBeDefined();
const setup = await new HomePublicPlugin().setup();
expect(setup).toHaveProperty('featureCatalogue');
expect(setup.featureCatalogue).toHaveProperty('register');
});
});

describe('start', () => {
test('wires up and returns registry', async () => {
const service = new FeatureCataloguePlugin();
const service = new HomePublicPlugin();
await service.setup();
const core = { application: { capabilities: { catalogue: {} } } } as any;
const start = await service.start(core);
expect(registryMock.start).toHaveBeenCalledWith({
capabilities: core.application.capabilities,
});
expect(start.get).toBeDefined();
expect(start.featureCatalogue.get).toBeDefined();
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -24,21 +24,22 @@ import {
FeatureCatalogueRegistryStart,
} from './services';

export class FeatureCataloguePlugin
implements Plugin<FeatureCatalogueSetup, FeatureCatalogueStart> {
export class HomePublicPlugin implements Plugin<HomePublicPluginSetup, HomePublicPluginStart> {
private readonly featuresCatalogueRegistry = new FeatureCatalogueRegistry();

public async setup() {
return {
...this.featuresCatalogueRegistry.setup(),
featureCatalogue: { ...this.featuresCatalogueRegistry.setup() },
};
}

public async start(core: CoreStart) {
return {
...this.featuresCatalogueRegistry.start({
capabilities: core.application.capabilities,
}),
featureCatalogue: {
...this.featuresCatalogueRegistry.start({
capabilities: core.application.capabilities,
}),
},
};
}
}
Expand All @@ -48,3 +49,13 @@ export type FeatureCatalogueSetup = FeatureCatalogueRegistrySetup;

/** @public */
export type FeatureCatalogueStart = FeatureCatalogueRegistryStart;

/** @public */
export interface HomePublicPluginSetup {
featureCatalogue: FeatureCatalogueSetup;
}

/** @public */
export interface HomePublicPluginStart {
featureCatalogue: FeatureCatalogueStart;
}
26 changes: 26 additions & 0 deletions src/plugins/home/public/services/feature_catalogue/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/*
* Licensed to Elasticsearch B.V. under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch B.V. licenses this file to you under
* the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

export {
FeatureCatalogueCategory,
FeatureCatalogueEntry,
FeatureCatalogueRegistry,
FeatureCatalogueRegistrySetup,
FeatureCatalogueRegistryStart,
} from './feature_catalogue_registry';
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@
* under the License.
*/

export * from './feature_catalogue_registry';
export * from './feature_catalogue';
6 changes: 3 additions & 3 deletions src/plugins/home/server/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
* under the License.
*/

export { HomePluginSetup, HomePluginStart } from './plugin';
export { HomeServerPluginSetup, HomeServerPluginStart } from './plugin';
export { TutorialProvider } from './services';
import { HomePlugin } from './plugin';
import { HomeServerPlugin } from './plugin';

export const plugin = () => new HomePlugin();
export const plugin = () => new HomeServerPlugin();
2 changes: 1 addition & 1 deletion src/plugins/home/server/plugin.test.mocks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
import { tutorialsRegistryMock } from './services/tutorials_registry.mock';
import { tutorialsRegistryMock } from './services/tutorials/tutorials_registry.mock';

export const registryMock = tutorialsRegistryMock.create();
jest.doMock('./services', () => ({
Expand Down
8 changes: 4 additions & 4 deletions src/plugins/home/server/plugin.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@
*/

import { registryMock } from './plugin.test.mocks';
import { HomePlugin } from './plugin';
import { HomeServerPlugin } from './plugin';
import { coreMock } from '../../../core/server/mocks';
import { CoreSetup } from '../../../core/server';

type MockedKeys<T> = { [P in keyof T]: jest.Mocked<T[P]> };

describe('HomePlugin', () => {
describe('HomeServerPlugin', () => {
beforeEach(() => {
registryMock.setup.mockClear();
registryMock.start.mockClear();
Expand All @@ -34,7 +34,7 @@ describe('HomePlugin', () => {
const mockCoreSetup: MockedKeys<CoreSetup> = coreMock.createSetup();

test('wires up and returns registerTutorial and addScopedTutorialContextFactory', () => {
const setup = new HomePlugin().setup(mockCoreSetup);
const setup = new HomeServerPlugin().setup(mockCoreSetup);
expect(setup).toHaveProperty('tutorials');
expect(setup.tutorials).toHaveProperty('registerTutorial');
expect(setup.tutorials).toHaveProperty('addScopedTutorialContextFactory');
Expand All @@ -43,7 +43,7 @@ describe('HomePlugin', () => {

describe('start', () => {
test('is defined', () => {
const start = new HomePlugin().start();
const start = new HomeServerPlugin().start();
expect(start).toBeDefined();
expect(start).toHaveProperty('tutorials');
});
Expand Down
6 changes: 3 additions & 3 deletions src/plugins/home/server/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import { CoreSetup, Plugin } from 'src/core/server';
import { TutorialsRegistry, TutorialsRegistrySetup, TutorialsRegistryStart } from './services';

export class HomePlugin implements Plugin<HomePluginSetup, HomePluginStart> {
export class HomeServerPlugin implements Plugin<HomeServerPluginSetup, HomeServerPluginStart> {
private readonly tutorialsRegistry = new TutorialsRegistry();

public setup(core: CoreSetup) {
Expand All @@ -36,11 +36,11 @@ export class HomePlugin implements Plugin<HomePluginSetup, HomePluginStart> {
}

/** @public */
export interface HomePluginSetup {
export interface HomeServerPluginSetup {
tutorials: TutorialsRegistrySetup;
}

/** @public */
export interface HomePluginStart {
export interface HomeServerPluginStart {
tutorials: TutorialsRegistryStart;
}
Loading