Skip to content

Commit 358d139

Browse files
authored
Migrate SO management section to NP (#61700)
* move libs to new plugin * adapt libs to use NP apis * add required plugins * add get_allowed_types route * move object_view components * add service registry * migrate table header component * migrate table component * migrate saved_objects_table component * remove migrated legacy files * fix re-export from legacy management + section label * migrate services registration * adapt management section mock * fix imports * migrate flyout component * migrate relationships component * migrate saved_objects_table tests * migrate breadcrumb * add redirect if unauthorized check * migrate translations to new savedObjectsManagement prefix * remove obsolete translations * convert action registry to service pattern * wire extra actions * remove importAndExportableTypes from injected vars * handle newIndexPatternUrl * remove duplicate dashboard dependency * remove old TODO * remove old TODO * properly mock lodash in tests * add async management section loading * expose createSavedSearchesLoader from discover plugin contract * address most review comments * fix merge conflicts
1 parent 1199c8c commit 358d139

File tree

110 files changed

+2184
-1689
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+2184
-1689
lines changed

src/core/public/mocks.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export { overlayServiceMock } from './overlays/overlay_service.mock';
4848
export { uiSettingsServiceMock } from './ui_settings/ui_settings_service.mock';
4949
export { savedObjectsServiceMock } from './saved_objects/saved_objects_service.mock';
5050
export { scopedHistoryMock } from './application/scoped_history.mock';
51+
export { applicationServiceMock } from './application/application_service.mock';
5152

5253
function createCoreSetupMock({
5354
basePath = '',
@@ -62,9 +63,8 @@ function createCoreSetupMock({
6263
application: applicationServiceMock.createSetupContract(),
6364
context: contextServiceMock.createSetupContract(),
6465
fatalErrors: fatalErrorsServiceMock.createSetupContract(),
65-
getStartServices: jest.fn<Promise<[ReturnType<typeof createCoreStartMock>, object, any]>, []>(
66-
() =>
67-
Promise.resolve([createCoreStartMock({ basePath }), pluginStartDeps, pluginStartContract])
66+
getStartServices: jest.fn<Promise<[ReturnType<typeof createCoreStartMock>, any, any]>, []>(() =>
67+
Promise.resolve([createCoreStartMock({ basePath }), pluginStartDeps, pluginStartContract])
6868
),
6969
http: httpServiceMock.createSetupContract({ basePath }),
7070
notifications: notificationServiceMock.createSetupContract(),

src/core/server/saved_objects/service/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ export interface SavedObjectsLegacyService {
3636
getScopedSavedObjectsClient: SavedObjectsClientProvider['getClient'];
3737
SavedObjectsClient: typeof SavedObjectsClient;
3838
types: string[];
39-
importAndExportableTypes: string[];
4039
schema: SavedObjectsSchema;
4140
getSavedObjectsRepository(...rest: any[]): any;
4241
importExport: {

src/core/server/server.api.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2084,8 +2084,6 @@ export interface SavedObjectsLegacyService {
20842084
// (undocumented)
20852085
getScopedSavedObjectsClient: SavedObjectsClientProvider['getClient'];
20862086
// (undocumented)
2087-
importAndExportableTypes: string[];
2088-
// (undocumented)
20892087
importExport: {
20902088
objectLimit: number;
20912089
importSavedObjects(options: SavedObjectsImportOptions): Promise<SavedObjectsImportResponse>;

src/legacy/core_plugins/kibana/inject_vars.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,7 @@
2020
export function injectVars(server) {
2121
const serverConfig = server.config();
2222

23-
const { importAndExportableTypes } = server.savedObjects;
24-
2523
return {
26-
importAndExportableTypes,
2724
autocompleteTerminateAfter: serverConfig.get('kibana.autocompleteTerminateAfter'),
2825
autocompleteTimeout: serverConfig.get('kibana.autocompleteTimeout'),
2926
};

src/legacy/core_plugins/kibana/public/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@
2020
export {
2121
ProcessedImportResponse,
2222
processImportResponse,
23-
} from './management/sections/objects/lib/process_import_response';
23+
} from '../../../../plugins/saved_objects_management/public/lib';

src/legacy/core_plugins/kibana/public/management/saved_object_registry.ts

Lines changed: 3 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -17,66 +17,8 @@
1717
* under the License.
1818
*/
1919

20-
import _ from 'lodash';
21-
import { i18n } from '@kbn/i18n';
22-
import { npStart } from 'ui/new_platform';
23-
import { SavedObjectLoader } from '../../../../../plugins/saved_objects/public';
24-
import { createSavedSearchesLoader } from '../../../../../plugins/discover/public';
20+
import { npSetup } from 'ui/new_platform';
2521

26-
/**
27-
* This registry is used for the editing mode of Saved Searches, Visualizations,
28-
* Dashboard and Time Lion saved objects.
29-
*/
30-
interface SavedObjectRegistryEntry {
31-
id: string;
32-
service: SavedObjectLoader;
33-
title: string;
34-
}
35-
36-
export interface ISavedObjectsManagementRegistry {
37-
register(service: SavedObjectRegistryEntry): void;
38-
all(): SavedObjectRegistryEntry[];
39-
get(id: string): SavedObjectRegistryEntry | undefined;
40-
}
41-
42-
const registry: SavedObjectRegistryEntry[] = [];
43-
44-
export const savedObjectManagementRegistry: ISavedObjectsManagementRegistry = {
45-
register: (service: SavedObjectRegistryEntry) => {
46-
registry.push(service);
47-
},
48-
all: () => {
49-
return registry;
50-
},
51-
get: (id: string) => {
52-
return _.find(registry, { id });
53-
},
54-
};
55-
56-
const services = {
57-
savedObjectsClient: npStart.core.savedObjects.client,
58-
indexPatterns: npStart.plugins.data.indexPatterns,
59-
search: npStart.plugins.data.search,
60-
chrome: npStart.core.chrome,
61-
overlays: npStart.core.overlays,
62-
};
63-
64-
savedObjectManagementRegistry.register({
65-
id: 'savedVisualizations',
66-
service: npStart.plugins.visualizations.savedVisualizationsLoader,
67-
title: 'visualizations',
68-
});
69-
70-
savedObjectManagementRegistry.register({
71-
id: 'savedDashboards',
72-
service: npStart.plugins.dashboard.getSavedDashboardLoader(),
73-
title: i18n.translate('kbn.dashboard.savedDashboardsTitle', {
74-
defaultMessage: 'dashboards',
75-
}),
76-
});
22+
const registry = npSetup.plugins.savedObjectsManagement?.serviceRegistry;
7723

78-
savedObjectManagementRegistry.register({
79-
id: 'savedSearches',
80-
service: createSavedSearchesLoader(services),
81-
title: 'searches',
82-
});
24+
export const savedObjectManagementRegistry = registry!;

src/legacy/core_plugins/kibana/public/management/sections/index.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,4 @@
1717
* under the License.
1818
*/
1919

20-
import './objects';
2120
import './index_patterns';

src/legacy/core_plugins/kibana/public/management/sections/objects/_objects.html

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/legacy/core_plugins/kibana/public/management/sections/objects/_objects.js

Lines changed: 0 additions & 104 deletions
This file was deleted.

src/legacy/core_plugins/kibana/public/management/sections/objects/_view.html

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)