diff --git a/docs/development/core/server/kibana-plugin-core-server.savedobjectscorefieldmapping.md b/docs/development/core/server/kibana-plugin-core-server.savedobjectscorefieldmapping.md
index 96f11436308569..dbc7d0ca431cec 100644
--- a/docs/development/core/server/kibana-plugin-core-server.savedobjectscorefieldmapping.md
+++ b/docs/development/core/server/kibana-plugin-core-server.savedobjectscorefieldmapping.md
@@ -19,5 +19,6 @@ export interface SavedObjectsCoreFieldMapping
| [enabled](./kibana-plugin-core-server.savedobjectscorefieldmapping.enabled.md) | boolean
| |
| [fields](./kibana-plugin-core-server.savedobjectscorefieldmapping.fields.md) | {
[subfield: string]: {
type: string;
};
}
| |
| [index](./kibana-plugin-core-server.savedobjectscorefieldmapping.index.md) | boolean
| |
+| [null\_value](./kibana-plugin-core-server.savedobjectscorefieldmapping.null_value.md) | number | boolean | string
| |
| [type](./kibana-plugin-core-server.savedobjectscorefieldmapping.type.md) | string
| |
diff --git a/docs/development/core/server/kibana-plugin-core-server.savedobjectscorefieldmapping.null_value.md b/docs/development/core/server/kibana-plugin-core-server.savedobjectscorefieldmapping.null_value.md
new file mode 100644
index 00000000000000..627ea3695383a0
--- /dev/null
+++ b/docs/development/core/server/kibana-plugin-core-server.savedobjectscorefieldmapping.null_value.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [SavedObjectsCoreFieldMapping](./kibana-plugin-core-server.savedobjectscorefieldmapping.md) > [null\_value](./kibana-plugin-core-server.savedobjectscorefieldmapping.null_value.md)
+
+## SavedObjectsCoreFieldMapping.null\_value property
+
+Signature:
+
+```typescript
+null_value?: number | boolean | string;
+```
diff --git a/src/core/server/saved_objects/mappings/types.ts b/src/core/server/saved_objects/mappings/types.ts
index 47fc29f8cf7d29..c1b65763949bbe 100644
--- a/src/core/server/saved_objects/mappings/types.ts
+++ b/src/core/server/saved_objects/mappings/types.ts
@@ -131,6 +131,7 @@ export interface IndexMappingMeta {
*/
export interface SavedObjectsCoreFieldMapping {
type: string;
+ null_value?: number | boolean | string;
index?: boolean;
enabled?: boolean;
fields?: {
diff --git a/src/core/server/server.api.md b/src/core/server/server.api.md
index a36e746f6d9405..dc1c9d379d508a 100644
--- a/src/core/server/server.api.md
+++ b/src/core/server/server.api.md
@@ -1840,6 +1840,8 @@ export interface SavedObjectsCoreFieldMapping {
// (undocumented)
index?: boolean;
// (undocumented)
+ null_value?: number | boolean | string;
+ // (undocumented)
type: string;
}
diff --git a/x-pack/index.js b/x-pack/index.js
index 3761af5c1ca7a8..fe4c3254059337 100644
--- a/x-pack/index.js
+++ b/x-pack/index.js
@@ -12,13 +12,10 @@ import { dashboardMode } from './legacy/plugins/dashboard_mode';
import { beats } from './legacy/plugins/beats_management';
import { apm } from './legacy/plugins/apm';
import { maps } from './legacy/plugins/maps';
-import { indexManagement } from './legacy/plugins/index_management';
import { spaces } from './legacy/plugins/spaces';
import { canvas } from './legacy/plugins/canvas';
import { infra } from './legacy/plugins/infra';
import { taskManager } from './legacy/plugins/task_manager';
-import { remoteClusters } from './legacy/plugins/remote_clusters';
-import { upgradeAssistant } from './legacy/plugins/upgrade_assistant';
import { uptime } from './legacy/plugins/uptime';
import { encryptedSavedObjects } from './legacy/plugins/encrypted_saved_objects';
import { actions } from './legacy/plugins/actions';
@@ -38,11 +35,8 @@ module.exports = function(kibana) {
apm(kibana),
maps(kibana),
canvas(kibana),
- indexManagement(kibana),
infra(kibana),
taskManager(kibana),
- remoteClusters(kibana),
- upgradeAssistant(kibana),
uptime(kibana),
encryptedSavedObjects(kibana),
actions(kibana),
diff --git a/x-pack/legacy/plugins/index_management/index.ts b/x-pack/legacy/plugins/index_management/index.ts
deleted file mode 100644
index afca15203b9702..00000000000000
--- a/x-pack/legacy/plugins/index_management/index.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * 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.
- */
-
-// TODO: Remove this once CCR is migrated to the plugins directory.
-export function indexManagement(kibana: any) {
- return new kibana.Plugin({
- id: 'index_management',
- configPrefix: 'xpack.index_management',
- });
-}
diff --git a/x-pack/legacy/plugins/remote_clusters/index.ts b/x-pack/legacy/plugins/remote_clusters/index.ts
deleted file mode 100644
index 439cb818d8a562..00000000000000
--- a/x-pack/legacy/plugins/remote_clusters/index.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.
- */
-
-import { resolve } from 'path';
-import { Legacy } from 'kibana';
-
-import { PLUGIN } from './common';
-
-export function remoteClusters(kibana: any) {
- return new kibana.Plugin({
- id: PLUGIN.ID,
- configPrefix: 'xpack.remote_clusters',
- publicDir: resolve(__dirname, 'public'),
- require: ['kibana'],
- uiExports: {
- styleSheetPaths: resolve(__dirname, 'public/index.scss'),
- },
- // TODO: Remove once CCR has migrated to NP
- config(Joi: any) {
- return Joi.object({
- // display menu item
- ui: Joi.object({
- enabled: Joi.boolean().default(true),
- }).default(),
-
- // enable plugin
- enabled: Joi.boolean().default(true),
- }).default();
- },
- isEnabled(config: Legacy.KibanaConfig) {
- return (
- config.get('xpack.remote_clusters.enabled') && config.get('xpack.index_management.enabled')
- );
- },
- init() {},
- });
-}
diff --git a/x-pack/legacy/plugins/upgrade_assistant/index.ts b/x-pack/legacy/plugins/upgrade_assistant/index.ts
deleted file mode 100644
index b5e8ce47502155..00000000000000
--- a/x-pack/legacy/plugins/upgrade_assistant/index.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * 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.
- */
-import { Legacy } from 'kibana';
-import mappings from './mappings.json';
-
-export function upgradeAssistant(kibana: any) {
- const config: Legacy.PluginSpecOptions = {
- id: 'upgrade_assistant',
- uiExports: {
- // @ts-ignore
- savedObjectSchemas: {
- 'upgrade-assistant-reindex-operation': {
- isNamespaceAgnostic: true,
- },
- 'upgrade-assistant-telemetry': {
- isNamespaceAgnostic: true,
- },
- },
- mappings,
- },
-
- init() {},
- };
- return new kibana.Plugin(config);
-}
diff --git a/x-pack/legacy/plugins/upgrade_assistant/mappings.json b/x-pack/legacy/plugins/upgrade_assistant/mappings.json
deleted file mode 100644
index 885ac4d5a9b44f..00000000000000
--- a/x-pack/legacy/plugins/upgrade_assistant/mappings.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "upgrade-assistant-reindex-operation": {
- "dynamic": true,
- "properties": {
- "indexName": {
- "type": "keyword"
- },
- "status": {
- "type": "integer"
- }
- }
- },
- "upgrade-assistant-telemetry": {
- "properties": {
- "ui_open": {
- "properties": {
- "overview": {
- "type": "long",
- "null_value": 0
- },
- "cluster": {
- "type": "long",
- "null_value": 0
- },
- "indices": {
- "type": "long",
- "null_value": 0
- }
- }
- },
- "ui_reindex": {
- "properties": {
- "close": {
- "type": "long",
- "null_value": 0
- },
- "open": {
- "type": "long",
- "null_value": 0
- },
- "start": {
- "type": "long",
- "null_value": 0
- },
- "stop": {
- "type": "long",
- "null_value": 0
- }
- }
- },
- "features": {
- "properties": {
- "deprecation_logging": {
- "properties": {
- "enabled": {
- "type": "boolean",
- "null_value": true
- }
- }
- }
- }
- }
- }
- }
-}
diff --git a/x-pack/legacy/plugins/remote_clusters/public/index.scss b/x-pack/plugins/remote_clusters/public/application/_hacks.scss
similarity index 82%
rename from x-pack/legacy/plugins/remote_clusters/public/index.scss
rename to x-pack/plugins/remote_clusters/public/application/_hacks.scss
index 4ae11323642d8a..b7d81885e716d0 100644
--- a/x-pack/legacy/plugins/remote_clusters/public/index.scss
+++ b/x-pack/plugins/remote_clusters/public/application/_hacks.scss
@@ -1,7 +1,4 @@
-// Import the EUI global scope so we can use EUI constants
-@import 'src/legacy/ui/public/styles/_styling_constants';
-
-// Remote clusters plugin styles
+// Remote clusters plugin hacks
// Prefix all styles with "remoteClusters" to avoid conflicts.
// Examples
diff --git a/x-pack/plugins/remote_clusters/public/application/index.js b/x-pack/plugins/remote_clusters/public/application/index.js
index f2d788c7413428..cf6e855ba58dfa 100644
--- a/x-pack/plugins/remote_clusters/public/application/index.js
+++ b/x-pack/plugins/remote_clusters/public/application/index.js
@@ -13,6 +13,8 @@ import { App } from './app';
import { remoteClustersStore } from './store';
import { AppContextProvider } from './app_context';
+import './_hacks.scss';
+
export const renderApp = (elem, I18nContext, appDependencies) => {
render(
diff --git a/x-pack/plugins/upgrade_assistant/server/plugin.ts b/x-pack/plugins/upgrade_assistant/server/plugin.ts
index bdca506cc73385..0cdf1ca05feac2 100644
--- a/x-pack/plugins/upgrade_assistant/server/plugin.ts
+++ b/x-pack/plugins/upgrade_assistant/server/plugin.ts
@@ -25,6 +25,8 @@ import { registerClusterCheckupRoutes } from './routes/cluster_checkup';
import { registerDeprecationLoggingRoutes } from './routes/deprecation_logging';
import { registerReindexIndicesRoutes, createReindexWorker } from './routes/reindex_indices';
import { registerTelemetryRoutes } from './routes/telemetry';
+import { telemetrySavedObjectType, reindexOperationSavedObjectType } from './saved_object_types';
+
import { RouteDependencies } from './types';
interface PluginsSetup {
@@ -57,11 +59,14 @@ export class UpgradeAssistantServerPlugin implements Plugin {
}
setup(
- { http, getStartServices, capabilities }: CoreSetup,
+ { http, getStartServices, capabilities, savedObjects }: CoreSetup,
{ usageCollection, cloud, licensing }: PluginsSetup
) {
this.licensing = licensing;
+ savedObjects.registerType(reindexOperationSavedObjectType);
+ savedObjects.registerType(telemetrySavedObjectType);
+
const router = http.createRouter();
const dependencies: RouteDependencies = {
@@ -85,8 +90,12 @@ export class UpgradeAssistantServerPlugin implements Plugin {
registerTelemetryRoutes(dependencies);
if (usageCollection) {
- getStartServices().then(([{ savedObjects, elasticsearch }]) => {
- registerUpgradeAssistantUsageCollector({ elasticsearch, usageCollection, savedObjects });
+ getStartServices().then(([{ savedObjects: savedObjectsService, elasticsearch }]) => {
+ registerUpgradeAssistantUsageCollector({
+ elasticsearch,
+ usageCollection,
+ savedObjects: savedObjectsService,
+ });
});
}
}
diff --git a/x-pack/legacy/plugins/remote_clusters/common/index.ts b/x-pack/plugins/upgrade_assistant/server/saved_object_types/index.ts
similarity index 59%
rename from x-pack/legacy/plugins/remote_clusters/common/index.ts
rename to x-pack/plugins/upgrade_assistant/server/saved_object_types/index.ts
index baad348d7a1365..dee0a74d8994bb 100644
--- a/x-pack/legacy/plugins/remote_clusters/common/index.ts
+++ b/x-pack/plugins/upgrade_assistant/server/saved_object_types/index.ts
@@ -4,6 +4,5 @@
* you may not use this file except in compliance with the Elastic License.
*/
-export const PLUGIN = {
- ID: 'remoteClusters',
-};
+export { reindexOperationSavedObjectType } from './reindex_operation_saved_object_type';
+export { telemetrySavedObjectType } from './telemetry_saved_object_type';
diff --git a/x-pack/plugins/upgrade_assistant/server/saved_object_types/reindex_operation_saved_object_type.ts b/x-pack/plugins/upgrade_assistant/server/saved_object_types/reindex_operation_saved_object_type.ts
new file mode 100644
index 00000000000000..ba661fbeceb267
--- /dev/null
+++ b/x-pack/plugins/upgrade_assistant/server/saved_object_types/reindex_operation_saved_object_type.ts
@@ -0,0 +1,63 @@
+/*
+ * 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.
+ */
+
+import { SavedObjectsType } from 'src/core/server';
+
+import { REINDEX_OP_TYPE } from '../../common/types';
+
+export const reindexOperationSavedObjectType: SavedObjectsType = {
+ name: REINDEX_OP_TYPE,
+ hidden: false,
+ namespaceType: 'agnostic',
+ mappings: {
+ properties: {
+ reindexTaskId: {
+ type: 'keyword',
+ },
+ indexName: {
+ type: 'keyword',
+ },
+ newIndexName: {
+ type: 'keyword',
+ },
+ status: {
+ type: 'integer',
+ },
+ locked: {
+ type: 'date',
+ },
+ lastCompletedStep: {
+ type: 'integer',
+ },
+ errorMessage: {
+ type: 'keyword',
+ },
+ reindexTaskPercComplete: {
+ type: 'float',
+ },
+ runningReindexCount: {
+ type: 'integer',
+ },
+ reindexOptions: {
+ properties: {
+ openAndClose: {
+ type: 'boolean',
+ },
+ queueSettings: {
+ properties: {
+ queuedAt: {
+ type: 'long',
+ },
+ startedAt: {
+ type: 'long',
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+};
diff --git a/x-pack/plugins/upgrade_assistant/server/saved_object_types/telemetry_saved_object_type.ts b/x-pack/plugins/upgrade_assistant/server/saved_object_types/telemetry_saved_object_type.ts
new file mode 100644
index 00000000000000..b1321e634c0f1c
--- /dev/null
+++ b/x-pack/plugins/upgrade_assistant/server/saved_object_types/telemetry_saved_object_type.ts
@@ -0,0 +1,67 @@
+/*
+ * 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.
+ */
+
+import { SavedObjectsType } from 'src/core/server';
+
+import { UPGRADE_ASSISTANT_TYPE } from '../../common/types';
+
+export const telemetrySavedObjectType: SavedObjectsType = {
+ name: UPGRADE_ASSISTANT_TYPE,
+ hidden: false,
+ namespaceType: 'agnostic',
+ mappings: {
+ properties: {
+ ui_open: {
+ properties: {
+ overview: {
+ type: 'long',
+ null_value: 0,
+ },
+ cluster: {
+ type: 'long',
+ null_value: 0,
+ },
+ indices: {
+ type: 'long',
+ null_value: 0,
+ },
+ },
+ },
+ ui_reindex: {
+ properties: {
+ close: {
+ type: 'long',
+ null_value: 0,
+ },
+ open: {
+ type: 'long',
+ null_value: 0,
+ },
+ start: {
+ type: 'long',
+ null_value: 0,
+ },
+ stop: {
+ type: 'long',
+ null_value: 0,
+ },
+ },
+ },
+ features: {
+ properties: {
+ deprecation_logging: {
+ properties: {
+ enabled: {
+ type: 'boolean',
+ null_value: true,
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+};