From 638ab8247bef2f3a41e7f4b8e87c174224d02a25 Mon Sep 17 00:00:00 2001
From: Stratoula Kalafateli
Date: Wed, 26 May 2021 16:02:28 +0300
Subject: [PATCH 01/30] [Gauge] Fixes wrong translations on ranges less than
symbol (#100535)
---
x-pack/plugins/translations/translations/ja-JP.json | 2 +-
x-pack/plugins/translations/translations/zh-CN.json | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json
index 417c8360d0df3..66941a8fb591d 100644
--- a/x-pack/plugins/translations/translations/ja-JP.json
+++ b/x-pack/plugins/translations/translations/ja-JP.json
@@ -4215,7 +4215,7 @@
"visDefaultEditor.controls.ranges.fromLabel": "開始:",
"visDefaultEditor.controls.ranges.greaterThanOrEqualPrepend": "≧",
"visDefaultEditor.controls.ranges.greaterThanOrEqualTooltip": "よりも大きいまたは等しい",
- "visDefaultEditor.controls.ranges.lessThanPrepend": "<",
+ "visDefaultEditor.controls.ranges.lessThanPrepend": "<",
"visDefaultEditor.controls.ranges.lessThanTooltip": "より小さい",
"visDefaultEditor.controls.ranges.removeRangeButtonAriaLabel": "{from}から{to}の範囲を削除",
"visDefaultEditor.controls.ranges.toLabel": "終了:",
diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json
index 8f0694e02ad91..306ac0bf744e2 100644
--- a/x-pack/plugins/translations/translations/zh-CN.json
+++ b/x-pack/plugins/translations/translations/zh-CN.json
@@ -4241,7 +4241,7 @@
"visDefaultEditor.controls.ranges.fromLabel": "自",
"visDefaultEditor.controls.ranges.greaterThanOrEqualPrepend": "≥",
"visDefaultEditor.controls.ranges.greaterThanOrEqualTooltip": "大于或等于",
- "visDefaultEditor.controls.ranges.lessThanPrepend": "<",
+ "visDefaultEditor.controls.ranges.lessThanPrepend": "<",
"visDefaultEditor.controls.ranges.lessThanTooltip": "小于",
"visDefaultEditor.controls.ranges.removeRangeButtonAriaLabel": "移除范围 {from} 至 {to}",
"visDefaultEditor.controls.ranges.toLabel": "至",
From e7bc8831c2f096da931ea8451406dc65ae3272c3 Mon Sep 17 00:00:00 2001
From: Joe Reuter
Date: Wed, 26 May 2021 15:17:03 +0200
Subject: [PATCH 02/30] improve default time ranges (#100536)
---
src/plugins/data/server/ui_settings.ts | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/plugins/data/server/ui_settings.ts b/src/plugins/data/server/ui_settings.ts
index ed3510c5776e0..e0d475e7124fd 100644
--- a/src/plugins/data/server/ui_settings.ts
+++ b/src/plugins/data/server/ui_settings.ts
@@ -605,35 +605,35 @@ export function getUiSettings(): Record> {
}),
},
{
- from: 'now-24h',
+ from: 'now-24h/h',
to: 'now',
display: i18n.translate('data.advancedSettings.timepicker.last24Hours', {
defaultMessage: 'Last 24 hours',
}),
},
{
- from: 'now-7d',
+ from: 'now-7d/d',
to: 'now',
display: i18n.translate('data.advancedSettings.timepicker.last7Days', {
defaultMessage: 'Last 7 days',
}),
},
{
- from: 'now-30d',
+ from: 'now-30d/d',
to: 'now',
display: i18n.translate('data.advancedSettings.timepicker.last30Days', {
defaultMessage: 'Last 30 days',
}),
},
{
- from: 'now-90d',
+ from: 'now-90d/d',
to: 'now',
display: i18n.translate('data.advancedSettings.timepicker.last90Days', {
defaultMessage: 'Last 90 days',
}),
},
{
- from: 'now-1y',
+ from: 'now-1y/d',
to: 'now',
display: i18n.translate('data.advancedSettings.timepicker.last1Year', {
defaultMessage: 'Last 1 year',
From 78a7d896e3e64317b6b590c9e4873892e78c4ab9 Mon Sep 17 00:00:00 2001
From: Alison Goryachev
Date: Wed, 26 May 2021 10:19:12 -0400
Subject: [PATCH 03/30] update breaking changes template to incorporate ES
deprecations (#100621)
---
.github/ISSUE_TEMPLATE/v8_breaking_change.md | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/.github/ISSUE_TEMPLATE/v8_breaking_change.md b/.github/ISSUE_TEMPLATE/v8_breaking_change.md
index 67d2ee2d3286b..9361cf7a52b65 100644
--- a/.github/ISSUE_TEMPLATE/v8_breaking_change.md
+++ b/.github/ISSUE_TEMPLATE/v8_breaking_change.md
@@ -13,7 +13,8 @@ assignees: ''
****************************************
Please add a team label to denote the team that the
-breaking change is applicable to.
+breaking change is applicable to. If the work requires
+changes to Upgrade Assistant itself, please tag Team:Elasticsearch UI.
-->
@@ -23,6 +24,10 @@ breaking change is applicable to.
8.0
+**Is this a Kibana or Elasticsearch breaking change?**
+
+
+
**Describe the change. How will it manifest to users?**
**How many users will be affected?**
@@ -30,7 +35,9 @@ breaking change is applicable to.
-**Can the change be registered with the [Kibana deprecation service](https://github.com/elastic/kibana/blob/master/docs/development/core/server/kibana-plugin-core-server.deprecationsservicesetup.md)?**
+**Are there any edge cases?**
+
+**[For Kibana deprecations] Can the change be registered with the [Kibana deprecation service](https://github.com/elastic/kibana/blob/master/docs/development/core/server/kibana-plugin-core-server.deprecationsservicesetup.md)?**
-**Are there any edge cases?**
+**[For Elasticsearch deprecations] Can the Upgrade Assistant make the migration easier for users? Please explain the proposed solution in as much detail as possible.**
+
+
+
## Test Data
From ce6f923bb40726f5e0cfc8ac73bae3e25372db23 Mon Sep 17 00:00:00 2001
From: Sandra Gonzales
Date: Wed, 26 May 2021 10:25:39 -0400
Subject: [PATCH 04/30] fix anomaly functional test (#100504)
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
---
.../test/functional/apps/infra/metrics_anomalies.ts | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/x-pack/test/functional/apps/infra/metrics_anomalies.ts b/x-pack/test/functional/apps/infra/metrics_anomalies.ts
index 54aaaae256f36..a3160c023d4a7 100644
--- a/x-pack/test/functional/apps/infra/metrics_anomalies.ts
+++ b/x-pack/test/functional/apps/infra/metrics_anomalies.ts
@@ -16,7 +16,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
const infraSourceConfigurationForm = getService('infraSourceConfigurationForm');
// Failing: See https://github.com/elastic/kibana/issues/100445
- describe.skip('Metrics UI Anomaly Flyout', function () {
+ describe('Metrics UI Anomaly Flyout', function () {
before(async () => {
await esArchiver.load('empty_kibana');
});
@@ -62,16 +62,20 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
await esArchiver.unload('infra/metrics_anomalies');
});
it('renders the anomaly table with anomalies', async () => {
+ // default threshold should already be 50 but trying to prevent unknown flakiness by setting it
+ // https://github.com/elastic/kibana/issues/100445
+ await pageObjects.infraHome.goToSettings();
+ await pageObjects.infraHome.setAnomaliesThreshold('50');
+ await infraSourceConfigurationForm.saveConfiguration();
+ await pageObjects.infraHome.goToInventory();
await pageObjects.infraHome.openAnomalyFlyout();
await pageObjects.infraHome.goToAnomaliesTab();
await pageObjects.infraHome.clickHostsAnomaliesDropdown();
await pageObjects.infraHome.setAnomaliesDate('Apr 21, 2021 @ 00:00:00.000');
const hostAnomalies = await pageObjects.infraHome.findAnomalies();
- // expect 2 anomalies with default Anomaly Severity Threshold setting (50)
expect(hostAnomalies.length).to.be(2);
await pageObjects.infraHome.clickK8sAnomaliesDropdown();
const k8sAnomalies = await pageObjects.infraHome.findAnomalies();
- // expect 3 anomalies with default Anomaly Severity Threshold setting (50)
expect(k8sAnomalies.length).to.be(1);
await pageObjects.infraHome.closeFlyout();
});
@@ -93,6 +97,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
await pageObjects.infraHome.openAnomalyFlyout();
await pageObjects.infraHome.goToAnomaliesTab();
await pageObjects.infraHome.clickHostsAnomaliesDropdown();
+ await pageObjects.infraHome.setAnomaliesDate('Apr 21, 2021 @ 00:00:00.000');
const hostAnomalies = await pageObjects.infraHome.findAnomalies();
expect(hostAnomalies.length).to.be(4);
await pageObjects.infraHome.clickK8sAnomaliesDropdown();
From 48d8c0098ecc46795dea4f2cb133cc6c0aa97d2c Mon Sep 17 00:00:00 2001
From: Spencer
Date: Wed, 26 May 2021 07:28:05 -0700
Subject: [PATCH 05/30] [ftr] migrate screenshots and snapshots services to
FtrService class (#100514)
Co-authored-by: spalger
---
test/functional/services/common/index.ts | 4 +-
.../functional/services/common/screenshots.ts | 123 ++++++++++--------
test/functional/services/common/snapshots.ts | 97 +++++++-------
test/functional/services/index.ts | 8 +-
4 files changed, 122 insertions(+), 110 deletions(-)
diff --git a/test/functional/services/common/index.ts b/test/functional/services/common/index.ts
index a928b3ddf9378..95f58027fd5fb 100644
--- a/test/functional/services/common/index.ts
+++ b/test/functional/services/common/index.ts
@@ -9,6 +9,6 @@
export { BrowserProvider, Browser } from './browser';
export { FailureDebuggingProvider } from './failure_debugging';
export { FindProvider } from './find';
-export { ScreenshotsProvider } from './screenshots';
-export { SnapshotsProvider } from './snapshots';
+export { ScreenshotsService } from './screenshots';
+export { SnapshotsService } from './snapshots';
export { TestSubjects } from './test_subjects';
diff --git a/test/functional/services/common/screenshots.ts b/test/functional/services/common/screenshots.ts
index f769690196915..79ac5a1803545 100644
--- a/test/functional/services/common/screenshots.ts
+++ b/test/functional/services/common/screenshots.ts
@@ -13,77 +13,88 @@ import { promisify } from 'util';
import del from 'del';
import { comparePngs } from '../lib/compare_pngs';
-import { FtrProviderContext } from '../../ftr_provider_context';
+import { FtrProviderContext, FtrService } from '../../ftr_provider_context';
import { WebElementWrapper } from '../lib/web_element_wrapper';
const mkdirAsync = promisify(mkdir);
const writeFileAsync = promisify(writeFile);
-export async function ScreenshotsProvider({ getService }: FtrProviderContext) {
- const log = getService('log');
- const config = getService('config');
- const failureMetadata = getService('failureMetadata');
- const browser = getService('browser');
+export class ScreenshotsService extends FtrService {
+ private readonly log = this.ctx.getService('log');
+ private readonly config = this.ctx.getService('config');
+ private readonly failureMetadata = this.ctx.getService('failureMetadata');
+ private readonly browser = this.ctx.getService('browser');
- const SESSION_DIRECTORY = resolve(config.get('screenshots.directory'), 'session');
- const FAILURE_DIRECTORY = resolve(config.get('screenshots.directory'), 'failure');
- const BASELINE_DIRECTORY = resolve(config.get('screenshots.directory'), 'baseline');
+ private readonly SESSION_DIRECTORY = resolve(this.config.get('screenshots.directory'), 'session');
+ private readonly FAILURE_DIRECTORY = resolve(this.config.get('screenshots.directory'), 'failure');
+ private readonly BASELINE_DIRECTORY = resolve(
+ this.config.get('screenshots.directory'),
+ 'baseline'
+ );
- if (process.env.CI !== 'true' && !process.env.stack_functional_integration) {
- await del([SESSION_DIRECTORY, FAILURE_DIRECTORY]);
+ constructor(ctx: FtrProviderContext) {
+ super(ctx);
+
+ if (process.env.CI !== 'true' && !process.env.stack_functional_integration) {
+ ctx.getService('lifecycle').beforeTests.add(async () => {
+ await del([this.SESSION_DIRECTORY, this.FAILURE_DIRECTORY]);
+ });
+ }
}
- class Screenshots {
- /**
- *
- * @param name {string} name of the file to use for comparison
- * @param updateBaselines {boolean} optional, pass true to update the baseline snapshot.
- * @return {Promise.} Percentage difference between the baseline and the current snapshot.
- */
- async compareAgainstBaseline(name: string, updateBaselines: boolean, el?: WebElementWrapper) {
- log.debug('compareAgainstBaseline');
- const sessionPath = resolve(SESSION_DIRECTORY, `${name}.png`);
- await this._take(sessionPath, el);
+ /**
+ *
+ * @param name {string} name of the file to use for comparison
+ * @param updateBaselines {boolean} optional, pass true to update the baseline snapshot.
+ * @return {Promise.} Percentage difference between the baseline and the current snapshot.
+ */
+ async compareAgainstBaseline(name: string, updateBaselines: boolean, el?: WebElementWrapper) {
+ this.log.debug('compareAgainstBaseline');
+ const sessionPath = resolve(this.SESSION_DIRECTORY, `${name}.png`);
+ await this.capture(sessionPath, el);
- const baselinePath = resolve(BASELINE_DIRECTORY, `${name}.png`);
- const failurePath = resolve(FAILURE_DIRECTORY, `${name}.png`);
+ const baselinePath = resolve(this.BASELINE_DIRECTORY, `${name}.png`);
+ const failurePath = resolve(this.FAILURE_DIRECTORY, `${name}.png`);
- if (updateBaselines) {
- log.debug('Updating baseline snapshot');
- // Make the directory if it doesn't exist
- await mkdirAsync(dirname(baselinePath), { recursive: true });
- await writeFileAsync(baselinePath, readFileSync(sessionPath));
- return 0;
- } else {
- await mkdirAsync(FAILURE_DIRECTORY, { recursive: true });
- return await comparePngs(sessionPath, baselinePath, failurePath, SESSION_DIRECTORY, log);
- }
+ if (updateBaselines) {
+ this.log.debug('Updating baseline snapshot');
+ // Make the directory if it doesn't exist
+ await mkdirAsync(dirname(baselinePath), { recursive: true });
+ await writeFileAsync(baselinePath, readFileSync(sessionPath));
+ return 0;
+ } else {
+ await mkdirAsync(this.FAILURE_DIRECTORY, { recursive: true });
+ return await comparePngs(
+ sessionPath,
+ baselinePath,
+ failurePath,
+ this.SESSION_DIRECTORY,
+ this.log
+ );
}
+ }
- async take(name: string, el?: WebElementWrapper) {
- const path = resolve(SESSION_DIRECTORY, `${name}.png`);
- await this._take(path, el);
- failureMetadata.addScreenshot(name, path);
- }
+ async take(name: string, el?: WebElementWrapper) {
+ const path = resolve(this.SESSION_DIRECTORY, `${name}.png`);
+ await this.capture(path, el);
+ this.failureMetadata.addScreenshot(name, path);
+ }
- async takeForFailure(name: string, el?: WebElementWrapper) {
- const path = resolve(FAILURE_DIRECTORY, `${name}.png`);
- await this._take(path, el);
- failureMetadata.addScreenshot(`failure[${name}]`, path);
- }
+ async takeForFailure(name: string, el?: WebElementWrapper) {
+ const path = resolve(this.FAILURE_DIRECTORY, `${name}.png`);
+ await this.capture(path, el);
+ this.failureMetadata.addScreenshot(`failure[${name}]`, path);
+ }
- async _take(path: string, el?: WebElementWrapper) {
- try {
- log.info(`Taking screenshot "${path}"`);
- const screenshot = await (el ? el.takeScreenshot() : browser.takeScreenshot());
- await mkdirAsync(dirname(path), { recursive: true });
- await writeFileAsync(path, screenshot, 'base64');
- } catch (err) {
- log.error('SCREENSHOT FAILED');
- log.error(err);
- }
+ private async capture(path: string, el?: WebElementWrapper) {
+ try {
+ this.log.info(`Taking screenshot "${path}"`);
+ const screenshot = await (el ? el.takeScreenshot() : this.browser.takeScreenshot());
+ await mkdirAsync(dirname(path), { recursive: true });
+ await writeFileAsync(path, screenshot, 'base64');
+ } catch (err) {
+ this.log.error('SCREENSHOT FAILED');
+ this.log.error(err);
}
}
-
- return new Screenshots();
}
diff --git a/test/functional/services/common/snapshots.ts b/test/functional/services/common/snapshots.ts
index 821d0aadf039e..9f9bcb8c0305a 100644
--- a/test/functional/services/common/snapshots.ts
+++ b/test/functional/services/common/snapshots.ts
@@ -12,67 +12,68 @@ import { promisify } from 'util';
import expect from '@kbn/expect';
import del from 'del';
-import { FtrProviderContext } from '../../ftr_provider_context';
+import { FtrProviderContext, FtrService } from '../../ftr_provider_context';
const mkdirAsync = promisify(mkdir);
const writeFileAsync = promisify(writeFile);
-export async function SnapshotsProvider({ getService }: FtrProviderContext) {
- const log = getService('log');
- const config = getService('config');
+export class SnapshotsService extends FtrService {
+ private readonly log = this.ctx.getService('log');
+ private readonly config = this.ctx.getService('config');
- const SESSION_DIRECTORY = resolve(config.get('snapshots.directory'), 'session');
- const BASELINE_DIRECTORY = resolve(config.get('snapshots.directory'), 'baseline');
+ private readonly SESSION_DIRECTORY = resolve(this.config.get('snapshots.directory'), 'session');
+ private readonly BASELINE_DIRECTORY = resolve(this.config.get('snapshots.directory'), 'baseline');
- if (process.env.CI !== 'true' && !process.env.stack_functional_integration) {
- await del([SESSION_DIRECTORY]);
- }
-
- class Snapshots {
- /**
- *
- * @param name {string} name of the file to use for comparison
- * @param value {object} value to compare to baseline.
- * @param updateBaselines {boolean} optional, pass true to update the baseline snapshot.
- * @return {Promise.} returns 0 if successful.
- */
- public async compareAgainstBaseline(name: string, value: object, updateBaselines?: boolean) {
- log.debug('compareAgainstBaseline');
- const sessionPath = resolve(SESSION_DIRECTORY, `${name}.json`);
- await this._take(sessionPath, value);
-
- const baselinePath = resolve(BASELINE_DIRECTORY, `${name}.json`);
+ constructor(ctx: FtrProviderContext) {
+ super(ctx);
- if (updateBaselines) {
- await writeFileAsync(baselinePath, readFileSync(sessionPath));
- return 0;
- } else {
- log.debug('comparing');
- return this.compare(sessionPath, baselinePath);
- }
+ if (process.env.CI !== 'true' && !process.env.stack_functional_integration) {
+ ctx.getService('lifecycle').beforeTests.add(async () => {
+ await del([this.SESSION_DIRECTORY]);
+ });
}
+ }
+ /**
+ *
+ * @param name {string} name of the file to use for comparison
+ * @param value {object} value to compare to baseline.
+ * @param updateBaselines {boolean} optional, pass true to update the baseline snapshot.
+ * @return {Promise.} returns 0 if successful.
+ */
+ public async compareAgainstBaseline(name: string, value: object, updateBaselines?: boolean) {
+ this.log.debug('compareAgainstBaseline');
+ const sessionPath = resolve(this.SESSION_DIRECTORY, `${name}.json`);
+ await this._take(sessionPath, value);
+
+ const baselinePath = resolve(this.BASELINE_DIRECTORY, `${name}.json`);
- private compare(sessionPath: string, baselinePath: string) {
- const currentObject = readFileSync(sessionPath, { encoding: 'utf8' });
- const baselineObject = readFileSync(baselinePath, { encoding: 'utf8' });
- expect(currentObject).to.eql(baselineObject);
+ if (updateBaselines) {
+ await writeFileAsync(baselinePath, readFileSync(sessionPath));
return 0;
+ } else {
+ this.log.debug('comparing');
+ return this.compare(sessionPath, baselinePath);
}
+ }
- public async take(name: string) {
- return await this._take(resolve(SESSION_DIRECTORY, `${name}.json`));
- }
+ private compare(sessionPath: string, baselinePath: string) {
+ const currentObject = readFileSync(sessionPath, { encoding: 'utf8' });
+ const baselineObject = readFileSync(baselinePath, { encoding: 'utf8' });
+ expect(currentObject).to.eql(baselineObject);
+ return 0;
+ }
- private async _take(path: string, snapshot?: object) {
- try {
- await mkdirAsync(dirname(path), { recursive: true });
- await writeFileAsync(path, JSON.stringify(snapshot), 'utf8');
- } catch (err) {
- log.error('SNAPSHOT FAILED');
- log.error(err);
- }
- }
+ public async take(name: string) {
+ return await this._take(resolve(this.SESSION_DIRECTORY, `${name}.json`));
}
- return new Snapshots();
+ private async _take(path: string, snapshot?: object) {
+ try {
+ await mkdirAsync(dirname(path), { recursive: true });
+ await writeFileAsync(path, JSON.stringify(snapshot), 'utf8');
+ } catch (err) {
+ this.log.error('SNAPSHOT FAILED');
+ this.log.error(err);
+ }
+ }
}
diff --git a/test/functional/services/index.ts b/test/functional/services/index.ts
index b1443244d2c5a..819b8a3981e26 100644
--- a/test/functional/services/index.ts
+++ b/test/functional/services/index.ts
@@ -13,8 +13,8 @@ import {
BrowserProvider,
FailureDebuggingProvider,
FindProvider,
- ScreenshotsProvider,
- SnapshotsProvider,
+ ScreenshotsService,
+ SnapshotsService,
TestSubjects,
} from './common';
import { ComboBoxProvider } from './combo_box';
@@ -58,8 +58,8 @@ export const services = {
find: FindProvider,
testSubjects: TestSubjects,
docTable: DocTableService,
- screenshots: ScreenshotsProvider,
- snapshots: SnapshotsProvider,
+ screenshots: ScreenshotsService,
+ snapshots: SnapshotsService,
dashboardVisualizations: DashboardVisualizationProvider,
dashboardExpect: DashboardExpectProvider,
failureDebugging: FailureDebuggingProvider,
From e49db7127d2ac876b05b74779ef3709d2770a1ab Mon Sep 17 00:00:00 2001
From: Nathan Reese
Date: Wed, 26 May 2021 08:51:39 -0600
Subject: [PATCH 06/30] [Maps] filter dashboard by map extent (#99860)
* [Maps] filter dashboard by map extent
* clean up
* remove warning from filter pill
* tslint
* API doc updates, i18n fixes, tslint
* only show context menu option in edit mode
* add functional test
* review feedback
* do not use search session when filtering by map bounds
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
---
...yglobalfilteractioncontext.controlledby.md | 11 ++
...a-public.applyglobalfilteractioncontext.md | 1 +
...na-plugin-plugins-data-public.esfilters.md | 1 +
.../common/es_query/filters/meta_filter.ts | 1 +
.../public/actions/apply_filter_action.ts | 14 +-
src/plugins/data/public/public.api.md | 7 +-
.../data/public/ui/filter_bar/filter_item.tsx | 5 +
src/plugins/data/server/server.api.md | 4 +-
.../elasticsearch_geo_utils.test.js | 10 +-
.../elasticsearch_geo_utils.ts | 55 ++++++--
.../maps/public/classes/layers/layer.tsx | 7 +
.../classes/sources/es_source/es_source.ts | 2 +-
.../maps/public/embeddable/map_embeddable.tsx | 124 ++++++++++++++++--
.../plugins/maps/public/embeddable/types.ts | 7 +-
x-pack/plugins/maps/public/plugin.ts | 3 +
.../maps/public/selectors/map_selectors.ts | 20 +++
.../filter_by_map_extent_action.ts | 53 ++++++++
.../maps/embeddable/filter_by_map_extent.js | 58 ++++++++
.../functional/apps/maps/embeddable/index.js | 1 +
.../es_archives/maps/kibana/data.json | 50 +++++++
20 files changed, 394 insertions(+), 40 deletions(-)
create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.applyglobalfilteractioncontext.controlledby.md
create mode 100644 x-pack/plugins/maps/public/trigger_actions/filter_by_map_extent_action.ts
create mode 100644 x-pack/test/functional/apps/maps/embeddable/filter_by_map_extent.js
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.applyglobalfilteractioncontext.controlledby.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.applyglobalfilteractioncontext.controlledby.md
new file mode 100644
index 0000000000000..d9c47dec9e9d4
--- /dev/null
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.applyglobalfilteractioncontext.controlledby.md
@@ -0,0 +1,11 @@
+
+
+[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [ApplyGlobalFilterActionContext](./kibana-plugin-plugins-data-public.applyglobalfilteractioncontext.md) > [controlledBy](./kibana-plugin-plugins-data-public.applyglobalfilteractioncontext.controlledby.md)
+
+## ApplyGlobalFilterActionContext.controlledBy property
+
+Signature:
+
+```typescript
+controlledBy?: string;
+```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.applyglobalfilteractioncontext.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.applyglobalfilteractioncontext.md
index 2f844b6844645..01ccd4819d906 100644
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.applyglobalfilteractioncontext.md
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.applyglobalfilteractioncontext.md
@@ -14,6 +14,7 @@ export interface ApplyGlobalFilterActionContext
| Property | Type | Description |
| --- | --- | --- |
+| [controlledBy](./kibana-plugin-plugins-data-public.applyglobalfilteractioncontext.controlledby.md) | string
| |
| [embeddable](./kibana-plugin-plugins-data-public.applyglobalfilteractioncontext.embeddable.md) | unknown
| |
| [filters](./kibana-plugin-plugins-data-public.applyglobalfilteractioncontext.filters.md) | Filter[]
| |
| [timeFieldName](./kibana-plugin-plugins-data-public.applyglobalfilteractioncontext.timefieldname.md) | string
| |
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.esfilters.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.esfilters.md
index 742b54e19216e..54b5a33ccf682 100644
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.esfilters.md
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.esfilters.md
@@ -33,6 +33,7 @@ esFilters: {
disabled: boolean;
controlledBy?: string | undefined;
index?: string | undefined;
+ isMultiIndex?: boolean | undefined;
type?: string | undefined;
key?: string | undefined;
params?: any;
diff --git a/src/plugins/data/common/es_query/filters/meta_filter.ts b/src/plugins/data/common/es_query/filters/meta_filter.ts
index c47dcb245cbf0..87455cf1cb763 100644
--- a/src/plugins/data/common/es_query/filters/meta_filter.ts
+++ b/src/plugins/data/common/es_query/filters/meta_filter.ts
@@ -31,6 +31,7 @@ export type FilterMeta = {
controlledBy?: string;
// index and type are optional only because when you create a new filter, there are no defaults
index?: string;
+ isMultiIndex?: boolean;
type?: string;
key?: string;
params?: any;
diff --git a/src/plugins/data/public/actions/apply_filter_action.ts b/src/plugins/data/public/actions/apply_filter_action.ts
index d4ac72294e257..43445d9448f2c 100644
--- a/src/plugins/data/public/actions/apply_filter_action.ts
+++ b/src/plugins/data/public/actions/apply_filter_action.ts
@@ -21,6 +21,9 @@ export interface ApplyGlobalFilterActionContext {
// Need to make this unknown to prevent circular dependencies.
// Apps using this property will need to cast to `IEmbeddable`.
embeddable?: unknown;
+ // controlledBy is an optional key in filter.meta that identifies the owner of a filter
+ // Pass controlledBy to cleanup an existing filter(s) owned by embeddable prior to adding new filters
+ controlledBy?: string;
}
async function isCompatible(context: ApplyGlobalFilterActionContext) {
@@ -42,7 +45,7 @@ export function createFilterAction(
});
},
isCompatible,
- execute: async ({ filters, timeFieldName }: ApplyGlobalFilterActionContext) => {
+ execute: async ({ filters, timeFieldName, controlledBy }: ApplyGlobalFilterActionContext) => {
if (!filters) {
throw new Error('Applying a filter requires a filter');
}
@@ -85,6 +88,15 @@ export function createFilterAction(
selectedFilters = await filterSelectionPromise;
}
+ // remove existing filters for control prior to adding new filtes for control
+ if (controlledBy) {
+ filterManager.getFilters().forEach((filter) => {
+ if (filter.meta.controlledBy === controlledBy) {
+ filterManager.removeFilter(filter);
+ }
+ });
+ }
+
if (timeFieldName) {
const { timeRangeFilter, restOfFilters } = esFilters.extractTimeFilter(
timeFieldName,
diff --git a/src/plugins/data/public/public.api.md b/src/plugins/data/public/public.api.md
index 8561d7bf8d6f5..57aa2298039da 100644
--- a/src/plugins/data/public/public.api.md
+++ b/src/plugins/data/public/public.api.md
@@ -492,6 +492,8 @@ export const APPLY_FILTER_TRIGGER = "FILTER_TRIGGER";
//
// @public (undocumented)
export interface ApplyGlobalFilterActionContext {
+ // (undocumented)
+ controlledBy?: string;
// (undocumented)
embeddable?: unknown;
// (undocumented)
@@ -763,6 +765,7 @@ export const esFilters: {
disabled: boolean;
controlledBy?: string | undefined;
index?: string | undefined;
+ isMultiIndex?: boolean | undefined;
type?: string | undefined;
key?: string | undefined;
params?: any;
@@ -2689,8 +2692,8 @@ export interface WaitUntilNextSessionCompletesOptions {
// src/plugins/data/common/es_query/filters/exists_filter.ts:19:3 - (ae-forgotten-export) The symbol "ExistsFilterMeta" needs to be exported by the entry point index.d.ts
// src/plugins/data/common/es_query/filters/exists_filter.ts:20:3 - (ae-forgotten-export) The symbol "FilterExistsProperty" needs to be exported by the entry point index.d.ts
// src/plugins/data/common/es_query/filters/match_all_filter.ts:17:3 - (ae-forgotten-export) The symbol "MatchAllFilterMeta" needs to be exported by the entry point index.d.ts
-// src/plugins/data/common/es_query/filters/meta_filter.ts:42:3 - (ae-forgotten-export) The symbol "FilterState" needs to be exported by the entry point index.d.ts
-// src/plugins/data/common/es_query/filters/meta_filter.ts:43:3 - (ae-forgotten-export) The symbol "FilterMeta" needs to be exported by the entry point index.d.ts
+// src/plugins/data/common/es_query/filters/meta_filter.ts:43:3 - (ae-forgotten-export) The symbol "FilterState" needs to be exported by the entry point index.d.ts
+// src/plugins/data/common/es_query/filters/meta_filter.ts:44:3 - (ae-forgotten-export) The symbol "FilterMeta" needs to be exported by the entry point index.d.ts
// src/plugins/data/common/es_query/filters/phrase_filter.ts:22:3 - (ae-forgotten-export) The symbol "PhraseFilterMeta" needs to be exported by the entry point index.d.ts
// src/plugins/data/common/es_query/filters/phrases_filter.ts:20:3 - (ae-forgotten-export) The symbol "PhrasesFilterMeta" needs to be exported by the entry point index.d.ts
// src/plugins/data/common/index_patterns/index_patterns/index_pattern.ts:65:5 - (ae-forgotten-export) The symbol "FormatFieldFn" needs to be exported by the entry point index.d.ts
diff --git a/src/plugins/data/public/ui/filter_bar/filter_item.tsx b/src/plugins/data/public/ui/filter_bar/filter_item.tsx
index 5ad88e6fdf5be..9e5090f945182 100644
--- a/src/plugins/data/public/ui/filter_bar/filter_item.tsx
+++ b/src/plugins/data/public/ui/filter_bar/filter_item.tsx
@@ -286,6 +286,11 @@ export function FilterItem(props: FilterItemProps) {
message: '',
status: FILTER_ITEM_OK,
};
+
+ if (filter.meta?.isMultiIndex) {
+ return label;
+ }
+
if (indexPatternExists === false) {
label.status = FILTER_ITEM_ERROR;
label.title = props.intl.formatMessage({
diff --git a/src/plugins/data/server/server.api.md b/src/plugins/data/server/server.api.md
index a8eafd7b14aa9..b1c90667c2d71 100644
--- a/src/plugins/data/server/server.api.md
+++ b/src/plugins/data/server/server.api.md
@@ -1511,8 +1511,8 @@ export function usageProvider(core: CoreSetup_2): SearchUsage;
// Warnings were encountered during analysis:
//
-// src/plugins/data/common/es_query/filters/meta_filter.ts:42:3 - (ae-forgotten-export) The symbol "FilterState" needs to be exported by the entry point index.d.ts
-// src/plugins/data/common/es_query/filters/meta_filter.ts:43:3 - (ae-forgotten-export) The symbol "FilterMeta" needs to be exported by the entry point index.d.ts
+// src/plugins/data/common/es_query/filters/meta_filter.ts:43:3 - (ae-forgotten-export) The symbol "FilterState" needs to be exported by the entry point index.d.ts
+// src/plugins/data/common/es_query/filters/meta_filter.ts:44:3 - (ae-forgotten-export) The symbol "FilterMeta" needs to be exported by the entry point index.d.ts
// src/plugins/data/common/index_patterns/index_patterns/index_pattern.ts:52:45 - (ae-forgotten-export) The symbol "IndexPatternFieldMap" needs to be exported by the entry point index.d.ts
// src/plugins/data/common/index_patterns/index_patterns/index_pattern.ts:65:5 - (ae-forgotten-export) The symbol "FormatFieldFn" needs to be exported by the entry point index.d.ts
// src/plugins/data/common/index_patterns/index_patterns/index_pattern.ts:138:7 - (ae-forgotten-export) The symbol "FieldAttrSet" needs to be exported by the entry point index.d.ts
diff --git a/x-pack/plugins/maps/common/elasticsearch_util/elasticsearch_geo_utils.test.js b/x-pack/plugins/maps/common/elasticsearch_util/elasticsearch_geo_utils.test.js
index a0908035c1480..c2ca952c3e8c9 100644
--- a/x-pack/plugins/maps/common/elasticsearch_util/elasticsearch_geo_utils.test.js
+++ b/x-pack/plugins/maps/common/elasticsearch_util/elasticsearch_geo_utils.test.js
@@ -396,7 +396,7 @@ describe('createExtentFilter', () => {
minLat: 35,
minLon: -89,
};
- const filter = createExtentFilter(mapExtent, geoFieldName);
+ const filter = createExtentFilter(mapExtent, [geoFieldName]);
expect(filter.geo_bounding_box).toEqual({
location: {
top_left: [-89, 39],
@@ -412,7 +412,7 @@ describe('createExtentFilter', () => {
minLat: -100,
minLon: -190,
};
- const filter = createExtentFilter(mapExtent, geoFieldName);
+ const filter = createExtentFilter(mapExtent, [geoFieldName]);
expect(filter.geo_bounding_box).toEqual({
location: {
top_left: [-180, 89],
@@ -428,7 +428,7 @@ describe('createExtentFilter', () => {
minLat: 35,
minLon: 100,
};
- const filter = createExtentFilter(mapExtent, geoFieldName);
+ const filter = createExtentFilter(mapExtent, [geoFieldName]);
const leftLon = filter.geo_bounding_box.location.top_left[0];
const rightLon = filter.geo_bounding_box.location.bottom_right[0];
expect(leftLon).toBeGreaterThan(rightLon);
@@ -447,7 +447,7 @@ describe('createExtentFilter', () => {
minLat: 35,
minLon: -200,
};
- const filter = createExtentFilter(mapExtent, geoFieldName);
+ const filter = createExtentFilter(mapExtent, [geoFieldName]);
const leftLon = filter.geo_bounding_box.location.top_left[0];
const rightLon = filter.geo_bounding_box.location.bottom_right[0];
expect(leftLon).toBeGreaterThan(rightLon);
@@ -466,7 +466,7 @@ describe('createExtentFilter', () => {
minLat: 35,
minLon: -191,
};
- const filter = createExtentFilter(mapExtent, geoFieldName);
+ const filter = createExtentFilter(mapExtent, [geoFieldName]);
expect(filter.geo_bounding_box).toEqual({
location: {
top_left: [-180, 39],
diff --git a/x-pack/plugins/maps/common/elasticsearch_util/elasticsearch_geo_utils.ts b/x-pack/plugins/maps/common/elasticsearch_util/elasticsearch_geo_utils.ts
index c18a79fa9dcbc..e47afce77f779 100644
--- a/x-pack/plugins/maps/common/elasticsearch_util/elasticsearch_geo_utils.ts
+++ b/x-pack/plugins/maps/common/elasticsearch_util/elasticsearch_geo_utils.ts
@@ -349,18 +349,49 @@ export function makeESBbox({ maxLat, maxLon, minLat, minLon }: MapExtent): ESBBo
return esBbox;
}
-export function createExtentFilter(mapExtent: MapExtent, geoFieldName: string): GeoFilter {
- return {
- geo_bounding_box: {
- [geoFieldName]: makeESBbox(mapExtent),
- },
- meta: {
- alias: null,
- disabled: false,
- negate: false,
- key: geoFieldName,
- },
- };
+export function createExtentFilter(mapExtent: MapExtent, geoFieldNames: string[]): GeoFilter {
+ const esBbox = makeESBbox(mapExtent);
+ return geoFieldNames.length === 1
+ ? {
+ geo_bounding_box: {
+ [geoFieldNames[0]]: esBbox,
+ },
+ meta: {
+ alias: null,
+ disabled: false,
+ negate: false,
+ key: geoFieldNames[0],
+ },
+ }
+ : {
+ query: {
+ bool: {
+ should: geoFieldNames.map((geoFieldName) => {
+ return {
+ bool: {
+ must: [
+ {
+ exists: {
+ field: geoFieldName,
+ },
+ },
+ {
+ geo_bounding_box: {
+ [geoFieldName]: esBbox,
+ },
+ },
+ ],
+ },
+ };
+ }),
+ },
+ },
+ meta: {
+ alias: null,
+ disabled: false,
+ negate: false,
+ },
+ };
}
export function createSpatialFilterWithGeometry({
diff --git a/x-pack/plugins/maps/public/classes/layers/layer.tsx b/x-pack/plugins/maps/public/classes/layers/layer.tsx
index 26ebe53d9e385..1c1e29ca485ff 100644
--- a/x-pack/plugins/maps/public/classes/layers/layer.tsx
+++ b/x-pack/plugins/maps/public/classes/layers/layer.tsx
@@ -42,6 +42,7 @@ import { DataRequestContext } from '../../actions';
import { IStyle } from '../styles/style';
import { getJoinAggKey } from '../../../common/get_agg_key';
import { LICENSED_FEATURES } from '../../licensed_features';
+import { IESSource } from '../sources/es_source';
export interface ILayer {
getBounds(dataRequestContext: DataRequestContext): Promise;
@@ -101,6 +102,7 @@ export interface ILayer {
getLicensedFeatures(): Promise;
getCustomIconAndTooltipContent(): CustomIconAndTooltipContent;
getDescriptor(): LayerDescriptor;
+ getGeoFieldNames(): string[];
}
export type CustomIconAndTooltipContent = {
@@ -513,4 +515,9 @@ export class AbstractLayer implements ILayer {
async getLicensedFeatures(): Promise {
return [];
}
+
+ getGeoFieldNames(): string[] {
+ const source = this.getSource();
+ return source.isESSource() ? [(source as IESSource).getGeoFieldName()] : [];
+ }
}
diff --git a/x-pack/plugins/maps/public/classes/sources/es_source/es_source.ts b/x-pack/plugins/maps/public/classes/sources/es_source/es_source.ts
index 8e31ad7855197..749e3d6058266 100644
--- a/x-pack/plugins/maps/public/classes/sources/es_source/es_source.ts
+++ b/x-pack/plugins/maps/public/classes/sources/es_source/es_source.ts
@@ -213,7 +213,7 @@ export class AbstractESSource extends AbstractVectorSource implements IESSource
typeof searchFilters.geogridPrecision === 'number'
? expandToTileBoundaries(searchFilters.buffer, searchFilters.geogridPrecision)
: searchFilters.buffer;
- const extentFilter = createExtentFilter(buffer, geoField.name);
+ const extentFilter = createExtentFilter(buffer, [geoField.name]);
allFilters.push(extentFilter);
}
diff --git a/x-pack/plugins/maps/public/embeddable/map_embeddable.tsx b/x-pack/plugins/maps/public/embeddable/map_embeddable.tsx
index 643199dbf3933..65fdbca328542 100644
--- a/x-pack/plugins/maps/public/embeddable/map_embeddable.tsx
+++ b/x-pack/plugins/maps/public/embeddable/map_embeddable.tsx
@@ -5,6 +5,7 @@
* 2.0.
*/
+import { i18n } from '@kbn/i18n';
import _ from 'lodash';
import React from 'react';
import { Provider } from 'react-redux';
@@ -27,6 +28,7 @@ import {
Query,
RefreshInterval,
} from '../../../../../src/plugins/data/public';
+import { createExtentFilter } from '../../common/elasticsearch_util';
import {
replaceLayerList,
setMapSettings,
@@ -43,8 +45,11 @@ import {
EventHandlers,
} from '../reducers/non_serializable_instances';
import {
+ getGeoFieldNames,
getMapCenter,
getMapBuffer,
+ getMapExtent,
+ getMapReady,
getMapZoom,
getHiddenLayerIds,
getQueryableUniqueIndexPatternIds,
@@ -64,7 +69,7 @@ import {
getChartsPaletteServiceGetColor,
getSearchService,
} from '../kibana_services';
-import { LayerDescriptor } from '../../common/descriptor_types';
+import { LayerDescriptor, MapExtent } from '../../common/descriptor_types';
import { MapContainer } from '../connected_components/map_container';
import { SavedMap } from '../routes/map_page';
import { getIndexPatternsFromIds } from '../index_pattern_util';
@@ -96,16 +101,19 @@ export class MapEmbeddable
private _savedMap: SavedMap;
private _renderTooltipContent?: RenderToolTipContent;
private _subscription: Subscription;
+ private _prevFilterByMapExtent: boolean;
private _prevIsRestore: boolean = false;
+ private _prevMapExtent?: MapExtent;
private _prevTimeRange?: TimeRange;
private _prevQuery?: Query;
private _prevRefreshConfig?: RefreshInterval;
- private _prevFilters?: Filter[];
+ private _prevFilters: Filter[] = [];
private _prevSyncColors?: boolean;
private _prevSearchSessionId?: string;
private _domNode?: HTMLElement;
private _unsubscribeFromStore?: Unsubscribe;
private _isInitialized = false;
+ private _controlledBy: string;
constructor(config: MapEmbeddableConfig, initialInput: MapEmbeddableInput, parent?: IContainer) {
super(
@@ -122,6 +130,9 @@ export class MapEmbeddable
this._savedMap = new SavedMap({ mapEmbeddableInput: initialInput });
this._initializeSaveMap();
this._subscription = this.getUpdated$().subscribe(() => this.onUpdate());
+ this._controlledBy = `mapEmbeddablePanel${this.id}`;
+ this._prevFilterByMapExtent =
+ this.input.filterByMapExtent === undefined ? false : this.input.filterByMapExtent;
}
private async _initializeSaveMap() {
@@ -221,11 +232,23 @@ export class MapEmbeddable
}
onUpdate() {
+ if (
+ this.input.filterByMapExtent !== undefined &&
+ this._prevFilterByMapExtent !== this.input.filterByMapExtent
+ ) {
+ this._prevFilterByMapExtent = this.input.filterByMapExtent;
+ if (this.input.filterByMapExtent) {
+ this.setMapExtentFilter();
+ } else {
+ this.clearMapExtentFilter();
+ }
+ }
+
if (
!_.isEqual(this.input.timeRange, this._prevTimeRange) ||
!_.isEqual(this.input.query, this._prevQuery) ||
- !esFilters.onlyDisabledFiltersChanged(this.input.filters, this._prevFilters) ||
- this.input.searchSessionId !== this._prevSearchSessionId
+ !esFilters.compareFilters(this._getFilters(), this._prevFilters) ||
+ this._getSearchSessionId() !== this._prevSearchSessionId
) {
this._dispatchSetQuery({
forceRefresh: false,
@@ -240,7 +263,7 @@ export class MapEmbeddable
this._dispatchSetChartsPaletteServiceGetColor(this.input.syncColors);
}
- const isRestore = getIsRestore(this.input.searchSessionId);
+ const isRestore = getIsRestore(this._getSearchSessionId());
if (isRestore !== this._prevIsRestore) {
this._prevIsRestore = isRestore;
this._savedMap.getStore().dispatch(
@@ -252,22 +275,38 @@ export class MapEmbeddable
}
}
+ _getFilters() {
+ return this.input.filters
+ ? this.input.filters.filter(
+ (filter) => !filter.meta.disabled && filter.meta.controlledBy !== this._controlledBy
+ )
+ : [];
+ }
+
+ _getSearchSessionId() {
+ // New search session id causes all layers from elasticsearch to refetch data.
+ // Dashboard provides a new search session id anytime filters change.
+ // Thus, filtering embeddable container by map extent causes a new search session id any time the map is moved.
+ // Disabling search session when filtering embeddable container by map extent.
+ // The use case for search sessions (restoring results because of slow responses) does not match the use case of
+ // filtering by map extent (rapid responses as users explore their map).
+ return this.input.filterByMapExtent ? undefined : this.input.searchSessionId;
+ }
+
_dispatchSetQuery({ forceRefresh }: { forceRefresh: boolean }) {
+ const filters = this._getFilters();
this._prevTimeRange = this.input.timeRange;
this._prevQuery = this.input.query;
- this._prevFilters = this.input.filters;
- this._prevSearchSessionId = this.input.searchSessionId;
- const enabledFilters = this.input.filters
- ? this.input.filters.filter((filter) => !filter.meta.disabled)
- : [];
+ this._prevFilters = filters;
+ this._prevSearchSessionId = this._getSearchSessionId();
this._savedMap.getStore().dispatch(
setQuery({
- filters: enabledFilters,
+ filters,
query: this.input.query,
timeFilters: this.input.timeRange,
forceRefresh,
- searchSessionId: this.input.searchSessionId,
- searchSessionMapBuffer: getIsRestore(this.input.searchSessionId)
+ searchSessionId: this._getSearchSessionId(),
+ searchSessionMapBuffer: getIsRestore(this._getSearchSessionId())
? this.input.mapBuffer
: undefined,
})
@@ -403,6 +442,57 @@ export class MapEmbeddable
} as ActionExecutionContext;
};
+ setMapExtentFilter() {
+ const state = this._savedMap.getStore().getState();
+ const mapExtent = getMapExtent(state);
+ const geoFieldNames = getGeoFieldNames(state);
+ const center = getMapCenter(state);
+ const zoom = getMapZoom(state);
+
+ if (center === undefined || mapExtent === undefined || geoFieldNames.length === 0) {
+ return;
+ }
+
+ this._prevMapExtent = mapExtent;
+
+ const mapExtentFilter = createExtentFilter(mapExtent, geoFieldNames);
+ mapExtentFilter.meta.isMultiIndex = true;
+ mapExtentFilter.meta.controlledBy = this._controlledBy;
+ mapExtentFilter.meta.alias = i18n.translate('xpack.maps.embeddable.boundsFilterLabel', {
+ defaultMessage: 'Map bounds at center: {lat}, {lon}, zoom: {zoom}',
+ values: {
+ lat: center.lat,
+ lon: center.lon,
+ zoom,
+ },
+ });
+
+ const executeContext = {
+ ...this.getActionContext(),
+ filters: [mapExtentFilter],
+ controlledBy: this._controlledBy,
+ };
+ const action = getUiActions().getAction(ACTION_GLOBAL_APPLY_FILTER);
+ if (!action) {
+ throw new Error('Unable to apply map extent filter, could not locate action');
+ }
+ action.execute(executeContext);
+ }
+
+ clearMapExtentFilter() {
+ this._prevMapExtent = undefined;
+ const executeContext = {
+ ...this.getActionContext(),
+ filters: [],
+ controlledBy: this._controlledBy,
+ };
+ const action = getUiActions().getAction(ACTION_GLOBAL_APPLY_FILTER);
+ if (!action) {
+ throw new Error('Unable to apply map extent filter, could not locate action');
+ }
+ action.execute(executeContext);
+ }
+
destroy() {
super.destroy();
this._isActive = false;
@@ -426,9 +516,15 @@ export class MapEmbeddable
}
_handleStoreChanges() {
- if (!this._isActive) {
+ if (!this._isActive || !getMapReady(this._savedMap.getStore().getState())) {
return;
}
+
+ const mapExtent = getMapExtent(this._savedMap.getStore().getState());
+ if (this.input.filterByMapExtent && !_.isEqual(this._prevMapExtent, mapExtent)) {
+ this.setMapExtentFilter();
+ }
+
const center = getMapCenter(this._savedMap.getStore().getState());
const zoom = getMapZoom(this._savedMap.getStore().getState());
diff --git a/x-pack/plugins/maps/public/embeddable/types.ts b/x-pack/plugins/maps/public/embeddable/types.ts
index 7cd4fa8e1253b..79a70f3786fe6 100644
--- a/x-pack/plugins/maps/public/embeddable/types.ts
+++ b/x-pack/plugins/maps/public/embeddable/types.ts
@@ -35,9 +35,10 @@ interface MapEmbeddableState {
}
export type MapByValueInput = {
attributes: MapSavedObjectAttributes;
-} & EmbeddableInput &
- MapEmbeddableState;
-export type MapByReferenceInput = SavedObjectEmbeddableInput & MapEmbeddableState;
+} & EmbeddableInput & { filterByMapExtent?: boolean } & MapEmbeddableState;
+export type MapByReferenceInput = SavedObjectEmbeddableInput & {
+ filterByMapExtent?: boolean;
+} & MapEmbeddableState;
export type MapEmbeddableInput = MapByValueInput | MapByReferenceInput;
export type MapEmbeddableOutput = EmbeddableOutput & {
diff --git a/x-pack/plugins/maps/public/plugin.ts b/x-pack/plugins/maps/public/plugin.ts
index ad8846bd48b60..740112124a251 100644
--- a/x-pack/plugins/maps/public/plugin.ts
+++ b/x-pack/plugins/maps/public/plugin.ts
@@ -42,8 +42,10 @@ import {
createTileMapUrlGenerator,
} from './url_generator';
import { visualizeGeoFieldAction } from './trigger_actions/visualize_geo_field_action';
+import { filterByMapExtentAction } from './trigger_actions/filter_by_map_extent_action';
import { MapEmbeddableFactory } from './embeddable/map_embeddable_factory';
import type { EmbeddableSetup, EmbeddableStart } from '../../../../src/plugins/embeddable/public';
+import { CONTEXT_MENU_TRIGGER } from '../../../../src/plugins/embeddable/public';
import { MapsXPackConfig, MapsConfigType } from '../config';
import { getAppTitle } from '../common/i18n_getters';
import { lazyLoadMapModules } from './lazy_load_bundle';
@@ -173,6 +175,7 @@ export class MapsPlugin
if (core.application.capabilities.maps.show) {
plugins.uiActions.addTriggerAction(VISUALIZE_GEO_FIELD_TRIGGER, visualizeGeoFieldAction);
}
+ plugins.uiActions.addTriggerAction(CONTEXT_MENU_TRIGGER, filterByMapExtentAction);
if (!core.application.capabilities.maps.save) {
plugins.visualizations.unRegisterAlias(APP_ID);
diff --git a/x-pack/plugins/maps/public/selectors/map_selectors.ts b/x-pack/plugins/maps/public/selectors/map_selectors.ts
index a818cdd2d00f9..4f3bfbe303cb9 100644
--- a/x-pack/plugins/maps/public/selectors/map_selectors.ts
+++ b/x-pack/plugins/maps/public/selectors/map_selectors.ts
@@ -401,6 +401,26 @@ export const getQueryableUniqueIndexPatternIds = createSelector(
}
);
+export const getGeoFieldNames = createSelector(
+ getLayerList,
+ getWaitingForMapReadyLayerListRaw,
+ (layerList, waitingForMapReadyLayerList) => {
+ const geoFieldNames: string[] = [];
+
+ if (waitingForMapReadyLayerList.length) {
+ waitingForMapReadyLayerList.forEach((layerDescriptor) => {
+ const layer = createLayerInstance(layerDescriptor);
+ geoFieldNames.push(...layer.getGeoFieldNames());
+ });
+ } else {
+ layerList.forEach((layer) => {
+ geoFieldNames.push(...layer.getGeoFieldNames());
+ });
+ }
+ return _.uniq(geoFieldNames);
+ }
+);
+
export const hasDirtyState = createSelector(getLayerListRaw, (layerListRaw) => {
return layerListRaw.some((layerDescriptor) => {
if (layerDescriptor.__isPreviewLayer) {
diff --git a/x-pack/plugins/maps/public/trigger_actions/filter_by_map_extent_action.ts b/x-pack/plugins/maps/public/trigger_actions/filter_by_map_extent_action.ts
new file mode 100644
index 0000000000000..7706704cdd63d
--- /dev/null
+++ b/x-pack/plugins/maps/public/trigger_actions/filter_by_map_extent_action.ts
@@ -0,0 +1,53 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { i18n } from '@kbn/i18n';
+import {
+ Embeddable,
+ EmbeddableInput,
+ ViewMode,
+} from '../../../../../src/plugins/embeddable/public';
+import { MAP_SAVED_OBJECT_TYPE } from '../../common/constants';
+import { createAction } from '../../../../../src/plugins/ui_actions/public';
+
+export const FILTER_BY_MAP_EXTENT = 'FILTER_BY_MAP_EXTENT';
+
+interface FilterByMapExtentInput extends EmbeddableInput {
+ filterByMapExtent: boolean;
+}
+
+interface FilterByMapExtentActionContext {
+ embeddable: Embeddable;
+}
+
+export const filterByMapExtentAction = createAction({
+ id: FILTER_BY_MAP_EXTENT,
+ type: FILTER_BY_MAP_EXTENT,
+ order: 20,
+ getDisplayName: ({ embeddable }: FilterByMapExtentActionContext) => {
+ return embeddable.getInput().filterByMapExtent
+ ? i18n.translate('xpack.maps.filterByMapExtentMenuItem.disableDisplayName', {
+ defaultMessage: 'Disable filter by map extent',
+ })
+ : i18n.translate('xpack.maps.filterByMapExtentMenuItem.enableDisplayName', {
+ defaultMessage: 'Enable filter by map extent',
+ });
+ },
+ getIconType: () => {
+ return 'filter';
+ },
+ isCompatible: async ({ embeddable }: FilterByMapExtentActionContext) => {
+ return (
+ embeddable.type === MAP_SAVED_OBJECT_TYPE && embeddable.getInput().viewMode === ViewMode.EDIT
+ );
+ },
+ execute: async ({ embeddable }: FilterByMapExtentActionContext) => {
+ embeddable.updateInput({
+ filterByMapExtent: !embeddable.getInput().filterByMapExtent,
+ });
+ },
+});
diff --git a/x-pack/test/functional/apps/maps/embeddable/filter_by_map_extent.js b/x-pack/test/functional/apps/maps/embeddable/filter_by_map_extent.js
new file mode 100644
index 0000000000000..efe02d2d85156
--- /dev/null
+++ b/x-pack/test/functional/apps/maps/embeddable/filter_by_map_extent.js
@@ -0,0 +1,58 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+export default function ({ getPageObjects, getService }) {
+ const PageObjects = getPageObjects(['common', 'dashboard', 'header', 'lens', 'maps']);
+
+ const testSubjects = getService('testSubjects');
+ const dashboardPanelActions = getService('dashboardPanelActions');
+ const security = getService('security');
+
+ describe('filter by map extent', () => {
+ before(async () => {
+ await security.testUser.setRoles(
+ ['test_logstash_reader', 'global_maps_all', 'global_dashboard_all'],
+ false
+ );
+ await PageObjects.common.navigateToApp('dashboard');
+ await PageObjects.dashboard.gotoDashboardEditMode('filter by map extent dashboard');
+ await PageObjects.header.waitUntilLoadingHasFinished();
+ await PageObjects.dashboard.waitForRenderComplete();
+ });
+
+ after(async () => {
+ await security.testUser.restoreDefaults();
+ });
+
+ it('should not filter dashboard by map extent before "filter by map extent" is enabled', async () => {
+ await PageObjects.lens.assertMetric('Count of records', '6');
+ });
+
+ it('should filter dashboard by map extent when "filter by map extent" is enabled', async () => {
+ const mapPanelHeader = await dashboardPanelActions.getPanelHeading('document example');
+ await dashboardPanelActions.openContextMenuMorePanel(mapPanelHeader);
+ await await testSubjects.click('embeddablePanelAction-FILTER_BY_MAP_EXTENT');
+ await PageObjects.header.waitUntilLoadingHasFinished();
+
+ await PageObjects.lens.assertMetric('Count of records', '1');
+ });
+
+ it('should filter dashboard by new map extent when map is moved', async () => {
+ await PageObjects.maps.setView(32.95539, -93.93054, 5);
+ await PageObjects.header.waitUntilLoadingHasFinished();
+ await PageObjects.lens.assertMetric('Count of records', '2');
+ });
+
+ it('should remove map extent filter dashboard when "filter by map extent" is disabled', async () => {
+ const mapPanelHeader = await dashboardPanelActions.getPanelHeading('document example');
+ await dashboardPanelActions.openContextMenuMorePanel(mapPanelHeader);
+ await await testSubjects.click('embeddablePanelAction-FILTER_BY_MAP_EXTENT');
+ await PageObjects.header.waitUntilLoadingHasFinished();
+ await PageObjects.lens.assertMetric('Count of records', '6');
+ });
+ });
+}
diff --git a/x-pack/test/functional/apps/maps/embeddable/index.js b/x-pack/test/functional/apps/maps/embeddable/index.js
index 552f830e2a379..da5d4b8945da7 100644
--- a/x-pack/test/functional/apps/maps/embeddable/index.js
+++ b/x-pack/test/functional/apps/maps/embeddable/index.js
@@ -13,5 +13,6 @@ export default function ({ loadTestFile }) {
loadTestFile(require.resolve('./embeddable_library'));
loadTestFile(require.resolve('./embeddable_state'));
loadTestFile(require.resolve('./tooltip_filter_actions'));
+ loadTestFile(require.resolve('./filter_by_map_extent'));
});
}
diff --git a/x-pack/test/functional/es_archives/maps/kibana/data.json b/x-pack/test/functional/es_archives/maps/kibana/data.json
index 631efb58f9c7b..4a879c20f19ab 100644
--- a/x-pack/test/functional/es_archives/maps/kibana/data.json
+++ b/x-pack/test/functional/es_archives/maps/kibana/data.json
@@ -1149,6 +1149,56 @@
}
}
+{
+ "type": "doc",
+ "value": {
+ "id": "dashboard:42f6f040-b34f-11eb-8c95-dd19591c63df",
+ "index": ".kibana",
+ "source": {
+ "dashboard": {
+ "title" : "filter by map extent dashboard",
+ "hits" : 0,
+ "description" : "",
+ "panelsJSON" : "[{\"version\":\"8.0.0\",\"type\":\"map\",\"gridData\":{\"x\":0,\"y\":0,\"w\":29,\"h\":21,\"i\":\"24ade730-afe4-42b6-919a-c4e0a98c94f2\"},\"panelIndex\":\"24ade730-afe4-42b6-919a-c4e0a98c94f2\",\"embeddableConfig\":{\"mapCenter\":{\"lat\":38.64679,\"lon\":-120.96481,\"zoom\":7.06},\"mapBuffer\":{\"minLon\":-125.44180499999999,\"minLat\":36.364824999999996,\"maxLon\":-116.603825,\"maxLat\":40.943405},\"isLayerTOCOpen\":true,\"openTOCDetails\":[],\"hiddenLayers\":[],\"enhancements\":{}},\"panelRefName\":\"panel_24ade730-afe4-42b6-919a-c4e0a98c94f2\"},{\"version\":\"8.0.0\",\"type\":\"lens\",\"gridData\":{\"x\":29,\"y\":0,\"w\":10,\"h\":21,\"i\":\"44eb3c47-f6ad-4da8-993b-13c10997d585\"},\"panelIndex\":\"44eb3c47-f6ad-4da8-993b-13c10997d585\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsMetric\",\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"3cda3519-055a-4b9c-8759-caa28388298c\":{\"columns\":{\"26acba84-22ca-4625-b2ac-5309945e9b30\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"columnOrder\":[\"26acba84-22ca-4625-b2ac-5309945e9b30\"],\"incompleteColumns\":{}}}}},\"visualization\":{\"layerId\":\"3cda3519-055a-4b9c-8759-caa28388298c\",\"accessor\":\"26acba84-22ca-4625-b2ac-5309945e9b30\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[]},\"references\":[{\"type\":\"index-pattern\",\"id\":\"c698b940-e149-11e8-a35a-370a8516603a\",\"name\":\"indexpattern-datasource-current-indexpattern\"},{\"type\":\"index-pattern\",\"id\":\"c698b940-e149-11e8-a35a-370a8516603a\",\"name\":\"indexpattern-datasource-layer-3cda3519-055a-4b9c-8759-caa28388298c\"}]},\"enhancements\":{},\"hidePanelTitles\":false},\"title\":\"Count panel\"}]",
+ "optionsJSON" : "{\"hidePanelTitles\":false,\"useMargins\":true}",
+ "version" : 1,
+ "timeRestore" : true,
+ "timeTo" : "2015-09-20T01:00:00.000Z",
+ "timeFrom" : "2015-09-20T00:00:00.000Z",
+ "refreshInterval" : {
+ "pause" : true,
+ "value" : 1000
+ },
+ "kibanaSavedObjectMeta" : {
+ "searchSourceJSON" : "{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[]}"
+ }
+ },
+ "type" : "dashboard",
+ "references" : [
+ {
+ "name" : "24ade730-afe4-42b6-919a-c4e0a98c94f2:panel_24ade730-afe4-42b6-919a-c4e0a98c94f2",
+ "type" : "map",
+ "id" : "d2e73f40-e14a-11e8-a35a-370a8516603a"
+ },
+ {
+ "type" : "index-pattern",
+ "id" : "c698b940-e149-11e8-a35a-370a8516603a",
+ "name" : "44eb3c47-f6ad-4da8-993b-13c10997d585:indexpattern-datasource-current-indexpattern"
+ },
+ {
+ "type" : "index-pattern",
+ "id" : "c698b940-e149-11e8-a35a-370a8516603a",
+ "name" : "44eb3c47-f6ad-4da8-993b-13c10997d585:indexpattern-datasource-layer-3cda3519-055a-4b9c-8759-caa28388298c"
+ }
+ ],
+ "migrationVersion" : {
+ "dashboard" : "7.11.0"
+ },
+ "updated_at" : "2021-05-12T18:24:17.228Z"
+ }
+ }
+}
+
{
"type": "doc",
"value": {
From 639df23aa45b035f09d28acf706af0c93b56c124 Mon Sep 17 00:00:00 2001
From: Lisa Cawley
Date: Wed, 26 May 2021 08:20:27 -0700
Subject: [PATCH 07/30] Use documentation link service for index pattern field
editor (#100609)
---
...kibana-plugin-core-public.app.deeplinks.md | 26 +++++++++++++------
...-plugin-core-public.doclinksstart.links.md | 1 +
...kibana-plugin-core-public.doclinksstart.md | 2 +-
.../public/doc_links/doc_links_service.ts | 2 ++
src/core/public/public.api.md | 1 +
.../field_editor/field_editor.test.tsx | 5 ++--
.../field_editor_flyout_content.test.ts | 5 ++--
.../public/lib/documentation.ts | 11 +++-----
8 files changed, 31 insertions(+), 22 deletions(-)
diff --git a/docs/development/core/public/kibana-plugin-core-public.app.deeplinks.md b/docs/development/core/public/kibana-plugin-core-public.app.deeplinks.md
index 0392cb7eaefb0..8186996b63fe5 100644
--- a/docs/development/core/public/kibana-plugin-core-public.app.deeplinks.md
+++ b/docs/development/core/public/kibana-plugin-core-public.app.deeplinks.md
@@ -23,14 +23,24 @@ core.application.register({
title: 'Translated title',
keywords: ['translated keyword1', 'translated keyword2'],
deepLinks: [
- { id: 'sub1', title: 'Sub1', path: '/sub1', keywords: ['subpath1'] },
- {
- id: 'sub2',
- title: 'Sub2',
- deepLinks: [
- { id: 'subsub', title: 'SubSub', path: '/sub2/sub', keywords: ['subpath2'] }
- ]
- }
+ {
+ id: 'sub1',
+ title: 'Sub1',
+ path: '/sub1',
+ keywords: ['subpath1'],
+ },
+ {
+ id: 'sub2',
+ title: 'Sub2',
+ deepLinks: [
+ {
+ id: 'subsub',
+ title: 'SubSub',
+ path: '/sub2/sub',
+ keywords: ['subpath2'],
+ },
+ ],
+ },
],
mount: () => { ... }
})
diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md
index 0448ad42c94fa..9930ab7319f65 100644
--- a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md
+++ b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md
@@ -111,6 +111,7 @@ readonly links: {
readonly introduction: string;
readonly fieldFormattersNumber: string;
readonly fieldFormattersString: string;
+ readonly runtimeFields: string;
};
readonly addData: string;
readonly kibana: string;
diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md
index 78d2d8daa3d45..ab8cdea5e4d86 100644
--- a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md
+++ b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md
@@ -17,5 +17,5 @@ export interface DocLinksStart
| --- | --- | --- |
| [DOC\_LINK\_VERSION](./kibana-plugin-core-public.doclinksstart.doc_link_version.md) | string
| |
| [ELASTIC\_WEBSITE\_URL](./kibana-plugin-core-public.doclinksstart.elastic_website_url.md) | string
| |
-| [links](./kibana-plugin-core-public.doclinksstart.links.md) | {
readonly canvas: {
readonly guide: string;
};
readonly dashboard: {
readonly guide: string;
readonly drilldowns: string;
readonly drilldownsTriggerPicker: string;
readonly urlDrilldownTemplateSyntax: string;
readonly urlDrilldownVariables: string;
};
readonly discover: Record<string, string>;
readonly filebeat: {
readonly base: string;
readonly installation: string;
readonly configuration: string;
readonly elasticsearchOutput: string;
readonly elasticsearchModule: string;
readonly startup: string;
readonly exportedFields: string;
};
readonly auditbeat: {
readonly base: string;
};
readonly metricbeat: {
readonly base: string;
readonly configure: string;
readonly httpEndpoint: string;
readonly install: string;
readonly start: string;
};
readonly enterpriseSearch: {
readonly base: string;
readonly appSearchBase: string;
readonly workplaceSearchBase: string;
};
readonly heartbeat: {
readonly base: string;
};
readonly logstash: {
readonly base: string;
};
readonly functionbeat: {
readonly base: string;
};
readonly winlogbeat: {
readonly base: string;
};
readonly aggs: {
readonly composite: string;
readonly composite_missing_bucket: string;
readonly date_histogram: string;
readonly date_range: string;
readonly date_format_pattern: string;
readonly filter: string;
readonly filters: string;
readonly geohash_grid: string;
readonly histogram: string;
readonly ip_range: string;
readonly range: string;
readonly significant_terms: string;
readonly terms: string;
readonly avg: string;
readonly avg_bucket: string;
readonly max_bucket: string;
readonly min_bucket: string;
readonly sum_bucket: string;
readonly cardinality: string;
readonly count: string;
readonly cumulative_sum: string;
readonly derivative: string;
readonly geo_bounds: string;
readonly geo_centroid: string;
readonly max: string;
readonly median: string;
readonly min: string;
readonly moving_avg: string;
readonly percentile_ranks: string;
readonly serial_diff: string;
readonly std_dev: string;
readonly sum: string;
readonly top_hits: string;
};
readonly runtimeFields: {
readonly overview: string;
readonly mapping: string;
};
readonly scriptedFields: {
readonly scriptFields: string;
readonly scriptAggs: string;
readonly painless: string;
readonly painlessApi: string;
readonly painlessLangSpec: string;
readonly painlessSyntax: string;
readonly painlessWalkthrough: string;
readonly luceneExpressions: string;
};
readonly search: {
readonly sessions: string;
};
readonly indexPatterns: {
readonly introduction: string;
readonly fieldFormattersNumber: string;
readonly fieldFormattersString: string;
};
readonly addData: string;
readonly kibana: string;
readonly upgradeAssistant: string;
readonly elasticsearch: Record<string, string>;
readonly siem: {
readonly guide: string;
readonly gettingStarted: string;
};
readonly query: {
readonly eql: string;
readonly kueryQuerySyntax: string;
readonly luceneQuerySyntax: string;
readonly percolate: string;
readonly queryDsl: string;
};
readonly date: {
readonly dateMath: string;
readonly dateMathIndexNames: string;
};
readonly management: Record<string, string>;
readonly ml: Record<string, string>;
readonly transforms: Record<string, string>;
readonly visualize: Record<string, string>;
readonly apis: Readonly<{
bulkIndexAlias: string;
byteSizeUnits: string;
createAutoFollowPattern: string;
createFollower: string;
createIndex: string;
createSnapshotLifecyclePolicy: string;
createRoleMapping: string;
createRoleMappingTemplates: string;
createRollupJobsRequest: string;
createApiKey: string;
createPipeline: string;
createTransformRequest: string;
cronExpressions: string;
executeWatchActionModes: string;
indexExists: string;
openIndex: string;
putComponentTemplate: string;
painlessExecute: string;
painlessExecuteAPIContexts: string;
putComponentTemplateMetadata: string;
putSnapshotLifecyclePolicy: string;
putIndexTemplateV1: string;
putWatch: string;
simulatePipeline: string;
timeUnits: string;
updateTransform: string;
}>;
readonly observability: Record<string, string>;
readonly alerting: Record<string, string>;
readonly maps: Record<string, string>;
readonly monitoring: Record<string, string>;
readonly security: Readonly<{
apiKeyServiceSettings: string;
clusterPrivileges: string;
elasticsearchSettings: string;
elasticsearchEnableSecurity: string;
indicesPrivileges: string;
kibanaTLS: string;
kibanaPrivileges: string;
mappingRoles: string;
mappingRolesFieldRules: string;
runAsPrivilege: string;
}>;
readonly watcher: Record<string, string>;
readonly ccs: Record<string, string>;
readonly plugins: Record<string, string>;
readonly snapshotRestore: Record<string, string>;
readonly ingest: Record<string, string>;
}
| |
+| [links](./kibana-plugin-core-public.doclinksstart.links.md) | {
readonly canvas: {
readonly guide: string;
};
readonly dashboard: {
readonly guide: string;
readonly drilldowns: string;
readonly drilldownsTriggerPicker: string;
readonly urlDrilldownTemplateSyntax: string;
readonly urlDrilldownVariables: string;
};
readonly discover: Record<string, string>;
readonly filebeat: {
readonly base: string;
readonly installation: string;
readonly configuration: string;
readonly elasticsearchOutput: string;
readonly elasticsearchModule: string;
readonly startup: string;
readonly exportedFields: string;
};
readonly auditbeat: {
readonly base: string;
};
readonly metricbeat: {
readonly base: string;
readonly configure: string;
readonly httpEndpoint: string;
readonly install: string;
readonly start: string;
};
readonly enterpriseSearch: {
readonly base: string;
readonly appSearchBase: string;
readonly workplaceSearchBase: string;
};
readonly heartbeat: {
readonly base: string;
};
readonly logstash: {
readonly base: string;
};
readonly functionbeat: {
readonly base: string;
};
readonly winlogbeat: {
readonly base: string;
};
readonly aggs: {
readonly composite: string;
readonly composite_missing_bucket: string;
readonly date_histogram: string;
readonly date_range: string;
readonly date_format_pattern: string;
readonly filter: string;
readonly filters: string;
readonly geohash_grid: string;
readonly histogram: string;
readonly ip_range: string;
readonly range: string;
readonly significant_terms: string;
readonly terms: string;
readonly avg: string;
readonly avg_bucket: string;
readonly max_bucket: string;
readonly min_bucket: string;
readonly sum_bucket: string;
readonly cardinality: string;
readonly count: string;
readonly cumulative_sum: string;
readonly derivative: string;
readonly geo_bounds: string;
readonly geo_centroid: string;
readonly max: string;
readonly median: string;
readonly min: string;
readonly moving_avg: string;
readonly percentile_ranks: string;
readonly serial_diff: string;
readonly std_dev: string;
readonly sum: string;
readonly top_hits: string;
};
readonly runtimeFields: {
readonly overview: string;
readonly mapping: string;
};
readonly scriptedFields: {
readonly scriptFields: string;
readonly scriptAggs: string;
readonly painless: string;
readonly painlessApi: string;
readonly painlessLangSpec: string;
readonly painlessSyntax: string;
readonly painlessWalkthrough: string;
readonly luceneExpressions: string;
};
readonly search: {
readonly sessions: string;
};
readonly indexPatterns: {
readonly introduction: string;
readonly fieldFormattersNumber: string;
readonly fieldFormattersString: string;
readonly runtimeFields: string;
};
readonly addData: string;
readonly kibana: string;
readonly upgradeAssistant: string;
readonly elasticsearch: Record<string, string>;
readonly siem: {
readonly guide: string;
readonly gettingStarted: string;
};
readonly query: {
readonly eql: string;
readonly kueryQuerySyntax: string;
readonly luceneQuerySyntax: string;
readonly percolate: string;
readonly queryDsl: string;
};
readonly date: {
readonly dateMath: string;
readonly dateMathIndexNames: string;
};
readonly management: Record<string, string>;
readonly ml: Record<string, string>;
readonly transforms: Record<string, string>;
readonly visualize: Record<string, string>;
readonly apis: Readonly<{
bulkIndexAlias: string;
byteSizeUnits: string;
createAutoFollowPattern: string;
createFollower: string;
createIndex: string;
createSnapshotLifecyclePolicy: string;
createRoleMapping: string;
createRoleMappingTemplates: string;
createRollupJobsRequest: string;
createApiKey: string;
createPipeline: string;
createTransformRequest: string;
cronExpressions: string;
executeWatchActionModes: string;
indexExists: string;
openIndex: string;
putComponentTemplate: string;
painlessExecute: string;
painlessExecuteAPIContexts: string;
putComponentTemplateMetadata: string;
putSnapshotLifecyclePolicy: string;
putIndexTemplateV1: string;
putWatch: string;
simulatePipeline: string;
timeUnits: string;
updateTransform: string;
}>;
readonly observability: Record<string, string>;
readonly alerting: Record<string, string>;
readonly maps: Record<string, string>;
readonly monitoring: Record<string, string>;
readonly security: Readonly<{
apiKeyServiceSettings: string;
clusterPrivileges: string;
elasticsearchSettings: string;
elasticsearchEnableSecurity: string;
indicesPrivileges: string;
kibanaTLS: string;
kibanaPrivileges: string;
mappingRoles: string;
mappingRolesFieldRules: string;
runAsPrivilege: string;
}>;
readonly watcher: Record<string, string>;
readonly ccs: Record<string, string>;
readonly plugins: Record<string, string>;
readonly snapshotRestore: Record<string, string>;
readonly ingest: Record<string, string>;
}
| |
diff --git a/src/core/public/doc_links/doc_links_service.ts b/src/core/public/doc_links/doc_links_service.ts
index b2eec43cc5ad7..36d613ec82f9e 100644
--- a/src/core/public/doc_links/doc_links_service.ts
+++ b/src/core/public/doc_links/doc_links_service.ts
@@ -131,6 +131,7 @@ export class DocLinksService {
introduction: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/index-patterns.html`,
fieldFormattersNumber: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/numeral.html`,
fieldFormattersString: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/field-formatters-string.html`,
+ runtimeFields: `${KIBANA_DOCS}managing-index-patterns.html#runtime-fields`,
},
addData: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/connect-to-elasticsearch.html`,
kibana: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/index.html`,
@@ -512,6 +513,7 @@ export interface DocLinksStart {
readonly introduction: string;
readonly fieldFormattersNumber: string;
readonly fieldFormattersString: string;
+ readonly runtimeFields: string;
};
readonly addData: string;
readonly kibana: string;
diff --git a/src/core/public/public.api.md b/src/core/public/public.api.md
index 9f0c5135e702f..667863d29623e 100644
--- a/src/core/public/public.api.md
+++ b/src/core/public/public.api.md
@@ -584,6 +584,7 @@ export interface DocLinksStart {
readonly introduction: string;
readonly fieldFormattersNumber: string;
readonly fieldFormattersString: string;
+ readonly runtimeFields: string;
};
readonly addData: string;
readonly kibana: string;
diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor/field_editor.test.tsx b/src/plugins/index_pattern_field_editor/public/components/field_editor/field_editor.test.tsx
index b3fada3dbd00f..dfea1a94de7fa 100644
--- a/src/plugins/index_pattern_field_editor/public/components/field_editor/field_editor.test.tsx
+++ b/src/plugins/index_pattern_field_editor/public/components/field_editor/field_editor.test.tsx
@@ -14,12 +14,11 @@ import { registerTestBed, TestBed, getCommonActions } from '../../test_utils';
import { RuntimeFieldPainlessError } from '../../lib';
import { Field } from '../../types';
import { FieldEditor, Props, FieldEditorFormState } from './field_editor';
+import { docLinksServiceMock } from '../../../../../core/public/mocks';
const defaultProps: Props = {
onChange: jest.fn(),
- links: {
- runtimePainless: 'https://elastic.co',
- },
+ links: docLinksServiceMock.createStartContract() as any,
ctx: {
existingConcreteFields: [],
namesNotAllowed: [],
diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content.test.ts b/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content.test.ts
index 286931ad0e854..ed71e40fc80a9 100644
--- a/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content.test.ts
+++ b/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content.test.ts
@@ -8,15 +8,16 @@
import { act } from 'react-dom/test-utils';
import '../test_utils/setup_environment';
-import { registerTestBed, TestBed, noop, docLinks, getCommonActions } from '../test_utils';
+import { registerTestBed, TestBed, noop, getCommonActions } from '../test_utils';
import { FieldEditor } from './field_editor';
import { FieldEditorFlyoutContent, Props } from './field_editor_flyout_content';
+import { docLinksServiceMock } from '../../../../core/public/mocks';
const defaultProps: Props = {
onSave: noop,
onCancel: noop,
- docLinks,
+ docLinks: docLinksServiceMock.createStartContract() as any,
FieldEditor,
indexPattern: { fields: [] } as any,
uiSettings: {} as any,
diff --git a/src/plugins/index_pattern_field_editor/public/lib/documentation.ts b/src/plugins/index_pattern_field_editor/public/lib/documentation.ts
index 70f180d7cb5f2..a18a75f63d6b8 100644
--- a/src/plugins/index_pattern_field_editor/public/lib/documentation.ts
+++ b/src/plugins/index_pattern_field_editor/public/lib/documentation.ts
@@ -8,14 +8,9 @@
import { DocLinksStart } from 'src/core/public';
-export const getLinks = (docLinks: DocLinksStart) => {
- const { DOC_LINK_VERSION, ELASTIC_WEBSITE_URL } = docLinks;
- const docsBase = `${ELASTIC_WEBSITE_URL}guide/en`;
- const painlessDocsBase = `${docsBase}/elasticsearch/painless/${DOC_LINK_VERSION}`;
- const kibanaDocsBase = `${docsBase}/kibana/${DOC_LINK_VERSION}`;
-
+export const getLinks = ({ links }: DocLinksStart) => {
return {
- runtimePainless: `${kibanaDocsBase}/managing-index-patterns.html#runtime-fields`,
- painlessSyntax: `${painlessDocsBase}/painless-lang-spec.html`,
+ runtimePainless: links.indexPatterns.runtimeFields,
+ painlessSyntax: links.scriptedFields.painlessLangSpec,
};
};
From c5aa39835de16357553b4fe1b925a55be4999cc9 Mon Sep 17 00:00:00 2001
From: Thomas Neirynck
Date: Wed, 26 May 2021 11:21:38 -0400
Subject: [PATCH 08/30] [Maps] Add draw wizard (#100278)
---
.../plugins/file_upload/public/api/index.ts | 25 +--
.../api/index_name_form_async_wrapper.tsx | 43 +++++
.../json_upload_and_parse_async_wrapper.tsx | 48 ++++++
.../public/lazy_load_bundle/index.ts | 2 +-
x-pack/plugins/file_upload/public/plugin.ts | 8 +-
x-pack/plugins/maps/common/constants.ts | 1 +
x-pack/plugins/maps/common/types.ts | 1 +
.../maps/public/actions/map_actions.ts | 1 -
.../layers/file_upload_wizard/wizard.tsx | 19 +--
.../classes/layers/icons/draw_layer_icon.tsx | 37 ++++
.../classes/layers/load_layer_wizards.ts | 5 +
.../layers/new_vector_layer_wizard/config.tsx | 49 ++++++
.../create_new_index_pattern.ts | 27 +++
.../layers/new_vector_layer_wizard/index.ts | 8 +
.../layers/new_vector_layer_wizard/wizard.tsx | 161 ++++++++++++++++++
.../add_layer_panel/view.tsx | 2 +-
.../connected_components/mb_map/mb_map.tsx | 6 +-
.../icons/vector_circle_icon.tsx | 25 +++
.../icons/vector_line_icon.tsx | 26 +++
.../icons/vector_square_icon.tsx | 25 +++
x-pack/plugins/maps/public/kibana_services.ts | 4 +-
.../server/data_indexing/create_doc_source.ts | 3 +-
.../server/data_indexing/indexing_routes.ts | 4 +-
x-pack/plugins/maps/server/index.ts | 1 +
24 files changed, 483 insertions(+), 48 deletions(-)
create mode 100644 x-pack/plugins/file_upload/public/api/index_name_form_async_wrapper.tsx
create mode 100644 x-pack/plugins/file_upload/public/api/json_upload_and_parse_async_wrapper.tsx
create mode 100644 x-pack/plugins/maps/public/classes/layers/icons/draw_layer_icon.tsx
create mode 100644 x-pack/plugins/maps/public/classes/layers/new_vector_layer_wizard/config.tsx
create mode 100644 x-pack/plugins/maps/public/classes/layers/new_vector_layer_wizard/create_new_index_pattern.ts
create mode 100644 x-pack/plugins/maps/public/classes/layers/new_vector_layer_wizard/index.ts
create mode 100644 x-pack/plugins/maps/public/classes/layers/new_vector_layer_wizard/wizard.tsx
create mode 100644 x-pack/plugins/maps/public/connected_components/toolbar_overlay/icons/vector_circle_icon.tsx
create mode 100644 x-pack/plugins/maps/public/connected_components/toolbar_overlay/icons/vector_line_icon.tsx
create mode 100644 x-pack/plugins/maps/public/connected_components/toolbar_overlay/icons/vector_square_icon.tsx
diff --git a/x-pack/plugins/file_upload/public/api/index.ts b/x-pack/plugins/file_upload/public/api/index.ts
index c2520547ddad9..f3a184f27dfac 100644
--- a/x-pack/plugins/file_upload/public/api/index.ts
+++ b/x-pack/plugins/file_upload/public/api/index.ts
@@ -5,16 +5,16 @@
* 2.0.
*/
-import React from 'react';
-import { FileUploadComponentProps, lazyLoadModules } from '../lazy_load_bundle';
+import { lazyLoadModules } from '../lazy_load_bundle';
import type { IImporter, ImportFactoryOptions } from '../importer';
-import { IndexNameFormProps } from '../';
import type { HasImportPermission, FindFileStructureResponse } from '../../common';
import type { getMaxBytes, getMaxBytesFormatted } from '../importer/get_max_bytes';
+import { JsonUploadAndParseAsyncWrapper } from './json_upload_and_parse_async_wrapper';
+import { IndexNameFormAsyncWrapper } from './index_name_form_async_wrapper';
export interface FileUploadStartApi {
- getFileUploadComponent(): ReturnType;
- getIndexNameFormComponent(): Promise>;
+ FileUploadComponent: typeof JsonUploadAndParseAsyncWrapper;
+ IndexNameFormComponent: typeof IndexNameFormAsyncWrapper;
importerFactory: typeof importerFactory;
getMaxBytes: typeof getMaxBytes;
getMaxBytesFormatted: typeof getMaxBytesFormatted;
@@ -30,19 +30,8 @@ export interface GetTimeFieldRangeResponse {
end: { epoch: number; string: string };
}
-export async function getFileUploadComponent(): Promise<
- React.ComponentType
-> {
- const fileUploadModules = await lazyLoadModules();
- return fileUploadModules.JsonUploadAndParse;
-}
-
-export async function getIndexNameFormComponent(): Promise<
- React.ComponentType
-> {
- const fileUploadModules = await lazyLoadModules();
- return fileUploadModules.IndexNameForm;
-}
+export const FileUploadComponent = JsonUploadAndParseAsyncWrapper;
+export const IndexNameFormComponent = IndexNameFormAsyncWrapper;
export async function importerFactory(
format: string,
diff --git a/x-pack/plugins/file_upload/public/api/index_name_form_async_wrapper.tsx b/x-pack/plugins/file_upload/public/api/index_name_form_async_wrapper.tsx
new file mode 100644
index 0000000000000..382e2eedebe24
--- /dev/null
+++ b/x-pack/plugins/file_upload/public/api/index_name_form_async_wrapper.tsx
@@ -0,0 +1,43 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import React from 'react';
+import { EuiLoadingContent } from '@elastic/eui';
+import { lazyLoadModules } from '../lazy_load_bundle';
+import { IndexNameFormProps } from '../index';
+
+interface State {
+ IndexNameForm: React.ComponentType | null;
+}
+
+export class IndexNameFormAsyncWrapper extends React.Component {
+ state: State = {
+ IndexNameForm: null,
+ };
+
+ private _isMounted = false;
+
+ componentWillUnmount(): void {
+ this._isMounted = false;
+ }
+
+ componentDidMount() {
+ this._isMounted = true;
+ lazyLoadModules().then((modules) => {
+ if (this._isMounted) {
+ this.setState({
+ IndexNameForm: modules.IndexNameForm,
+ });
+ }
+ });
+ }
+
+ render() {
+ const { IndexNameForm } = this.state;
+ return IndexNameForm ? : ;
+ }
+}
diff --git a/x-pack/plugins/file_upload/public/api/json_upload_and_parse_async_wrapper.tsx b/x-pack/plugins/file_upload/public/api/json_upload_and_parse_async_wrapper.tsx
new file mode 100644
index 0000000000000..281ea93b76694
--- /dev/null
+++ b/x-pack/plugins/file_upload/public/api/json_upload_and_parse_async_wrapper.tsx
@@ -0,0 +1,48 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import React from 'react';
+import { EuiLoadingContent } from '@elastic/eui';
+import { FileUploadComponentProps, lazyLoadModules } from '../lazy_load_bundle';
+
+interface State {
+ JsonUploadAndParse: React.ComponentType | null;
+}
+
+export class JsonUploadAndParseAsyncWrapper extends React.Component<
+ FileUploadComponentProps,
+ State
+> {
+ state: State = {
+ JsonUploadAndParse: null,
+ };
+ private _isMounted = false;
+
+ componentDidMount() {
+ this._isMounted = true;
+ lazyLoadModules().then((modules) => {
+ if (this._isMounted) {
+ this.setState({
+ JsonUploadAndParse: modules.JsonUploadAndParse,
+ });
+ }
+ });
+ }
+
+ componentWillUnmount(): void {
+ this._isMounted = false;
+ }
+
+ render() {
+ const { JsonUploadAndParse } = this.state;
+ return JsonUploadAndParse ? (
+
+ ) : (
+
+ );
+ }
+}
diff --git a/x-pack/plugins/file_upload/public/lazy_load_bundle/index.ts b/x-pack/plugins/file_upload/public/lazy_load_bundle/index.ts
index b0f1b98a9ae72..9c7c6ff1e5180 100644
--- a/x-pack/plugins/file_upload/public/lazy_load_bundle/index.ts
+++ b/x-pack/plugins/file_upload/public/lazy_load_bundle/index.ts
@@ -32,7 +32,7 @@ export interface FileUploadComponentProps {
let loadModulesPromise: Promise;
-interface LazyLoadedFileUploadModules {
+export interface LazyLoadedFileUploadModules {
JsonUploadAndParse: React.ComponentType;
IndexNameForm: React.ComponentType;
importerFactory: (format: string, options: ImportFactoryOptions) => IImporter | undefined;
diff --git a/x-pack/plugins/file_upload/public/plugin.ts b/x-pack/plugins/file_upload/public/plugin.ts
index 6240dbe39a85e..b7b81e19b2219 100644
--- a/x-pack/plugins/file_upload/public/plugin.ts
+++ b/x-pack/plugins/file_upload/public/plugin.ts
@@ -8,10 +8,10 @@
import { CoreStart, Plugin } from '../../../../src/core/public';
import {
FileUploadStartApi,
- getFileUploadComponent,
+ FileUploadComponent,
importerFactory,
hasImportPermission,
- getIndexNameFormComponent,
+ IndexNameFormComponent,
checkIndexExists,
getTimeFieldRange,
analyzeFile,
@@ -42,8 +42,8 @@ export class FileUploadPlugin
public start(core: CoreStart, plugins: FileUploadStartDependencies): FileUploadStartApi {
setStartServices(core, plugins);
return {
- getFileUploadComponent,
- getIndexNameFormComponent,
+ FileUploadComponent,
+ IndexNameFormComponent,
importerFactory,
getMaxBytes,
getMaxBytesFormatted,
diff --git a/x-pack/plugins/maps/common/constants.ts b/x-pack/plugins/maps/common/constants.ts
index 0d8930bdb75b8..29eccdea4e8a6 100644
--- a/x-pack/plugins/maps/common/constants.ts
+++ b/x-pack/plugins/maps/common/constants.ts
@@ -41,6 +41,7 @@ export const GIS_API_PATH = `api/${APP_ID}`;
export const INDEX_SETTINGS_API_PATH = `${GIS_API_PATH}/indexSettings`;
export const FONTS_API_PATH = `${GIS_API_PATH}/fonts`;
export const INDEX_SOURCE_API_PATH = `${GIS_API_PATH}/docSource`;
+export const INDEX_FEATURE_PATH = `/${GIS_API_PATH}/feature`;
export const API_ROOT_PATH = `/${GIS_API_PATH}`;
export const MVT_GETTILE_API_PATH = 'mvt/getTile';
diff --git a/x-pack/plugins/maps/common/types.ts b/x-pack/plugins/maps/common/types.ts
index 6f2bd72c80896..6ca3de3dac377 100644
--- a/x-pack/plugins/maps/common/types.ts
+++ b/x-pack/plugins/maps/common/types.ts
@@ -6,6 +6,7 @@
*/
export interface CreateDocSourceResp {
+ indexPatternId?: string;
success: boolean;
error?: Error;
}
diff --git a/x-pack/plugins/maps/public/actions/map_actions.ts b/x-pack/plugins/maps/public/actions/map_actions.ts
index 9682306852ba9..4b2d5da31a242 100644
--- a/x-pack/plugins/maps/public/actions/map_actions.ts
+++ b/x-pack/plugins/maps/public/actions/map_actions.ts
@@ -10,7 +10,6 @@ import { AnyAction, Dispatch } from 'redux';
import { ThunkDispatch } from 'redux-thunk';
import turfBboxPolygon from '@turf/bbox-polygon';
import turfBooleanContains from '@turf/boolean-contains';
-
import { Filter, Query, TimeRange } from 'src/plugins/data/public';
import { MapStoreState } from '../reducers/store';
import {
diff --git a/x-pack/plugins/maps/public/classes/layers/file_upload_wizard/wizard.tsx b/x-pack/plugins/maps/public/classes/layers/file_upload_wizard/wizard.tsx
index 7d6f6757bef18..024c2308df6c6 100644
--- a/x-pack/plugins/maps/public/classes/layers/file_upload_wizard/wizard.tsx
+++ b/x-pack/plugins/maps/public/classes/layers/file_upload_wizard/wizard.tsx
@@ -11,13 +11,13 @@ import React, { Component } from 'react';
import { FeatureCollection } from 'geojson';
import { EuiPanel } from '@elastic/eui';
import { DEFAULT_MAX_RESULT_WINDOW, SCALING_TYPES } from '../../../../common/constants';
-import { getFileUpload } from '../../../kibana_services';
import { GeoJsonFileSource } from '../../sources/geojson_file_source';
import { VectorLayer } from '../../layers/vector_layer';
import { createDefaultLayerDescriptor } from '../../sources/es_search_source';
import { RenderWizardArguments } from '../../layers/layer_wizard_registry';
-import { FileUploadComponentProps, FileUploadGeoResults } from '../../../../../file_upload/public';
+import { FileUploadGeoResults } from '../../../../../file_upload/public';
import { ES_FIELD_TYPES } from '../../../../../../../src/plugins/data/public';
+import { getFileUploadComponent } from '../../../kibana_services';
export enum UPLOAD_STEPS {
CONFIGURE_UPLOAD = 'CONFIGURE_UPLOAD',
@@ -34,7 +34,6 @@ enum INDEXING_STAGE {
interface State {
indexingStage: INDEXING_STAGE;
- fileUploadComponent: React.ComponentType | null;
results?: FileUploadGeoResults;
}
@@ -43,12 +42,10 @@ export class ClientFileCreateSourceEditor extends Component {
if (!this._isMounted) {
return;
@@ -157,11 +147,8 @@ export class ClientFileCreateSourceEditor extends Component
(
+
+
+
+
+
+
+
+
+
+
+
+);
diff --git a/x-pack/plugins/maps/public/classes/layers/load_layer_wizards.ts b/x-pack/plugins/maps/public/classes/layers/load_layer_wizards.ts
index 804352f5bede7..6ee863cfdb600 100644
--- a/x-pack/plugins/maps/public/classes/layers/load_layer_wizards.ts
+++ b/x-pack/plugins/maps/public/classes/layers/load_layer_wizards.ts
@@ -30,6 +30,8 @@ import { mvtVectorSourceWizardConfig } from '../sources/mvt_single_layer_vector_
import { ObservabilityLayerWizardConfig } from './solution_layers/observability';
import { SecurityLayerWizardConfig } from './solution_layers/security';
import { choroplethLayerWizardConfig } from './choropleth_layer_wizard';
+import { newVectorLayerWizardConfig } from './new_vector_layer_wizard';
+import { getMapAppConfig } from '../../kibana_services';
let registered = false;
export function registerLayerWizards() {
@@ -39,6 +41,9 @@ export function registerLayerWizards() {
// Registration order determines display order
registerLayerWizard(uploadLayerWizardConfig);
+ if (getMapAppConfig().enableDrawingFeature) {
+ registerLayerWizard(newVectorLayerWizardConfig);
+ }
registerLayerWizard(esDocumentsLayerWizardConfig);
// @ts-ignore
registerLayerWizard(choroplethLayerWizardConfig);
diff --git a/x-pack/plugins/maps/public/classes/layers/new_vector_layer_wizard/config.tsx b/x-pack/plugins/maps/public/classes/layers/new_vector_layer_wizard/config.tsx
new file mode 100644
index 0000000000000..2a0400c3d6bee
--- /dev/null
+++ b/x-pack/plugins/maps/public/classes/layers/new_vector_layer_wizard/config.tsx
@@ -0,0 +1,49 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { i18n } from '@kbn/i18n';
+import React from 'react';
+import { LayerWizard, RenderWizardArguments } from '../../layers/layer_wizard_registry';
+import { NewVectorLayerEditor } from './wizard';
+import { DrawLayerIcon } from '../../layers/icons/draw_layer_icon';
+import { getFileUpload } from '../../../kibana_services';
+import { LAYER_WIZARD_CATEGORY } from '../../../../common';
+
+const ADD_VECTOR_DRAWING_LAYER = 'ADD_VECTOR_DRAWING_LAYER';
+
+export const newVectorLayerWizardConfig: LayerWizard = {
+ categories: [LAYER_WIZARD_CATEGORY.ELASTICSEARCH],
+ description: i18n.translate('xpack.maps.newVectorLayerWizard.description', {
+ defaultMessage: 'Creates a new empty layer. Use this to add shapes to the map',
+ }),
+ disabledReason: i18n.translate('xpack.maps.newVectorLayerWizard.disabledDesc', {
+ defaultMessage:
+ 'Unable to draw vector shapes, you are missing the Kibana privilege "Index Pattern Management".',
+ }),
+ getIsDisabled: async () => {
+ const hasImportPermission = await getFileUpload().hasImportPermission({
+ checkCreateIndexPattern: true,
+ checkHasManagePipeline: false,
+ });
+ return !hasImportPermission;
+ },
+ icon: DrawLayerIcon,
+ prerequisiteSteps: [
+ {
+ id: ADD_VECTOR_DRAWING_LAYER,
+ label: i18n.translate('xpack.maps.newVectorLayerWizard.indexNewLayer', {
+ defaultMessage: 'Index new layer',
+ }),
+ },
+ ],
+ renderWizard: (renderWizardArguments: RenderWizardArguments) => {
+ return ;
+ },
+ title: i18n.translate('xpack.maps.newVectorLayerWizard.title', {
+ defaultMessage: 'Create new layer',
+ }),
+};
diff --git a/x-pack/plugins/maps/public/classes/layers/new_vector_layer_wizard/create_new_index_pattern.ts b/x-pack/plugins/maps/public/classes/layers/new_vector_layer_wizard/create_new_index_pattern.ts
new file mode 100644
index 0000000000000..d612c25157095
--- /dev/null
+++ b/x-pack/plugins/maps/public/classes/layers/new_vector_layer_wizard/create_new_index_pattern.ts
@@ -0,0 +1,27 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { getHttp } from '../../../kibana_services';
+import { CreateDocSourceResp, INDEX_SOURCE_API_PATH } from '../../../../common';
+
+export const createNewIndexAndPattern = async (indexName: string) => {
+ return await getHttp().fetch({
+ path: `/${INDEX_SOURCE_API_PATH}`,
+ method: 'POST',
+ body: JSON.stringify({
+ index: indexName,
+ // Initially set to static mappings
+ mappings: {
+ properties: {
+ coordinates: {
+ type: 'geo_shape',
+ },
+ },
+ },
+ }),
+ });
+};
diff --git a/x-pack/plugins/maps/public/classes/layers/new_vector_layer_wizard/index.ts b/x-pack/plugins/maps/public/classes/layers/new_vector_layer_wizard/index.ts
new file mode 100644
index 0000000000000..c183c19f6e2af
--- /dev/null
+++ b/x-pack/plugins/maps/public/classes/layers/new_vector_layer_wizard/index.ts
@@ -0,0 +1,8 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+export { newVectorLayerWizardConfig } from './config';
diff --git a/x-pack/plugins/maps/public/classes/layers/new_vector_layer_wizard/wizard.tsx b/x-pack/plugins/maps/public/classes/layers/new_vector_layer_wizard/wizard.tsx
new file mode 100644
index 0000000000000..0d39c1c720bf2
--- /dev/null
+++ b/x-pack/plugins/maps/public/classes/layers/new_vector_layer_wizard/wizard.tsx
@@ -0,0 +1,161 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import React, { Component, Fragment } from 'react';
+import { EuiEmptyPrompt, EuiPanel, EuiCallOut } from '@elastic/eui';
+import { i18n } from '@kbn/i18n';
+import { createNewIndexAndPattern } from './create_new_index_pattern';
+import { RenderWizardArguments } from '../layer_wizard_registry';
+import { VectorLayer } from '../vector_layer';
+import { ESSearchSource } from '../../sources/es_search_source';
+import { ADD_LAYER_STEP_ID } from '../../../connected_components/add_layer_panel/view';
+import { getIndexNameFormComponent } from '../../../kibana_services';
+
+interface State {
+ indexName: string;
+ indexNameError: string;
+ indexingTriggered: boolean;
+ createIndexError: string;
+}
+
+export class NewVectorLayerEditor extends Component {
+ private _isMounted: boolean = false;
+
+ state: State = {
+ indexName: '',
+ indexNameError: '',
+ indexingTriggered: false,
+ createIndexError: '',
+ };
+
+ componentDidMount() {
+ this._isMounted = true;
+ }
+
+ componentWillUnmount() {
+ this._isMounted = false;
+ }
+
+ async componentDidUpdate() {
+ if (this.props.currentStepId === ADD_LAYER_STEP_ID && !this.state.indexingTriggered) {
+ this.setState({ indexingTriggered: true });
+ await this._createNewIndex();
+ }
+ }
+
+ _setCreateIndexError(errorMessage: string) {
+ if (!this._isMounted) {
+ return;
+ }
+ this.setState({
+ createIndexError: errorMessage,
+ });
+ }
+
+ _createNewIndex = async () => {
+ let indexPatternId: string | undefined;
+ try {
+ const response = await createNewIndexAndPattern(this.state.indexName);
+ indexPatternId = response.indexPatternId;
+ } catch (e) {
+ this._setCreateIndexError(e.message);
+ return;
+ }
+
+ if (!indexPatternId) {
+ this._setCreateIndexError(
+ i18n.translate('xpack.maps.layers.newVectorLayerWizard.createIndexError', {
+ defaultMessage: 'Could not create index with name {message}',
+ values: {
+ message: this.state.indexName,
+ },
+ })
+ );
+ return;
+ }
+
+ if (!this._isMounted) {
+ return;
+ }
+ // Creates empty layer
+ const sourceDescriptor = ESSearchSource.createDescriptor({
+ indexPatternId,
+ geoField: 'coordinates',
+ filterByMapBounds: false,
+ });
+ const layerDescriptor = VectorLayer.createDescriptor(
+ { sourceDescriptor },
+ this.props.mapColors
+ );
+ this.props.previewLayers([layerDescriptor]);
+ this.props.advanceToNextStep();
+ };
+
+ _onIndexChange = (indexName: string, indexError?: string) => {
+ this.setState({
+ indexName,
+ indexNameError: indexError ? indexError : '',
+ });
+ if (indexName && !indexError) {
+ this.props.enableNextBtn();
+ } else {
+ this.props.disableNextBtn();
+ }
+ };
+
+ render() {
+ if (this.state.createIndexError) {
+ return (
+
+ {this.state.createIndexError}
+
+ );
+ }
+
+ const IndexNameForm = getIndexNameFormComponent();
+ return (
+
+ <>
+
+ {i18n.translate('xpack.maps.layers.newVectorLayerWizard.createNewLayer', {
+ defaultMessage: 'Create new layer',
+ })}
+
+ }
+ body={
+
+
+ {i18n.translate(
+ 'xpack.maps.layers.newVectorLayerWizard.vectorEditorDescription',
+ {
+ defaultMessage: `Creates a new vector layer. This can be used to draw and store new shapes.`,
+ }
+ )}
+
+
+ }
+ />
+ {}}
+ onIndexNameValidationEnd={() => {}}
+ />
+ >
+
+ );
+ }
+}
diff --git a/x-pack/plugins/maps/public/connected_components/add_layer_panel/view.tsx b/x-pack/plugins/maps/public/connected_components/add_layer_panel/view.tsx
index 0774798eab46d..2b18d87f03c89 100644
--- a/x-pack/plugins/maps/public/connected_components/add_layer_panel/view.tsx
+++ b/x-pack/plugins/maps/public/connected_components/add_layer_panel/view.tsx
@@ -21,7 +21,7 @@ import { FlyoutBody } from './flyout_body';
import { LayerDescriptor } from '../../../common/descriptor_types';
import { LayerWizard } from '../../classes/layers/layer_wizard_registry';
-const ADD_LAYER_STEP_ID = 'ADD_LAYER_STEP_ID';
+export const ADD_LAYER_STEP_ID = 'ADD_LAYER_STEP_ID';
const ADD_LAYER_STEP_LABEL = i18n.translate('xpack.maps.addLayerPanel.addLayer', {
defaultMessage: 'Add layer',
});
diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/mb_map.tsx b/x-pack/plugins/maps/public/connected_components/mb_map/mb_map.tsx
index 355e49564620d..ce36ec811df40 100644
--- a/x-pack/plugins/maps/public/connected_components/mb_map/mb_map.tsx
+++ b/x-pack/plugins/maps/public/connected_components/mb_map/mb_map.tsx
@@ -418,11 +418,11 @@ export class MBMap extends Component {
};
render() {
- let drawControl;
+ let drawFilterControl;
let tooltipControl;
let scaleControl;
if (this.state.mbMap) {
- drawControl = this.props.addFilters ? (
+ drawFilterControl = this.props.addFilters ? (
) : null;
tooltipControl = !this.props.settings.disableTooltipControl ? (
@@ -447,7 +447,7 @@ export class MBMap extends Component {
ref={this._setContainerRef}
data-test-subj="mapContainer"
>
- {drawControl}
+ {drawFilterControl}
{scaleControl}
{tooltipControl}
diff --git a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/icons/vector_circle_icon.tsx b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/icons/vector_circle_icon.tsx
new file mode 100644
index 0000000000000..1a39072d0842f
--- /dev/null
+++ b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/icons/vector_circle_icon.tsx
@@ -0,0 +1,25 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import React, { FunctionComponent } from 'react';
+
+export const VectorCircleIcon: FunctionComponent = () => (
+
+
+
+);
diff --git a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/icons/vector_line_icon.tsx b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/icons/vector_line_icon.tsx
new file mode 100644
index 0000000000000..0e4baf536e700
--- /dev/null
+++ b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/icons/vector_line_icon.tsx
@@ -0,0 +1,26 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import React, { FunctionComponent } from 'react';
+
+export const VectorLineIcon: FunctionComponent = () => (
+
+
+
+
+);
diff --git a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/icons/vector_square_icon.tsx b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/icons/vector_square_icon.tsx
new file mode 100644
index 0000000000000..4734a4feebc8f
--- /dev/null
+++ b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/icons/vector_square_icon.tsx
@@ -0,0 +1,25 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import React, { FunctionComponent } from 'react';
+
+export const VectorSquareIcon: FunctionComponent = () => (
+
+
+
+);
diff --git a/x-pack/plugins/maps/public/kibana_services.ts b/x-pack/plugins/maps/public/kibana_services.ts
index e4b9397fab8e7..1652e78d3d2cb 100644
--- a/x-pack/plugins/maps/public/kibana_services.ts
+++ b/x-pack/plugins/maps/public/kibana_services.ts
@@ -22,6 +22,9 @@ export function setStartServices(core: CoreStart, plugins: MapsPluginStartDepend
coreStart = core;
pluginsStart = plugins;
}
+
+export const getIndexNameFormComponent = () => pluginsStart.fileUpload.IndexNameFormComponent;
+export const getFileUploadComponent = () => pluginsStart.fileUpload.FileUploadComponent;
export const getIndexPatternService = () => pluginsStart.data.indexPatterns;
export const getAutocompleteService = () => pluginsStart.data.autocomplete;
export const getInspector = () => pluginsStart.inspector;
@@ -55,7 +58,6 @@ let mapAppConfig: MapsConfigType;
export const setMapAppConfig = (config: MapsConfigType) => (mapAppConfig = config);
export const getMapAppConfig = () => mapAppConfig;
-export const getEnabled = () => getMapAppConfig().enabled;
export const getShowMapsInspectorAdapter = () => getMapAppConfig().showMapsInspectorAdapter;
export const getPreserveDrawingBuffer = () => getMapAppConfig().preserveDrawingBuffer;
diff --git a/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts b/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts
index 2b8984aa1534a..22c3da61244af 100644
--- a/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts
+++ b/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts
@@ -29,9 +29,10 @@ export async function createDocSource(
): Promise {
try {
await createIndex(index, mappings, asCurrentUser);
- await indexPatternsService.createAndSave({ title: index }, true);
+ const { id: indexPatternId } = await indexPatternsService.createAndSave({ title: index }, true);
return {
+ indexPatternId,
success: true,
};
} catch (error) {
diff --git a/x-pack/plugins/maps/server/data_indexing/indexing_routes.ts b/x-pack/plugins/maps/server/data_indexing/indexing_routes.ts
index e6e6471ff9af6..951d7ed085f39 100644
--- a/x-pack/plugins/maps/server/data_indexing/indexing_routes.ts
+++ b/x-pack/plugins/maps/server/data_indexing/indexing_routes.ts
@@ -11,8 +11,8 @@ import { IRouter } from 'src/core/server';
import type { DataRequestHandlerContext } from 'src/plugins/data/server';
import {
INDEX_SOURCE_API_PATH,
- GIS_API_PATH,
MAX_DRAWING_SIZE_BYTES,
+ INDEX_FEATURE_PATH,
} from '../../common/constants';
import { createDocSource } from './create_doc_source';
import { writeDataToIndex } from './index_data';
@@ -70,7 +70,7 @@ export function initIndexingRoutes({
router.post(
{
- path: `/${GIS_API_PATH}/feature`,
+ path: INDEX_FEATURE_PATH,
validate: {
body: schema.object({
index: schema.string(),
diff --git a/x-pack/plugins/maps/server/index.ts b/x-pack/plugins/maps/server/index.ts
index f77e7d182a3bb..fecad3ae5cf97 100644
--- a/x-pack/plugins/maps/server/index.ts
+++ b/x-pack/plugins/maps/server/index.ts
@@ -16,6 +16,7 @@ export const config: PluginConfigDescriptor = {
exposeToBrowser: {
enabled: true,
showMapVisualizationTypes: true,
+ enableDrawingFeature: true,
showMapsInspectorAdapter: true,
preserveDrawingBuffer: true,
},
From 7c7aba9b61c390632577888abdf5549170063b9e Mon Sep 17 00:00:00 2001
From: Mikhail Shustov
Date: Wed, 26 May 2021 18:04:35 +0200
Subject: [PATCH 09/30] ping Core team when renovate bot bumps es client
version (#100662)
* ping Core team on es client version upgrade
* use @elastic/kibana-core
* Revert "use @elastic/kibana-core"
This reverts commit fc8ac972a3d9ec3ef67c608179712f42316856cb.
---
renovate.json5 | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/renovate.json5 b/renovate.json5
index ea41175e1aaab..a72d4408478a2 100644
--- a/renovate.json5
+++ b/renovate.json5
@@ -44,17 +44,17 @@
{
groupName: '@elastic/elasticsearch',
packageNames: ['@elastic/elasticsearch'],
- reviewers: ['team:kibana-operations'],
+ reviewers: ['team:kibana-operations', 'team:kibana-core'],
matchBaseBranches: ['master'],
- labels: ['release_note:skip', 'v8.0.0', 'Team:Operations', 'backport:skip'],
+ labels: ['release_note:skip', 'v8.0.0', 'Team:Operations', 'Team:Core', 'backport:skip'],
enabled: true,
},
{
groupName: '@elastic/elasticsearch',
packageNames: ['@elastic/elasticsearch'],
- reviewers: ['team:kibana-operations'],
+ reviewers: ['team:kibana-operations', 'team:kibana-core'],
matchBaseBranches: ['7.x'],
- labels: ['release_note:skip', 'v7.14.0', 'Team:Operations', 'backport:skip'],
+ labels: ['release_note:skip', 'v7.14.0', 'Team:Operations', 'Team:Core', 'backport:skip'],
enabled: true,
},
{
From ae63fb1c17e873a3c0ca60f9093257a644307739 Mon Sep 17 00:00:00 2001
From: Ignacio Rivas
Date: Wed, 26 May 2021 18:29:05 +0200
Subject: [PATCH 10/30] [Ingest pipelines] add support for fingerprint
processor (#100541)
---
.../__jest__/processors/fingerprint.test.tsx | 128 +++++++++++++++
.../__jest__/processors/processor.helpers.tsx | 3 +
.../processor_form/processors/fingerprint.tsx | 152 ++++++++++++++++++
.../processor_form/processors/index.ts | 1 +
.../shared/map_processor_type_to_form.tsx | 15 ++
5 files changed, 299 insertions(+)
create mode 100644 x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/fingerprint.test.tsx
create mode 100644 x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/fingerprint.tsx
diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/fingerprint.test.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/fingerprint.test.tsx
new file mode 100644
index 0000000000000..7c2ca012a0460
--- /dev/null
+++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/fingerprint.test.tsx
@@ -0,0 +1,128 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { act } from 'react-dom/test-utils';
+import { setup, SetupResult, getProcessorValue } from './processor.helpers';
+
+// Default parameter values automatically added to the registered domain processor when saved
+const defaultFingerprintParameters = {
+ if: undefined,
+ tag: undefined,
+ method: undefined,
+ salt: undefined,
+ description: undefined,
+ ignore_missing: undefined,
+ ignore_failure: undefined,
+ target_field: undefined,
+};
+
+const FINGERPRINT_TYPE = 'fingerprint';
+
+describe('Processor: Fingerprint', () => {
+ let onUpdate: jest.Mock;
+ let testBed: SetupResult;
+
+ beforeAll(() => {
+ jest.useFakeTimers();
+ });
+
+ afterAll(() => {
+ jest.useRealTimers();
+ });
+
+ beforeEach(async () => {
+ onUpdate = jest.fn();
+
+ await act(async () => {
+ testBed = await setup({
+ value: {
+ processors: [],
+ },
+ onFlyoutOpen: jest.fn(),
+ onUpdate,
+ });
+ });
+
+ testBed.component.update();
+
+ // Open flyout to add new processor
+ testBed.actions.addProcessor();
+ // Add type (the other fields are not visible until a type is selected)
+ await testBed.actions.addProcessorType(FINGERPRINT_TYPE);
+ });
+
+ test('prevents form submission if required fields are not provided', async () => {
+ const {
+ actions: { saveNewProcessor },
+ form,
+ } = testBed;
+
+ // Click submit button with only the type defined
+ await saveNewProcessor();
+
+ // Expect form error as "field" is required parameter
+ expect(form.getErrorsMessages()).toEqual(['A field value is required.']);
+ });
+
+ test('saves with default parameter values', async () => {
+ const {
+ actions: { saveNewProcessor },
+ find,
+ component,
+ } = testBed;
+
+ // Add "fields" value (required)
+ await act(async () => {
+ find('fieldsValueField.input').simulate('change', [{ label: 'user' }]);
+ });
+ component.update();
+ // Save the field
+ await saveNewProcessor();
+
+ const processors = getProcessorValue(onUpdate, FINGERPRINT_TYPE);
+ expect(processors[0][FINGERPRINT_TYPE]).toEqual({
+ ...defaultFingerprintParameters,
+ fields: ['user'],
+ });
+ });
+
+ test('allows optional parameters to be set', async () => {
+ const {
+ actions: { saveNewProcessor },
+ form,
+ find,
+ component,
+ } = testBed;
+
+ // Add "fields" value (required)
+ await act(async () => {
+ find('fieldsValueField.input').simulate('change', [{ label: 'user' }]);
+ });
+ component.update();
+
+ // Set optional parameteres
+ form.setInputValue('targetField.input', 'target_field');
+ form.setSelectValue('methodsValueField', 'SHA-256');
+ form.setInputValue('saltValueField.input', 'salt');
+ form.toggleEuiSwitch('ignoreMissingSwitch.input');
+ form.toggleEuiSwitch('ignoreFailureSwitch.input');
+
+ // Save the field with new changes
+ await saveNewProcessor();
+
+ const processors = getProcessorValue(onUpdate, FINGERPRINT_TYPE);
+ expect(processors[0][FINGERPRINT_TYPE]).toEqual({
+ ...defaultFingerprintParameters,
+ fields: ['user'],
+ target_field: 'target_field',
+ method: 'SHA-256',
+ salt: 'salt',
+ ignore_missing: true,
+ ignore_failure: true,
+ });
+ });
+});
diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/processor.helpers.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/processor.helpers.tsx
index d69ceb385ddd7..9dd0d6cc72de1 100644
--- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/processor.helpers.tsx
+++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/__jest__/processors/processor.helpers.tsx
@@ -154,4 +154,7 @@ type TestSubject =
| 'separatorValueField.input'
| 'quoteValueField.input'
| 'emptyValueField.input'
+ | 'fieldsValueField.input'
+ | 'saltValueField.input'
+ | 'methodsValueField'
| 'trimSwitch.input';
diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/fingerprint.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/fingerprint.tsx
new file mode 100644
index 0000000000000..5e52d560020c0
--- /dev/null
+++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/fingerprint.tsx
@@ -0,0 +1,152 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import React, { FunctionComponent } from 'react';
+import { i18n } from '@kbn/i18n';
+import { EuiCode } from '@elastic/eui';
+import { FormattedMessage } from '@kbn/i18n/react';
+
+import { FieldsConfig, from, to } from './shared';
+import { TargetField } from './common_fields/target_field';
+import { IgnoreMissingField } from './common_fields/ignore_missing_field';
+import {
+ FIELD_TYPES,
+ Field,
+ UseField,
+ SelectField,
+ ComboBoxField,
+ fieldValidators,
+} from '../../../../../../shared_imports';
+
+const fieldsConfig: FieldsConfig = {
+ fields: {
+ type: FIELD_TYPES.COMBO_BOX,
+ deserializer: to.arrayOfStrings,
+ label: i18n.translate('xpack.ingestPipelines.pipelineEditor.fingerprint.fieldNameField', {
+ defaultMessage: 'Fields',
+ }),
+ helpText: i18n.translate('xpack.ingestPipelines.pipelineEditor.fingerprint.fieldNameHelpText', {
+ defaultMessage: 'Fields to include in the fingerprint.',
+ }),
+ validations: [
+ {
+ validator: fieldValidators.emptyField(
+ i18n.translate(
+ 'xpack.ingestPipelines.pipelineEditor.fingerprint.fieldNameRequiredError',
+ {
+ defaultMessage: 'A field value is required.',
+ }
+ )
+ ),
+ },
+ ],
+ },
+ salt: {
+ type: FIELD_TYPES.TEXT,
+ serializer: from.emptyStringToUndefined,
+ label: i18n.translate('xpack.ingestPipelines.pipelineEditor.fingerprint.saltFieldLabel', {
+ defaultMessage: 'Salt (optional)',
+ }),
+ helpText: (
+
+ ),
+ },
+ method: {
+ type: FIELD_TYPES.SELECT,
+ defaultValue: 'SHA-1',
+ serializer: (v) => (v === 'SHA-1' || v === '' ? undefined : v),
+ label: i18n.translate('xpack.ingestPipelines.pipelineEditor.fingerprint.methodFieldLabel', {
+ defaultMessage: 'Method',
+ }),
+ helpText: (
+
+ ),
+ },
+};
+
+export const Fingerprint: FunctionComponent = () => {
+ return (
+ <>
+
+
+ {'fingerprint'},
+ }}
+ />
+ }
+ />
+
+
+
+
+
+ {'fields'},
+ }}
+ />
+ }
+ />
+ >
+ );
+};
diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/index.ts b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/index.ts
index 4fb4365c477b5..5e3e5f82478bd 100644
--- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/index.ts
+++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/index.ts
@@ -17,6 +17,7 @@ export { DotExpander } from './dot_expander';
export { Drop } from './drop';
export { Enrich } from './enrich';
export { Fail } from './fail';
+export { Fingerprint } from './fingerprint';
export { Foreach } from './foreach';
export { GeoIP } from './geoip';
export { Grok } from './grok';
diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/shared/map_processor_type_to_form.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/shared/map_processor_type_to_form.tsx
index b5e42ea56bdf8..983fb0ea67bb0 100644
--- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/shared/map_processor_type_to_form.tsx
+++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/shared/map_processor_type_to_form.tsx
@@ -23,6 +23,7 @@ import {
Drop,
Enrich,
Fail,
+ Fingerprint,
Foreach,
GeoIP,
Grok,
@@ -308,6 +309,20 @@ export const mapProcessorTypeToDescriptor: MapProcessorTypeToDescriptor = {
defaultMessage: 'Raises an exception that halts execution',
}),
},
+ fingerprint: {
+ FieldsComponent: Fingerprint,
+ docLinkPath: '/fingerprint-processor.html',
+ label: i18n.translate('xpack.ingestPipelines.processors.label.fingerprint', {
+ defaultMessage: 'Fingerprint',
+ }),
+ typeDescription: i18n.translate('xpack.ingestPipelines.processors.description.fingerprint', {
+ defaultMessage: 'Computes a hash of the document’s content.',
+ }),
+ getDefaultDescription: () =>
+ i18n.translate('xpack.ingestPipelines.processors.defaultDescription.fingerprint', {
+ defaultMessage: 'Computes a hash of the document’s content.',
+ }),
+ },
foreach: {
FieldsComponent: Foreach,
docLinkPath: '/foreach-processor.html',
From c5f8aeeb43abb1fa0f73417a3bc6e4dcfa585668 Mon Sep 17 00:00:00 2001
From: Anton Dosov
Date: Wed, 26 May 2021 18:33:23 +0200
Subject: [PATCH 11/30] [Docs] Index patterns REST API docs (#100549)
---
docs/api/index-patterns.asciidoc | 27 +++++
docs/api/index-patterns/create.asciidoc | 102 ++++++++++++++++
docs/api/index-patterns/delete.asciidoc | 41 +++++++
docs/api/index-patterns/get.asciidoc | 64 ++++++++++
.../api/index-patterns/update-fields.asciidoc | 100 ++++++++++++++++
docs/api/index-patterns/update.asciidoc | 111 ++++++++++++++++++
docs/api/saved-objects.asciidoc | 4 +-
docs/user/api.asciidoc | 1 +
8 files changed, 449 insertions(+), 1 deletion(-)
create mode 100644 docs/api/index-patterns.asciidoc
create mode 100644 docs/api/index-patterns/create.asciidoc
create mode 100644 docs/api/index-patterns/delete.asciidoc
create mode 100644 docs/api/index-patterns/get.asciidoc
create mode 100644 docs/api/index-patterns/update-fields.asciidoc
create mode 100644 docs/api/index-patterns/update.asciidoc
diff --git a/docs/api/index-patterns.asciidoc b/docs/api/index-patterns.asciidoc
new file mode 100644
index 0000000000000..47906e1761138
--- /dev/null
+++ b/docs/api/index-patterns.asciidoc
@@ -0,0 +1,27 @@
+[[index-patterns-api]]
+== Index patterns APIs
+
+experimental[] Manage {kib} index patterns.
+
+WARNING: Do not write documents directly to the `.kibana` index. When you write directly
+to the `.kibana` index, the data becomes corrupted and permanently breaks future {kib} versions.
+
+WARNING: Use the index patterns API for managing {kib} index patterns instead of lower-level <>.
+
+The following index patterns APIs are available:
+
+* Index patterns
+ ** <> to retrieve a single {kib} index pattern
+ ** <> to create {kib} index pattern
+ ** <> to partially updated {kib} index pattern
+ ** <> to delete {kib} index pattern
+* Fields
+ ** <> to change field metadata, such as `count`, `customLabel` and `format`.
+
+
+
+include::index-patterns/get.asciidoc[]
+include::index-patterns/create.asciidoc[]
+include::index-patterns/update.asciidoc[]
+include::index-patterns/delete.asciidoc[]
+include::index-patterns/update-fields.asciidoc[]
diff --git a/docs/api/index-patterns/create.asciidoc b/docs/api/index-patterns/create.asciidoc
new file mode 100644
index 0000000000000..771292d6f934d
--- /dev/null
+++ b/docs/api/index-patterns/create.asciidoc
@@ -0,0 +1,102 @@
+[[index-patterns-api-create]]
+=== Create index pattern API
+++++
+Create index pattern
+++++
+
+experimental[] Create {kib} index patterns.
+
+[[index-patterns-api-create-request]]
+==== Request
+
+`POST :/api/index_patterns/index_pattern`
+
+`POST :/s//api/index_patterns/index_pattern`
+
+[[index-patterns-api-create-path-params]]
+==== Path parameters
+
+`space_id`::
+ (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used.
+
+[[index-patterns-api-create-body-params]]
+==== Request body
+
+`override`:: (Optional, boolean) Overrides an existing index pattern if an
+index pattern with the provided title already exists. The default is `false`.
+
+`refresh_fields`:: (Optional, boolean) Reloads index pattern fields after
+the index pattern is stored. The default is `false`.
+
+`index_pattern`:: (Required, object) The index pattern object. All fields are optional.
+
+[[index-patterns-api-create-request-codes]]
+==== Response code
+
+`200`::
+ Indicates a successful call.
+
+[[index-patterns-api-create-example]]
+==== Examples
+
+Create an index pattern with a custom title:
+
+[source,sh]
+--------------------------------------------------
+$ curl -X POST api/index_patterns/index_pattern
+{
+ "index_pattern": {
+ "title": "hello"
+ }
+}
+--------------------------------------------------
+// KIBANA
+
+Customize the creation behavior:
+
+[source,sh]
+--------------------------------------------------
+$ curl -X POST api/index_patterns/index_pattern
+{
+ "override": false,
+ "refresh_fields": true,
+ "index_pattern": {
+ "title": "hello"
+ }
+}
+--------------------------------------------------
+// KIBANA
+
+At creation, all index pattern fields are optional:
+
+[source,sh]
+--------------------------------------------------
+$ curl -X POST api/index_patterns/index_pattern
+{
+ "index_pattern": {
+ "id": "...",
+ "version": "...",
+ "title": "...",
+ "type": "...",
+ "timeFieldName": "...",
+ "sourceFilters": [],
+ "fields": {},
+ "typeMeta": {},
+ "fieldFormats": {},
+ "fieldAttrs": {},
+ "allowNoIndex": "..."
+ }
+}
+--------------------------------------------------
+// KIBANA
+
+
+The API returns the index pattern object:
+
+[source,sh]
+--------------------------------------------------
+{
+ "index_pattern": {...}
+}
+--------------------------------------------------
+
diff --git a/docs/api/index-patterns/delete.asciidoc b/docs/api/index-patterns/delete.asciidoc
new file mode 100644
index 0000000000000..a25f2f13e0b41
--- /dev/null
+++ b/docs/api/index-patterns/delete.asciidoc
@@ -0,0 +1,41 @@
+[[index-patterns-api-delete]]
+=== Delete index pattern API
+++++
+Delete index pattern
+++++
+
+experimental[] Delete {kib} index patterns.
+
+WARNING: Once you delete an index pattern, _it cannot be recovered_.
+
+[[index-patterns-api-delete-request]]
+==== Request
+
+`DELETE :/api/index_patterns/index_pattern/`
+
+`DELETE :/s//api/index_patterns/index_pattern/`
+
+[[index-patterns-api-delete-path-params]]
+==== Path parameters
+
+`space_id`::
+ (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used.
+
+`id`::
+ (Required, string) The ID of the index pattern you want to delete.
+
+[[index-patterns-api-delete-response-codes]]
+==== Response code
+
+`200`::
+ Indicates that index pattern is deleted. Returns an empty response body.
+
+==== Example
+
+Delete an index pattern object with the `my-pattern` ID:
+
+[source,sh]
+--------------------------------------------------
+$ curl -X DELETE api/index_patterns/index_pattern/my-pattern
+--------------------------------------------------
+// KIBANA
diff --git a/docs/api/index-patterns/get.asciidoc b/docs/api/index-patterns/get.asciidoc
new file mode 100644
index 0000000000000..3f53bf0726bf1
--- /dev/null
+++ b/docs/api/index-patterns/get.asciidoc
@@ -0,0 +1,64 @@
+[[index-patterns-api-get]]
+=== Get index pattern API
+++++
+Get index pattern
+++++
+
+experimental[] Retrieve a single {kib} index pattern by ID.
+
+[[index-patterns-api-get-request]]
+==== Request
+
+`GET :/api/index_patterns/index_pattern/`
+
+`GET :/s//api/index_patterns/index_pattern/`
+
+[[index-patterns-api-get-params]]
+==== Path parameters
+
+`space_id`::
+(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used.
+
+`id`::
+(Required, string) The ID of the index pattern you want to retrieve.
+
+[[index-patterns-api-get-codes]]
+==== Response code
+
+`200`::
+Indicates a successful call.
+
+`404`::
+The specified index pattern and ID doesn't exist.
+
+[[index-patterns-api-get-example]]
+==== Example
+
+Retrieve the index pattern object with the `my-pattern` ID:
+
+[source,sh]
+--------------------------------------------------
+$ curl -X GET api/index_patterns/index_pattern/my-pattern
+--------------------------------------------------
+// KIBANA
+
+The API returns an index pattern object:
+
+[source,sh]
+--------------------------------------------------
+{
+ "index_pattern": {
+ "id": "my-pattern",
+ "version": "...",
+ "title": "...",
+ "type": "...",
+ "timeFieldName": "...",
+ "sourceFilters": [],
+ "fields": {},
+ "typeMeta": {},
+ "fieldFormats": {},
+ "fieldAttrs": {},
+ "allowNoIndex: "..."
+ }
+}
+--------------------------------------------------
diff --git a/docs/api/index-patterns/update-fields.asciidoc b/docs/api/index-patterns/update-fields.asciidoc
new file mode 100644
index 0000000000000..e3f98631bb52a
--- /dev/null
+++ b/docs/api/index-patterns/update-fields.asciidoc
@@ -0,0 +1,100 @@
+[[index-patterns-fields-api-update]]
+=== Update index pattern fields API
+++++
+Update index pattern fields metadata
+++++
+
+experimental[] Update fields presentation metadata, such as `count`,
+`customLabel`, and `format`. You can update multiple fields in one request. Updates
+are merged with persisted metadata. To remove existing metadata, specify `null` as the value.
+
+[[index-patterns-fields-api-update-request]]
+==== Request
+
+`POST :/api/index_patterns/index_pattern//fields`
+
+`POST :/s//api/index_patterns/index_pattern//fields`
+
+[[index-patterns-fields-api-update-path-params]]
+==== Path parameters
+
+`space_id`::
+(Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used.
+
+`id`::
+(Required, string) The ID of the index pattern fields you want to update.
+
+[[index-patterns-fields-api-update-request-body]]
+==== Request body
+
+`fields`::
+(Required, object) the field object
+
+
+[[index-patterns-fields-api-update-errors-codes]]
+==== Response code
+
+`200`::
+Indicates a successful call.
+
+[[index-patterns-fields-api-update-example]]
+==== Examples
+
+Set popularity `count` for field `foo`:
+
+[source,sh]
+--------------------------------------------------
+$ curl -X POST api/saved_objects/index-pattern/my-pattern/fields
+{
+ "fields": {
+ "foo": {
+ "count": 123
+ }
+ }
+}
+--------------------------------------------------
+// KIBANA
+
+Update multiple metadata fields in one request:
+
+[source,sh]
+--------------------------------------------------
+$ curl -X POST api/saved_objects/index-pattern/my-pattern/fields
+{
+ "fields": {
+ "foo": {
+ "count": 123,
+ "customLabel": "Foo"
+ },
+ "bar": {
+ "customLabel": "Bar"
+ }
+ }
+}
+--------------------------------------------------
+// KIBANA
+
+Use `null` value to delete metadata:
+[source,sh]
+--------------------------------------------------
+$ curl -X POST api/saved_objects/index-pattern/my-pattern/fields
+{
+ "fields": {
+ "foo": {
+ "customLabel": null
+ }
+ }
+}
+--------------------------------------------------
+// KIBANA
+
+
+The endpoint returns the updated index pattern object:
+[source,sh]
+--------------------------------------------------
+{
+ "index_pattern": {
+
+ }
+}
+--------------------------------------------------
diff --git a/docs/api/index-patterns/update.asciidoc b/docs/api/index-patterns/update.asciidoc
new file mode 100644
index 0000000000000..8ed0ff89fb928
--- /dev/null
+++ b/docs/api/index-patterns/update.asciidoc
@@ -0,0 +1,111 @@
+[[index-patterns-api-update]]
+=== Update index pattern API
+++++
+Update index pattern
+++++
+
+experimental[] Update part of an index pattern. Only the specified fields are updated in the
+index pattern. Unspecified fields stay as they are persisted.
+
+[[index-patterns-api-update-request]]
+==== Request
+
+`POST :/api/index_patterns/index_pattern/`
+
+`POST :/s//api/index_patterns/index_pattern/`
+
+[[index-patterns-api-update-path-params]]
+==== Path parameters
+
+`space_id`::
+ (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used.
+
+`id`::
+ (Required, string) The ID of the index pattern you want to update.
+
+[[index-patterns-api-update-request-body]]
+==== Request body
+
+`refresh_fields`:: (Optional, boolean) Reloads the index pattern fields after
+the index pattern is updated. The default is `false`.
+
+`index_pattern`::
+ (Required, object) The index patterns fields you want to update.
++
+
+You can partially update the following fields:
+
+* `title`
+* `timeFieldName`
+* `fields`
+* `sourceFilters`
+* `fieldFormatMap`
+* `type`
+* `typeMeta`
+
+[[index-patterns-api-update-errors-codes]]
+==== Response code
+
+`200`::
+ Indicates a successful call.
+
+[[index-patterns-api-update-example]]
+==== Examples
+
+Update a title of the `` index pattern:
+
+[source,sh]
+--------------------------------------------------
+$ curl -X POST api/saved_objects/index-pattern/my-pattern
+{
+ "index_pattern": {
+ "title": "some-other-pattern-*"
+ }
+}
+--------------------------------------------------
+// KIBANA
+
+Customize the update behavior:
+
+[source,sh]
+--------------------------------------------------
+$ curl -X POST api/saved_objects/index-pattern/my-pattern
+{
+ "refresh_fields": true,
+ "index_pattern": {
+ "fields": {}
+ }
+}
+--------------------------------------------------
+// KIBANA
+
+
+All update fields are optional, but you can specify the following fields:
+
+[source,sh]
+--------------------------------------------------
+$ curl -X POST api/saved_objects/index-pattern/my-pattern
+{
+ "index_pattern": {
+ "title": "...",
+ "timeFieldName": "...",
+ "sourceFilters": [],
+ "fieldFormats": {},
+ "type": "...",
+ "typeMeta": {},
+ "fields": {}
+ }
+}
+--------------------------------------------------
+// KIBANA
+
+The API returns the updated index pattern object:
+
+[source,sh]
+--------------------------------------------------
+{
+ "index_pattern": {
+
+ }
+}
+--------------------------------------------------
diff --git a/docs/api/saved-objects.asciidoc b/docs/api/saved-objects.asciidoc
index ecf975134c64a..ba4e5a7e656fc 100644
--- a/docs/api/saved-objects.asciidoc
+++ b/docs/api/saved-objects.asciidoc
@@ -1,11 +1,13 @@
[[saved-objects-api]]
== Saved objects APIs
-Manage {kib} saved objects, including dashboards, visualizations, index patterns, and more.
+Manage {kib} saved objects, including dashboards, visualizations, and more.
WARNING: Do not write documents directly to the `.kibana` index. When you write directly
to the `.kibana` index, the data becomes corrupted and permanently breaks future {kib} versions.
+NOTE: For managing {kib} index patterns, use the <>.
+
The following saved objects APIs are available:
* <> to retrieve a single {kib} saved object by ID
diff --git a/docs/user/api.asciidoc b/docs/user/api.asciidoc
index 6daf252c524dd..e4faa81c174e9 100644
--- a/docs/user/api.asciidoc
+++ b/docs/user/api.asciidoc
@@ -99,6 +99,7 @@ include::{kib-repo-dir}/api/spaces-management.asciidoc[]
include::{kib-repo-dir}/api/role-management.asciidoc[]
include::{kib-repo-dir}/api/session-management.asciidoc[]
include::{kib-repo-dir}/api/saved-objects.asciidoc[]
+include::{kib-repo-dir}/api/index-patterns.asciidoc[]
include::{kib-repo-dir}/api/alerting.asciidoc[]
include::{kib-repo-dir}/api/actions-and-connectors.asciidoc[]
include::{kib-repo-dir}/api/dashboard-api.asciidoc[]
From f77ff2d396da04d9ef1bfdbed71c63051d2edd89 Mon Sep 17 00:00:00 2001
From: Pete Harverson
Date: Wed, 26 May 2021 17:48:03 +0100
Subject: [PATCH 12/30] [ML] Adds functional tests for anomaly detection job
custom URLs (#100455)
* [ML] Adds functional tests for anomaly detection job custom URLs
* [ML] Remove debug test tag from custom URL tests
* [ML] Update custom URL editor Jest snapshots
* [ML] Clean up in embeddables tests to fix dashboard test
* [ML] Delete test dashboard after test suites complete
* [ML] Edits to custom URL tests following review
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
---
.../__snapshots__/editor.test.tsx.snap | 28 +++
.../__snapshots__/list.test.tsx.snap | 9 +
.../components/custom_url_editor/editor.tsx | 9 +-
.../components/custom_url_editor/list.tsx | 3 +
.../edit_job_flyout/edit_job_flyout.js | 7 +
.../apps/ml/anomaly_detection/advanced_job.ts | 2 +-
.../ml/anomaly_detection/anomaly_explorer.ts | 4 +
.../anomaly_detection/categorization_job.ts | 2 +-
.../apps/ml/anomaly_detection/custom_urls.ts | 188 ++++++++++++++++
.../apps/ml/anomaly_detection/index.ts | 1 +
.../ml/anomaly_detection/multi_metric_job.ts | 2 +-
.../ml/anomaly_detection/population_job.ts | 2 +-
.../ml/anomaly_detection/single_metric_job.ts | 2 +-
.../test/functional/services/ml/common_ui.ts | 19 ++
.../functional/services/ml/custom_urls.ts | 146 ++++++++++++-
x-pack/test/functional/services/ml/index.ts | 2 +-
.../test/functional/services/ml/job_table.ts | 206 +++++++++++++++++-
.../services/ml/job_wizard_common.ts | 2 +-
.../functional/services/ml/test_resources.ts | 4 +
19 files changed, 622 insertions(+), 16 deletions(-)
create mode 100644 x-pack/test/functional/apps/ml/anomaly_detection/custom_urls.ts
diff --git a/x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/__snapshots__/editor.test.tsx.snap b/x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/__snapshots__/editor.test.tsx.snap
index 7d5c73b42f15b..d14fc6df06693 100644
--- a/x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/__snapshots__/editor.test.tsx.snap
+++ b/x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/__snapshots__/editor.test.tsx.snap
@@ -18,6 +18,7 @@ exports[`CustomUrlEditor renders the editor for a dashboard type URL with a labe
/>
= ({
-
+
@@ -239,6 +239,7 @@ export const CustomUrlEditor: FC = ({
idSelected={type}
onChange={onTypeChange}
className="url-link-to-radio"
+ data-test-subj="mlJobCustomUrlLinkToTypeInput"
/>
@@ -256,6 +257,7 @@ export const CustomUrlEditor: FC = ({
options={dashboardOptions}
value={kibanaSettings.dashboardId}
onChange={onDashboardChange}
+ data-test-subj="mlJobCustomUrlDashboardNameInput"
compressed
/>
@@ -275,6 +277,7 @@ export const CustomUrlEditor: FC = ({
options={indexPatternOptions}
value={kibanaSettings.discoverIndexPatternId}
onChange={onDiscoverIndexPatternChange}
+ data-test-subj="mlJobCustomUrlDiscoverIndexPatternInput"
compressed
/>
@@ -298,6 +301,7 @@ export const CustomUrlEditor: FC = ({
selectedOptions={selectedEntityOptions}
onChange={onQueryEntitiesChange}
isClearable={true}
+ data-test-subj="mlJobCustomUrlQueryEntitiesInput"
/>
)}
@@ -321,6 +325,7 @@ export const CustomUrlEditor: FC = ({
options={timeRangeOptions}
value={timeRange.type}
onChange={onTimeRangeTypeChange}
+ data-test-subj="mlJobCustomUrlTimeRangeInput"
compressed
/>
@@ -343,6 +348,7 @@ export const CustomUrlEditor: FC = ({
value={timeRange.interval}
onChange={onTimeRangeIntervalChange}
isInvalid={isInvalidTimeRange}
+ data-test-subj="mlJobCustomUrlTimeRangeIntervalInput"
compressed
/>
@@ -365,6 +371,7 @@ export const CustomUrlEditor: FC = ({
rows={2}
value={otherUrlSettings.urlValue}
onChange={onOtherUrlValueChange}
+ data-test-subj="mlJobCustomUrlOtherTypeUrlInput"
compressed
/>
diff --git a/x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/list.tsx b/x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/list.tsx
index 5c61de38df37b..96b09aff64f0c 100644
--- a/x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/list.tsx
+++ b/x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/list.tsx
@@ -160,6 +160,7 @@ export const CustomUrlList: FC = ({ job, customUrls, setCust
}
isInvalid={isInvalidLabel}
error={invalidLabelError}
+ data-test-subj="mlJobEditCustomUrlItemLabel"
>
= ({ job, customUrls, setCust
aria-label={i18n.translate('xpack.ml.customUrlEditorList.testCustomUrlAriaLabel', {
defaultMessage: 'Test custom URL',
})}
+ data-test-subj="mlJobEditTestCustomUrlButton"
/>
@@ -264,6 +266,7 @@ export const CustomUrlList: FC = ({ job, customUrls, setCust
defaultMessage: 'Delete custom URL',
}
)}
+ data-test-subj={`mlJobEditDeleteCustomUrlButton_${index}`}
/>
diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_job_flyout.js b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_job_flyout.js
index 758e3fa472a0b..d7f42daf5f3c1 100644
--- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_job_flyout.js
+++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_job_flyout.js
@@ -326,6 +326,7 @@ export class EditJobFlyoutUI extends Component {
const tabs = [
{
id: 'job-details',
+ 'data-test-subj': 'mlEditJobFlyout-jobDetails',
name: i18n.translate('xpack.ml.jobsList.editJobFlyout.jobDetailsTitle', {
defaultMessage: 'Job details',
}),
@@ -346,6 +347,7 @@ export class EditJobFlyoutUI extends Component {
},
{
id: 'detectors',
+ 'data-test-subj': 'mlEditJobFlyout-detectors',
name: i18n.translate('xpack.ml.jobsList.editJobFlyout.detectorsTitle', {
defaultMessage: 'Detectors',
}),
@@ -359,6 +361,7 @@ export class EditJobFlyoutUI extends Component {
},
{
id: 'datafeed',
+ 'data-test-subj': 'mlEditJobFlyout-datafeed',
name: i18n.translate('xpack.ml.jobsList.editJobFlyout.datafeedTitle', {
defaultMessage: 'Datafeed',
}),
@@ -376,6 +379,7 @@ export class EditJobFlyoutUI extends Component {
},
{
id: 'custom-urls',
+ 'data-test-subj': 'mlEditJobFlyout-customUrls',
name: i18n.translate('xpack.ml.jobsList.editJobFlyout.customUrlsTitle', {
defaultMessage: 'Custom URLs',
}),
@@ -395,6 +399,7 @@ export class EditJobFlyoutUI extends Component {
this.closeFlyout();
}}
size="m"
+ data-test-subj="mlJobEditFlyout"
>
@@ -419,6 +424,7 @@ export class EditJobFlyoutUI extends Component {
this.closeFlyout();
}}
flush="left"
+ data-test-subj="mlEditJobFlyoutCloseButton"
>
{
+ await ml.testResources.deleteMLTestDashboard();
+ });
+
for (const testData of testDataList) {
describe(testData.suiteSuffix, function () {
before(async () => {
diff --git a/x-pack/test/functional/apps/ml/anomaly_detection/categorization_job.ts b/x-pack/test/functional/apps/ml/anomaly_detection/categorization_job.ts
index 611c7be8b0677..85eeacc58514e 100644
--- a/x-pack/test/functional/apps/ml/anomaly_detection/categorization_job.ts
+++ b/x-pack/test/functional/apps/ml/anomaly_detection/categorization_job.ts
@@ -278,7 +278,7 @@ export default function ({ getService }: FtrProviderContext) {
await ml.jobWizardCommon.ensureAdditionalSettingsSectionOpen();
await ml.testExecution.logTestStep('job cloning persists custom urls');
- await ml.customUrls.assertCustomUrlItem(0, 'check-kibana-dashboard');
+ await ml.customUrls.assertCustomUrlLabel(0, 'check-kibana-dashboard');
await ml.testExecution.logTestStep('job cloning persists assigned calendars');
await ml.jobWizardCommon.assertCalendarsSelection([calendarId]);
diff --git a/x-pack/test/functional/apps/ml/anomaly_detection/custom_urls.ts b/x-pack/test/functional/apps/ml/anomaly_detection/custom_urls.ts
new file mode 100644
index 0000000000000..a743e00b64add
--- /dev/null
+++ b/x-pack/test/functional/apps/ml/anomaly_detection/custom_urls.ts
@@ -0,0 +1,188 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { FtrProviderContext } from '../../../ftr_provider_context';
+import { Job, Datafeed } from '../../../../../plugins/ml/common/types/anomaly_detection_jobs';
+import {
+ TimeRangeType,
+ TIME_RANGE_TYPE,
+} from '../../../../../plugins/ml/public/application/jobs/components/custom_url_editor/constants';
+
+interface DiscoverUrlConfig {
+ label: string;
+ indexPattern: string;
+ queryEntityFieldNames: string[];
+ timeRange: TimeRangeType;
+ timeRangeInterval?: string;
+}
+
+interface DashboardUrlConfig {
+ label: string;
+ dashboardName: string;
+ queryEntityFieldNames: string[];
+ timeRange: TimeRangeType;
+ timeRangeInterval?: string;
+}
+
+interface OtherUrlConfig {
+ label: string;
+ url: string;
+}
+
+// @ts-expect-error doesn't implement the full interface
+const JOB_CONFIG: Job = {
+ job_id: `fq_multi_1_custom_urls`,
+ description: 'mean(responsetime) partition=airline on farequote dataset with 30m bucket span',
+ groups: ['farequote', 'automated', 'multi-metric'],
+ analysis_config: {
+ bucket_span: '30m',
+ influencers: ['airline'],
+ detectors: [{ function: 'mean', field_name: 'responsetime', partition_field_name: 'airline' }],
+ },
+ data_description: { time_field: '@timestamp' },
+ analysis_limits: { model_memory_limit: '20mb' },
+ model_plot_config: { enabled: true },
+};
+
+// @ts-expect-error doesn't implement the full interface
+const DATAFEED_CONFIG: Datafeed = {
+ datafeed_id: 'datafeed-fq_multi_1_custom_urls',
+ indices: ['ft_farequote'],
+ job_id: 'fq_multi_1_custom_urls',
+ query: { bool: { must: [{ match_all: {} }] } },
+};
+
+const testDiscoverCustomUrl: DiscoverUrlConfig = {
+ label: 'Show data',
+ indexPattern: 'ft_farequote',
+ queryEntityFieldNames: ['airline'],
+ timeRange: TIME_RANGE_TYPE.AUTO,
+};
+
+const testDashboardCustomUrl: DashboardUrlConfig = {
+ label: 'Show dashboard',
+ dashboardName: 'ML Test',
+ queryEntityFieldNames: [],
+ timeRange: TIME_RANGE_TYPE.INTERVAL,
+ timeRangeInterval: '1h',
+};
+
+const testOtherCustomUrl: OtherUrlConfig = {
+ label: 'elastic.co',
+ url: 'https://www.elastic.co/',
+};
+
+export default function ({ getService }: FtrProviderContext) {
+ const esArchiver = getService('esArchiver');
+ const ml = getService('ml');
+ const browser = getService('browser');
+
+ describe('custom urls', function () {
+ this.tags(['mlqa']);
+ before(async () => {
+ await esArchiver.loadIfNeeded('ml/farequote');
+ await ml.testResources.createIndexPatternIfNeeded('ft_farequote', '@timestamp');
+ await ml.testResources.createMLTestDashboardIfNeeded();
+ await ml.testResources.setKibanaTimeZoneToUTC();
+
+ await ml.api.createAndRunAnomalyDetectionLookbackJob(JOB_CONFIG, DATAFEED_CONFIG);
+ await ml.securityUI.loginAsMlPowerUser();
+ });
+
+ after(async () => {
+ await ml.testResources.deleteMLTestDashboard();
+ await ml.api.cleanMlIndices();
+ });
+
+ it('opens the custom URLs tab in the edit job flyout', async () => {
+ await ml.testExecution.logTestStep('load the job management page');
+ await ml.navigation.navigateToMl();
+ await ml.navigation.navigateToJobManagement();
+
+ await ml.testExecution.logTestStep('open the custom URLs tab in the edit job flyout');
+ await ml.jobTable.openEditCustomUrlsForJobTab(JOB_CONFIG.job_id);
+ await ml.jobTable.closeEditJobFlyout();
+ });
+
+ it('adds a custom URL with query entities to Discover in the edit job flyout', async () => {
+ await ml.jobTable.addDiscoverCustomUrl(JOB_CONFIG.job_id, testDiscoverCustomUrl);
+ });
+
+ it('adds a custom URL to Dashboard in the edit job flyout', async () => {
+ await ml.jobTable.addDashboardCustomUrl(JOB_CONFIG.job_id, testDashboardCustomUrl);
+ });
+
+ it('adds a custom URL to an external page in the edit job flyout', async () => {
+ await ml.jobTable.addOtherTypeCustomUrl(JOB_CONFIG.job_id, testOtherCustomUrl);
+ });
+
+ it('tests other type custom URL', async () => {
+ await ml.jobTable.testOtherTypeCustomUrlAction(JOB_CONFIG.job_id, 2, testOtherCustomUrl.url);
+ });
+
+ it('edits other type custom URL', async () => {
+ const edit = {
+ label: `${testOtherCustomUrl.url} edited`,
+ url: `${testOtherCustomUrl.url}guide/index.html`,
+ };
+ await ml.testExecution.logTestStep('edit the custom URL in the edit job flyout');
+ await ml.jobTable.editCustomUrl(JOB_CONFIG.job_id, 2, edit);
+
+ await ml.testExecution.logTestStep('tests custom URL edit has been applied');
+ await ml.jobTable.testOtherTypeCustomUrlAction(JOB_CONFIG.job_id, 2, edit.url);
+ await ml.jobTable.closeEditJobFlyout();
+ });
+
+ it('deletes a custom URL', async () => {
+ await ml.jobTable.deleteCustomUrl(JOB_CONFIG.job_id, 2);
+ });
+
+ // wrapping into own describe to make sure new tab is cleaned up even if test failed
+ // see: https://github.com/elastic/kibana/pull/67280#discussion_r430528122
+ describe('tests Discover type custom URL', () => {
+ let tabsCount = 1;
+ const docCountFormatted = '268';
+
+ it('opens Discover page from test link in the edit job flyout', async () => {
+ await ml.jobTable.openTestCustomUrl(JOB_CONFIG.job_id, 0);
+ await browser.switchTab(1);
+ tabsCount++;
+ await ml.jobTable.testDiscoverCustomUrlAction(docCountFormatted);
+ });
+
+ after(async () => {
+ if (tabsCount > 1) {
+ await browser.closeCurrentWindow();
+ await browser.switchTab(0);
+ await ml.jobTable.closeEditJobFlyout();
+ }
+ });
+ });
+
+ // wrapping into own describe to make sure new tab is cleaned up even if test failed
+ // see: https://github.com/elastic/kibana/pull/67280#discussion_r430528122
+ describe('tests Dashboard type custom URL', () => {
+ let tabsCount = 1;
+ const testDashboardPanelCount = 0; // ML Test dashboard has no content.
+
+ it('opens Dashboard page from test link in the edit job flyout', async () => {
+ await ml.jobTable.openTestCustomUrl(JOB_CONFIG.job_id, 1);
+ await browser.switchTab(1);
+ tabsCount++;
+ await ml.jobTable.testDashboardCustomUrlAction(testDashboardPanelCount);
+ });
+
+ after(async () => {
+ if (tabsCount > 1) {
+ await browser.closeCurrentWindow();
+ await browser.switchTab(0);
+ await ml.jobTable.closeEditJobFlyout();
+ }
+ });
+ });
+ });
+}
diff --git a/x-pack/test/functional/apps/ml/anomaly_detection/index.ts b/x-pack/test/functional/apps/ml/anomaly_detection/index.ts
index 6b7afacbb721a..d87da8469db11 100644
--- a/x-pack/test/functional/apps/ml/anomaly_detection/index.ts
+++ b/x-pack/test/functional/apps/ml/anomaly_detection/index.ts
@@ -23,5 +23,6 @@ export default function ({ loadTestFile }: FtrProviderContext) {
loadTestFile(require.resolve('./date_nanos_job'));
loadTestFile(require.resolve('./annotations'));
loadTestFile(require.resolve('./aggregated_scripted_job'));
+ loadTestFile(require.resolve('./custom_urls'));
});
}
diff --git a/x-pack/test/functional/apps/ml/anomaly_detection/multi_metric_job.ts b/x-pack/test/functional/apps/ml/anomaly_detection/multi_metric_job.ts
index b12eff71d8258..256f9da313e4e 100644
--- a/x-pack/test/functional/apps/ml/anomaly_detection/multi_metric_job.ts
+++ b/x-pack/test/functional/apps/ml/anomaly_detection/multi_metric_job.ts
@@ -299,7 +299,7 @@ export default function ({ getService }: FtrProviderContext) {
await ml.jobWizardCommon.ensureAdditionalSettingsSectionOpen();
await ml.testExecution.logTestStep('job cloning persists custom urls');
- await ml.customUrls.assertCustomUrlItem(0, 'check-kibana-dashboard');
+ await ml.customUrls.assertCustomUrlLabel(0, 'check-kibana-dashboard');
await ml.testExecution.logTestStep('job cloning persists assigned calendars');
await ml.jobWizardCommon.assertCalendarsSelection([calendarId]);
diff --git a/x-pack/test/functional/apps/ml/anomaly_detection/population_job.ts b/x-pack/test/functional/apps/ml/anomaly_detection/population_job.ts
index 8fea197e05667..2bdda2c81c71d 100644
--- a/x-pack/test/functional/apps/ml/anomaly_detection/population_job.ts
+++ b/x-pack/test/functional/apps/ml/anomaly_detection/population_job.ts
@@ -336,7 +336,7 @@ export default function ({ getService }: FtrProviderContext) {
await ml.jobWizardCommon.ensureAdditionalSettingsSectionOpen();
await ml.testExecution.logTestStep('job cloning persists custom urls');
- await ml.customUrls.assertCustomUrlItem(0, 'check-kibana-dashboard');
+ await ml.customUrls.assertCustomUrlLabel(0, 'check-kibana-dashboard');
await ml.testExecution.logTestStep('job cloning persists assigned calendars');
await ml.jobWizardCommon.assertCalendarsSelection([calendarId]);
diff --git a/x-pack/test/functional/apps/ml/anomaly_detection/single_metric_job.ts b/x-pack/test/functional/apps/ml/anomaly_detection/single_metric_job.ts
index 4f9b265c3b1ed..eedb130215f7f 100644
--- a/x-pack/test/functional/apps/ml/anomaly_detection/single_metric_job.ts
+++ b/x-pack/test/functional/apps/ml/anomaly_detection/single_metric_job.ts
@@ -262,7 +262,7 @@ export default function ({ getService }: FtrProviderContext) {
await ml.jobWizardCommon.ensureAdditionalSettingsSectionOpen();
await ml.testExecution.logTestStep('job cloning persists custom urls');
- await ml.customUrls.assertCustomUrlItem(0, 'check-kibana-dashboard');
+ await ml.customUrls.assertCustomUrlLabel(0, 'check-kibana-dashboard');
await ml.testExecution.logTestStep('job cloning persists assigned calendars');
await ml.jobWizardCommon.assertCalendarsSelection([calendarId]);
diff --git a/x-pack/test/functional/services/ml/common_ui.ts b/x-pack/test/functional/services/ml/common_ui.ts
index b7288d5927b4c..b61bc8871482f 100644
--- a/x-pack/test/functional/services/ml/common_ui.ts
+++ b/x-pack/test/functional/services/ml/common_ui.ts
@@ -123,6 +123,25 @@ export function MachineLearningCommonUIProvider({ getService }: FtrProviderConte
await this.assertRadioGroupValue(testSubject, value);
},
+ async assertSelectSelectedOptionVisibleText(testSubject: string, visibleText: string) {
+ // Need to validate the selected option text, as the option value may be different to the visible text.
+ const selectControl = await testSubjects.find(testSubject);
+ const selectedValue = await selectControl.getAttribute('value');
+ const selectedOption = await selectControl.findByCssSelector(`[value="${selectedValue}"]`);
+ const selectedOptionText = await selectedOption.getVisibleText();
+ expect(selectedOptionText).to.eql(
+ visibleText,
+ `Expected selected option visible text to be '${visibleText}' (got '${selectedOptionText}')`
+ );
+ },
+
+ async selectSelectValueByVisibleText(testSubject: string, visibleText: string) {
+ // Cannot use await testSubjects.selectValue as the option value may be different to the text.
+ const selectControl = await testSubjects.find(testSubject);
+ await selectControl.type(visibleText);
+ await this.assertSelectSelectedOptionVisibleText(testSubject, visibleText);
+ },
+
async setMultiSelectFilter(testDataSubj: string, fieldTypes: string[]) {
await testSubjects.clickWhenNotDisabled(`${testDataSubj}-button`);
await testSubjects.existOrFail(`${testDataSubj}-popover`);
diff --git a/x-pack/test/functional/services/ml/custom_urls.ts b/x-pack/test/functional/services/ml/custom_urls.ts
index 0b24c565b2fa8..67640eff7129e 100644
--- a/x-pack/test/functional/services/ml/custom_urls.ts
+++ b/x-pack/test/functional/services/ml/custom_urls.ts
@@ -12,10 +12,25 @@ import { FtrProviderContext } from '../../ftr_provider_context';
export type MlCustomUrls = ProvidedType;
-export function MachineLearningCustomUrlsProvider({ getService }: FtrProviderContext) {
+export function MachineLearningCustomUrlsProvider({
+ getService,
+ getPageObjects,
+}: FtrProviderContext) {
const testSubjects = getService('testSubjects');
+ const retry = getService('retry');
+ const comboBox = getService('comboBox');
+ const PageObjects = getPageObjects(['dashboard', 'discover', 'header']);
return {
+ async assertCustomUrlsLength(expectedLength: number) {
+ const customUrls = await testSubjects.findAll('mlJobEditCustomUrlItemLabel');
+ const actualLength = customUrls.length;
+ expect(expectedLength).to.eql(
+ actualLength,
+ `Expected number of custom urls to be '${expectedLength}' (got '${actualLength}')`
+ );
+ },
+
async assertCustomUrlLabelValue(expectedValue: string) {
const actualCustomUrlLabel = await testSubjects.getAttribute(
'mlJobCustomUrlLabelInput',
@@ -27,15 +42,68 @@ export function MachineLearningCustomUrlsProvider({ getService }: FtrProviderCon
);
},
- async setCustomUrlLabel(customUrlsLabel: string) {
- await testSubjects.setValue('mlJobCustomUrlLabelInput', customUrlsLabel, {
+ async setCustomUrlLabel(customUrlLabel: string) {
+ await testSubjects.setValue('mlJobCustomUrlLabelInput', customUrlLabel, {
clearWithKeyboard: true,
});
- await this.assertCustomUrlLabelValue(customUrlsLabel);
+ await this.assertCustomUrlLabelValue(customUrlLabel);
},
- async assertCustomUrlItem(index: number, expectedLabel: string) {
- await testSubjects.existOrFail(`mlJobEditCustomUrlItem_${index}`);
+ async assertCustomUrlQueryEntitySelection(expectedFieldNames: string[]) {
+ const actualFieldNames = await comboBox.getComboBoxSelectedOptions(
+ 'mlJobCustomUrlQueryEntitiesInput > comboBoxInput'
+ );
+ expect(actualFieldNames).to.eql(
+ expectedFieldNames,
+ `Expected query entity selection to be '${expectedFieldNames}' (got '${actualFieldNames}')`
+ );
+ },
+
+ async setCustomUrlQueryEntityFieldNames(fieldNames: string[]) {
+ for (const fieldName of fieldNames) {
+ await comboBox.set('mlJobCustomUrlQueryEntitiesInput > comboBoxInput', fieldName);
+ }
+ await this.assertCustomUrlQueryEntitySelection(fieldNames);
+ },
+
+ async assertCustomUrlTimeRangeIntervalValue(expectedInterval: string) {
+ const actualCustomUrlTimeRangeInterval = await testSubjects.getAttribute(
+ 'mlJobCustomUrlTimeRangeIntervalInput',
+ 'value'
+ );
+ expect(actualCustomUrlTimeRangeInterval).to.eql(
+ expectedInterval,
+ `Expected custom url time range interval to be '${expectedInterval}' (got '${actualCustomUrlTimeRangeInterval}')`
+ );
+ },
+
+ async setCustomUrlTimeRangeInterval(interval: string) {
+ await testSubjects.setValue('mlJobCustomUrlTimeRangeIntervalInput', interval, {
+ clearWithKeyboard: true,
+ });
+ await this.assertCustomUrlTimeRangeIntervalValue(interval);
+ },
+
+ async assertCustomUrlOtherTypeUrlValue(expectedUrl: string) {
+ const actualCustomUrlValue = await testSubjects.getAttribute(
+ 'mlJobCustomUrlOtherTypeUrlInput',
+ 'value'
+ );
+ expect(actualCustomUrlValue).to.eql(
+ expectedUrl,
+ `Expected other type custom url value to be '${expectedUrl}' (got '${actualCustomUrlValue}')`
+ );
+ },
+
+ async setCustomUrlOtherTypeUrl(url: string) {
+ await testSubjects.setValue('mlJobCustomUrlOtherTypeUrlInput', url, {
+ clearWithKeyboard: true,
+ });
+ await this.assertCustomUrlOtherTypeUrlValue(url);
+ },
+
+ async assertCustomUrlLabel(index: number, expectedLabel: string) {
+ await testSubjects.existOrFail(`mlJobEditCustomUrlLabelInput_${index}`);
const actualLabel = await testSubjects.getAttribute(
`mlJobEditCustomUrlLabelInput_${index}`,
'value'
@@ -46,6 +114,44 @@ export function MachineLearningCustomUrlsProvider({ getService }: FtrProviderCon
);
},
+ async assertCustomUrlUrlValue(index: number, expectedUrl: string) {
+ await testSubjects.existOrFail(`mlJobEditCustomUrlInput_${index}`);
+ const actualUrl = await testSubjects.getAttribute(
+ `mlJobEditCustomUrlInput_${index}`,
+ 'value'
+ );
+ expect(actualUrl).to.eql(
+ expectedUrl,
+ `Expected custom url item to be '${expectedUrl}' (got '${actualUrl}')`
+ );
+ },
+
+ async editCustomUrlLabel(index: number, label: string) {
+ await testSubjects.existOrFail(`mlJobEditCustomUrlLabelInput_${index}`);
+ await testSubjects.setValue(`mlJobEditCustomUrlLabelInput_${index}`, label, {
+ clearWithKeyboard: true,
+ });
+ await this.assertCustomUrlLabel(index, label);
+ },
+
+ async editCustomUrlUrlValue(index: number, urlValue: string) {
+ await testSubjects.existOrFail(`mlJobEditCustomUrlInput_${index}`);
+ await testSubjects.setValue(`mlJobEditCustomUrlInput_${index}`, urlValue, {
+ clearWithKeyboard: true,
+ });
+
+ // Click away, so the textarea reverts back to the standard input.
+ await testSubjects.click(`mlJobEditCustomUrlLabelInput_${index}`);
+ await this.assertCustomUrlUrlValue(index, urlValue);
+ },
+
+ async deleteCustomUrl(index: number) {
+ await testSubjects.existOrFail(`mlJobEditDeleteCustomUrlButton_${index}`);
+ const beforeCustomUrls = await testSubjects.findAll('mlJobEditCustomUrlItemLabel');
+ await testSubjects.click(`mlJobEditDeleteCustomUrlButton_${index}`);
+ await this.assertCustomUrlsLength(beforeCustomUrls.length - 1);
+ },
+
/**
* Submits the custom url form and adds it to the list.
* @param formContainerSelector - selector for the element that wraps the custom url creation form.
@@ -54,5 +160,33 @@ export function MachineLearningCustomUrlsProvider({ getService }: FtrProviderCon
await testSubjects.click('mlJobAddCustomUrl');
await testSubjects.missingOrFail(formContainerSelector, { timeout: 10 * 1000 });
},
+
+ async clickTestCustomUrl(index: number) {
+ await testSubjects.existOrFail(`mlJobEditCustomUrlItem_${index}`);
+ await testSubjects.click(`mlJobEditCustomUrlItem_${index} > mlJobEditTestCustomUrlButton`);
+ await PageObjects.header.waitUntilLoadingHasFinished();
+ },
+
+ async assertDiscoverCustomUrlAction(expectedHitCountFormatted: string) {
+ await PageObjects.discover.waitForDiscoverAppOnScreen();
+ await retry.tryForTime(5000, async () => {
+ const hitCount = await PageObjects.discover.getHitCount();
+ expect(hitCount).to.eql(
+ expectedHitCountFormatted,
+ `Expected Discover hit count to be '${expectedHitCountFormatted}' (got '${hitCount}')`
+ );
+ });
+ },
+
+ async assertDashboardCustomUrlAction(expectedPanelCount: number) {
+ await PageObjects.dashboard.waitForRenderComplete();
+ await retry.tryForTime(5000, async () => {
+ const panelCount = await PageObjects.dashboard.getPanelCount();
+ expect(panelCount).to.eql(
+ expectedPanelCount,
+ `Expected Dashboard panel count to be '${expectedPanelCount}' (got '${panelCount}')`
+ );
+ });
+ },
};
}
diff --git a/x-pack/test/functional/services/ml/index.ts b/x-pack/test/functional/services/ml/index.ts
index 6a2e1158e70a3..64298bbdedd63 100644
--- a/x-pack/test/functional/services/ml/index.ts
+++ b/x-pack/test/functional/services/ml/index.ts
@@ -90,7 +90,7 @@ export function MachineLearningProvider(context: FtrProviderContext) {
const jobManagement = MachineLearningJobManagementProvider(context, api);
const jobSelection = MachineLearningJobSelectionProvider(context);
const jobSourceSelection = MachineLearningJobSourceSelectionProvider(context);
- const jobTable = MachineLearningJobTableProvider(context);
+ const jobTable = MachineLearningJobTableProvider(context, commonUI, customUrls);
const jobTypeSelection = MachineLearningJobTypeSelectionProvider(context);
const jobWizardAdvanced = MachineLearningJobWizardAdvancedProvider(context, commonUI);
const jobWizardCategorization = MachineLearningJobWizardCategorizationProvider(context);
diff --git a/x-pack/test/functional/services/ml/job_table.ts b/x-pack/test/functional/services/ml/job_table.ts
index a179983a4627f..a39e62d6281fe 100644
--- a/x-pack/test/functional/services/ml/job_table.ts
+++ b/x-pack/test/functional/services/ml/job_table.ts
@@ -8,8 +8,20 @@
import expect from '@kbn/expect';
import { FtrProviderContext } from '../../ftr_provider_context';
-
-export function MachineLearningJobTableProvider({ getService }: FtrProviderContext) {
+import { MlCommonUI } from './common_ui';
+import { MlCustomUrls } from './custom_urls';
+
+import {
+ TimeRangeType,
+ TIME_RANGE_TYPE,
+ URL_TYPE,
+} from '../../../../plugins/ml/public/application/jobs/components/custom_url_editor/constants';
+
+export function MachineLearningJobTableProvider(
+ { getService }: FtrProviderContext,
+ mlCommonUI: MlCommonUI,
+ customUrls: MlCustomUrls
+) {
const testSubjects = getService('testSubjects');
const retry = getService('retry');
@@ -311,6 +323,12 @@ export function MachineLearningJobTableProvider({ getService }: FtrProviderConte
await testSubjects.existOrFail('~mlPageJobWizard');
}
+ public async clickEditJobAction(jobId: string) {
+ await this.ensureJobActionsMenuOpen(jobId);
+ await testSubjects.click('mlActionButtonEditJob');
+ await testSubjects.existOrFail('mlJobEditFlyout');
+ }
+
public async clickDeleteJobAction(jobId: string) {
await this.ensureJobActionsMenuOpen(jobId);
await testSubjects.click('mlActionButtonDeleteJob');
@@ -456,5 +474,189 @@ export function MachineLearningJobTableProvider({ getService }: FtrProviderConte
}
});
}
+
+ public async openEditCustomUrlsForJobTab(jobId: string) {
+ await this.clickEditJobAction(jobId);
+ // click Custom URLs tab
+ await testSubjects.click('mlEditJobFlyout-customUrls');
+ await this.ensureEditCustomUrlTabOpen();
+ }
+
+ public async ensureEditCustomUrlTabOpen() {
+ await testSubjects.existOrFail('mlJobOpenCustomUrlFormButton', { timeout: 5000 });
+ }
+
+ public async closeEditJobFlyout() {
+ if (await testSubjects.exists('mlEditJobFlyoutCloseButton')) {
+ await testSubjects.click('mlEditJobFlyoutCloseButton');
+ await testSubjects.missingOrFail('mlJobEditFlyout');
+ }
+ }
+
+ public async saveEditJobFlyoutChanges() {
+ await testSubjects.click('mlEditJobFlyoutSaveButton');
+ await testSubjects.missingOrFail('mlJobEditFlyout', { timeout: 5000 });
+ }
+
+ public async clickOpenCustomUrlEditor() {
+ await this.ensureEditCustomUrlTabOpen();
+ await testSubjects.click('mlJobOpenCustomUrlFormButton');
+ await testSubjects.existOrFail('mlJobCustomUrlForm');
+ }
+
+ public async addDiscoverCustomUrl(
+ jobId: string,
+ customUrl: {
+ label: string;
+ indexPattern: string;
+ queryEntityFieldNames: string[];
+ timeRange: TimeRangeType;
+ timeRangeInterval?: string;
+ }
+ ) {
+ await this.openEditCustomUrlsForJobTab(jobId);
+
+ const existingCustomUrls = await testSubjects.findAll('mlJobEditCustomUrlItemLabel');
+
+ // Fill-in the form
+ await this.clickOpenCustomUrlEditor();
+ await customUrls.setCustomUrlLabel(customUrl.label);
+ await mlCommonUI.selectRadioGroupValue(
+ `mlJobCustomUrlLinkToTypeInput`,
+ URL_TYPE.KIBANA_DISCOVER
+ );
+ await mlCommonUI.selectSelectValueByVisibleText(
+ 'mlJobCustomUrlDiscoverIndexPatternInput',
+ customUrl.indexPattern
+ );
+ await customUrls.setCustomUrlQueryEntityFieldNames(customUrl.queryEntityFieldNames);
+ await mlCommonUI.selectSelectValueByVisibleText(
+ 'mlJobCustomUrlTimeRangeInput',
+ customUrl.timeRange
+ );
+ if (customUrl.timeRange === TIME_RANGE_TYPE.INTERVAL) {
+ await customUrls.setCustomUrlTimeRangeInterval(customUrl.timeRangeInterval!);
+ }
+
+ // Save custom URL
+ await testSubjects.click('mlJobAddCustomUrl');
+ const expectedIndex = existingCustomUrls.length;
+ await customUrls.assertCustomUrlLabel(expectedIndex, customUrl.label);
+
+ // Save the job
+ await this.saveEditJobFlyoutChanges();
+ }
+
+ public async addDashboardCustomUrl(
+ jobId: string,
+ customUrl: {
+ label: string;
+ dashboardName: string;
+ queryEntityFieldNames: string[];
+ timeRange: TimeRangeType;
+ timeRangeInterval?: string;
+ }
+ ) {
+ await this.openEditCustomUrlsForJobTab(jobId);
+
+ const existingCustomUrls = await testSubjects.findAll('mlJobEditCustomUrlItemLabel');
+
+ // Fill-in the form
+ await this.clickOpenCustomUrlEditor();
+ await customUrls.setCustomUrlLabel(customUrl.label);
+ await mlCommonUI.selectRadioGroupValue(
+ `mlJobCustomUrlLinkToTypeInput`,
+ URL_TYPE.KIBANA_DASHBOARD
+ );
+ await mlCommonUI.selectSelectValueByVisibleText(
+ 'mlJobCustomUrlDashboardNameInput',
+ customUrl.dashboardName
+ );
+ await customUrls.setCustomUrlQueryEntityFieldNames(customUrl.queryEntityFieldNames);
+ await mlCommonUI.selectSelectValueByVisibleText(
+ 'mlJobCustomUrlTimeRangeInput',
+ customUrl.timeRange
+ );
+ if (customUrl.timeRange === TIME_RANGE_TYPE.INTERVAL) {
+ await customUrls.setCustomUrlTimeRangeInterval(customUrl.timeRangeInterval!);
+ }
+
+ // Save custom URL
+ await testSubjects.click('mlJobAddCustomUrl');
+ const expectedIndex = existingCustomUrls.length;
+ await customUrls.assertCustomUrlLabel(expectedIndex, customUrl.label);
+
+ // Save the job
+ await this.saveEditJobFlyoutChanges();
+ }
+
+ public async addOtherTypeCustomUrl(jobId: string, customUrl: { label: string; url: string }) {
+ await this.openEditCustomUrlsForJobTab(jobId);
+
+ const existingCustomUrls = await testSubjects.findAll('mlJobEditCustomUrlItemLabel');
+
+ // Fill-in the form
+ await this.clickOpenCustomUrlEditor();
+ await customUrls.setCustomUrlLabel(customUrl.label);
+ await mlCommonUI.selectRadioGroupValue(`mlJobCustomUrlLinkToTypeInput`, URL_TYPE.OTHER);
+ await customUrls.setCustomUrlOtherTypeUrl(customUrl.url);
+
+ // Save custom URL
+ await testSubjects.click('mlJobAddCustomUrl');
+ const expectedIndex = existingCustomUrls.length;
+ await customUrls.assertCustomUrlLabel(expectedIndex, customUrl.label);
+
+ // Save the job
+ await this.saveEditJobFlyoutChanges();
+ }
+
+ public async editCustomUrl(
+ jobId: string,
+ indexInList: number,
+ customUrl: { label: string; url: string }
+ ) {
+ await this.openEditCustomUrlsForJobTab(jobId);
+ await customUrls.editCustomUrlLabel(indexInList, customUrl.label);
+ await customUrls.editCustomUrlUrlValue(indexInList, customUrl.url);
+
+ // Save the edit
+ await this.saveEditJobFlyoutChanges();
+ }
+
+ public async deleteCustomUrl(jobId: string, indexInList: number) {
+ await this.openEditCustomUrlsForJobTab(jobId);
+ const beforeCustomUrls = await testSubjects.findAll('mlJobEditCustomUrlItemLabel');
+ await customUrls.deleteCustomUrl(indexInList);
+
+ // Save the edit and check the custom URL has been deleted.
+ await testSubjects.click('mlEditJobFlyoutSaveButton');
+ await this.openEditCustomUrlsForJobTab(jobId);
+ await customUrls.assertCustomUrlsLength(beforeCustomUrls.length - 1);
+ await this.closeEditJobFlyout();
+ }
+
+ public async openTestCustomUrl(jobId: string, indexInList: number) {
+ await this.openEditCustomUrlsForJobTab(jobId);
+ await customUrls.clickTestCustomUrl(indexInList);
+ }
+
+ public async testDiscoverCustomUrlAction(expectedHitCountFormatted: string) {
+ await customUrls.assertDiscoverCustomUrlAction(expectedHitCountFormatted);
+ }
+
+ public async testDashboardCustomUrlAction(expectedPanelCount: number) {
+ await customUrls.assertDashboardCustomUrlAction(expectedPanelCount);
+ }
+
+ public async testOtherTypeCustomUrlAction(
+ jobId: string,
+ indexInList: number,
+ expectedUrl: string
+ ) {
+ // Can't test the contents of the external page, so just check the expected URL.
+ await this.openEditCustomUrlsForJobTab(jobId);
+ await customUrls.assertCustomUrlUrlValue(indexInList, expectedUrl);
+ await this.closeEditJobFlyout();
+ }
})();
}
diff --git a/x-pack/test/functional/services/ml/job_wizard_common.ts b/x-pack/test/functional/services/ml/job_wizard_common.ts
index 7754432c99aba..2990f70059767 100644
--- a/x-pack/test/functional/services/ml/job_wizard_common.ts
+++ b/x-pack/test/functional/services/ml/job_wizard_common.ts
@@ -527,7 +527,7 @@ export function MachineLearningJobWizardCommonProvider(
const expectedIndex = existingCustomUrls.length;
- await customUrls.assertCustomUrlItem(expectedIndex, customUrl.label);
+ await customUrls.assertCustomUrlLabel(expectedIndex, customUrl.label);
},
async ensureAdvancedSectionOpen() {
diff --git a/x-pack/test/functional/services/ml/test_resources.ts b/x-pack/test/functional/services/ml/test_resources.ts
index f967099e10fa3..a8db7ccb7a764 100644
--- a/x-pack/test/functional/services/ml/test_resources.ts
+++ b/x-pack/test/functional/services/ml/test_resources.ts
@@ -305,6 +305,10 @@ export function MachineLearningTestResourcesProvider({ getService }: FtrProvider
await this.createDashboardIfNeeded(dashboards.mlTestDashboard);
},
+ async deleteMLTestDashboard() {
+ await this.deleteDashboardByTitle(dashboards.mlTestDashboard.requestBody.attributes.title);
+ },
+
async createDashboardIfNeeded(dashboard: any) {
const title = dashboard.requestBody.attributes.title;
const dashboardId = await this.getDashboardId(title);
From ba7c0275ca7e80cb3c0ea354a87334094900905a Mon Sep 17 00:00:00 2001
From: Jen Huang
Date: Wed, 26 May 2021 09:59:09 -0700
Subject: [PATCH 13/30] [Fleet] Support browsing granular integrations (#99866)
* Manual cherry pick of work to support integration tiles and package-level vars
* Fix types
* Remove registry input group typings
* Show integration-specific readme, title, and icon in package details page
* Revert unnecessary changes
* Add package-level `vars` field to package policy SO mappings
* Fix types
* Fix test
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
---
x-pack/plugins/fleet/common/services/index.ts | 1 +
.../services/package_to_package_policy.ts | 38 +-
.../services/packages_with_integrations.ts | 11 +
.../plugins/fleet/common/types/models/epm.ts | 36 +-
.../common/types/models/package_policy.ts | 1 +
.../fleet/common/types/models/package_spec.ts | 3 +-
.../fleet/common/types/rest_spec/epm.ts | 6 +-
.../fleet/components/package_icon.tsx | 4 +-
.../fleet/constants/page_paths.ts | 17 +-
.../fleet/hooks/use_package_icon_type.ts | 24 +-
.../create_package_policy_page/index.tsx | 1 +
.../services/validate_package_policy.ts | 15 +-
.../step_configure_package.tsx | 13 +-
.../step_define_package_policy.tsx | 428 +++++++++++-------
.../edit_package_policy_page/index.tsx | 4 +-
.../sections/epm/components/package_card.tsx | 20 +-
.../epm/components/package_list_grid.tsx | 13 +-
.../sections/epm/hooks/use_local_search.tsx | 7 +-
.../screens/detail/components/icon_panel.tsx | 5 +-
.../sections/epm/screens/detail/index.tsx | 45 +-
.../epm/screens/detail/overview/overview.tsx | 18 +-
.../fleet/sections/epm/screens/home/index.tsx | 167 ++++---
.../applications/fleet/services/index.ts | 2 +
.../routes/package_policy/handlers.test.ts | 4 +-
.../fleet/server/saved_objects/index.ts | 1 +
.../ingest_pipeline/ingest_pipelines.test.ts | 2 +-
.../fleet/server/services/epm/packages/get.ts | 5 +-
.../server/services/epm/registry/index.ts | 12 +-
.../server/services/package_policy.test.ts | 82 ++++
.../fleet/server/services/package_policy.ts | 28 +-
x-pack/plugins/fleet/server/types/index.tsx | 1 +
.../server/types/models/package_policy.ts | 1 +
.../fleet/server/types/rest_spec/epm.ts | 1 +
.../common/endpoint/generate_data.ts | 1 +
34 files changed, 673 insertions(+), 344 deletions(-)
create mode 100644 x-pack/plugins/fleet/common/services/packages_with_integrations.ts
diff --git a/x-pack/plugins/fleet/common/services/index.ts b/x-pack/plugins/fleet/common/services/index.ts
index cee34db4c7ec4..1fea5033e645c 100644
--- a/x-pack/plugins/fleet/common/services/index.ts
+++ b/x-pack/plugins/fleet/common/services/index.ts
@@ -16,3 +16,4 @@ export { isValidNamespace } from './is_valid_namespace';
export { isDiffPathProtocol } from './is_diff_path_protocol';
export { LicenseService } from './license';
export { isAgentUpgradeable } from './is_agent_upgradeable';
+export { doesPackageHaveIntegrations } from './packages_with_integrations';
diff --git a/x-pack/plugins/fleet/common/services/package_to_package_policy.ts b/x-pack/plugins/fleet/common/services/package_to_package_policy.ts
index 0dfeb63f3b261..8f79e633eed0c 100644
--- a/x-pack/plugins/fleet/common/services/package_to_package_policy.ts
+++ b/x-pack/plugins/fleet/common/services/package_to_package_policy.ts
@@ -40,6 +40,21 @@ const getStreamsForInputType = (
return streams;
};
+// Reduces registry var def into config object entry
+const varsReducer = (
+ configObject: PackagePolicyConfigRecord,
+ registryVar: RegistryVarsEntry
+): PackagePolicyConfigRecord => {
+ const configEntry: PackagePolicyConfigRecordEntry = {
+ value: !registryVar.default && registryVar.multi ? [] : registryVar.default,
+ };
+ if (registryVar.type) {
+ configEntry.type = registryVar.type;
+ }
+ configObject![registryVar.name] = configEntry;
+ return configObject;
+};
+
/*
* This service creates a package policy inputs definition from defaults provided in package info
*/
@@ -58,21 +73,6 @@ export const packageToPackagePolicyInputs = (
if (packagePolicyTemplate?.inputs?.length) {
// Map each package package policy input to agent policy package policy input
packagePolicyTemplate.inputs.forEach((packageInput) => {
- // Reduces registry var def into config object entry
- const varsReducer = (
- configObject: PackagePolicyConfigRecord,
- registryVar: RegistryVarsEntry
- ): PackagePolicyConfigRecord => {
- const configEntry: PackagePolicyConfigRecordEntry = {
- value: !registryVar.default && registryVar.multi ? [] : registryVar.default,
- };
- if (registryVar.type) {
- configEntry.type = registryVar.type;
- }
- configObject![registryVar.name] = configEntry;
- return configObject;
- };
-
// Map each package input stream into package policy input stream
const streams: NewPackagePolicyInputStream[] = getStreamsForInputType(
packageInput.type,
@@ -121,7 +121,7 @@ export const packageToPackagePolicy = (
packagePolicyName?: string,
description?: string
): NewPackagePolicy => {
- return {
+ const packagePolicy: NewPackagePolicy = {
name: packagePolicyName || `${packageInfo.name}-1`,
namespace,
description,
@@ -135,4 +135,10 @@ export const packageToPackagePolicy = (
output_id: outputId,
inputs: packageToPackagePolicyInputs(packageInfo),
};
+
+ if (packageInfo.vars?.length) {
+ packagePolicy.vars = packageInfo.vars.reduce(varsReducer, {});
+ }
+
+ return packagePolicy;
};
diff --git a/x-pack/plugins/fleet/common/services/packages_with_integrations.ts b/x-pack/plugins/fleet/common/services/packages_with_integrations.ts
new file mode 100644
index 0000000000000..d63c7518f4edb
--- /dev/null
+++ b/x-pack/plugins/fleet/common/services/packages_with_integrations.ts
@@ -0,0 +1,11 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+import type { PackageInfo, PackageListItem } from '../types';
+
+export const doesPackageHaveIntegrations = (pkgInfo: PackageInfo | PackageListItem) => {
+ return (pkgInfo.policy_templates || []).length > 1;
+};
diff --git a/x-pack/plugins/fleet/common/types/models/epm.ts b/x-pack/plugins/fleet/common/types/models/epm.ts
index eab13fe5819f9..5551453b8975c 100644
--- a/x-pack/plugins/fleet/common/types/models/epm.ts
+++ b/x-pack/plugins/fleet/common/types/models/epm.ts
@@ -19,7 +19,12 @@ import type {
} from '../../constants';
import type { ValueOf } from '../../types';
-import type { PackageSpecManifest, PackageSpecScreenshot } from './package_spec';
+import type {
+ PackageSpecManifest,
+ PackageSpecIcon,
+ PackageSpecScreenshot,
+ PackageSpecCategory,
+} from './package_spec';
export type InstallationStatus = typeof installationStatuses;
@@ -118,19 +123,20 @@ interface RegistryOverridePropertyValue {
}
export type RegistryRelease = PackageSpecManifest['release'];
-export interface RegistryImage {
- src: string;
+export interface RegistryImage extends PackageSpecIcon {
path: string;
- title?: string;
- size?: string;
- type?: string;
}
export enum RegistryPolicyTemplateKeys {
name = 'name',
title = 'title',
description = 'description',
+ icons = 'icons',
+ screenshots = 'screenshots',
+ categories = 'categories',
+ data_streams = 'data_streams',
inputs = 'inputs',
+ readme = 'readme',
multiple = 'multiple',
}
@@ -138,7 +144,12 @@ export interface RegistryPolicyTemplate {
[RegistryPolicyTemplateKeys.name]: string;
[RegistryPolicyTemplateKeys.title]: string;
[RegistryPolicyTemplateKeys.description]: string;
+ [RegistryPolicyTemplateKeys.icons]?: RegistryImage[];
+ [RegistryPolicyTemplateKeys.screenshots]?: RegistryImage[];
+ [RegistryPolicyTemplateKeys.categories]?: Array;
+ [RegistryPolicyTemplateKeys.data_streams]?: string[];
[RegistryPolicyTemplateKeys.inputs]?: RegistryInput[];
+ [RegistryPolicyTemplateKeys.readme]?: string;
[RegistryPolicyTemplateKeys.multiple]?: boolean;
}
@@ -148,15 +159,19 @@ export enum RegistryInputKeys {
description = 'description',
template_path = 'template_path',
condition = 'condition',
+ input_group = 'input_group',
vars = 'vars',
}
+export type RegistryInputGroup = 'logs' | 'metrics';
+
export interface RegistryInput {
[RegistryInputKeys.type]: string;
[RegistryInputKeys.title]: string;
[RegistryInputKeys.description]: string;
[RegistryInputKeys.template_path]?: string;
[RegistryInputKeys.condition]?: string;
+ [RegistryInputKeys.input_group]?: RegistryInputGroup;
[RegistryInputKeys.vars]?: RegistryVarsEntry[];
}
@@ -273,7 +288,7 @@ export interface RegistryDataStream {
[RegistryDataStreamKeys.streams]?: RegistryStream[];
[RegistryDataStreamKeys.package]: string;
[RegistryDataStreamKeys.path]: string;
- [RegistryDataStreamKeys.ingest_pipeline]: string;
+ [RegistryDataStreamKeys.ingest_pipeline]?: string;
[RegistryDataStreamKeys.elasticsearch]?: RegistryElasticsearch;
[RegistryDataStreamKeys.dataset_is_prefix]?: boolean;
}
@@ -307,7 +322,7 @@ export interface RegistryVarsEntry {
[RegistryVarsEntryKeys.required]?: boolean;
[RegistryVarsEntryKeys.show_user]?: boolean;
[RegistryVarsEntryKeys.multi]?: boolean;
- [RegistryVarsEntryKeys.default]?: string | string[];
+ [RegistryVarsEntryKeys.default]?: string | string[] | boolean;
[RegistryVarsEntryKeys.os]?: {
[key: string]: {
default: string | string[];
@@ -329,8 +344,11 @@ type Merge = Omit & {
+ integration?: string;
+ id: string;
+};
-export type PackageListItem = Installable;
export type PackagesGroupedByStatus = Record, PackageList>;
export type PackageInfo =
| Installable>
diff --git a/x-pack/plugins/fleet/common/types/models/package_policy.ts b/x-pack/plugins/fleet/common/types/models/package_policy.ts
index 04362e6ff9402..c0b74c2a7b025 100644
--- a/x-pack/plugins/fleet/common/types/models/package_policy.ts
+++ b/x-pack/plugins/fleet/common/types/models/package_policy.ts
@@ -58,6 +58,7 @@ export interface NewPackagePolicy {
output_id: string;
package?: PackagePolicyPackage;
inputs: NewPackagePolicyInput[];
+ vars?: PackagePolicyConfigRecord;
}
export interface UpdatePackagePolicy extends NewPackagePolicy {
diff --git a/x-pack/plugins/fleet/common/types/models/package_spec.ts b/x-pack/plugins/fleet/common/types/models/package_spec.ts
index 65be72cbb7b6b..57aaa0230e647 100644
--- a/x-pack/plugins/fleet/common/types/models/package_spec.ts
+++ b/x-pack/plugins/fleet/common/types/models/package_spec.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import type { RegistryPolicyTemplate } from './epm';
+import type { RegistryPolicyTemplate, RegistryVarsEntry } from './epm';
// Based on https://github.com/elastic/package-spec/blob/master/versions/1/manifest.spec.yml#L8
export interface PackageSpecManifest {
@@ -22,6 +22,7 @@ export interface PackageSpecManifest {
icons?: PackageSpecIcon[];
screenshots?: PackageSpecScreenshot[];
policy_templates?: RegistryPolicyTemplate[];
+ vars?: RegistryVarsEntry[];
owner: { github: string };
}
diff --git a/x-pack/plugins/fleet/common/types/rest_spec/epm.ts b/x-pack/plugins/fleet/common/types/rest_spec/epm.ts
index e5c7ace420c73..51772eadca69e 100644
--- a/x-pack/plugins/fleet/common/types/rest_spec/epm.ts
+++ b/x-pack/plugins/fleet/common/types/rest_spec/epm.ts
@@ -8,8 +8,7 @@
import type {
AssetReference,
CategorySummaryList,
- Installable,
- RegistrySearchResult,
+ PackageList,
PackageInfo,
PackageUsageStats,
InstallType,
@@ -18,6 +17,7 @@ import type {
export interface GetCategoriesRequest {
query: {
experimental?: boolean;
+ include_policy_templates?: boolean;
};
}
@@ -33,7 +33,7 @@ export interface GetPackagesRequest {
}
export interface GetPackagesResponse {
- response: Array>;
+ response: PackageList;
}
export interface GetLimitedPackagesResponse {
diff --git a/x-pack/plugins/fleet/public/applications/fleet/components/package_icon.tsx b/x-pack/plugins/fleet/public/applications/fleet/components/package_icon.tsx
index cb0b02527f756..bb84a79056978 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/components/package_icon.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/components/package_icon.tsx
@@ -14,7 +14,7 @@ import { usePackageIconType } from '../hooks';
export const PackageIcon: React.FunctionComponent<
UsePackageIconType & Omit
-> = ({ packageName, version, icons, tryApi, ...euiIconProps }) => {
- const iconType = usePackageIconType({ packageName, version, icons, tryApi });
+> = ({ packageName, integrationName, version, icons, tryApi, ...euiIconProps }) => {
+ const iconType = usePackageIconType({ packageName, integrationName, version, icons, tryApi });
return ;
};
diff --git a/x-pack/plugins/fleet/public/applications/fleet/constants/page_paths.ts b/x-pack/plugins/fleet/public/applications/fleet/constants/page_paths.ts
index bcb450d5ec94e..27df7a4ebf11d 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/constants/page_paths.ts
+++ b/x-pack/plugins/fleet/public/applications/fleet/constants/page_paths.ts
@@ -56,7 +56,7 @@ export const PAGE_ROUTING_PATHS = {
policy_details: '/policies/:policyId/:tabId?',
policy_details_settings: '/policies/:policyId/settings',
add_integration_from_policy: '/policies/:policyId/add-integration',
- add_integration_to_policy: '/integrations/:pkgkey/add-integration',
+ add_integration_to_policy: '/integrations/:pkgkey/add-integration/:integration?',
edit_integration: '/policies/:policyId/edit-integration/:packagePolicyId',
fleet: '/fleet',
fleet_agent_list: '/fleet/agents',
@@ -77,17 +77,22 @@ export const pagePathGetters: {
integrations: () => '/integrations',
integrations_all: () => '/integrations',
integrations_installed: () => '/integrations/installed',
- integration_details_overview: ({ pkgkey }) => `/integrations/detail/${pkgkey}/overview`,
- integration_details_policies: ({ pkgkey }) => `/integrations/detail/${pkgkey}/policies`,
- integration_details_settings: ({ pkgkey }) => `/integrations/detail/${pkgkey}/settings`,
- integration_details_custom: ({ pkgkey }) => `/integrations/detail/${pkgkey}/custom`,
+ integration_details_overview: ({ pkgkey, integration }) =>
+ `/integrations/detail/${pkgkey}/overview${integration ? `?integration=${integration}` : ''}`,
+ integration_details_policies: ({ pkgkey, integration }) =>
+ `/integrations/detail/${pkgkey}/policies${integration ? `?integration=${integration}` : ''}`,
+ integration_details_settings: ({ pkgkey, integration }) =>
+ `/integrations/detail/${pkgkey}/settings${integration ? `?integration=${integration}` : ''}`,
+ integration_details_custom: ({ pkgkey, integration }) =>
+ `/integrations/detail/${pkgkey}/custom${integration ? `?integration=${integration}` : ''}`,
integration_policy_edit: ({ packagePolicyId }) =>
`/integrations/edit-integration/${packagePolicyId}`,
policies: () => '/policies',
policies_list: () => '/policies',
policy_details: ({ policyId, tabId }) => `/policies/${policyId}${tabId ? `/${tabId}` : ''}`,
add_integration_from_policy: ({ policyId }) => `/policies/${policyId}/add-integration`,
- add_integration_to_policy: ({ pkgkey }) => `/integrations/${pkgkey}/add-integration`,
+ add_integration_to_policy: ({ pkgkey, integration }) =>
+ `/integrations/${pkgkey}/add-integration${integration ? `/${integration}` : ''}`,
edit_integration: ({ policyId, packagePolicyId }) =>
`/policies/${policyId}/edit-integration/${packagePolicyId}`,
fleet: () => '/fleet',
diff --git a/x-pack/plugins/fleet/public/applications/fleet/hooks/use_package_icon_type.ts b/x-pack/plugins/fleet/public/applications/fleet/hooks/use_package_icon_type.ts
index 654cfc70ab418..5701dd100bfed 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/hooks/use_package_icon_type.ts
+++ b/x-pack/plugins/fleet/public/applications/fleet/hooks/use_package_icon_type.ts
@@ -16,7 +16,8 @@ import { sendGetPackageInfoByKey } from './index';
type Package = PackageInfo | PackageListItem;
export interface UsePackageIconType {
- packageName: Package['name'];
+ packageName: string;
+ integrationName?: string;
version: Package['version'];
icons?: Package['icons'];
tryApi?: boolean; // should it call API to try to find missing icons?
@@ -26,6 +27,7 @@ const CACHED_ICONS = new Map();
export const usePackageIconType = ({
packageName,
+ integrationName,
version,
icons: paramIcons,
tryApi = false,
@@ -33,13 +35,13 @@ export const usePackageIconType = ({
const { toPackageImage } = useLinks();
const [iconList, setIconList] = useState();
const [iconType, setIconType] = useState(''); // FIXME: use `empty` icon during initialization - see: https://github.com/elastic/kibana/issues/60622
- const pkgKey = `${packageName}-${version}`;
+ const cacheKey = `${packageName}-${version}${integrationName ? `-${integrationName}` : ''}`;
// Generates an icon path or Eui Icon name based on an icon list from the package
// or by using the package name against logo icons from Eui
useEffect(() => {
- if (CACHED_ICONS.has(pkgKey)) {
- setIconType(CACHED_ICONS.get(pkgKey) || '');
+ if (CACHED_ICONS.has(cacheKey)) {
+ setIconType(CACHED_ICONS.get(cacheKey) || '');
return;
}
const svgIcons = (paramIcons || iconList)?.filter(
@@ -48,29 +50,29 @@ export const usePackageIconType = ({
const localIconSrc =
Array.isArray(svgIcons) && toPackageImage(svgIcons[0], packageName, version);
if (localIconSrc) {
- CACHED_ICONS.set(pkgKey, localIconSrc);
- setIconType(CACHED_ICONS.get(pkgKey) || '');
+ CACHED_ICONS.set(cacheKey, localIconSrc);
+ setIconType(CACHED_ICONS.get(cacheKey) || '');
return;
}
const euiLogoIcon = ICON_TYPES.find((key) => key.toLowerCase() === `logo${packageName}`);
if (euiLogoIcon) {
- CACHED_ICONS.set(pkgKey, euiLogoIcon);
+ CACHED_ICONS.set(cacheKey, euiLogoIcon);
setIconType(euiLogoIcon);
return;
}
if (tryApi && !paramIcons && !iconList) {
- sendGetPackageInfoByKey(pkgKey)
+ sendGetPackageInfoByKey(cacheKey)
.catch((error) => undefined) // Ignore API errors
.then((res) => {
- CACHED_ICONS.delete(pkgKey);
+ CACHED_ICONS.delete(cacheKey);
setIconList(res?.data?.response?.icons);
});
}
- CACHED_ICONS.set(pkgKey, 'package');
+ CACHED_ICONS.set(cacheKey, 'package');
setIconType('package');
- }, [paramIcons, pkgKey, toPackageImage, iconList, packageName, iconType, tryApi, version]);
+ }, [paramIcons, cacheKey, toPackageImage, iconList, packageName, iconType, tryApi, version]);
return iconType;
};
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/index.tsx
index f312220d9faec..55861726af466 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/index.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/index.tsx
@@ -333,6 +333,7 @@ export const CreatePackagePolicyPage: React.FunctionComponent = () => {
packagePolicy={packagePolicy}
updatePackagePolicy={updatePackagePolicy}
validationResults={validationResults!}
+ submitAttempted={formState === 'INVALID'}
/>
{/* Only show the out-of-box configuration step if a UI extension is NOT registered */}
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/validate_package_policy.ts b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/validate_package_policy.ts
index e36a4b46039f4..de1b8df9f9597 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/validate_package_policy.ts
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/services/validate_package_policy.ts
@@ -7,6 +7,7 @@
import { i18n } from '@kbn/i18n';
import { safeLoad } from 'js-yaml';
+import { keyBy } from 'lodash';
import { getFlattenedObject, isValidNamespace } from '../../../../services';
import type {
@@ -32,12 +33,12 @@ export type PackagePolicyInputValidationResults = PackagePolicyConfigValidationR
streams?: Record;
};
-export interface PackagePolicyValidationResults {
+export type PackagePolicyValidationResults = {
name: Errors;
description: Errors;
namespace: Errors;
inputs: Record | null;
-}
+} & PackagePolicyConfigValidationResults;
/*
* Returns validation information for a given package policy and package info
@@ -67,6 +68,16 @@ export const validatePackagePolicy = (
validationResults.namespace = [namespaceValidation.error];
}
+ // Validate package-level vars
+ const packageVarsByName = keyBy(packageInfo.vars || [], 'name');
+ const packageVars = Object.entries(packagePolicy.vars || {});
+ if (packageVars.length) {
+ validationResults.vars = packageVars.reduce((results, [name, varEntry]) => {
+ results[name] = validatePackagePolicyConfig(varEntry, packageVarsByName[name]);
+ return results;
+ }, {} as ValidationEntry);
+ }
+
if (
!packageInfo.policy_templates ||
packageInfo.policy_templates.length === 0 ||
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/step_configure_package.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/step_configure_package.tsx
index 87c5af56f31b2..e64598e583d35 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/step_configure_package.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/step_configure_package.tsx
@@ -25,7 +25,6 @@ import { Loading } from '../../../components';
import type { PackagePolicyValidationResults } from './services';
import { PackagePolicyInputPanel } from './components';
-import type { CreatePackagePolicyFrom } from './types';
const findStreamsForInputType = (
inputType: string,
@@ -50,22 +49,12 @@ const findStreamsForInputType = (
};
export const StepConfigurePackagePolicy: React.FunctionComponent<{
- from?: CreatePackagePolicyFrom;
packageInfo: PackageInfo;
packagePolicy: NewPackagePolicy;
- packagePolicyId?: string;
updatePackagePolicy: (fields: Partial) => void;
validationResults: PackagePolicyValidationResults;
submitAttempted: boolean;
-}> = ({
- from = 'policy',
- packageInfo,
- packagePolicy,
- packagePolicyId,
- updatePackagePolicy,
- validationResults,
- submitAttempted,
-}) => {
+}> = ({ packageInfo, packagePolicy, updatePackagePolicy, validationResults, submitAttempted }) => {
// Configure inputs (and their streams)
// Assume packages only export one config template for now
const renderConfigureInputs = () =>
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/step_define_package_policy.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/step_define_package_policy.tsx
index c1626d2b14121..26a31a1394f78 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/step_define_package_policy.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/step_define_package_policy.tsx
@@ -5,14 +5,13 @@
* 2.0.
*/
-import React, { useEffect, useState } from 'react';
+import React, { memo, useEffect, useState } from 'react';
import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n/react';
import {
EuiFormRow,
EuiFieldText,
EuiButtonEmpty,
- EuiSpacer,
EuiText,
EuiComboBox,
EuiDescribedFormGroup,
@@ -21,180 +20,145 @@ import {
EuiLink,
} from '@elastic/eui';
-import type { AgentPolicy, PackageInfo, PackagePolicy, NewPackagePolicy } from '../../../types';
-import { packageToPackagePolicyInputs } from '../../../services';
+import type {
+ AgentPolicy,
+ PackageInfo,
+ PackagePolicy,
+ NewPackagePolicy,
+ RegistryVarsEntry,
+} from '../../../types';
+import { packageToPackagePolicy } from '../../../services';
import { Loading } from '../../../components';
import { pkgKeyFromPackageInfo } from '../../../services/pkg_key_from_package_info';
+import { isAdvancedVar } from './services';
import type { PackagePolicyValidationResults } from './services';
+import { PackagePolicyInputVarField } from './components';
export const StepDefinePackagePolicy: React.FunctionComponent<{
agentPolicy: AgentPolicy;
packageInfo: PackageInfo;
packagePolicy: NewPackagePolicy;
+ integration?: string;
updatePackagePolicy: (fields: Partial) => void;
validationResults: PackagePolicyValidationResults;
-}> = ({ agentPolicy, packageInfo, packagePolicy, updatePackagePolicy, validationResults }) => {
- // Form show/hide states
- const [isShowingAdvanced, setIsShowingAdvanced] = useState(false);
-
- // Update package policy's package and agent policy info
- useEffect(() => {
- const pkg = packagePolicy.package;
- const currentPkgKey = pkg ? pkgKeyFromPackageInfo(pkg) : '';
- const pkgKey = pkgKeyFromPackageInfo(packageInfo);
+ submitAttempted: boolean;
+}> = memo(
+ ({
+ agentPolicy,
+ packageInfo,
+ packagePolicy,
+ integration,
+ updatePackagePolicy,
+ validationResults,
+ submitAttempted,
+ }) => {
+ // Form show/hide states
+ const [isShowingAdvanced, setIsShowingAdvanced] = useState(false);
- // If package has changed, create shell package policy with input&stream values based on package info
- if (currentPkgKey !== pkgKey) {
- // Existing package policies on the agent policy using the package name, retrieve highest number appended to package policy name
- const pkgPoliciesNamePattern = new RegExp(`${packageInfo.name}-(\\d+)`);
- const pkgPoliciesWithMatchingNames = (agentPolicy.package_policies as PackagePolicy[])
- .filter((ds) => Boolean(ds.name.match(pkgPoliciesNamePattern)))
- .map((ds) => parseInt(ds.name.match(pkgPoliciesNamePattern)![1], 10))
- .sort((a, b) => a - b);
+ // Package-level vars
+ const requiredVars: RegistryVarsEntry[] = [];
+ const advancedVars: RegistryVarsEntry[] = [];
- updatePackagePolicy({
- // FIXME: Improve package policies name uniqueness - https://github.com/elastic/kibana/issues/72948
- name: `${packageInfo.name}-${
- pkgPoliciesWithMatchingNames.length
- ? pkgPoliciesWithMatchingNames[pkgPoliciesWithMatchingNames.length - 1] + 1
- : 1
- }`,
- package: {
- name: packageInfo.name,
- title: packageInfo.title,
- version: packageInfo.version,
- },
- inputs: packageToPackagePolicyInputs(packageInfo),
+ if (packageInfo.vars) {
+ packageInfo.vars.forEach((varDef) => {
+ if (isAdvancedVar(varDef)) {
+ advancedVars.push(varDef);
+ } else {
+ requiredVars.push(varDef);
+ }
});
}
- // If agent policy has changed, update package policy's agent policy ID and namespace
- if (packagePolicy.policy_id !== agentPolicy.id) {
- updatePackagePolicy({
- policy_id: agentPolicy.id,
- namespace: agentPolicy.namespace,
- });
- }
- }, [
- packagePolicy.package,
- packagePolicy.policy_id,
- agentPolicy,
- packageInfo,
- updatePackagePolicy,
- ]);
+ // Update package policy's package and agent policy info
+ useEffect(() => {
+ const pkg = packagePolicy.package;
+ const currentPkgKey = pkg ? pkgKeyFromPackageInfo(pkg) : '';
+ const pkgKey = pkgKeyFromPackageInfo(packageInfo);
- return validationResults ? (
-
-
-
+ // If package has changed, create shell package policy with input&stream values based on package info
+ if (currentPkgKey !== pkgKey) {
+ // Existing package policies on the agent policy using the package name, retrieve highest number appended to package policy name
+ const pkgPoliciesNamePattern = new RegExp(`${packageInfo.name}-(\\d+)`);
+ const pkgPoliciesWithMatchingNames = (agentPolicy.package_policies as PackagePolicy[])
+ .filter((ds) => Boolean(ds.name.match(pkgPoliciesNamePattern)))
+ .map((ds) => parseInt(ds.name.match(pkgPoliciesNamePattern)![1], 10))
+ .sort((a, b) => a - b);
+
+ updatePackagePolicy(
+ packageToPackagePolicy(
+ packageInfo,
+ agentPolicy.id,
+ packagePolicy.output_id,
+ packagePolicy.namespace,
+ `${packageInfo.name}-${
+ pkgPoliciesWithMatchingNames.length
+ ? pkgPoliciesWithMatchingNames[pkgPoliciesWithMatchingNames.length - 1] + 1
+ : 1
+ }`,
+ packagePolicy.description
+ )
+ );
}
- description={
-
+
+ // If agent policy has changed, update package policy's agent policy ID and namespace
+ if (packagePolicy.policy_id !== agentPolicy.id) {
+ updatePackagePolicy({
+ policy_id: agentPolicy.id,
+ namespace: agentPolicy.namespace,
+ });
}
- >
- <>
- {/* Name */}
-
- }
- >
-
- updatePackagePolicy({
- name: e.target.value,
- })
- }
- data-test-subj="packagePolicyNameInput"
- />
-
+ }, [packagePolicy, agentPolicy, packageInfo, updatePackagePolicy, integration]);
- {/* Description */}
-
- }
- labelAppend={
-
-
-
- }
- isInvalid={!!validationResults.description}
- error={validationResults.description}
- >
-
- updatePackagePolicy({
- description: e.target.value,
- })
- }
- data-test-subj="packagePolicyDescriptionInput"
+
+ }
+ description={
+
-
-
-
- {/* Advanced options toggle */}
-
-
- setIsShowingAdvanced(!isShowingAdvanced)}
- flush="left"
+ }
+ >
+
+ {/* Name */}
+
+
+ }
>
-
+ updatePackagePolicy({
+ name: e.target.value,
+ })
+ }
+ data-test-subj="packagePolicyNameInput"
/>
-
+
- {!isShowingAdvanced && !!validationResults.namespace ? (
-
-
-
-
-
- ) : null}
-
- {/* Advanced options content */}
- {/* Todo: Populate list of existing namespaces */}
- {isShowingAdvanced ? (
- <>
-
+ {/* Description */}
+
}
helpText={
@@ -216,30 +180,156 @@ export const StepDefinePackagePolicy: React.FunctionComponent<{
}}
/>
}
+ labelAppend={
+
+
+
+ }
+ isInvalid={!!validationResults.description}
+ error={validationResults.description}
>
- {
- updatePackagePolicy({
- namespace: newNamespace,
- });
- }}
- onChange={(newNamespaces: Array<{ label: string }>) => {
+
updatePackagePolicy({
- namespace: newNamespaces.length ? newNamespaces[0].label : '',
- });
- }}
+ description: e.target.value,
+ })
+ }
+ data-test-subj="packagePolicyDescriptionInput"
/>
- >
- ) : null}
- >
-
- ) : (
-
- );
-};
+
+
+ {/* Required vars */}
+ {requiredVars.map((varDef) => {
+ const { name: varName, type: varType } = varDef;
+ if (!packagePolicy.vars || !packagePolicy.vars[varName]) return null;
+ const value = packagePolicy.vars[varName].value;
+ return (
+
+ {
+ updatePackagePolicy({
+ vars: {
+ ...packagePolicy.vars,
+ [varName]: {
+ type: varType,
+ value: newValue,
+ },
+ },
+ });
+ }}
+ errors={validationResults.vars![varName]}
+ forceShowErrors={submitAttempted}
+ />
+
+ );
+ })}
+
+ {/* Advanced options toggle */}
+
+
+
+ setIsShowingAdvanced(!isShowingAdvanced)}
+ flush="left"
+ >
+
+
+
+ {!isShowingAdvanced && !!validationResults.namespace ? (
+
+
+
+
+
+ ) : null}
+
+
+
+ {/* Advanced options content */}
+ {/* Todo: Populate list of existing namespaces */}
+ {isShowingAdvanced ? (
+
+
+
+
+ }
+ >
+ {
+ updatePackagePolicy({
+ namespace: newNamespace,
+ });
+ }}
+ onChange={(newNamespaces: Array<{ label: string }>) => {
+ updatePackagePolicy({
+ namespace: newNamespaces.length ? newNamespaces[0].label : '',
+ });
+ }}
+ />
+
+
+ {/* Advanced vars */}
+ {advancedVars.map((varDef) => {
+ const { name: varName, type: varType } = varDef;
+ if (!packagePolicy.vars || !packagePolicy.vars[varName]) return null;
+ const value = packagePolicy.vars![varName].value;
+ return (
+
+ {
+ updatePackagePolicy({
+ vars: {
+ ...packagePolicy.vars,
+ [varName]: {
+ type: varType,
+ value: newValue,
+ },
+ },
+ });
+ }}
+ errors={validationResults.vars![varName]}
+ forceShowErrors={submitAttempted}
+ />
+
+ );
+ })}
+
+
+ ) : null}
+
+
+ ) : (
+
+ );
+ }
+);
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/index.tsx
index 8df8b7ebcd4cf..3b9b5696ff7bd 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/index.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/index.tsx
@@ -351,15 +351,14 @@ export const EditPackagePolicyForm = memo<{
packagePolicy={packagePolicy}
updatePackagePolicy={updatePackagePolicy}
validationResults={validationResults!}
+ submitAttempted={formState === 'INVALID'}
/>
{/* Only show the out-of-box configuration step if a UI extension is NOT registered */}
{!ExtensionView && (
}
- href={getHref('integration_details_overview', { pkgkey: `${name}-${urlVersion}` })}
+ icon={
+
+ }
+ href={getHref('integration_details_overview', {
+ pkgkey: `${name}-${urlVersion}`,
+ ...(integration ? { integration } : {}),
+ })}
betaBadgeLabel={release && release !== 'ga' ? RELEASE_BADGE_LABEL[release] : undefined}
betaBadgeTooltipContent={
release && release !== 'ga' ? RELEASE_BADGE_DESCRIPTION[release] : undefined
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/epm/components/package_list_grid.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/epm/components/package_list_grid.tsx
index b79255e6889ad..d4d2b481950f6 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/epm/components/package_list_grid.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/epm/components/package_list_grid.tsx
@@ -25,7 +25,6 @@ import { FormattedMessage } from '@kbn/i18n/react';
import { Loading } from '../../../components';
import type { PackageList } from '../../../types';
import { useLocalSearch, searchIdField } from '../hooks';
-import { pkgKeyFromPackageInfo } from '../../../services/pkg_key_from_package_info';
import { PackageCard } from './package_card';
@@ -153,11 +152,13 @@ function GridColumn({ list, showMissingIntegrationMessage = false }: GridColumnP
return (
{list.length ? (
- list.map((item) => (
-
-
-
- ))
+ list.map((item) => {
+ return (
+
+
+
+ );
+ })
) : (
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/epm/hooks/use_local_search.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/epm/hooks/use_local_search.tsx
index efdc2f3884542..43db5657b0615 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/epm/hooks/use_local_search.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/epm/hooks/use_local_search.tsx
@@ -8,11 +8,10 @@
import { Search as LocalSearch } from 'js-search';
import { useEffect, useRef } from 'react';
-import type { PackageList, PackageListItem } from '../../../types';
+import type { PackageList } from '../../../types';
-export type SearchField = keyof PackageListItem;
-export const searchIdField: SearchField = 'name';
-export const fieldsToSearch: SearchField[] = ['description', 'name', 'title'];
+export const searchIdField = 'id';
+export const fieldsToSearch = ['description', 'name', 'title'];
export function useLocalSearch(packageList: PackageList) {
const localSearchRef = useRef(null);
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/epm/screens/detail/components/icon_panel.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/epm/screens/detail/components/icon_panel.tsx
index 6d5d52789a975..8a82397bd0193 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/epm/screens/detail/components/icon_panel.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/epm/screens/detail/components/icon_panel.tsx
@@ -37,10 +37,11 @@ const Panel = styled(EuiPanel)`
export function IconPanel({
packageName,
+ integrationName,
version,
icons,
-}: Pick) {
- const iconType = usePackageIconType({ packageName, version, icons });
+}: Pick) {
+ const iconType = usePackageIconType({ packageName, integrationName, version, icons });
return (
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/epm/screens/detail/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/epm/screens/detail/index.tsx
index a4f465cd3d619..05d2f53688655 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/epm/screens/detail/index.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/epm/screens/detail/index.tsx
@@ -74,7 +74,9 @@ export function Detail() {
const { getHref, getPath } = useLink();
const hasWriteCapabilites = useCapabilities().write;
const history = useHistory();
- const location = useLocation();
+ const { pathname, search, hash } = useLocation();
+ const queryParams = useMemo(() => new URLSearchParams(search), [search]);
+ const integration = useMemo(() => queryParams.get('integration'), [queryParams]);
// Package info state
const [packageInfo, setPackageInfo] = useState(null);
@@ -120,6 +122,16 @@ export function Detail() {
}
}, [packageInfoData, setPackageInstallStatus, setPackageInfo]);
+ const integrationInfo = useMemo(
+ () =>
+ integration
+ ? packageInfo?.policy_templates?.find(
+ (policyTemplate) => policyTemplate.name === integration
+ )
+ : undefined,
+ [integration, packageInfo]
+ );
+
const headerLeftContent = useMemo(
() => (
@@ -147,8 +159,9 @@ export function Detail() {
) : (
)}
@@ -157,7 +170,7 @@ export function Detail() {
{/* Render space in place of package name while package info loads to prevent layout from jumping around */}
- {packageInfo?.title || '\u00A0'}
+ {integrationInfo?.title || packageInfo?.title || '\u00A0'}
{packageInfo?.release && packageInfo.release !== 'ga' ? (
@@ -174,7 +187,7 @@ export function Detail() {
),
- [getHref, isLoading, packageInfo]
+ [getHref, integrationInfo, isLoading, packageInfo]
);
const handleAddIntegrationPolicyClick = useCallback(
@@ -184,9 +197,9 @@ export function Detail() {
// The object below, given to `createHref` is explicitly accessing keys of `location` in order
// to ensure that dependencies to this `useCallback` is set correctly (because `location` is mutable)
const currentPath = history.createHref({
- pathname: location.pathname,
- search: location.search,
- hash: location.hash,
+ pathname,
+ search,
+ hash,
});
const redirectToPath: CreatePackagePolicyRouteState['onSaveNavigateTo'] &
CreatePackagePolicyRouteState['onCancelNavigateTo'] = [
@@ -204,11 +217,12 @@ export function Detail() {
history.push({
pathname: getPath('add_integration_to_policy', {
pkgkey,
+ ...(integration ? { integration } : {}),
}),
state: redirectBackRouteState,
});
},
- [getPath, history, location.hash, location.pathname, location.search, pkgkey]
+ [getPath, history, hash, pathname, search, pkgkey, integration]
);
const headerRightContent = useMemo(
@@ -255,6 +269,7 @@ export function Detail() {
iconType="plusInCircle"
href={getHref('add_integration_to_policy', {
pkgkey,
+ ...(integration ? { integration } : {}),
})}
onClick={handleAddIntegrationPolicyClick}
data-test-subj="addIntegrationPolicyButton"
@@ -263,7 +278,7 @@ export function Detail() {
id="xpack.fleet.epm.addPackagePolicyButtonText"
defaultMessage="Add {packageName}"
values={{
- packageName: packageInfo.title,
+ packageName: integrationInfo?.title || packageInfo.title,
}}
/>
@@ -290,6 +305,8 @@ export function Detail() {
getHref,
handleAddIntegrationPolicyClick,
hasWriteCapabilites,
+ integration,
+ integrationInfo,
packageInfo,
packageInstallStatus,
pkgkey,
@@ -316,6 +333,7 @@ export function Detail() {
'data-test-subj': `tab-overview`,
href: getHref('integration_details_overview', {
pkgkey: packageInfoKey,
+ ...(integration ? { integration } : {}),
}),
},
];
@@ -333,6 +351,7 @@ export function Detail() {
'data-test-subj': `tab-policies`,
href: getHref('integration_details_policies', {
pkgkey: packageInfoKey,
+ ...(integration ? { integration } : {}),
}),
});
}
@@ -349,6 +368,7 @@ export function Detail() {
'data-test-subj': `tab-settings`,
href: getHref('integration_details_settings', {
pkgkey: packageInfoKey,
+ ...(integration ? { integration } : {}),
}),
});
@@ -365,12 +385,13 @@ export function Detail() {
'data-test-subj': `tab-custom`,
href: getHref('integration_details_custom', {
pkgkey: packageInfoKey,
+ ...(integration ? { integration } : {}),
}),
});
}
return tabs;
- }, [getHref, packageInfo, panel, showCustomTab, packageInstallStatus]);
+ }, [packageInfo, panel, getHref, integration, packageInstallStatus, showCustomTab]);
return (
- {packageInfo ? : null}
+ {integrationInfo ? : null}
{packageInfoError ? (
-
+
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/epm/screens/detail/overview/overview.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/epm/screens/detail/overview/overview.tsx
index 3585e2063734b..945859ac81ffd 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/epm/screens/detail/overview/overview.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/epm/screens/detail/overview/overview.tsx
@@ -4,11 +4,11 @@
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
-import React, { memo } from 'react';
+import React, { memo, useMemo } from 'react';
import styled from 'styled-components';
import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui';
-import type { PackageInfo } from '../../../../../types';
+import type { PackageInfo, RegistryPolicyTemplate } from '../../../../../types';
import { Screenshots } from './screenshots';
import { Readme } from './readme';
@@ -16,6 +16,7 @@ import { Details } from './details';
interface Props {
packageInfo: PackageInfo;
+ integrationInfo?: RegistryPolicyTemplate;
}
const LeftColumn = styled(EuiFlexItem)`
@@ -25,14 +26,19 @@ const LeftColumn = styled(EuiFlexItem)`
}
`;
-export const OverviewPage: React.FC = memo(({ packageInfo }: Props) => {
+export const OverviewPage: React.FC = memo(({ packageInfo, integrationInfo }) => {
+ const screenshots = useMemo(() => integrationInfo?.screenshots || packageInfo.screenshots || [], [
+ integrationInfo,
+ packageInfo.screenshots,
+ ]);
+
return (
{packageInfo.readme ? (
@@ -40,10 +46,10 @@ export const OverviewPage: React.FC = memo(({ packageInfo }: Props) => {
- {packageInfo.screenshots && packageInfo.screenshots.length ? (
+ {screenshots.length ? (
diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/epm/screens/home/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/epm/screens/home/index.tsx
index e9bd6b7b61385..922628e7b68b1 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/sections/epm/screens/home/index.tsx
+++ b/x-pack/plugins/fleet/public/applications/fleet/sections/epm/screens/home/index.tsx
@@ -5,22 +5,24 @@
* 2.0.
*/
-import React, { useState } from 'react';
+import React, { memo, useState, useMemo } from 'react';
import { useRouteMatch, Switch, Route, useLocation, useHistory } from 'react-router-dom';
+import semverLt from 'semver/functions/lt';
import type { Props as EuiTabProps } from '@elastic/eui/src/components/tabs/tab';
import { i18n } from '@kbn/i18n';
import { installationStatuses } from '../../../../../../../common/constants';
import { PAGE_ROUTING_PATHS } from '../../../../constants';
import { useLink, useGetCategories, useGetPackages, useBreadcrumbs } from '../../../../hooks';
+import { doesPackageHaveIntegrations } from '../../../../services';
import { WithHeaderLayout } from '../../../../layouts';
-import type { CategorySummaryItem } from '../../../../types';
+import type { CategorySummaryItem, PackageList } from '../../../../types';
import { PackageListGrid } from '../../components/package_list_grid';
import { CategoryFacets } from './category_facets';
import { HeroCopy, HeroImage } from './header';
-export function EPMHomePage() {
+export const EPMHomePage: React.FC = memo(() => {
const {
params: { tabId },
} = useRouteMatch<{ tabId?: string }>();
@@ -61,51 +63,94 @@ export function EPMHomePage() {
);
-}
-
-function InstalledPackages() {
+});
+
+// Packages can export multiple integrations, aka `policy_templates`
+// In the case where packages ship >1 `policy_templates`, we flatten out the
+// list of packages by bringing all integrations to top-level so that
+// each integration is displayed as its own tile
+const packageListToIntegrationsList = (packages: PackageList): PackageList => {
+ return packages.reduce((acc: PackageList, pkg) => {
+ const { policy_templates: policyTemplates = [], ...restOfPackage } = pkg;
+ return [
+ ...acc,
+ restOfPackage,
+ ...(doesPackageHaveIntegrations(pkg)
+ ? policyTemplates.map((integration) => {
+ const { name, title, description, icons } = integration;
+ return {
+ ...restOfPackage,
+ id: `${restOfPackage}-${name}`,
+ integration: name,
+ title,
+ description,
+ icons: icons || restOfPackage.icons,
+ };
+ })
+ : []),
+ ];
+ }, []);
+};
+
+const InstalledPackages: React.FC = memo(() => {
useBreadcrumbs('integrations_installed');
const { data: allPackages, isLoading: isLoadingPackages } = useGetPackages({
experimental: true,
});
const [selectedCategory, setSelectedCategory] = useState('');
- const title = i18n.translate('xpack.fleet.epmList.installedTitle', {
- defaultMessage: 'Installed integrations',
- });
-
- const allInstalledPackages =
- allPackages && allPackages.response
- ? allPackages.response.filter((pkg) => pkg.status === installationStatuses.Installed)
- : [];
+ const allInstalledPackages = useMemo(
+ () =>
+ (allPackages?.response || []).filter((pkg) => pkg.status === installationStatuses.Installed),
+ [allPackages?.response]
+ );
- const updatablePackages = allInstalledPackages.filter(
- (item) => 'savedObject' in item && item.version > item.savedObject.attributes.version
+ const updatablePackages = useMemo(
+ () =>
+ allInstalledPackages.filter(
+ (item) =>
+ 'savedObject' in item && semverLt(item.savedObject.attributes.version, item.version)
+ ),
+ [allInstalledPackages]
);
- const categories = [
- {
- id: '',
- title: i18n.translate('xpack.fleet.epmList.allFilterLinkText', {
- defaultMessage: 'All',
- }),
- count: allInstalledPackages.length,
- },
- {
- id: 'updates_available',
- title: i18n.translate('xpack.fleet.epmList.updatesAvailableFilterLinkText', {
- defaultMessage: 'Updates available',
+ const title = useMemo(
+ () =>
+ i18n.translate('xpack.fleet.epmList.installedTitle', {
+ defaultMessage: 'Installed integrations',
}),
- count: updatablePackages.length,
- },
- ];
+ []
+ );
- const controls = (
- setSelectedCategory(id)}
- />
+ const categories = useMemo(
+ () => [
+ {
+ id: '',
+ title: i18n.translate('xpack.fleet.epmList.allFilterLinkText', {
+ defaultMessage: 'All',
+ }),
+ count: allInstalledPackages.length,
+ },
+ {
+ id: 'updates_available',
+ title: i18n.translate('xpack.fleet.epmList.updatesAvailableFilterLinkText', {
+ defaultMessage: 'Updates available',
+ }),
+ count: updatablePackages.length,
+ },
+ ],
+ [allInstalledPackages.length, updatablePackages.length]
+ );
+
+ const controls = useMemo(
+ () => (
+ setSelectedCategory(id)}
+ />
+ ),
+ [categories, selectedCategory]
);
return (
@@ -116,9 +161,9 @@ function InstalledPackages() {
list={selectedCategory === 'updates_available' ? updatablePackages : allInstalledPackages}
/>
);
-}
+});
-function AvailablePackages() {
+const AvailablePackages: React.FC = memo(() => {
useBreadcrumbs('integrations_all');
const history = useHistory();
const queryParams = new URLSearchParams(useLocation().search);
@@ -128,24 +173,36 @@ function AvailablePackages() {
const { data: categoryPackagesRes, isLoading: isLoadingCategoryPackages } = useGetPackages({
category: selectedCategory,
});
- const { data: categoriesRes, isLoading: isLoadingCategories } = useGetCategories();
- const packages =
- categoryPackagesRes && categoryPackagesRes.response ? categoryPackagesRes.response : [];
-
- const title = i18n.translate('xpack.fleet.epmList.allTitle', {
- defaultMessage: 'Browse by category',
+ const { data: categoriesRes, isLoading: isLoadingCategories } = useGetCategories({
+ include_policy_templates: true,
});
+ const packages = useMemo(
+ () => packageListToIntegrationsList(categoryPackagesRes?.response || []),
+ [categoryPackagesRes]
+ );
- const categories = [
- {
- id: '',
- title: i18n.translate('xpack.fleet.epmList.allPackagesFilterLinkText', {
- defaultMessage: 'All',
+ const title = useMemo(
+ () =>
+ i18n.translate('xpack.fleet.epmList.allTitle', {
+ defaultMessage: 'Browse by category',
}),
- count: allPackagesRes?.response?.length || 0,
- },
- ...(categoriesRes ? categoriesRes.response : []),
- ];
+ []
+ );
+
+ const categories = useMemo(
+ () => [
+ {
+ id: '',
+ title: i18n.translate('xpack.fleet.epmList.allPackagesFilterLinkText', {
+ defaultMessage: 'All',
+ }),
+ count: allPackagesRes?.response?.length || 0,
+ },
+ ...(categoriesRes ? categoriesRes.response : []),
+ ],
+ [allPackagesRes?.response?.length, categoriesRes]
+ );
+
const controls = categories ? (
);
-}
+});
diff --git a/x-pack/plugins/fleet/public/applications/fleet/services/index.ts b/x-pack/plugins/fleet/public/applications/fleet/services/index.ts
index 8d59496d8f9d0..07fb04628ea2e 100644
--- a/x-pack/plugins/fleet/public/applications/fleet/services/index.ts
+++ b/x-pack/plugins/fleet/public/applications/fleet/services/index.ts
@@ -20,6 +20,7 @@ export {
outputRoutesService,
settingsRoutesService,
appRoutesService,
+ packageToPackagePolicy,
packageToPackagePolicyInputs,
storedPackagePoliciesToAgentInputs,
fullAgentPolicyToYaml,
@@ -28,4 +29,5 @@ export {
isValidNamespace,
LicenseService,
isAgentUpgradeable,
+ doesPackageHaveIntegrations,
} from '../../../../common';
diff --git a/x-pack/plugins/fleet/server/routes/package_policy/handlers.test.ts b/x-pack/plugins/fleet/server/routes/package_policy/handlers.test.ts
index 7f2b9d93e2df7..5aa400d6443e6 100644
--- a/x-pack/plugins/fleet/server/routes/package_policy/handlers.test.ts
+++ b/x-pack/plugins/fleet/server/routes/package_policy/handlers.test.ts
@@ -24,7 +24,9 @@ jest.mock('../../services/package_policy', (): {
} => {
return {
packagePolicyService: {
- compilePackagePolicyInputs: jest.fn((packageInfo, dataInputs) => Promise.resolve(dataInputs)),
+ compilePackagePolicyInputs: jest.fn((packageInfo, vars, dataInputs) =>
+ Promise.resolve(dataInputs)
+ ),
buildPackagePolicyFromPackage: jest.fn(),
bulkCreate: jest.fn(),
create: jest.fn((soClient, esClient, newData) =>
diff --git a/x-pack/plugins/fleet/server/saved_objects/index.ts b/x-pack/plugins/fleet/server/saved_objects/index.ts
index 4331baef11001..10e5a6ac57f57 100644
--- a/x-pack/plugins/fleet/server/saved_objects/index.ts
+++ b/x-pack/plugins/fleet/server/saved_objects/index.ts
@@ -229,6 +229,7 @@ const getSavedObjectTypes = (
version: { type: 'keyword' },
},
},
+ vars: { type: 'flattened' },
inputs: {
type: 'nested',
enabled: false,
diff --git a/x-pack/plugins/fleet/server/services/epm/elasticsearch/ingest_pipeline/ingest_pipelines.test.ts b/x-pack/plugins/fleet/server/services/epm/elasticsearch/ingest_pipeline/ingest_pipelines.test.ts
index 097f9ce28c7d1..f915e871b98f7 100644
--- a/x-pack/plugins/fleet/server/services/epm/elasticsearch/ingest_pipeline/ingest_pipelines.test.ts
+++ b/x-pack/plugins/fleet/server/services/epm/elasticsearch/ingest_pipeline/ingest_pipelines.test.ts
@@ -121,7 +121,7 @@ test('getPipelineNameForInstallation gets correct name', () => {
const packageVersion = '1.0.1';
const pipelineRefName = 'pipeline-json';
const pipelineEntryNameForInstallation = getPipelineNameForInstallation({
- pipelineName: dataStream.ingest_pipeline,
+ pipelineName: dataStream.ingest_pipeline!,
dataStream,
packageVersion,
});
diff --git a/x-pack/plugins/fleet/server/services/epm/packages/get.ts b/x-pack/plugins/fleet/server/services/epm/packages/get.ts
index 706b2679ed2eb..e4e4f9c55fd2b 100644
--- a/x-pack/plugins/fleet/server/services/epm/packages/get.ts
+++ b/x-pack/plugins/fleet/server/services/epm/packages/get.ts
@@ -18,6 +18,7 @@ import type {
ArchivePackage,
RegistryPackage,
EpmPackageAdditions,
+ GetCategoriesRequest,
} from '../../../../common/types';
import type { Installation, PackageInfo } from '../../../types';
import { IngestManagerError } from '../../../errors';
@@ -35,7 +36,7 @@ function nameAsTitle(name: string) {
return name.charAt(0).toUpperCase() + name.substr(1).toLowerCase();
}
-export async function getCategories(options: Registry.CategoriesParams) {
+export async function getCategories(options: GetCategoriesRequest['query']) {
return Registry.fetchCategories(options);
}
@@ -47,7 +48,7 @@ export async function getPackages(
const { savedObjectsClient, experimental, category } = options;
const registryItems = await Registry.fetchList({ category, experimental }).then((items) => {
return items.map((item) =>
- Object.assign({}, item, { title: item.title || nameAsTitle(item.name) })
+ Object.assign({}, item, { title: item.title || nameAsTitle(item.name) }, { id: item.name })
);
});
// get the installed packages
diff --git a/x-pack/plugins/fleet/server/services/epm/registry/index.ts b/x-pack/plugins/fleet/server/services/epm/registry/index.ts
index 9e04d75f36a16..5ee7e198555c5 100644
--- a/x-pack/plugins/fleet/server/services/epm/registry/index.ts
+++ b/x-pack/plugins/fleet/server/services/epm/registry/index.ts
@@ -20,6 +20,7 @@ import type {
RegistryPackage,
RegistrySearchResults,
RegistrySearchResult,
+ GetCategoriesRequest,
} from '../../../types';
import {
getArchiveFilelist,
@@ -45,10 +46,6 @@ export interface SearchParams {
experimental?: boolean;
}
-export interface CategoriesParams {
- experimental?: boolean;
-}
-
/**
* Extract the package name and package version from a string.
*
@@ -150,13 +147,18 @@ function setKibanaVersion(url: URL) {
}
}
-export async function fetchCategories(params?: CategoriesParams): Promise {
+export async function fetchCategories(
+ params?: GetCategoriesRequest['query']
+): Promise {
const registryUrl = getRegistryUrl();
const url = new URL(`${registryUrl}/categories`);
if (params) {
if (params.experimental) {
url.searchParams.set('experimental', params.experimental.toString());
}
+ if (params.include_policy_templates) {
+ url.searchParams.set('include_policy_templates', params.include_policy_templates.toString());
+ }
}
setKibanaVersion(url);
diff --git a/x-pack/plugins/fleet/server/services/package_policy.test.ts b/x-pack/plugins/fleet/server/services/package_policy.test.ts
index ab2bc944a1932..46e5db3a95864 100644
--- a/x-pack/plugins/fleet/server/services/package_policy.test.ts
+++ b/x-pack/plugins/fleet/server/services/package_policy.test.ts
@@ -34,6 +34,12 @@ paths:
{{#each paths}}
- {{this}}
{{/each}}
+{{#if hosts}}
+hosts:
+{{#each hosts}}
+- {{this}}
+{{/each}}
+{{/if}}
`),
},
];
@@ -118,6 +124,7 @@ describe('Package policy service', () => {
},
],
} as unknown) as PackageInfo,
+ {},
[
{
type: 'log',
@@ -180,6 +187,7 @@ describe('Package policy service', () => {
},
],
} as unknown) as PackageInfo,
+ {},
[
{
type: 'log',
@@ -231,6 +239,74 @@ describe('Package policy service', () => {
},
],
} as unknown) as PackageInfo,
+ {},
+ [
+ {
+ type: 'log',
+ enabled: true,
+ vars: {
+ paths: {
+ value: ['/var/log/set.log'],
+ },
+ },
+ streams: [
+ {
+ id: 'datastream01',
+ data_stream: { dataset: 'package.dataset1', type: 'logs' },
+ enabled: true,
+ },
+ ],
+ },
+ ]
+ );
+
+ expect(inputs).toEqual([
+ {
+ type: 'log',
+ enabled: true,
+ vars: {
+ paths: {
+ value: ['/var/log/set.log'],
+ },
+ },
+ streams: [
+ {
+ id: 'datastream01',
+ data_stream: { dataset: 'package.dataset1', type: 'logs' },
+ enabled: true,
+ compiled_stream: {
+ metricset: ['dataset1'],
+ paths: ['/var/log/set.log'],
+ type: 'log',
+ },
+ },
+ ],
+ },
+ ]);
+ });
+
+ it('should work with config variables at the package level', async () => {
+ const inputs = await packagePolicyService.compilePackagePolicyInputs(
+ ({
+ data_streams: [
+ {
+ dataset: 'package.dataset1',
+ type: 'logs',
+ streams: [{ input: 'log', template_path: 'some_template_path.yml' }],
+ path: 'dataset1',
+ },
+ ],
+ policy_templates: [
+ {
+ inputs: [{ type: 'log' }],
+ },
+ ],
+ } as unknown) as PackageInfo,
+ {
+ hosts: {
+ value: ['localhost'],
+ },
+ },
[
{
type: 'log',
@@ -269,6 +345,7 @@ describe('Package policy service', () => {
metricset: ['dataset1'],
paths: ['/var/log/set.log'],
type: 'log',
+ hosts: ['localhost'],
},
},
],
@@ -286,6 +363,7 @@ describe('Package policy service', () => {
},
],
} as unknown) as PackageInfo,
+ {},
[
{
type: 'log',
@@ -334,6 +412,7 @@ describe('Package policy service', () => {
},
],
} as unknown) as PackageInfo,
+ {},
[
{
type: 'log',
@@ -380,6 +459,7 @@ describe('Package policy service', () => {
compiled_stream: {
metricset: ['dataset1'],
paths: ['/var/log/set.log'],
+ hosts: ['localhost'],
type: 'log',
},
},
@@ -397,6 +477,7 @@ describe('Package policy service', () => {
},
],
} as unknown) as PackageInfo,
+ {},
[]
);
@@ -412,6 +493,7 @@ describe('Package policy service', () => {
},
],
} as unknown) as PackageInfo,
+ {},
[]
);
diff --git a/x-pack/plugins/fleet/server/services/package_policy.ts b/x-pack/plugins/fleet/server/services/package_policy.ts
index 7c870415bc521..19ff55fbf2e73 100644
--- a/x-pack/plugins/fleet/server/services/package_policy.ts
+++ b/x-pack/plugins/fleet/server/services/package_policy.ts
@@ -128,7 +128,7 @@ class PackagePolicyService {
}
}
- inputs = await this.compilePackagePolicyInputs(pkgInfo, inputs);
+ inputs = await this.compilePackagePolicyInputs(pkgInfo, packagePolicy.vars || {}, inputs);
}
const isoDate = new Date().toISOString();
@@ -356,7 +356,7 @@ class PackagePolicyService {
pkgVersion: packagePolicy.package.version,
});
- inputs = await this.compilePackagePolicyInputs(pkgInfo, inputs);
+ inputs = await this.compilePackagePolicyInputs(pkgInfo, packagePolicy.vars || {}, inputs);
}
await soClient.update(
@@ -432,7 +432,7 @@ class PackagePolicyService {
): Promise {
const pkgInstall = await getInstallation({ savedObjectsClient: soClient, pkgName });
if (pkgInstall) {
- const [pkgInfo, defaultOutputId] = await Promise.all([
+ const [packageInfo, defaultOutputId] = await Promise.all([
getPackageInfo({
savedObjectsClient: soClient,
pkgName: pkgInstall.name,
@@ -440,23 +440,24 @@ class PackagePolicyService {
}),
outputService.getDefaultOutputId(soClient),
]);
- if (pkgInfo) {
+ if (packageInfo) {
if (!defaultOutputId) {
throw new Error('Default output is not set');
}
- return packageToPackagePolicy(pkgInfo, '', defaultOutputId);
+ return packageToPackagePolicy(packageInfo, '', defaultOutputId);
}
}
}
public async compilePackagePolicyInputs(
pkgInfo: PackageInfo,
+ vars: PackagePolicy['vars'],
inputs: PackagePolicyInput[]
): Promise {
const registryPkgInfo = await Registry.fetchInfo(pkgInfo.name, pkgInfo.version);
const inputsPromises = inputs.map(async (input) => {
- const compiledInput = await _compilePackagePolicyInput(registryPkgInfo, pkgInfo, input);
- const compiledStreams = await _compilePackageStreams(registryPkgInfo, pkgInfo, input);
+ const compiledInput = await _compilePackagePolicyInput(registryPkgInfo, pkgInfo, vars, input);
+ const compiledStreams = await _compilePackageStreams(registryPkgInfo, pkgInfo, vars, input);
return {
...input,
compiled_input: compiledInput,
@@ -506,6 +507,7 @@ function assignStreamIdToInput(packagePolicyId: string, input: NewPackagePolicyI
async function _compilePackagePolicyInput(
registryPkgInfo: RegistryPackage,
pkgInfo: PackageInfo,
+ vars: PackagePolicy['vars'],
input: PackagePolicyInput
) {
if ((!input.enabled || !pkgInfo.policy_templates?.[0]?.inputs?.length) ?? 0 > 0) {
@@ -531,8 +533,8 @@ async function _compilePackagePolicyInput(
}
return compileTemplate(
- // Populate template variables from input vars
- Object.assign({}, input.vars),
+ // Populate template variables from package- and input-level vars
+ Object.assign({}, vars, input.vars),
pkgInputTemplate.buffer.toString()
);
}
@@ -540,10 +542,11 @@ async function _compilePackagePolicyInput(
async function _compilePackageStreams(
registryPkgInfo: RegistryPackage,
pkgInfo: PackageInfo,
+ vars: PackagePolicy['vars'],
input: PackagePolicyInput
) {
const streamsPromises = input.streams.map((stream) =>
- _compilePackageStream(registryPkgInfo, pkgInfo, input, stream)
+ _compilePackageStream(registryPkgInfo, pkgInfo, vars, input, stream)
);
return await Promise.all(streamsPromises);
@@ -552,6 +555,7 @@ async function _compilePackageStreams(
async function _compilePackageStream(
registryPkgInfo: RegistryPackage,
pkgInfo: PackageInfo,
+ vars: PackagePolicy['vars'],
input: PackagePolicyInput,
stream: PackagePolicyInputStream
) {
@@ -600,8 +604,8 @@ async function _compilePackageStream(
}
const yaml = compileTemplate(
- // Populate template variables from input vars and stream vars
- Object.assign({}, input.vars, stream.vars),
+ // Populate template variables from package-, input-, and stream-level vars
+ Object.assign({}, vars, input.vars, stream.vars),
pkgStreamTemplate.buffer.toString()
);
diff --git a/x-pack/plugins/fleet/server/types/index.tsx b/x-pack/plugins/fleet/server/types/index.tsx
index 886b4a26b833b..a48a389ae689e 100644
--- a/x-pack/plugins/fleet/server/types/index.tsx
+++ b/x-pack/plugins/fleet/server/types/index.tsx
@@ -71,6 +71,7 @@ export {
InstallType,
InstallSource,
InstallResult,
+ GetCategoriesRequest,
DataType,
dataTypes,
// Fleet Server types
diff --git a/x-pack/plugins/fleet/server/types/models/package_policy.ts b/x-pack/plugins/fleet/server/types/models/package_policy.ts
index fa467a4185bd4..cbf311cac4e3b 100644
--- a/x-pack/plugins/fleet/server/types/models/package_policy.ts
+++ b/x-pack/plugins/fleet/server/types/models/package_policy.ts
@@ -77,6 +77,7 @@ const PackagePolicyBaseSchema = {
),
})
),
+ vars: schema.maybe(ConfigRecordSchema),
};
export const NewPackagePolicySchema = schema.object({
diff --git a/x-pack/plugins/fleet/server/types/rest_spec/epm.ts b/x-pack/plugins/fleet/server/types/rest_spec/epm.ts
index f7e3ed906e24b..25f1e766a7476 100644
--- a/x-pack/plugins/fleet/server/types/rest_spec/epm.ts
+++ b/x-pack/plugins/fleet/server/types/rest_spec/epm.ts
@@ -10,6 +10,7 @@ import { schema } from '@kbn/config-schema';
export const GetCategoriesRequestSchema = {
query: schema.object({
experimental: schema.maybe(schema.boolean()),
+ include_policy_templates: schema.maybe(schema.boolean()),
}),
};
diff --git a/x-pack/plugins/security_solution/common/endpoint/generate_data.ts b/x-pack/plugins/security_solution/common/endpoint/generate_data.ts
index 4a86d7fd4de77..fa7ee84441a9b 100644
--- a/x-pack/plugins/security_solution/common/endpoint/generate_data.ts
+++ b/x-pack/plugins/security_solution/common/endpoint/generate_data.ts
@@ -1302,6 +1302,7 @@ export class EndpointDocGenerator extends BaseDataGenerator {
*/
public generateEpmPackage(): GetPackagesResponse['response'][0] {
return {
+ id: this.seededUUIDv4(),
name: 'endpoint',
title: 'Elastic Endpoint',
version: '0.5.0',
From 507da3ee8bbfb0d987154b32363b9cc2ac2245ec Mon Sep 17 00:00:00 2001
From: Jonathan Budzenski
Date: Wed, 26 May 2021 13:03:21 -0500
Subject: [PATCH 14/30] [docker] Set server.shutdownTimeout to match default
docker stop timeout (#100494)
---
.../docker_generator/templates/kibana_yml.template.ts | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/dev/build/tasks/os_packages/docker_generator/templates/kibana_yml.template.ts b/src/dev/build/tasks/os_packages/docker_generator/templates/kibana_yml.template.ts
index c8eb16530507f..e22d8ecdd4fd8 100644
--- a/src/dev/build/tasks/os_packages/docker_generator/templates/kibana_yml.template.ts
+++ b/src/dev/build/tasks/os_packages/docker_generator/templates/kibana_yml.template.ts
@@ -18,6 +18,7 @@ function generator({ imageFlavor }: TemplateContext) {
# Default Kibana configuration for docker target
server.host: "0.0.0.0"
+ server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
${!imageFlavor ? 'monitoring.ui.container.elasticsearch.enabled: true' : ''}
`);
From 04a3620ec93df31c8e73cffd7e90f2c607c50769 Mon Sep 17 00:00:00 2001
From: spalger
Date: Wed, 26 May 2021 11:24:20 -0700
Subject: [PATCH 15/30] enable es client renovate prs for 7.13 (#100645)
---
renovate.json5 | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/renovate.json5 b/renovate.json5
index a72d4408478a2..e33a1108afef6 100644
--- a/renovate.json5
+++ b/renovate.json5
@@ -57,6 +57,14 @@
labels: ['release_note:skip', 'v7.14.0', 'Team:Operations', 'Team:Core', 'backport:skip'],
enabled: true,
},
+ {
+ groupName: '@elastic/elasticsearch',
+ packageNames: ['@elastic/elasticsearch'],
+ reviewers: ['team:kibana-operations'],
+ matchBaseBranches: ['7.13'],
+ labels: ['release_note:skip', 'v7.13.0', 'Team:Operations', 'backport:skip'],
+ enabled: true,
+ },
{
groupName: 'vega related modules',
packageNames: ['vega', 'vega-lite', 'vega-schema-url-parser', 'vega-tooltip'],
From 58f45eeeb3cf7eb2f89674bd614a54faf0172866 Mon Sep 17 00:00:00 2001
From: spalger
Date: Wed, 26 May 2021 11:25:25 -0700
Subject: [PATCH 16/30] include 7.13 as a possible base branch of renovate prs
---
renovate.json5 | 1 +
1 file changed, 1 insertion(+)
diff --git a/renovate.json5 b/renovate.json5
index e33a1108afef6..f533eac479650 100644
--- a/renovate.json5
+++ b/renovate.json5
@@ -12,6 +12,7 @@
baseBranches: [
'master',
'7.x',
+ '7.13',
],
prConcurrentLimit: 0,
prHourlyLimit: 0,
From e682b55c87358859fc1fddb9c5c754d10a70b428 Mon Sep 17 00:00:00 2001
From: Spencer
Date: Wed, 26 May 2021 11:40:02 -0700
Subject: [PATCH 17/30] [ftr] migrate dashboard services to FtrService class
(#100519)
Co-authored-by: spalger
---
.../services/dashboard/add_panel.ts | 452 +++++++------
.../services/dashboard/expectations.ts | 454 ++++++-------
test/functional/services/dashboard/index.ts | 10 +-
.../services/dashboard/panel_actions.ts | 596 +++++++++---------
.../services/dashboard/replace_panel.ts | 136 ++--
.../services/dashboard/visualizations.ts | 188 +++---
test/functional/services/index.ts | 20 +-
7 files changed, 928 insertions(+), 928 deletions(-)
diff --git a/test/functional/services/dashboard/add_panel.ts b/test/functional/services/dashboard/add_panel.ts
index a4e0c8b2647dd..98e947541b52d 100644
--- a/test/functional/services/dashboard/add_panel.ts
+++ b/test/functional/services/dashboard/add_panel.ts
@@ -6,235 +6,233 @@
* Side Public License, v 1.
*/
-import { FtrProviderContext } from '../../ftr_provider_context';
-
-export function DashboardAddPanelProvider({ getService, getPageObjects }: FtrProviderContext) {
- const log = getService('log');
- const retry = getService('retry');
- const testSubjects = getService('testSubjects');
- const flyout = getService('flyout');
- const PageObjects = getPageObjects(['header', 'common']);
-
- return new (class DashboardAddPanel {
- async clickOpenAddPanel() {
- log.debug('DashboardAddPanel.clickOpenAddPanel');
- await testSubjects.click('dashboardAddPanelButton');
- // Give some time for the animation to complete
- await PageObjects.common.sleep(500);
- }
-
- async clickCreateNewLink() {
- log.debug('DashboardAddPanel.clickAddNewPanelButton');
- await testSubjects.click('dashboardAddNewPanelButton');
- // Give some time for the animation to complete
- await PageObjects.common.sleep(500);
- }
-
- async clickQuickButton(visType: string) {
- log.debug(`DashboardAddPanel.clickQuickButton${visType}`);
- await testSubjects.click(`dashboardQuickButton${visType}`);
- }
-
- async clickMarkdownQuickButton() {
- await this.clickQuickButton('markdown');
- }
-
- async clickMapQuickButton() {
- await this.clickQuickButton('map');
- }
-
- async clickEditorMenuButton() {
- log.debug('DashboardAddPanel.clickEditorMenuButton');
- await testSubjects.click('dashboardEditorMenuButton');
- }
-
- async clickAggBasedVisualizations() {
- log.debug('DashboardAddPanel.clickEditorMenuAggBasedMenuItem');
- await testSubjects.click('dashboardEditorAggBasedMenuItem');
- }
-
- async clickVisType(visType: string) {
- log.debug('DashboardAddPanel.clickVisType');
- await testSubjects.click(`visType-${visType}`);
- }
-
- async clickEmbeddableFactoryGroupButton(groupId: string) {
- log.debug('DashboardAddPanel.clickEmbeddableFactoryGroupButton');
- await testSubjects.click(`dashboardEditorMenu-${groupId}Group`);
- }
-
- async clickAddNewEmbeddableLink(type: string) {
- await testSubjects.click(`createNew-${type}`);
- }
-
- async toggleFilterPopover() {
- log.debug('DashboardAddPanel.toggleFilter');
- await testSubjects.click('savedObjectFinderFilterButton');
- }
-
- async toggleFilter(type: string) {
- log.debug(`DashboardAddPanel.addToFilter(${type})`);
- await this.waitForListLoading();
- await this.toggleFilterPopover();
- await testSubjects.click(`savedObjectFinderFilter-${type}`);
- await this.toggleFilterPopover();
- }
-
- async addEveryEmbeddableOnCurrentPage() {
- log.debug('addEveryEmbeddableOnCurrentPage');
- const itemList = await testSubjects.find('savedObjectFinderItemList');
- const embeddableList: string[] = [];
- await retry.try(async () => {
- const embeddableRows = await itemList.findAllByCssSelector('li');
- for (let i = 0; i < embeddableRows.length; i++) {
- const name = await embeddableRows[i].getVisibleText();
-
- if (embeddableList.includes(name)) {
- // already added this one
- continue;
- }
-
- await embeddableRows[i].click();
- await PageObjects.common.closeToast();
- embeddableList.push(name);
+import { FtrService } from '../../ftr_provider_context';
+
+export class DashboardAddPanelService extends FtrService {
+ private readonly log = this.ctx.getService('log');
+ private readonly retry = this.ctx.getService('retry');
+ private readonly testSubjects = this.ctx.getService('testSubjects');
+ private readonly flyout = this.ctx.getService('flyout');
+ private readonly PageObjects = this.ctx.getPageObjects(['header', 'common']);
+
+ async clickOpenAddPanel() {
+ this.log.debug('DashboardAddPanel.clickOpenAddPanel');
+ await this.testSubjects.click('dashboardAddPanelButton');
+ // Give some time for the animation to complete
+ await this.PageObjects.common.sleep(500);
+ }
+
+ async clickCreateNewLink() {
+ this.log.debug('DashboardAddPanel.clickAddNewPanelButton');
+ await this.testSubjects.click('dashboardAddNewPanelButton');
+ // Give some time for the animation to complete
+ await this.PageObjects.common.sleep(500);
+ }
+
+ async clickQuickButton(visType: string) {
+ this.log.debug(`DashboardAddPanel.clickQuickButton${visType}`);
+ await this.testSubjects.click(`dashboardQuickButton${visType}`);
+ }
+
+ async clickMarkdownQuickButton() {
+ await this.clickQuickButton('markdown');
+ }
+
+ async clickMapQuickButton() {
+ await this.clickQuickButton('map');
+ }
+
+ async clickEditorMenuButton() {
+ this.log.debug('DashboardAddPanel.clickEditorMenuButton');
+ await this.testSubjects.click('dashboardEditorMenuButton');
+ }
+
+ async clickAggBasedVisualizations() {
+ this.log.debug('DashboardAddPanel.clickEditorMenuAggBasedMenuItem');
+ await this.testSubjects.click('dashboardEditorAggBasedMenuItem');
+ }
+
+ async clickVisType(visType: string) {
+ this.log.debug('DashboardAddPanel.clickVisType');
+ await this.testSubjects.click(`visType-${visType}`);
+ }
+
+ async clickEmbeddableFactoryGroupButton(groupId: string) {
+ this.log.debug('DashboardAddPanel.clickEmbeddableFactoryGroupButton');
+ await this.testSubjects.click(`dashboardEditorMenu-${groupId}Group`);
+ }
+
+ async clickAddNewEmbeddableLink(type: string) {
+ await this.testSubjects.click(`createNew-${type}`);
+ }
+
+ async toggleFilterPopover() {
+ this.log.debug('DashboardAddPanel.toggleFilter');
+ await this.testSubjects.click('savedObjectFinderFilterButton');
+ }
+
+ async toggleFilter(type: string) {
+ this.log.debug(`DashboardAddPanel.addToFilter(${type})`);
+ await this.waitForListLoading();
+ await this.toggleFilterPopover();
+ await this.testSubjects.click(`savedObjectFinderFilter-${type}`);
+ await this.toggleFilterPopover();
+ }
+
+ async addEveryEmbeddableOnCurrentPage() {
+ this.log.debug('addEveryEmbeddableOnCurrentPage');
+ const itemList = await this.testSubjects.find('savedObjectFinderItemList');
+ const embeddableList: string[] = [];
+ await this.retry.try(async () => {
+ const embeddableRows = await itemList.findAllByCssSelector('li');
+ for (let i = 0; i < embeddableRows.length; i++) {
+ const name = await embeddableRows[i].getVisibleText();
+
+ if (embeddableList.includes(name)) {
+ // already added this one
+ continue;
}
- });
- log.debug(`Added ${embeddableList.length} embeddables`);
- return embeddableList;
- }
-
- async clickPagerNextButton() {
- // Clear all toasts that could hide pagination controls
- await PageObjects.common.clearAllToasts();
-
- const isNext = await testSubjects.exists('pagination-button-next');
- if (!isNext) {
- return false;
- }
-
- const pagerNextButton = await testSubjects.find('pagination-button-next');
-
- const isDisabled = await pagerNextButton.getAttribute('disabled');
- if (isDisabled != null) {
- return false;
- }
-
- await PageObjects.header.waitUntilLoadingHasFinished();
- await pagerNextButton.click();
- await PageObjects.header.waitUntilLoadingHasFinished();
- return true;
- }
-
- async isAddPanelOpen() {
- log.debug('DashboardAddPanel.isAddPanelOpen');
- return await testSubjects.exists('dashboardAddPanel');
- }
- async ensureAddPanelIsShowing() {
- log.debug('DashboardAddPanel.ensureAddPanelIsShowing');
- const isOpen = await this.isAddPanelOpen();
- if (!isOpen) {
- await retry.try(async () => {
- await this.clickOpenAddPanel();
- const isNowOpen = await this.isAddPanelOpen();
- if (!isNowOpen) {
- throw new Error('Add panel still not open, trying again.');
- }
- });
+ await embeddableRows[i].click();
+ await this.PageObjects.common.closeToast();
+ embeddableList.push(name);
}
+ });
+ this.log.debug(`Added ${embeddableList.length} embeddables`);
+ return embeddableList;
+ }
+
+ async clickPagerNextButton() {
+ // Clear all toasts that could hide pagination controls
+ await this.PageObjects.common.clearAllToasts();
+
+ const isNext = await this.testSubjects.exists('pagination-button-next');
+ if (!isNext) {
+ return false;
+ }
+
+ const pagerNextButton = await this.testSubjects.find('pagination-button-next');
+
+ const isDisabled = await pagerNextButton.getAttribute('disabled');
+ if (isDisabled != null) {
+ return false;
+ }
+
+ await this.PageObjects.header.waitUntilLoadingHasFinished();
+ await pagerNextButton.click();
+ await this.PageObjects.header.waitUntilLoadingHasFinished();
+ return true;
+ }
+
+ async isAddPanelOpen() {
+ this.log.debug('DashboardAddPanel.isAddPanelOpen');
+ return await this.testSubjects.exists('dashboardAddPanel');
+ }
+
+ async ensureAddPanelIsShowing() {
+ this.log.debug('DashboardAddPanel.ensureAddPanelIsShowing');
+ const isOpen = await this.isAddPanelOpen();
+ if (!isOpen) {
+ await this.retry.try(async () => {
+ await this.clickOpenAddPanel();
+ const isNowOpen = await this.isAddPanelOpen();
+ if (!isNowOpen) {
+ throw new Error('Add panel still not open, trying again.');
+ }
+ });
}
-
- async waitForListLoading() {
- await testSubjects.waitForDeleted('savedObjectFinderLoadingIndicator');
- }
-
- async closeAddPanel() {
- await flyout.ensureClosed('dashboardAddPanel');
- }
-
- async addEveryVisualization(filter: string) {
- log.debug('DashboardAddPanel.addEveryVisualization');
- await this.ensureAddPanelIsShowing();
- await this.toggleFilter('visualization');
- if (filter) {
- await this.filterEmbeddableNames(filter.replace('-', ' '));
- }
- let morePages = true;
- const vizList: string[][] = [];
- while (morePages) {
- vizList.push(await this.addEveryEmbeddableOnCurrentPage());
- morePages = await this.clickPagerNextButton();
- }
- await this.closeAddPanel();
- return vizList.reduce((acc, list) => [...acc, ...list], []);
- }
-
- async addEverySavedSearch(filter: string) {
- log.debug('DashboardAddPanel.addEverySavedSearch');
- await this.ensureAddPanelIsShowing();
- await this.toggleFilter('search');
- const searchList = [];
- if (filter) {
- await this.filterEmbeddableNames(filter.replace('-', ' '));
- }
- let morePages = true;
- while (morePages) {
- searchList.push(await this.addEveryEmbeddableOnCurrentPage());
- morePages = await this.clickPagerNextButton();
- }
- await this.closeAddPanel();
- return searchList.reduce((acc, list) => [...acc, ...list], []);
- }
-
- async addSavedSearch(searchName: string) {
- return this.addEmbeddable(searchName, 'search');
- }
-
- async addSavedSearches(searches: string[]) {
- for (const name of searches) {
- await this.addSavedSearch(name);
- }
- }
-
- async addVisualizations(visualizations: string[]) {
- log.debug('DashboardAddPanel.addVisualizations');
- const vizList = [];
- for (const vizName of visualizations) {
- await this.addVisualization(vizName);
- vizList.push(vizName);
- }
- return vizList;
- }
-
- async addVisualization(vizName: string) {
- return this.addEmbeddable(vizName, 'visualization');
- }
-
- async addEmbeddable(embeddableName: string, embeddableType: string) {
- log.debug(
- `DashboardAddPanel.addEmbeddable, name: ${embeddableName}, type: ${embeddableType}`
- );
- await this.ensureAddPanelIsShowing();
- await this.toggleFilter(embeddableType);
- await this.filterEmbeddableNames(`"${embeddableName.replace('-', ' ')}"`);
- await testSubjects.click(`savedObjectTitle${embeddableName.split(' ').join('-')}`);
- await testSubjects.exists('addObjectToDashboardSuccess');
- await this.closeAddPanel();
- return embeddableName;
- }
-
- async filterEmbeddableNames(name: string) {
- // The search input field may be disabled while the table is loading so wait for it
- await this.waitForListLoading();
- await testSubjects.setValue('savedObjectFinderSearchInput', name);
- await this.waitForListLoading();
- }
-
- async panelAddLinkExists(name: string) {
- log.debug(`DashboardAddPanel.panelAddLinkExists(${name})`);
- await this.ensureAddPanelIsShowing();
- await this.filterEmbeddableNames(`"${name}"`);
- return await testSubjects.exists(`savedObjectTitle${name.split(' ').join('-')}`);
- }
- })();
+ }
+
+ async waitForListLoading() {
+ await this.testSubjects.waitForDeleted('savedObjectFinderLoadingIndicator');
+ }
+
+ async closeAddPanel() {
+ await this.flyout.ensureClosed('dashboardAddPanel');
+ }
+
+ async addEveryVisualization(filter: string) {
+ this.log.debug('DashboardAddPanel.addEveryVisualization');
+ await this.ensureAddPanelIsShowing();
+ await this.toggleFilter('visualization');
+ if (filter) {
+ await this.filterEmbeddableNames(filter.replace('-', ' '));
+ }
+ let morePages = true;
+ const vizList: string[][] = [];
+ while (morePages) {
+ vizList.push(await this.addEveryEmbeddableOnCurrentPage());
+ morePages = await this.clickPagerNextButton();
+ }
+ await this.closeAddPanel();
+ return vizList.reduce((acc, list) => [...acc, ...list], []);
+ }
+
+ async addEverySavedSearch(filter: string) {
+ this.log.debug('DashboardAddPanel.addEverySavedSearch');
+ await this.ensureAddPanelIsShowing();
+ await this.toggleFilter('search');
+ const searchList = [];
+ if (filter) {
+ await this.filterEmbeddableNames(filter.replace('-', ' '));
+ }
+ let morePages = true;
+ while (morePages) {
+ searchList.push(await this.addEveryEmbeddableOnCurrentPage());
+ morePages = await this.clickPagerNextButton();
+ }
+ await this.closeAddPanel();
+ return searchList.reduce((acc, list) => [...acc, ...list], []);
+ }
+
+ async addSavedSearch(searchName: string) {
+ return this.addEmbeddable(searchName, 'search');
+ }
+
+ async addSavedSearches(searches: string[]) {
+ for (const name of searches) {
+ await this.addSavedSearch(name);
+ }
+ }
+
+ async addVisualizations(visualizations: string[]) {
+ this.log.debug('DashboardAddPanel.addVisualizations');
+ const vizList = [];
+ for (const vizName of visualizations) {
+ await this.addVisualization(vizName);
+ vizList.push(vizName);
+ }
+ return vizList;
+ }
+
+ async addVisualization(vizName: string) {
+ return this.addEmbeddable(vizName, 'visualization');
+ }
+
+ async addEmbeddable(embeddableName: string, embeddableType: string) {
+ this.log.debug(
+ `DashboardAddPanel.addEmbeddable, name: ${embeddableName}, type: ${embeddableType}`
+ );
+ await this.ensureAddPanelIsShowing();
+ await this.toggleFilter(embeddableType);
+ await this.filterEmbeddableNames(`"${embeddableName.replace('-', ' ')}"`);
+ await this.testSubjects.click(`savedObjectTitle${embeddableName.split(' ').join('-')}`);
+ await this.testSubjects.exists('addObjectToDashboardSuccess');
+ await this.closeAddPanel();
+ return embeddableName;
+ }
+
+ async filterEmbeddableNames(name: string) {
+ // The search input field may be disabled while the table is loading so wait for it
+ await this.waitForListLoading();
+ await this.testSubjects.setValue('savedObjectFinderSearchInput', name);
+ await this.waitForListLoading();
+ }
+
+ async panelAddLinkExists(name: string) {
+ this.log.debug(`DashboardAddPanel.panelAddLinkExists(${name})`);
+ await this.ensureAddPanelIsShowing();
+ await this.filterEmbeddableNames(`"${name}"`);
+ return await this.testSubjects.exists(`savedObjectTitle${name.split(' ').join('-')}`);
+ }
}
diff --git a/test/functional/services/dashboard/expectations.ts b/test/functional/services/dashboard/expectations.ts
index c58fdd4d0305b..34a4a9de7899a 100644
--- a/test/functional/services/dashboard/expectations.ts
+++ b/test/functional/services/dashboard/expectations.ts
@@ -7,263 +7,271 @@
*/
import expect from '@kbn/expect';
-import { FtrProviderContext } from '../../ftr_provider_context';
+import { FtrService } from '../../ftr_provider_context';
import { WebElementWrapper } from '../lib/web_element_wrapper';
-export function DashboardExpectProvider({ getService, getPageObjects }: FtrProviderContext) {
- const log = getService('log');
- const retry = getService('retry');
- const testSubjects = getService('testSubjects');
- const find = getService('find');
- const filterBar = getService('filterBar');
- const PageObjects = getPageObjects(['dashboard', 'visualize', 'visChart']);
- const findTimeout = 2500;
+export class DashboardExpectService extends FtrService {
+ private readonly log = this.ctx.getService('log');
+ private readonly retry = this.ctx.getService('retry');
+ private readonly testSubjects = this.ctx.getService('testSubjects');
+ private readonly find = this.ctx.getService('find');
+ private readonly filterBar = this.ctx.getService('filterBar');
+ private readonly PageObjects = this.ctx.getPageObjects(['dashboard', 'visualize', 'visChart']);
+ private readonly findTimeout = 2500;
- return new (class DashboardExpect {
- async panelCount(expectedCount: number) {
- log.debug(`DashboardExpect.panelCount(${expectedCount})`);
- await retry.try(async () => {
- const panelCount = await PageObjects.dashboard.getPanelCount();
- expect(panelCount).to.be(expectedCount);
- });
- }
+ async panelCount(expectedCount: number) {
+ this.log.debug(`DashboardExpect.panelCount(${expectedCount})`);
+ await this.retry.try(async () => {
+ const panelCount = await this.PageObjects.dashboard.getPanelCount();
+ expect(panelCount).to.be(expectedCount);
+ });
+ }
- async visualizationsArePresent(vizList: string[]) {
- log.debug('Checking all visualisations are present on dashsboard');
- let notLoaded = await PageObjects.dashboard.getNotLoadedVisualizations(vizList);
- // TODO: Determine issue occasionally preventing 'geo map' from loading
- notLoaded = notLoaded.filter((x) => x !== 'Rendering Test: geo map');
- expect(notLoaded).to.be.empty();
- }
+ async visualizationsArePresent(vizList: string[]) {
+ this.log.debug('Checking all visualisations are present on dashsboard');
+ let notLoaded = await this.PageObjects.dashboard.getNotLoadedVisualizations(vizList);
+ // TODO: Determine issue occasionally preventing 'geo map' from loading
+ notLoaded = notLoaded.filter((x) => x !== 'Rendering Test: geo map');
+ expect(notLoaded).to.be.empty();
+ }
- async selectedLegendColorCount(color: string, expectedCount: number) {
- log.debug(`DashboardExpect.selectedLegendColorCount(${color}, ${expectedCount})`);
- await retry.try(async () => {
- const selectedLegendColor = await testSubjects.findAll(
- `legendSelectedColor-${color}`,
- findTimeout
- );
- expect(selectedLegendColor.length).to.be(expectedCount);
- });
- }
+ async selectedLegendColorCount(color: string, expectedCount: number) {
+ this.log.debug(`DashboardExpect.selectedLegendColorCount(${color}, ${expectedCount})`);
+ await this.retry.try(async () => {
+ const selectedLegendColor = await this.testSubjects.findAll(
+ `legendSelectedColor-${color}`,
+ this.findTimeout
+ );
+ expect(selectedLegendColor.length).to.be(expectedCount);
+ });
+ }
- async docTableFieldCount(expectedCount: number) {
- log.debug(`DashboardExpect.docTableFieldCount(${expectedCount})`);
- await retry.try(async () => {
- const docTableCells = await testSubjects.findAll('docTableField', findTimeout);
- expect(docTableCells.length).to.be(expectedCount);
- });
- }
+ async docTableFieldCount(expectedCount: number) {
+ this.log.debug(`DashboardExpect.docTableFieldCount(${expectedCount})`);
+ await this.retry.try(async () => {
+ const docTableCells = await this.testSubjects.findAll('docTableField', this.findTimeout);
+ expect(docTableCells.length).to.be(expectedCount);
+ });
+ }
- async fieldSuggestions(expectedFields: string[]) {
- log.debug(`DashboardExpect.fieldSuggestions(${expectedFields})`);
- const fields = await filterBar.getFilterEditorFields();
- expectedFields.forEach((expectedField) => {
- expect(fields).to.contain(expectedField);
- });
- }
+ async fieldSuggestions(expectedFields: string[]) {
+ this.log.debug(`DashboardExpect.fieldSuggestions(${expectedFields})`);
+ const fields = await this.filterBar.getFilterEditorFields();
+ expectedFields.forEach((expectedField) => {
+ expect(fields).to.contain(expectedField);
+ });
+ }
+
+ async legendValuesToExist(legendValues: string[]) {
+ this.log.debug(`DashboardExpect.legendValuesToExist(${legendValues})`);
+ await Promise.all(
+ legendValues.map(async (legend) => {
+ await this.retry.try(async () => {
+ const legendValueExists = await this.testSubjects.exists(`legend-${legend}`);
+ expect(legendValueExists).to.be(true);
+ });
+ })
+ );
+ }
- async legendValuesToExist(legendValues: string[]) {
- log.debug(`DashboardExpect.legendValuesToExist(${legendValues})`);
+ async textWithinElementsExists(texts: string[], getElementsFn: Function) {
+ this.log.debug(`DashboardExpect.textWithinElementsExists(${texts})`);
+ await this.retry.try(async () => {
+ const elements: WebElementWrapper[] = await getElementsFn();
+ const elementTexts: string[] = [];
await Promise.all(
- legendValues.map(async (legend) => {
- await retry.try(async () => {
- const legendValueExists = await testSubjects.exists(`legend-${legend}`);
- expect(legendValueExists).to.be(true);
- });
+ elements.map(async (element) => {
+ elementTexts.push(await element.getVisibleText());
})
);
- }
-
- async textWithinElementsExists(texts: string[], getElementsFn: Function) {
- log.debug(`DashboardExpect.textWithinElementsExists(${texts})`);
- await retry.try(async () => {
- const elements: WebElementWrapper[] = await getElementsFn();
- const elementTexts: string[] = [];
- await Promise.all(
- elements.map(async (element) => {
- elementTexts.push(await element.getVisibleText());
- })
- );
- log.debug(`Found ${elements.length} elements with values: ${JSON.stringify(elementTexts)}`);
- texts.forEach((value) => {
- const indexOfValue = elementTexts.indexOf(value);
- expect(indexOfValue).to.be.greaterThan(-1);
- elementTexts.splice(indexOfValue, 1);
- });
+ this.log.debug(
+ `Found ${elements.length} elements with values: ${JSON.stringify(elementTexts)}`
+ );
+ texts.forEach((value) => {
+ const indexOfValue = elementTexts.indexOf(value);
+ expect(indexOfValue).to.be.greaterThan(-1);
+ elementTexts.splice(indexOfValue, 1);
});
- }
+ });
+ }
- async textWithinTestSubjectsExists(texts: string[], selector: string) {
- log.debug(`DashboardExpect.textWithinTestSubjectsExists(${texts})`);
- log.debug(`textWithinTestSubjectsExists:(${JSON.stringify(texts)},${selector})`);
- await this.textWithinElementsExists(texts, async () => await testSubjects.findAll(selector));
- }
+ async textWithinTestSubjectsExists(texts: string[], selector: string) {
+ this.log.debug(`DashboardExpect.textWithinTestSubjectsExists(${texts})`);
+ this.log.debug(`textWithinTestSubjectsExists:(${JSON.stringify(texts)},${selector})`);
+ await this.textWithinElementsExists(
+ texts,
+ async () => await this.testSubjects.findAll(selector)
+ );
+ }
- async textWithinCssElementExists(texts: string[], selector: string) {
- log.debug(`DashboardExpect.textWithinCssElementExists(${texts})`);
- log.debug(`textWithinCssElementExists:(${JSON.stringify(texts)},${selector})`);
- await this.textWithinElementsExists(texts, async () => await find.allByCssSelector(selector));
- }
+ async textWithinCssElementExists(texts: string[], selector: string) {
+ this.log.debug(`DashboardExpect.textWithinCssElementExists(${texts})`);
+ this.log.debug(`textWithinCssElementExists:(${JSON.stringify(texts)},${selector})`);
+ await this.textWithinElementsExists(
+ texts,
+ async () => await this.find.allByCssSelector(selector)
+ );
+ }
- async textWithinElementsDoNotExist(texts: string[], getElementsFn: Function) {
- log.debug(`DashboardExpect.textWithinElementsDoNotExist(${texts})`);
- await retry.try(async () => {
- const elements: WebElementWrapper[] = await getElementsFn();
- const elementTexts: string[] = [];
- await Promise.all(
- elements.map(async (element) => {
- elementTexts.push(await element.getVisibleText());
- })
- );
- log.debug(`Found ${elements.length} elements with values: ${JSON.stringify(elementTexts)}`);
- texts.forEach((value) => {
- const indexOfValue = elementTexts.indexOf(value);
- expect(indexOfValue).to.be(-1);
- });
+ async textWithinElementsDoNotExist(texts: string[], getElementsFn: Function) {
+ this.log.debug(`DashboardExpect.textWithinElementsDoNotExist(${texts})`);
+ await this.retry.try(async () => {
+ const elements: WebElementWrapper[] = await getElementsFn();
+ const elementTexts: string[] = [];
+ await Promise.all(
+ elements.map(async (element) => {
+ elementTexts.push(await element.getVisibleText());
+ })
+ );
+ this.log.debug(
+ `Found ${elements.length} elements with values: ${JSON.stringify(elementTexts)}`
+ );
+ texts.forEach((value) => {
+ const indexOfValue = elementTexts.indexOf(value);
+ expect(indexOfValue).to.be(-1);
});
- }
+ });
+ }
- async textWithinCssElementDoNotExist(texts: string[], selector: string) {
- log.debug(`textWithinCssElementExists:(${JSON.stringify(texts)},${selector})`);
- await this.textWithinElementsDoNotExist(
- texts,
- async () => await find.allByCssSelector(selector)
- );
- }
+ async textWithinCssElementDoNotExist(texts: string[], selector: string) {
+ this.log.debug(`textWithinCssElementExists:(${JSON.stringify(texts)},${selector})`);
+ await this.textWithinElementsDoNotExist(
+ texts,
+ async () => await this.find.allByCssSelector(selector)
+ );
+ }
- async timelionLegendCount(expectedCount: number) {
- log.debug(`DashboardExpect.timelionLegendCount(${expectedCount})`);
- await retry.try(async () => {
- const flotLegendLabels = await testSubjects.findAll('flotLegendLabel', findTimeout);
- expect(flotLegendLabels.length).to.be(expectedCount);
- });
- }
+ async timelionLegendCount(expectedCount: number) {
+ this.log.debug(`DashboardExpect.timelionLegendCount(${expectedCount})`);
+ await this.retry.try(async () => {
+ const flotLegendLabels = await this.testSubjects.findAll('flotLegendLabel', this.findTimeout);
+ expect(flotLegendLabels.length).to.be(expectedCount);
+ });
+ }
- async emptyTagCloudFound() {
- log.debug(`DashboardExpect.emptyTagCloudFound()`);
- const tagCloudVisualizations = await testSubjects.findAll('tagCloudVisualization');
- const tagCloudsHaveContent = await Promise.all(
- tagCloudVisualizations.map(async (tagCloud) => {
- return await find.descendantExistsByCssSelector('text', tagCloud);
- })
- );
- expect(tagCloudsHaveContent.indexOf(false)).to.be.greaterThan(-1);
- }
+ async emptyTagCloudFound() {
+ this.log.debug(`DashboardExpect.emptyTagCloudFound()`);
+ const tagCloudVisualizations = await this.testSubjects.findAll('tagCloudVisualization');
+ const tagCloudsHaveContent = await Promise.all(
+ tagCloudVisualizations.map(async (tagCloud) => {
+ return await this.find.descendantExistsByCssSelector('text', tagCloud);
+ })
+ );
+ expect(tagCloudsHaveContent.indexOf(false)).to.be.greaterThan(-1);
+ }
- async tagCloudWithValuesFound(values: string[]) {
- log.debug(`DashboardExpect.tagCloudWithValuesFound(${values})`);
- const tagCloudVisualizations = await testSubjects.findAll('tagCloudVisualization');
- const matches = await Promise.all(
- tagCloudVisualizations.map(async (tagCloud) => {
- for (let i = 0; i < values.length; i++) {
- const valueExists = await testSubjects.descendantExists(values[i], tagCloud);
- if (!valueExists) {
- return false;
- }
+ async tagCloudWithValuesFound(values: string[]) {
+ this.log.debug(`DashboardExpect.tagCloudWithValuesFound(${values})`);
+ const tagCloudVisualizations = await this.testSubjects.findAll('tagCloudVisualization');
+ const matches = await Promise.all(
+ tagCloudVisualizations.map(async (tagCloud) => {
+ for (let i = 0; i < values.length; i++) {
+ const valueExists = await this.testSubjects.descendantExists(values[i], tagCloud);
+ if (!valueExists) {
+ return false;
}
- return true;
- })
- );
- expect(matches.indexOf(true)).to.be.greaterThan(-1);
- }
+ }
+ return true;
+ })
+ );
+ expect(matches.indexOf(true)).to.be.greaterThan(-1);
+ }
- async goalAndGuageLabelsExist(labels: string[]) {
- log.debug(`DashboardExpect.goalAndGuageLabelsExist(${labels})`);
- await this.textWithinCssElementExists(labels, '.chart-label');
- }
+ async goalAndGuageLabelsExist(labels: string[]) {
+ this.log.debug(`DashboardExpect.goalAndGuageLabelsExist(${labels})`);
+ await this.textWithinCssElementExists(labels, '.chart-label');
+ }
- async metricValuesExist(values: string[]) {
- log.debug(`DashboardExpect.metricValuesExist(${values})`);
- await this.textWithinCssElementExists(values, '.mtrVis__value');
- }
+ async metricValuesExist(values: string[]) {
+ this.log.debug(`DashboardExpect.metricValuesExist(${values})`);
+ await this.textWithinCssElementExists(values, '.mtrVis__value');
+ }
- async tsvbMetricValuesExist(values: string[]) {
- log.debug(`DashboardExpect.tsvbMetricValuesExist(${values})`);
- await this.textWithinTestSubjectsExists(values, 'tsvbMetricValue');
- }
+ async tsvbMetricValuesExist(values: string[]) {
+ this.log.debug(`DashboardExpect.tsvbMetricValuesExist(${values})`);
+ await this.textWithinTestSubjectsExists(values, 'tsvbMetricValue');
+ }
- async tsvbTopNValuesExist(values: string[]) {
- log.debug(`DashboardExpect.tsvbTopNValuesExist(${values})`);
- await this.textWithinTestSubjectsExists(values, 'tsvbTopNValue');
- }
+ async tsvbTopNValuesExist(values: string[]) {
+ this.log.debug(`DashboardExpect.tsvbTopNValuesExist(${values})`);
+ await this.textWithinTestSubjectsExists(values, 'tsvbTopNValue');
+ }
- async vegaTextsExist(values: string[]) {
- log.debug(`DashboardExpect.vegaTextsExist(${values})`);
- await this.textWithinCssElementExists(values, '.vgaVis__view text');
- }
+ async vegaTextsExist(values: string[]) {
+ this.log.debug(`DashboardExpect.vegaTextsExist(${values})`);
+ await this.textWithinCssElementExists(values, '.vgaVis__view text');
+ }
- async vegaTextsDoNotExist(values: string[]) {
- log.debug(`DashboardExpect.vegaTextsDoNotExist(${values})`);
- await this.textWithinCssElementDoNotExist(values, '.vgaVis__view text');
- }
+ async vegaTextsDoNotExist(values: string[]) {
+ this.log.debug(`DashboardExpect.vegaTextsDoNotExist(${values})`);
+ await this.textWithinCssElementDoNotExist(values, '.vgaVis__view text');
+ }
- async tsvbMarkdownWithValuesExists(values: string[]) {
- log.debug(`DashboardExpect.tsvbMarkdownWithValuesExists(${values})`);
- await this.textWithinTestSubjectsExists(values, 'tsvbMarkdown');
- }
+ async tsvbMarkdownWithValuesExists(values: string[]) {
+ this.log.debug(`DashboardExpect.tsvbMarkdownWithValuesExists(${values})`);
+ await this.textWithinTestSubjectsExists(values, 'tsvbMarkdown');
+ }
- async markdownWithValuesExists(values: string[]) {
- log.debug(`DashboardExpect.markdownWithValuesExists(${values})`);
- await this.textWithinTestSubjectsExists(values, 'markdownBody');
- }
+ async markdownWithValuesExists(values: string[]) {
+ this.log.debug(`DashboardExpect.markdownWithValuesExists(${values})`);
+ await this.textWithinTestSubjectsExists(values, 'markdownBody');
+ }
- async savedSearchRowCount(expectedMinCount: number) {
- log.debug(`DashboardExpect.savedSearchRowCount(${expectedMinCount})`);
- await retry.try(async () => {
- const savedSearchRows = await testSubjects.findAll(
- 'docTableExpandToggleColumn',
- findTimeout
- );
- expect(savedSearchRows.length).to.be.above(expectedMinCount);
- });
- }
+ async savedSearchRowCount(expectedMinCount: number) {
+ this.log.debug(`DashboardExpect.savedSearchRowCount(${expectedMinCount})`);
+ await this.retry.try(async () => {
+ const savedSearchRows = await this.testSubjects.findAll(
+ 'docTableExpandToggleColumn',
+ this.findTimeout
+ );
+ expect(savedSearchRows.length).to.be.above(expectedMinCount);
+ });
+ }
- async dataTableRowCount(expectedCount: number) {
- log.debug(`DashboardExpect.dataTableRowCount(${expectedCount})`);
- await retry.try(async () => {
- const dataTableRows = await PageObjects.visChart.getTableVisContent();
- expect(dataTableRows.length).to.be(expectedCount);
- });
- }
+ async dataTableRowCount(expectedCount: number) {
+ this.log.debug(`DashboardExpect.dataTableRowCount(${expectedCount})`);
+ await this.retry.try(async () => {
+ const dataTableRows = await this.PageObjects.visChart.getTableVisContent();
+ expect(dataTableRows.length).to.be(expectedCount);
+ });
+ }
- async dataTableNoResult() {
- log.debug(`DashboardExpect.dataTableNoResult`);
- await retry.try(async () => {
- await PageObjects.visChart.getTableVisNoResult();
- });
- }
+ async dataTableNoResult() {
+ this.log.debug(`DashboardExpect.dataTableNoResult`);
+ await this.retry.try(async () => {
+ await this.PageObjects.visChart.getTableVisNoResult();
+ });
+ }
- async seriesElementCount(expectedCount: number) {
- log.debug(`DashboardExpect.seriesElementCount(${expectedCount})`);
- await retry.try(async () => {
- const seriesElements = await find.allByCssSelector('.series', findTimeout);
- expect(seriesElements.length).to.be(expectedCount);
- });
- }
+ async seriesElementCount(expectedCount: number) {
+ this.log.debug(`DashboardExpect.seriesElementCount(${expectedCount})`);
+ await this.retry.try(async () => {
+ const seriesElements = await this.find.allByCssSelector('.series', this.findTimeout);
+ expect(seriesElements.length).to.be(expectedCount);
+ });
+ }
- async inputControlItemCount(expectedCount: number) {
- log.debug(`DashboardExpect.inputControlItemCount(${expectedCount})`);
- await retry.try(async () => {
- const inputControlItems = await testSubjects.findAll('inputControlItem');
- expect(inputControlItems.length).to.be(expectedCount);
- });
- }
+ async inputControlItemCount(expectedCount: number) {
+ this.log.debug(`DashboardExpect.inputControlItemCount(${expectedCount})`);
+ await this.retry.try(async () => {
+ const inputControlItems = await this.testSubjects.findAll('inputControlItem');
+ expect(inputControlItems.length).to.be(expectedCount);
+ });
+ }
- async lineChartPointsCount(expectedCount: number) {
- log.debug(`DashboardExpect.lineChartPointsCount(${expectedCount})`);
- await retry.try(async () => {
- const points = await find.allByCssSelector('.points', findTimeout);
- expect(points.length).to.be(expectedCount);
- });
- }
+ async lineChartPointsCount(expectedCount: number) {
+ this.log.debug(`DashboardExpect.lineChartPointsCount(${expectedCount})`);
+ await this.retry.try(async () => {
+ const points = await this.find.allByCssSelector('.points', this.findTimeout);
+ expect(points.length).to.be(expectedCount);
+ });
+ }
- async tsvbTableCellCount(expectedCount: number) {
- log.debug(`DashboardExpect.tsvbTableCellCount(${expectedCount})`);
- await retry.try(async () => {
- const tableCells = await testSubjects.findAll('tvbTableVis__value', findTimeout);
- expect(tableCells.length).to.be(expectedCount);
- });
- }
- })();
+ async tsvbTableCellCount(expectedCount: number) {
+ this.log.debug(`DashboardExpect.tsvbTableCellCount(${expectedCount})`);
+ await this.retry.try(async () => {
+ const tableCells = await this.testSubjects.findAll('tvbTableVis__value', this.findTimeout);
+ expect(tableCells.length).to.be(expectedCount);
+ });
+ }
}
diff --git a/test/functional/services/dashboard/index.ts b/test/functional/services/dashboard/index.ts
index 2746718892cf0..0423b66d04102 100644
--- a/test/functional/services/dashboard/index.ts
+++ b/test/functional/services/dashboard/index.ts
@@ -6,8 +6,8 @@
* Side Public License, v 1.
*/
-export { DashboardVisualizationProvider } from './visualizations';
-export { DashboardExpectProvider } from './expectations';
-export { DashboardAddPanelProvider } from './add_panel';
-export { DashboardReplacePanelProvider } from './replace_panel';
-export { DashboardPanelActionsProvider } from './panel_actions';
+export { DashboardVisualizationsService } from './visualizations';
+export { DashboardExpectService } from './expectations';
+export { DashboardAddPanelService } from './add_panel';
+export { DashboardReplacePanelService } from './replace_panel';
+export { DashboardPanelActionsService } from './panel_actions';
diff --git a/test/functional/services/dashboard/panel_actions.ts b/test/functional/services/dashboard/panel_actions.ts
index 89790b19f426a..e7c028acc0e1b 100644
--- a/test/functional/services/dashboard/panel_actions.ts
+++ b/test/functional/services/dashboard/panel_actions.ts
@@ -6,8 +6,8 @@
* Side Public License, v 1.
*/
-import { FtrProviderContext } from '../../ftr_provider_context';
import { WebElementWrapper } from '../lib/web_element_wrapper';
+import { FtrService } from '../../ftr_provider_context';
const REMOVE_PANEL_DATA_TEST_SUBJ = 'embeddablePanelAction-deletePanel';
const EDIT_PANEL_DATA_TEST_SUBJ = 'embeddablePanelAction-editPanel';
@@ -21,320 +21,318 @@ const COPY_PANEL_TO_DATA_TEST_SUBJ = 'embeddablePanelAction-copyToDashboard';
const LIBRARY_NOTIFICATION_TEST_SUBJ = 'embeddablePanelNotification-ACTION_LIBRARY_NOTIFICATION';
const SAVE_TO_LIBRARY_TEST_SUBJ = 'embeddablePanelAction-saveToLibrary';
-export function DashboardPanelActionsProvider({ getService, getPageObjects }: FtrProviderContext) {
- const log = getService('log');
- const testSubjects = getService('testSubjects');
- const PageObjects = getPageObjects(['header', 'common', 'dashboard']);
- const inspector = getService('inspector');
-
- return new (class DashboardPanelActions {
- async findContextMenu(parent?: WebElementWrapper) {
- return parent
- ? await testSubjects.findDescendant(OPEN_CONTEXT_MENU_ICON_DATA_TEST_SUBJ, parent)
- : await testSubjects.find(OPEN_CONTEXT_MENU_ICON_DATA_TEST_SUBJ);
- }
-
- async isContextMenuIconVisible() {
- log.debug('isContextMenuIconVisible');
- return await testSubjects.exists(OPEN_CONTEXT_MENU_ICON_DATA_TEST_SUBJ);
- }
-
- async toggleContextMenu(parent?: WebElementWrapper) {
- log.debug('toggleContextMenu');
- await (parent ? parent.moveMouseTo() : testSubjects.moveMouseTo('dashboardPanelTitle'));
- const toggleMenuItem = await this.findContextMenu(parent);
- await toggleMenuItem.click();
- }
-
- async expectContextMenuToBeOpen() {
- await testSubjects.existOrFail('embeddablePanelContextMenuOpen');
- }
-
- async openContextMenu(parent?: WebElementWrapper) {
- log.debug(`openContextMenu(${parent}`);
- if (await testSubjects.exists('embeddablePanelContextMenuOpen')) return;
- await this.toggleContextMenu(parent);
- await this.expectContextMenuToBeOpen();
- }
-
- async hasContextMenuMoreItem() {
- return await testSubjects.exists('embeddablePanelMore-mainMenu');
- }
-
- async clickContextMenuMoreItem() {
- const hasMoreSubPanel = await testSubjects.exists('embeddablePanelMore-mainMenu');
- if (hasMoreSubPanel) {
- await testSubjects.click('embeddablePanelMore-mainMenu');
- }
- }
-
- async openContextMenuMorePanel(parent?: WebElementWrapper) {
- await this.openContextMenu(parent);
- await this.clickContextMenuMoreItem();
- }
-
- async clickEdit() {
- log.debug('clickEdit');
+export class DashboardPanelActionsService extends FtrService {
+ private readonly log = this.ctx.getService('log');
+ private readonly testSubjects = this.ctx.getService('testSubjects');
+ private readonly inspector = this.ctx.getService('inspector');
+ private readonly PageObjects = this.ctx.getPageObjects(['header', 'common', 'dashboard']);
+
+ async findContextMenu(parent?: WebElementWrapper) {
+ return parent
+ ? await this.testSubjects.findDescendant(OPEN_CONTEXT_MENU_ICON_DATA_TEST_SUBJ, parent)
+ : await this.testSubjects.find(OPEN_CONTEXT_MENU_ICON_DATA_TEST_SUBJ);
+ }
+
+ async isContextMenuIconVisible() {
+ this.log.debug('isContextMenuIconVisible');
+ return await this.testSubjects.exists(OPEN_CONTEXT_MENU_ICON_DATA_TEST_SUBJ);
+ }
+
+ async toggleContextMenu(parent?: WebElementWrapper) {
+ this.log.debug('toggleContextMenu');
+ await (parent ? parent.moveMouseTo() : this.testSubjects.moveMouseTo('dashboardPanelTitle'));
+ const toggleMenuItem = await this.findContextMenu(parent);
+ await toggleMenuItem.click();
+ }
+
+ async expectContextMenuToBeOpen() {
+ await this.testSubjects.existOrFail('embeddablePanelContextMenuOpen');
+ }
+
+ async openContextMenu(parent?: WebElementWrapper) {
+ this.log.debug(`openContextMenu(${parent}`);
+ if (await this.testSubjects.exists('embeddablePanelContextMenuOpen')) return;
+ await this.toggleContextMenu(parent);
+ await this.expectContextMenuToBeOpen();
+ }
+
+ async hasContextMenuMoreItem() {
+ return await this.testSubjects.exists('embeddablePanelMore-mainMenu');
+ }
+
+ async clickContextMenuMoreItem() {
+ const hasMoreSubPanel = await this.testSubjects.exists('embeddablePanelMore-mainMenu');
+ if (hasMoreSubPanel) {
+ await this.testSubjects.click('embeddablePanelMore-mainMenu');
+ }
+ }
+
+ async openContextMenuMorePanel(parent?: WebElementWrapper) {
+ await this.openContextMenu(parent);
+ await this.clickContextMenuMoreItem();
+ }
+
+ async clickEdit() {
+ this.log.debug('clickEdit');
+ await this.openContextMenu();
+ const isActionVisible = await this.testSubjects.exists(EDIT_PANEL_DATA_TEST_SUBJ);
+ if (!isActionVisible) await this.clickContextMenuMoreItem();
+ await this.testSubjects.clickWhenNotDisabled(EDIT_PANEL_DATA_TEST_SUBJ);
+ await this.PageObjects.header.waitUntilLoadingHasFinished();
+ await this.PageObjects.common.waitForTopNavToBeVisible();
+ }
+
+ async editPanelByTitle(title?: string) {
+ this.log.debug(`editPanelByTitle(${title})`);
+ if (title) {
+ const panelOptions = await this.getPanelHeading(title);
+ await this.openContextMenu(panelOptions);
+ } else {
await this.openContextMenu();
- const isActionVisible = await testSubjects.exists(EDIT_PANEL_DATA_TEST_SUBJ);
- if (!isActionVisible) await this.clickContextMenuMoreItem();
- await testSubjects.clickWhenNotDisabled(EDIT_PANEL_DATA_TEST_SUBJ);
- await PageObjects.header.waitUntilLoadingHasFinished();
- await PageObjects.common.waitForTopNavToBeVisible();
- }
-
- async editPanelByTitle(title?: string) {
- log.debug(`editPanelByTitle(${title})`);
- if (title) {
- const panelOptions = await this.getPanelHeading(title);
- await this.openContextMenu(panelOptions);
- } else {
- await this.openContextMenu();
- }
- await testSubjects.clickWhenNotDisabled(EDIT_PANEL_DATA_TEST_SUBJ);
}
-
- async clickExpandPanelToggle() {
- log.debug(`clickExpandPanelToggle`);
+ await this.testSubjects.clickWhenNotDisabled(EDIT_PANEL_DATA_TEST_SUBJ);
+ }
+
+ async clickExpandPanelToggle() {
+ this.log.debug(`clickExpandPanelToggle`);
+ await this.openContextMenu();
+ const isActionVisible = await this.testSubjects.exists(TOGGLE_EXPAND_PANEL_DATA_TEST_SUBJ);
+ if (!isActionVisible) await this.clickContextMenuMoreItem();
+ await this.testSubjects.click(TOGGLE_EXPAND_PANEL_DATA_TEST_SUBJ);
+ }
+
+ async removePanel(parent?: WebElementWrapper) {
+ this.log.debug('removePanel');
+ await this.openContextMenu(parent);
+ const isActionVisible = await this.testSubjects.exists(REMOVE_PANEL_DATA_TEST_SUBJ);
+ if (!isActionVisible) await this.clickContextMenuMoreItem();
+ const isPanelActionVisible = await this.testSubjects.exists(REMOVE_PANEL_DATA_TEST_SUBJ);
+ if (!isPanelActionVisible) await this.clickContextMenuMoreItem();
+ await this.testSubjects.click(REMOVE_PANEL_DATA_TEST_SUBJ);
+ }
+
+ async removePanelByTitle(title: string) {
+ const header = await this.getPanelHeading(title);
+ this.log.debug('found header? ', Boolean(header));
+ await this.removePanel(header);
+ }
+
+ async customizePanel(parent?: WebElementWrapper) {
+ await this.openContextMenu(parent);
+ await this.testSubjects.click(CUSTOMIZE_PANEL_DATA_TEST_SUBJ);
+ }
+
+ async replacePanelByTitle(title?: string) {
+ this.log.debug(`replacePanel(${title})`);
+ if (title) {
+ const panelOptions = await this.getPanelHeading(title);
+ await this.openContextMenu(panelOptions);
+ } else {
await this.openContextMenu();
- const isActionVisible = await testSubjects.exists(TOGGLE_EXPAND_PANEL_DATA_TEST_SUBJ);
- if (!isActionVisible) await this.clickContextMenuMoreItem();
- await testSubjects.click(TOGGLE_EXPAND_PANEL_DATA_TEST_SUBJ);
- }
-
- async removePanel(parent?: WebElementWrapper) {
- log.debug('removePanel');
- await this.openContextMenu(parent);
- const isActionVisible = await testSubjects.exists(REMOVE_PANEL_DATA_TEST_SUBJ);
- if (!isActionVisible) await this.clickContextMenuMoreItem();
- const isPanelActionVisible = await testSubjects.exists(REMOVE_PANEL_DATA_TEST_SUBJ);
- if (!isPanelActionVisible) await this.clickContextMenuMoreItem();
- await testSubjects.click(REMOVE_PANEL_DATA_TEST_SUBJ);
- }
-
- async removePanelByTitle(title: string) {
- const header = await this.getPanelHeading(title);
- log.debug('found header? ', Boolean(header));
- await this.removePanel(header);
- }
-
- async customizePanel(parent?: WebElementWrapper) {
- await this.openContextMenu(parent);
- await testSubjects.click(CUSTOMIZE_PANEL_DATA_TEST_SUBJ);
- }
-
- async replacePanelByTitle(title?: string) {
- log.debug(`replacePanel(${title})`);
- if (title) {
- const panelOptions = await this.getPanelHeading(title);
- await this.openContextMenu(panelOptions);
- } else {
- await this.openContextMenu();
- }
- const actionExists = await testSubjects.exists(REPLACE_PANEL_DATA_TEST_SUBJ);
- if (!actionExists) {
- await this.clickContextMenuMoreItem();
- }
- await testSubjects.click(REPLACE_PANEL_DATA_TEST_SUBJ);
- }
-
- async clonePanelByTitle(title?: string) {
- log.debug(`clonePanel(${title})`);
- if (title) {
- const panelOptions = await this.getPanelHeading(title);
- await this.openContextMenu(panelOptions);
- } else {
- await this.openContextMenu();
- }
- await testSubjects.click(CLONE_PANEL_DATA_TEST_SUBJ);
- await PageObjects.dashboard.waitForRenderComplete();
- }
-
- async openCopyToModalByTitle(title?: string) {
- log.debug(`copyPanelTo(${title})`);
- if (title) {
- const panelOptions = await this.getPanelHeading(title);
- await this.openContextMenu(panelOptions);
- } else {
- await this.openContextMenu();
- }
- const isActionVisible = await testSubjects.exists(COPY_PANEL_TO_DATA_TEST_SUBJ);
- if (!isActionVisible) await this.clickContextMenuMoreItem();
- await testSubjects.click(COPY_PANEL_TO_DATA_TEST_SUBJ);
- }
-
- async openInspectorByTitle(title: string) {
- const header = await this.getPanelHeading(title);
- await this.openInspector(header);
- }
-
- async getSearchSessionIdByTitle(title: string) {
- await this.openInspectorByTitle(title);
- await inspector.openInspectorRequestsView();
- const searchSessionId = await (
- await testSubjects.find('inspectorRequestSearchSessionId')
- ).getAttribute('data-search-session-id');
- await inspector.close();
- return searchSessionId;
}
-
- async openInspector(parent?: WebElementWrapper) {
- await this.openContextMenu(parent);
- const exists = await testSubjects.exists(OPEN_INSPECTOR_TEST_SUBJ);
- if (!exists) {
- await this.clickContextMenuMoreItem();
- }
- await testSubjects.click(OPEN_INSPECTOR_TEST_SUBJ);
- }
-
- async unlinkFromLibary(parent?: WebElementWrapper) {
- log.debug('unlinkFromLibrary');
- const libraryNotification = parent
- ? await testSubjects.findDescendant(LIBRARY_NOTIFICATION_TEST_SUBJ, parent)
- : await testSubjects.find(LIBRARY_NOTIFICATION_TEST_SUBJ);
- await libraryNotification.click();
- await testSubjects.click('libraryNotificationUnlinkButton');
- }
-
- async saveToLibrary(newTitle: string, parent?: WebElementWrapper) {
- log.debug('saveToLibrary');
- await this.openContextMenu(parent);
- const exists = await testSubjects.exists(SAVE_TO_LIBRARY_TEST_SUBJ);
- if (!exists) {
- await this.clickContextMenuMoreItem();
- }
- await testSubjects.click(SAVE_TO_LIBRARY_TEST_SUBJ);
- await testSubjects.setValue('savedObjectTitle', newTitle, {
- clearWithKeyboard: true,
- });
- await testSubjects.click('confirmSaveSavedObjectButton');
- }
-
- async expectExistsRemovePanelAction() {
- log.debug('expectExistsRemovePanelAction');
- await this.expectExistsPanelAction(REMOVE_PANEL_DATA_TEST_SUBJ);
+ const actionExists = await this.testSubjects.exists(REPLACE_PANEL_DATA_TEST_SUBJ);
+ if (!actionExists) {
+ await this.clickContextMenuMoreItem();
}
+ await this.testSubjects.click(REPLACE_PANEL_DATA_TEST_SUBJ);
+ }
- async expectExistsPanelAction(testSubject: string) {
- log.debug('expectExistsPanelAction', testSubject);
+ async clonePanelByTitle(title?: string) {
+ this.log.debug(`clonePanel(${title})`);
+ if (title) {
+ const panelOptions = await this.getPanelHeading(title);
+ await this.openContextMenu(panelOptions);
+ } else {
await this.openContextMenu();
- if (await testSubjects.exists(CLONE_PANEL_DATA_TEST_SUBJ)) return;
- if (await this.hasContextMenuMoreItem()) {
- await this.clickContextMenuMoreItem();
- }
- await testSubjects.existOrFail(CLONE_PANEL_DATA_TEST_SUBJ);
- await this.toggleContextMenu();
}
+ await this.testSubjects.click(CLONE_PANEL_DATA_TEST_SUBJ);
+ await this.PageObjects.dashboard.waitForRenderComplete();
+ }
- async expectMissingPanelAction(testSubject: string) {
- log.debug('expectMissingPanelAction', testSubject);
+ async openCopyToModalByTitle(title?: string) {
+ this.log.debug(`copyPanelTo(${title})`);
+ if (title) {
+ const panelOptions = await this.getPanelHeading(title);
+ await this.openContextMenu(panelOptions);
+ } else {
await this.openContextMenu();
- await testSubjects.missingOrFail(testSubject);
- if (await this.hasContextMenuMoreItem()) {
- await this.clickContextMenuMoreItem();
- await testSubjects.missingOrFail(testSubject);
- }
- await this.toggleContextMenu();
- }
-
- async expectExistsEditPanelAction() {
- log.debug('expectExistsEditPanelAction');
- await this.expectExistsPanelAction(EDIT_PANEL_DATA_TEST_SUBJ);
- }
-
- async expectExistsReplacePanelAction() {
- log.debug('expectExistsReplacePanelAction');
- await this.expectExistsPanelAction(REPLACE_PANEL_DATA_TEST_SUBJ);
}
-
- async expectExistsClonePanelAction() {
- log.debug('expectExistsClonePanelAction');
- await this.expectExistsPanelAction(CLONE_PANEL_DATA_TEST_SUBJ);
- }
-
- async expectMissingEditPanelAction() {
- log.debug('expectMissingEditPanelAction');
- await this.expectMissingPanelAction(EDIT_PANEL_DATA_TEST_SUBJ);
- }
-
- async expectMissingReplacePanelAction() {
- log.debug('expectMissingReplacePanelAction');
- await this.expectMissingPanelAction(REPLACE_PANEL_DATA_TEST_SUBJ);
- }
-
- async expectMissingDuplicatePanelAction() {
- log.debug('expectMissingDuplicatePanelAction');
- await this.expectMissingPanelAction(CLONE_PANEL_DATA_TEST_SUBJ);
- }
-
- async expectMissingRemovePanelAction() {
- log.debug('expectMissingRemovePanelAction');
- await this.expectMissingPanelAction(REMOVE_PANEL_DATA_TEST_SUBJ);
- }
-
- async expectExistsToggleExpandAction() {
- log.debug('expectExistsToggleExpandAction');
- await this.expectExistsPanelAction(TOGGLE_EXPAND_PANEL_DATA_TEST_SUBJ);
- }
-
- async getPanelHeading(title: string) {
- return await testSubjects.find(`embeddablePanelHeading-${title.replace(/\s/g, '')}`);
+ const isActionVisible = await this.testSubjects.exists(COPY_PANEL_TO_DATA_TEST_SUBJ);
+ if (!isActionVisible) await this.clickContextMenuMoreItem();
+ await this.testSubjects.click(COPY_PANEL_TO_DATA_TEST_SUBJ);
+ }
+
+ async openInspectorByTitle(title: string) {
+ const header = await this.getPanelHeading(title);
+ await this.openInspector(header);
+ }
+
+ async getSearchSessionIdByTitle(title: string) {
+ await this.openInspectorByTitle(title);
+ await this.inspector.openInspectorRequestsView();
+ const searchSessionId = await (
+ await this.testSubjects.find('inspectorRequestSearchSessionId')
+ ).getAttribute('data-search-session-id');
+ await this.inspector.close();
+ return searchSessionId;
+ }
+
+ async openInspector(parent?: WebElementWrapper) {
+ await this.openContextMenu(parent);
+ const exists = await this.testSubjects.exists(OPEN_INSPECTOR_TEST_SUBJ);
+ if (!exists) {
+ await this.clickContextMenuMoreItem();
}
-
- async clickHidePanelTitleToggle() {
- await testSubjects.click('customizePanelHideTitle');
+ await this.testSubjects.click(OPEN_INSPECTOR_TEST_SUBJ);
+ }
+
+ async unlinkFromLibary(parent?: WebElementWrapper) {
+ this.log.debug('unlinkFromLibrary');
+ const libraryNotification = parent
+ ? await this.testSubjects.findDescendant(LIBRARY_NOTIFICATION_TEST_SUBJ, parent)
+ : await this.testSubjects.find(LIBRARY_NOTIFICATION_TEST_SUBJ);
+ await libraryNotification.click();
+ await this.testSubjects.click('libraryNotificationUnlinkButton');
+ }
+
+ async saveToLibrary(newTitle: string, parent?: WebElementWrapper) {
+ this.log.debug('saveToLibrary');
+ await this.openContextMenu(parent);
+ const exists = await this.testSubjects.exists(SAVE_TO_LIBRARY_TEST_SUBJ);
+ if (!exists) {
+ await this.clickContextMenuMoreItem();
}
-
- async toggleHidePanelTitle(originalTitle?: string) {
- log.debug(`hidePanelTitle(${originalTitle})`);
- if (originalTitle) {
- const panelOptions = await this.getPanelHeading(originalTitle);
- await this.customizePanel(panelOptions);
- } else {
- await this.customizePanel();
- }
- await this.clickHidePanelTitleToggle();
- await testSubjects.click('saveNewTitleButton');
+ await this.testSubjects.click(SAVE_TO_LIBRARY_TEST_SUBJ);
+ await this.testSubjects.setValue('savedObjectTitle', newTitle, {
+ clearWithKeyboard: true,
+ });
+ await this.testSubjects.click('confirmSaveSavedObjectButton');
+ }
+
+ async expectExistsRemovePanelAction() {
+ this.log.debug('expectExistsRemovePanelAction');
+ await this.expectExistsPanelAction(REMOVE_PANEL_DATA_TEST_SUBJ);
+ }
+
+ async expectExistsPanelAction(testSubject: string) {
+ this.log.debug('expectExistsPanelAction', testSubject);
+ await this.openContextMenu();
+ if (await this.testSubjects.exists(CLONE_PANEL_DATA_TEST_SUBJ)) return;
+ if (await this.hasContextMenuMoreItem()) {
+ await this.clickContextMenuMoreItem();
}
+ await this.testSubjects.existOrFail(CLONE_PANEL_DATA_TEST_SUBJ);
+ await this.toggleContextMenu();
+ }
- /**
- *
- * @param customTitle
- * @param originalTitle - optional to specify which panel to change the title on.
- * @return {Promise}
- */
- async setCustomPanelTitle(customTitle: string, originalTitle?: string) {
- log.debug(`setCustomPanelTitle(${customTitle}, ${originalTitle})`);
- if (originalTitle) {
- const panelOptions = await this.getPanelHeading(originalTitle);
- await this.customizePanel(panelOptions);
- } else {
- await this.customizePanel();
+ async expectMissingPanelAction(testSubject: string) {
+ this.log.debug('expectMissingPanelAction', testSubject);
+ await this.openContextMenu();
+ await this.testSubjects.missingOrFail(testSubject);
+ if (await this.hasContextMenuMoreItem()) {
+ await this.clickContextMenuMoreItem();
+ await this.testSubjects.missingOrFail(testSubject);
+ }
+ await this.toggleContextMenu();
+ }
+
+ async expectExistsEditPanelAction() {
+ this.log.debug('expectExistsEditPanelAction');
+ await this.expectExistsPanelAction(EDIT_PANEL_DATA_TEST_SUBJ);
+ }
+
+ async expectExistsReplacePanelAction() {
+ this.log.debug('expectExistsReplacePanelAction');
+ await this.expectExistsPanelAction(REPLACE_PANEL_DATA_TEST_SUBJ);
+ }
+
+ async expectExistsClonePanelAction() {
+ this.log.debug('expectExistsClonePanelAction');
+ await this.expectExistsPanelAction(CLONE_PANEL_DATA_TEST_SUBJ);
+ }
+
+ async expectMissingEditPanelAction() {
+ this.log.debug('expectMissingEditPanelAction');
+ await this.expectMissingPanelAction(EDIT_PANEL_DATA_TEST_SUBJ);
+ }
+
+ async expectMissingReplacePanelAction() {
+ this.log.debug('expectMissingReplacePanelAction');
+ await this.expectMissingPanelAction(REPLACE_PANEL_DATA_TEST_SUBJ);
+ }
+
+ async expectMissingDuplicatePanelAction() {
+ this.log.debug('expectMissingDuplicatePanelAction');
+ await this.expectMissingPanelAction(CLONE_PANEL_DATA_TEST_SUBJ);
+ }
+
+ async expectMissingRemovePanelAction() {
+ this.log.debug('expectMissingRemovePanelAction');
+ await this.expectMissingPanelAction(REMOVE_PANEL_DATA_TEST_SUBJ);
+ }
+
+ async expectExistsToggleExpandAction() {
+ this.log.debug('expectExistsToggleExpandAction');
+ await this.expectExistsPanelAction(TOGGLE_EXPAND_PANEL_DATA_TEST_SUBJ);
+ }
+
+ async getPanelHeading(title: string) {
+ return await this.testSubjects.find(`embeddablePanelHeading-${title.replace(/\s/g, '')}`);
+ }
+
+ async clickHidePanelTitleToggle() {
+ await this.testSubjects.click('customizePanelHideTitle');
+ }
+
+ async toggleHidePanelTitle(originalTitle?: string) {
+ this.log.debug(`hidePanelTitle(${originalTitle})`);
+ if (originalTitle) {
+ const panelOptions = await this.getPanelHeading(originalTitle);
+ await this.customizePanel(panelOptions);
+ } else {
+ await this.customizePanel();
+ }
+ await this.clickHidePanelTitleToggle();
+ await this.testSubjects.click('saveNewTitleButton');
+ }
+
+ /**
+ *
+ * @param customTitle
+ * @param originalTitle - optional to specify which panel to change the title on.
+ * @return {Promise}
+ */
+ async setCustomPanelTitle(customTitle: string, originalTitle?: string) {
+ this.log.debug(`setCustomPanelTitle(${customTitle}, ${originalTitle})`);
+ if (originalTitle) {
+ const panelOptions = await this.getPanelHeading(originalTitle);
+ await this.customizePanel(panelOptions);
+ } else {
+ await this.customizePanel();
+ }
+ await this.testSubjects.setValue('customEmbeddablePanelTitleInput', customTitle);
+ await this.testSubjects.click('saveNewTitleButton');
+ }
+
+ async resetCustomPanelTitle(panel?: WebElementWrapper) {
+ this.log.debug('resetCustomPanelTitle');
+ await this.customizePanel(panel);
+ await this.testSubjects.click('resetCustomEmbeddablePanelTitle');
+ await this.testSubjects.click('saveNewTitleButton');
+ await this.toggleContextMenu(panel);
+ }
+
+ async getActionWebElementByText(text: string): Promise {
+ this.log.debug(`getActionWebElement: "${text}"`);
+ const menu = await this.testSubjects.find('multipleActionsContextMenu');
+ const items = await menu.findAllByCssSelector('[data-test-subj*="embeddablePanelAction-"]');
+ for (const item of items) {
+ const currentText = await item.getVisibleText();
+ if (currentText === text) {
+ return item;
}
- await testSubjects.setValue('customEmbeddablePanelTitleInput', customTitle);
- await testSubjects.click('saveNewTitleButton');
}
- async resetCustomPanelTitle(panel?: WebElementWrapper) {
- log.debug('resetCustomPanelTitle');
- await this.customizePanel(panel);
- await testSubjects.click('resetCustomEmbeddablePanelTitle');
- await testSubjects.click('saveNewTitleButton');
- await this.toggleContextMenu(panel);
- }
-
- async getActionWebElementByText(text: string): Promise {
- log.debug(`getActionWebElement: "${text}"`);
- const menu = await testSubjects.find('multipleActionsContextMenu');
- const items = await menu.findAllByCssSelector('[data-test-subj*="embeddablePanelAction-"]');
- for (const item of items) {
- const currentText = await item.getVisibleText();
- if (currentText === text) {
- return item;
- }
- }
-
- throw new Error(`No action matching text "${text}"`);
- }
- })();
+ throw new Error(`No action matching text "${text}"`);
+ }
}
diff --git a/test/functional/services/dashboard/replace_panel.ts b/test/functional/services/dashboard/replace_panel.ts
index 3b33b5cd4f6a6..8f8f680b839bf 100644
--- a/test/functional/services/dashboard/replace_panel.ts
+++ b/test/functional/services/dashboard/replace_panel.ts
@@ -6,89 +6,87 @@
* Side Public License, v 1.
*/
-import { FtrProviderContext } from '../../ftr_provider_context';
+import { FtrService } from '../../ftr_provider_context';
-export function DashboardReplacePanelProvider({ getService }: FtrProviderContext) {
- const log = getService('log');
- const testSubjects = getService('testSubjects');
- const flyout = getService('flyout');
+export class DashboardReplacePanelService extends FtrService {
+ private readonly log = this.ctx.getService('log');
+ private readonly testSubjects = this.ctx.getService('testSubjects');
+ private readonly flyout = this.ctx.getService('flyout');
- return new (class DashboardReplacePanel {
- async toggleFilterPopover() {
- log.debug('DashboardReplacePanel.toggleFilter');
- await testSubjects.click('savedObjectFinderFilterButton');
- }
+ async toggleFilterPopover() {
+ this.log.debug('DashboardReplacePanel.toggleFilter');
+ await this.testSubjects.click('savedObjectFinderFilterButton');
+ }
- async toggleFilter(type: string) {
- log.debug(`DashboardReplacePanel.replaceToFilter(${type})`);
- await this.waitForListLoading();
- await this.toggleFilterPopover();
- await testSubjects.click(`savedObjectFinderFilter-${type}`);
- await this.toggleFilterPopover();
- }
+ async toggleFilter(type: string) {
+ this.log.debug(`DashboardReplacePanel.replaceToFilter(${type})`);
+ await this.waitForListLoading();
+ await this.toggleFilterPopover();
+ await this.testSubjects.click(`savedObjectFinderFilter-${type}`);
+ await this.toggleFilterPopover();
+ }
- async isReplacePanelOpen() {
- log.debug('DashboardReplacePanel.isReplacePanelOpen');
- return await testSubjects.exists('dashboardReplacePanel');
- }
+ async isReplacePanelOpen() {
+ this.log.debug('DashboardReplacePanel.isReplacePanelOpen');
+ return await this.testSubjects.exists('dashboardReplacePanel');
+ }
- async ensureReplacePanelIsShowing() {
- log.debug('DashboardReplacePanel.ensureReplacePanelIsShowing');
- const isOpen = await this.isReplacePanelOpen();
- if (!isOpen) {
- throw new Error('Replace panel is not open, trying again.');
- }
+ async ensureReplacePanelIsShowing() {
+ this.log.debug('DashboardReplacePanel.ensureReplacePanelIsShowing');
+ const isOpen = await this.isReplacePanelOpen();
+ if (!isOpen) {
+ throw new Error('Replace panel is not open, trying again.');
}
+ }
- async waitForListLoading() {
- await testSubjects.waitForDeleted('savedObjectFinderLoadingIndicator');
- }
+ async waitForListLoading() {
+ await this.testSubjects.waitForDeleted('savedObjectFinderLoadingIndicator');
+ }
- async closeReplacePanel() {
- await flyout.ensureClosed('dashboardReplacePanel');
- }
+ async closeReplacePanel() {
+ await this.flyout.ensureClosed('dashboardReplacePanel');
+ }
- async replaceSavedSearch(searchName: string) {
- return this.replaceEmbeddable(searchName, 'search');
- }
+ async replaceSavedSearch(searchName: string) {
+ return this.replaceEmbeddable(searchName, 'search');
+ }
- async replaceSavedSearches(searches: string[]) {
- for (const name of searches) {
- await this.replaceSavedSearch(name);
- }
+ async replaceSavedSearches(searches: string[]) {
+ for (const name of searches) {
+ await this.replaceSavedSearch(name);
}
+ }
- async replaceVisualization(vizName: string) {
- return this.replaceEmbeddable(vizName, 'visualization');
- }
+ async replaceVisualization(vizName: string) {
+ return this.replaceEmbeddable(vizName, 'visualization');
+ }
- async replaceEmbeddable(embeddableName: string, embeddableType?: string) {
- log.debug(
- `DashboardReplacePanel.replaceEmbeddable, name: ${embeddableName}, type: ${embeddableType}`
- );
- await this.ensureReplacePanelIsShowing();
- if (embeddableType) {
- await this.toggleFilter(embeddableType);
- }
- await this.filterEmbeddableNames(`"${embeddableName.replace('-', ' ')}"`);
- await testSubjects.click(`savedObjectTitle${embeddableName.split(' ').join('-')}`);
- await testSubjects.exists('addObjectToDashboardSuccess');
- await this.closeReplacePanel();
- return embeddableName;
+ async replaceEmbeddable(embeddableName: string, embeddableType?: string) {
+ this.log.debug(
+ `DashboardReplacePanel.replaceEmbeddable, name: ${embeddableName}, type: ${embeddableType}`
+ );
+ await this.ensureReplacePanelIsShowing();
+ if (embeddableType) {
+ await this.toggleFilter(embeddableType);
}
+ await this.filterEmbeddableNames(`"${embeddableName.replace('-', ' ')}"`);
+ await this.testSubjects.click(`savedObjectTitle${embeddableName.split(' ').join('-')}`);
+ await this.testSubjects.exists('addObjectToDashboardSuccess');
+ await this.closeReplacePanel();
+ return embeddableName;
+ }
- async filterEmbeddableNames(name: string) {
- // The search input field may be disabled while the table is loading so wait for it
- await this.waitForListLoading();
- await testSubjects.setValue('savedObjectFinderSearchInput', name);
- await this.waitForListLoading();
- }
+ async filterEmbeddableNames(name: string) {
+ // The search input field may be disabled while the table is loading so wait for it
+ await this.waitForListLoading();
+ await this.testSubjects.setValue('savedObjectFinderSearchInput', name);
+ await this.waitForListLoading();
+ }
- async panelReplaceLinkExists(name: string) {
- log.debug(`DashboardReplacePanel.panelReplaceLinkExists(${name})`);
- await this.ensureReplacePanelIsShowing();
- await this.filterEmbeddableNames(`"${name}"`);
- return await testSubjects.exists(`savedObjectTitle${name.split(' ').join('-')}`);
- }
- })();
+ async panelReplaceLinkExists(name: string) {
+ this.log.debug(`DashboardReplacePanel.panelReplaceLinkExists(${name})`);
+ await this.ensureReplacePanelIsShowing();
+ await this.filterEmbeddableNames(`"${name}"`);
+ return await this.testSubjects.exists(`savedObjectTitle${name.split(' ').join('-')}`);
+ }
}
diff --git a/test/functional/services/dashboard/visualizations.ts b/test/functional/services/dashboard/visualizations.ts
index 2bf7458ff9c5f..a6b88802d7b81 100644
--- a/test/functional/services/dashboard/visualizations.ts
+++ b/test/functional/services/dashboard/visualizations.ts
@@ -6,14 +6,14 @@
* Side Public License, v 1.
*/
-import { FtrProviderContext } from '../../ftr_provider_context';
+import { FtrService } from '../../ftr_provider_context';
-export function DashboardVisualizationProvider({ getService, getPageObjects }: FtrProviderContext) {
- const log = getService('log');
- const queryBar = getService('queryBar');
- const testSubjects = getService('testSubjects');
- const dashboardAddPanel = getService('dashboardAddPanel');
- const PageObjects = getPageObjects([
+export class DashboardVisualizationsService extends FtrService {
+ private readonly log = this.ctx.getService('log');
+ private readonly queryBar = this.ctx.getService('queryBar');
+ private readonly testSubjects = this.ctx.getService('testSubjects');
+ private readonly dashboardAddPanel = this.ctx.getService('dashboardAddPanel');
+ private readonly PageObjects = this.ctx.getPageObjects([
'dashboard',
'visualize',
'visEditor',
@@ -22,108 +22,106 @@ export function DashboardVisualizationProvider({ getService, getPageObjects }: F
'timePicker',
]);
- return new (class DashboardVisualizations {
- async createAndAddTSVBVisualization(name: string) {
- log.debug(`createAndAddTSVBVisualization(${name})`);
- const inViewMode = await PageObjects.dashboard.getIsInViewMode();
- if (inViewMode) {
- await PageObjects.dashboard.switchToEditMode();
- }
- await dashboardAddPanel.clickEditorMenuButton();
- await dashboardAddPanel.clickAddNewEmbeddableLink('metrics');
- await PageObjects.visualize.clickVisualBuilder();
- await PageObjects.visualize.saveVisualizationExpectSuccess(name);
+ async createAndAddTSVBVisualization(name: string) {
+ this.log.debug(`createAndAddTSVBVisualization(${name})`);
+ const inViewMode = await this.PageObjects.dashboard.getIsInViewMode();
+ if (inViewMode) {
+ await this.PageObjects.dashboard.switchToEditMode();
}
+ await this.dashboardAddPanel.clickEditorMenuButton();
+ await this.dashboardAddPanel.clickAddNewEmbeddableLink('metrics');
+ await this.PageObjects.visualize.clickVisualBuilder();
+ await this.PageObjects.visualize.saveVisualizationExpectSuccess(name);
+ }
- async createSavedSearch({
- name,
- query,
- fields,
- }: {
- name: string;
- query?: string;
- fields?: string[];
- }) {
- log.debug(`createSavedSearch(${name})`);
- await PageObjects.header.clickDiscover(true);
- await PageObjects.timePicker.setHistoricalDataRange();
+ async createSavedSearch({
+ name,
+ query,
+ fields,
+ }: {
+ name: string;
+ query?: string;
+ fields?: string[];
+ }) {
+ this.log.debug(`createSavedSearch(${name})`);
+ await this.PageObjects.header.clickDiscover(true);
+ await this.PageObjects.timePicker.setHistoricalDataRange();
- if (query) {
- await queryBar.setQuery(query);
- await queryBar.submitQuery();
- }
+ if (query) {
+ await this.queryBar.setQuery(query);
+ await this.queryBar.submitQuery();
+ }
- if (fields) {
- for (let i = 0; i < fields.length; i++) {
- await PageObjects.discover.clickFieldListItemAdd(fields[i]);
- }
+ if (fields) {
+ for (let i = 0; i < fields.length; i++) {
+ await this.PageObjects.discover.clickFieldListItemAdd(fields[i]);
}
-
- await PageObjects.discover.saveSearch(name);
- await PageObjects.header.waitUntilLoadingHasFinished();
- await testSubjects.exists('saveSearchSuccess');
}
- async createAndAddSavedSearch({
- name,
- query,
- fields,
- }: {
- name: string;
- query?: string;
- fields?: string[];
- }) {
- log.debug(`createAndAddSavedSearch(${name})`);
- await this.createSavedSearch({ name, query, fields });
+ await this.PageObjects.discover.saveSearch(name);
+ await this.PageObjects.header.waitUntilLoadingHasFinished();
+ await this.testSubjects.exists('saveSearchSuccess');
+ }
- await PageObjects.header.clickDashboard();
+ async createAndAddSavedSearch({
+ name,
+ query,
+ fields,
+ }: {
+ name: string;
+ query?: string;
+ fields?: string[];
+ }) {
+ this.log.debug(`createAndAddSavedSearch(${name})`);
+ await this.createSavedSearch({ name, query, fields });
- const inViewMode = await PageObjects.dashboard.getIsInViewMode();
- if (inViewMode) {
- await PageObjects.dashboard.switchToEditMode();
- }
- await dashboardAddPanel.addSavedSearch(name);
+ await this.PageObjects.header.clickDashboard();
+
+ const inViewMode = await this.PageObjects.dashboard.getIsInViewMode();
+ if (inViewMode) {
+ await this.PageObjects.dashboard.switchToEditMode();
}
+ await this.dashboardAddPanel.addSavedSearch(name);
+ }
- async createAndAddMarkdown({ name, markdown }: { name: string; markdown: string }) {
- log.debug(`createAndAddMarkdown(${markdown})`);
- const inViewMode = await PageObjects.dashboard.getIsInViewMode();
- if (inViewMode) {
- await PageObjects.dashboard.switchToEditMode();
- }
- await dashboardAddPanel.clickMarkdownQuickButton();
- await PageObjects.visEditor.setMarkdownTxt(markdown);
- await PageObjects.visEditor.clickGo();
- await PageObjects.visualize.saveVisualizationExpectSuccess(name, {
- saveAsNew: false,
- redirectToOrigin: true,
- });
+ async createAndAddMarkdown({ name, markdown }: { name: string; markdown: string }) {
+ this.log.debug(`createAndAddMarkdown(${markdown})`);
+ const inViewMode = await this.PageObjects.dashboard.getIsInViewMode();
+ if (inViewMode) {
+ await this.PageObjects.dashboard.switchToEditMode();
}
+ await this.dashboardAddPanel.clickMarkdownQuickButton();
+ await this.PageObjects.visEditor.setMarkdownTxt(markdown);
+ await this.PageObjects.visEditor.clickGo();
+ await this.PageObjects.visualize.saveVisualizationExpectSuccess(name, {
+ saveAsNew: false,
+ redirectToOrigin: true,
+ });
+ }
- async createAndEmbedMetric(name: string) {
- log.debug(`createAndEmbedMetric(${name})`);
- const inViewMode = await PageObjects.dashboard.getIsInViewMode();
- if (inViewMode) {
- await PageObjects.dashboard.switchToEditMode();
- }
- await dashboardAddPanel.clickEditorMenuButton();
- await dashboardAddPanel.clickAggBasedVisualizations();
- await dashboardAddPanel.clickVisType('metric');
- await testSubjects.click('savedObjectTitlelogstash-*');
- await testSubjects.exists('visualizesaveAndReturnButton');
- await testSubjects.click('visualizesaveAndReturnButton');
+ async createAndEmbedMetric(name: string) {
+ this.log.debug(`createAndEmbedMetric(${name})`);
+ const inViewMode = await this.PageObjects.dashboard.getIsInViewMode();
+ if (inViewMode) {
+ await this.PageObjects.dashboard.switchToEditMode();
}
+ await this.dashboardAddPanel.clickEditorMenuButton();
+ await this.dashboardAddPanel.clickAggBasedVisualizations();
+ await this.dashboardAddPanel.clickVisType('metric');
+ await this.testSubjects.click('savedObjectTitlelogstash-*');
+ await this.testSubjects.exists('visualizesaveAndReturnButton');
+ await this.testSubjects.click('visualizesaveAndReturnButton');
+ }
- async createAndEmbedMarkdown({ name, markdown }: { name: string; markdown: string }) {
- log.debug(`createAndEmbedMarkdown(${markdown})`);
- const inViewMode = await PageObjects.dashboard.getIsInViewMode();
- if (inViewMode) {
- await PageObjects.dashboard.switchToEditMode();
- }
- await dashboardAddPanel.clickMarkdownQuickButton();
- await PageObjects.visEditor.setMarkdownTxt(markdown);
- await PageObjects.visEditor.clickGo();
- await testSubjects.click('visualizesaveAndReturnButton');
+ async createAndEmbedMarkdown({ name, markdown }: { name: string; markdown: string }) {
+ this.log.debug(`createAndEmbedMarkdown(${markdown})`);
+ const inViewMode = await this.PageObjects.dashboard.getIsInViewMode();
+ if (inViewMode) {
+ await this.PageObjects.dashboard.switchToEditMode();
}
- })();
+ await this.dashboardAddPanel.clickMarkdownQuickButton();
+ await this.PageObjects.visEditor.setMarkdownTxt(markdown);
+ await this.PageObjects.visEditor.clickGo();
+ await this.testSubjects.click('visualizesaveAndReturnButton');
+ }
}
diff --git a/test/functional/services/index.ts b/test/functional/services/index.ts
index 819b8a3981e26..d9cadb1169a66 100644
--- a/test/functional/services/index.ts
+++ b/test/functional/services/index.ts
@@ -19,11 +19,11 @@ import {
} from './common';
import { ComboBoxProvider } from './combo_box';
import {
- DashboardAddPanelProvider,
- DashboardReplacePanelProvider,
- DashboardExpectProvider,
- DashboardPanelActionsProvider,
- DashboardVisualizationProvider,
+ DashboardAddPanelService,
+ DashboardReplacePanelService,
+ DashboardExpectService,
+ DashboardPanelActionsService,
+ DashboardVisualizationsService,
} from './dashboard';
import { DocTableService } from './doc_table';
import { EmbeddingProvider } from './embedding';
@@ -60,13 +60,13 @@ export const services = {
docTable: DocTableService,
screenshots: ScreenshotsService,
snapshots: SnapshotsService,
- dashboardVisualizations: DashboardVisualizationProvider,
- dashboardExpect: DashboardExpectProvider,
failureDebugging: FailureDebuggingProvider,
listingTable: ListingTableService,
- dashboardAddPanel: DashboardAddPanelProvider,
- dashboardReplacePanel: DashboardReplacePanelProvider,
- dashboardPanelActions: DashboardPanelActionsProvider,
+ dashboardVisualizations: DashboardVisualizationsService,
+ dashboardExpect: DashboardExpectService,
+ dashboardAddPanel: DashboardAddPanelService,
+ dashboardReplacePanel: DashboardReplacePanelService,
+ dashboardPanelActions: DashboardPanelActionsService,
flyout: FlyoutProvider,
comboBox: ComboBoxProvider,
dataGrid: DataGridService,
From c166dae31e4fde7e1ba83413b3fbc2fa6e3e3f99 Mon Sep 17 00:00:00 2001
From: Spencer
Date: Wed, 26 May 2021 12:01:31 -0700
Subject: [PATCH 18/30] [ftr] migrate visualizations service to FtrService
classes (#100522)
Co-authored-by: spalger
---
test/functional/apps/visualize/_vega_chart.ts | 20 +-
test/functional/services/index.ts | 12 +-
.../services/visualizations/elastic_chart.ts | 186 ++++++++--------
.../services/visualizations/index.ts | 6 +-
.../services/visualizations/pie_chart.ts | 208 +++++++++---------
.../visualizations/vega_debug_inspector.ts | 72 +++---
6 files changed, 248 insertions(+), 256 deletions(-)
diff --git a/test/functional/apps/visualize/_vega_chart.ts b/test/functional/apps/visualize/_vega_chart.ts
index da33b390925a4..b2692c2a00d78 100644
--- a/test/functional/apps/visualize/_vega_chart.ts
+++ b/test/functional/apps/visualize/_vega_chart.ts
@@ -118,12 +118,12 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
await inspector.openInspectorRequestsView();
for (const getFn of [
- inspector.getOpenRequestDetailRequestButton,
- inspector.getOpenRequestDetailResponseButton,
- inspector.getOpenRequestStatisticButton,
- ]) {
+ 'getOpenRequestDetailRequestButton',
+ 'getOpenRequestDetailResponseButton',
+ 'getOpenRequestStatisticButton',
+ ] as const) {
await retry.try(async () => {
- const requestStatisticTab = await getFn();
+ const requestStatisticTab = await inspector[getFn]();
expect(await requestStatisticTab.isEnabled()).to.be(true);
});
@@ -159,12 +159,12 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
await vegaDebugInspectorView.openVegaDebugInspectorView();
for (const getFn of [
- vegaDebugInspectorView.getOpenDataViewerButton,
- vegaDebugInspectorView.getOpenSignalViewerButton,
- vegaDebugInspectorView.getOpenSpecViewerButton,
- ]) {
+ 'getOpenDataViewerButton',
+ 'getOpenSignalViewerButton',
+ 'getOpenSpecViewerButton',
+ ] as const) {
await retry.try(async () => {
- const requestStatisticTab = await getFn();
+ const requestStatisticTab = await vegaDebugInspectorView[getFn]();
expect(await requestStatisticTab.isEnabled()).to.be(true);
});
diff --git a/test/functional/services/index.ts b/test/functional/services/index.ts
index d9cadb1169a66..a483dd4f21ba9 100644
--- a/test/functional/services/index.ts
+++ b/test/functional/services/index.ts
@@ -39,9 +39,9 @@ import { RenderableProvider } from './renderable';
import { ToastsProvider } from './toasts';
import { DataGridService } from './data_grid';
import {
- PieChartProvider,
- ElasticChartProvider,
- VegaDebugInspectorViewProvider,
+ PieChartService,
+ ElasticChartService,
+ VegaDebugInspectorViewService,
} from './visualizations';
import { ListingTableService } from './listing_table';
import { SavedQueryManagementComponentProvider } from './saved_query_management_component';
@@ -73,15 +73,15 @@ export const services = {
embedding: EmbeddingProvider,
renderable: RenderableProvider,
browser: BrowserProvider,
- pieChart: PieChartProvider,
+ pieChart: PieChartService,
inspector: InspectorProvider,
fieldEditor: FieldEditorService,
- vegaDebugInspector: VegaDebugInspectorViewProvider,
+ vegaDebugInspector: VegaDebugInspectorViewService,
appsMenu: AppsMenuProvider,
globalNav: GlobalNavService,
toasts: ToastsProvider,
savedQueryManagementComponent: SavedQueryManagementComponentProvider,
- elasticChart: ElasticChartProvider,
+ elasticChart: ElasticChartService,
supertest: KibanaSupertestProvider,
managementMenu: ManagementMenuProvider,
monacoEditor: MonacoEditorProvider,
diff --git a/test/functional/services/visualizations/elastic_chart.ts b/test/functional/services/visualizations/elastic_chart.ts
index 80483100a06dd..b954b4ba03616 100644
--- a/test/functional/services/visualizations/elastic_chart.ts
+++ b/test/functional/services/visualizations/elastic_chart.ts
@@ -9,7 +9,7 @@
import { DebugState } from '@elastic/charts';
import expect from '@kbn/expect';
-import { FtrProviderContext } from '../../ftr_provider_context';
+import { FtrService } from '../../ftr_provider_context';
import { WebElementWrapper } from '../lib/web_element_wrapper';
declare global {
@@ -21,115 +21,111 @@ declare global {
}
}
-export function ElasticChartProvider({ getService }: FtrProviderContext) {
- const testSubjects = getService('testSubjects');
- const find = getService('find');
- const retry = getService('retry');
- const log = getService('log');
- const browser = getService('browser');
-
- class ElasticChart {
- public async getCanvas(dataTestSubj?: string) {
- if (dataTestSubj) {
- const chart = await this.getChart(dataTestSubj);
- return await chart.findByClassName('echCanvasRenderer');
- }
- return await find.byCssSelector('.echChart canvas:last-of-type');
- }
+export class ElasticChartService extends FtrService {
+ private readonly testSubjects = this.ctx.getService('testSubjects');
+ private readonly find = this.ctx.getService('find');
+ private readonly retry = this.ctx.getService('retry');
+ private readonly log = this.ctx.getService('log');
+ private readonly browser = this.ctx.getService('browser');
- public async canvasExists() {
- return await find.existsByCssSelector('.echChart canvas:last-of-type');
- }
-
- public async waitForRenderComplete(dataTestSubj?: string) {
+ public async getCanvas(dataTestSubj?: string) {
+ if (dataTestSubj) {
const chart = await this.getChart(dataTestSubj);
- const rendered = await chart.findAllByCssSelector(
- '.echChartStatus[data-ech-render-complete=true]'
- );
- expect(rendered.length).to.equal(1);
+ return await chart.findByClassName('echCanvasRenderer');
}
+ return await this.find.byCssSelector('.echChart canvas:last-of-type');
+ }
- public async getVisualizationRenderingCount(dataTestSubj?: string) {
- const chart = await this.getChart(dataTestSubj);
- const visContainer = await chart.findByCssSelector('.echChartStatus');
- const renderingCount = await visContainer.getAttribute('data-ech-render-count');
- return Number(renderingCount);
- }
+ public async canvasExists() {
+ return await this.find.existsByCssSelector('.echChart canvas:last-of-type');
+ }
- public async waitForRenderingCount(minimumCount: number, dataTestSubj?: string) {
- await retry.waitFor(`rendering count to be equal to [${minimumCount}]`, async () => {
- const currentRenderingCount = await this.getVisualizationRenderingCount(dataTestSubj);
- log.debug(`-- currentRenderingCount=${currentRenderingCount}`);
- return currentRenderingCount >= minimumCount;
- });
- }
+ public async waitForRenderComplete(dataTestSubj?: string) {
+ const chart = await this.getChart(dataTestSubj);
+ const rendered = await chart.findAllByCssSelector(
+ '.echChartStatus[data-ech-render-complete=true]'
+ );
+ expect(rendered.length).to.equal(1);
+ }
- public async hasChart(dataTestSubj?: string, timeout?: number): Promise {
- if (dataTestSubj) {
- return await testSubjects.exists(dataTestSubj, { timeout });
- } else {
- const charts = await this.getAllCharts(timeout);
+ public async getVisualizationRenderingCount(dataTestSubj?: string) {
+ const chart = await this.getChart(dataTestSubj);
+ const visContainer = await chart.findByCssSelector('.echChartStatus');
+ const renderingCount = await visContainer.getAttribute('data-ech-render-count');
+ return Number(renderingCount);
+ }
- return charts.length > 0;
- }
- }
+ public async waitForRenderingCount(minimumCount: number, dataTestSubj?: string) {
+ await this.retry.waitFor(`rendering count to be equal to [${minimumCount}]`, async () => {
+ const currentRenderingCount = await this.getVisualizationRenderingCount(dataTestSubj);
+ this.log.debug(`-- currentRenderingCount=${currentRenderingCount}`);
+ return currentRenderingCount >= minimumCount;
+ });
+ }
- private async getChart(
- dataTestSubj?: string,
- timeout?: number,
- match: number = 0
- ): Promise {
- if (dataTestSubj) {
- if (!(await testSubjects.exists(dataTestSubj, { timeout }))) {
- throw Error(`Failed to find an elastic-chart with testSubject '${dataTestSubj}'`);
- }
-
- return (await testSubjects.findAll(dataTestSubj))[match];
- } else {
- const charts = await this.getAllCharts(timeout);
- if (charts.length === 0) {
- throw Error(`Failed to find any elastic-charts on the page`);
- } else {
- return charts[match];
- }
- }
- }
+ public async hasChart(dataTestSubj?: string, timeout?: number): Promise {
+ if (dataTestSubj) {
+ return await this.testSubjects.exists(dataTestSubj, { timeout });
+ } else {
+ const charts = await this.getAllCharts(timeout);
- private async getAllCharts(timeout?: number) {
- return await find.allByCssSelector('.echChart', timeout);
+ return charts.length > 0;
}
+ }
- /**
- * used to get chart data from `@elastic/charts`
- * requires `window._echDebugStateFlag` to be true
- */
- public async getChartDebugData(
- dataTestSubj?: string,
- match: number = 0
- ): Promise {
- const chart = await this.getChart(dataTestSubj, undefined, match);
-
- try {
- const visContainer = await chart.findByCssSelector('.echChartStatus');
- const debugDataString: string | undefined = await visContainer.getAttribute(
- 'data-ech-debug-state'
- );
- return debugDataString ? JSON.parse(debugDataString) : null;
- } catch (error) {
- throw Error('Elastic charts debugState not found');
+ private async getChart(
+ dataTestSubj?: string,
+ timeout?: number,
+ match: number = 0
+ ): Promise {
+ if (dataTestSubj) {
+ if (!(await this.testSubjects.exists(dataTestSubj, { timeout }))) {
+ throw Error(`Failed to find an elastic-chart with testSubject '${dataTestSubj}'`);
+ }
+
+ return (await this.testSubjects.findAll(dataTestSubj))[match];
+ } else {
+ const charts = await this.getAllCharts(timeout);
+ if (charts.length === 0) {
+ throw Error(`Failed to find any elastic-charts on the page`);
+ } else {
+ return charts[match];
}
}
+ }
- /**
- * Used to set a flag on the window to trigger debug state on elastic charts
- * @param value
- */
- public async setNewChartUiDebugFlag(value = true) {
- await browser.execute<[boolean], void>((v) => {
- window._echDebugStateFlag = v;
- }, value);
+ private async getAllCharts(timeout?: number) {
+ return await this.find.allByCssSelector('.echChart', timeout);
+ }
+
+ /**
+ * used to get chart data from `@elastic/charts`
+ * requires `window._echDebugStateFlag` to be true
+ */
+ public async getChartDebugData(
+ dataTestSubj?: string,
+ match: number = 0
+ ): Promise {
+ const chart = await this.getChart(dataTestSubj, undefined, match);
+
+ try {
+ const visContainer = await chart.findByCssSelector('.echChartStatus');
+ const debugDataString: string | undefined = await visContainer.getAttribute(
+ 'data-ech-debug-state'
+ );
+ return debugDataString ? JSON.parse(debugDataString) : null;
+ } catch (error) {
+ throw Error('Elastic charts debugState not found');
}
}
- return new ElasticChart();
+ /**
+ * Used to set a flag on the window to trigger debug state on elastic charts
+ * @param value
+ */
+ public async setNewChartUiDebugFlag(value = true) {
+ await this.browser.execute<[boolean], void>((v) => {
+ window._echDebugStateFlag = v;
+ }, value);
+ }
}
diff --git a/test/functional/services/visualizations/index.ts b/test/functional/services/visualizations/index.ts
index 9c43a1be83de8..22c06f3821a30 100644
--- a/test/functional/services/visualizations/index.ts
+++ b/test/functional/services/visualizations/index.ts
@@ -6,6 +6,6 @@
* Side Public License, v 1.
*/
-export { PieChartProvider } from './pie_chart';
-export { ElasticChartProvider } from './elastic_chart';
-export { VegaDebugInspectorViewProvider } from './vega_debug_inspector';
+export { PieChartService } from './pie_chart';
+export { ElasticChartService } from './elastic_chart';
+export { VegaDebugInspectorViewService } from './vega_debug_inspector';
diff --git a/test/functional/services/visualizations/pie_chart.ts b/test/functional/services/visualizations/pie_chart.ts
index bdf26ab8a5b44..cac4e8fe64c5e 100644
--- a/test/functional/services/visualizations/pie_chart.ts
+++ b/test/functional/services/visualizations/pie_chart.ts
@@ -7,111 +7,111 @@
*/
import expect from '@kbn/expect';
-import { FtrProviderContext } from '../../ftr_provider_context';
-
-export function PieChartProvider({ getService }: FtrProviderContext) {
- const log = getService('log');
- const retry = getService('retry');
- const config = getService('config');
- const inspector = getService('inspector');
- const testSubjects = getService('testSubjects');
- const find = getService('find');
- const defaultFindTimeout = config.get('timeouts.find');
- const panelActions = getService('dashboardPanelActions');
-
- return new (class PieChart {
- private readonly filterActionText = 'Apply filter to current view';
-
- async clickOnPieSlice(name?: string) {
- log.debug(`PieChart.clickOnPieSlice(${name})`);
- if (name) {
- await testSubjects.click(`pieSlice-${name.split(' ').join('-')}`);
- } else {
- // If no pie slice has been provided, find the first one available.
- await retry.try(async () => {
- const slices = await find.allByCssSelector('svg > g > g.arcs > path.slice');
- log.debug('Slices found:' + slices.length);
- return slices[0].click();
- });
- }
- }
-
- async filterOnPieSlice(name?: string) {
- log.debug(`PieChart.filterOnPieSlice(${name})`);
- await this.clickOnPieSlice(name);
- const hasUiActionsPopup = await testSubjects.exists('multipleActionsContextMenu');
- if (hasUiActionsPopup) {
- const actionElement = await panelActions.getActionWebElementByText(this.filterActionText);
- await actionElement.click();
- }
- }
-
- async filterByLegendItem(label: string) {
- log.debug(`PieChart.filterByLegendItem(${label})`);
- await testSubjects.click(`legend-${label}`);
- await testSubjects.click(`legend-${label}-filterIn`);
- }
-
- async getPieSlice(name: string) {
- return await testSubjects.find(`pieSlice-${name.split(' ').join('-')}`);
- }
-
- async getAllPieSlices(name: string) {
- return await testSubjects.findAll(`pieSlice-${name.split(' ').join('-')}`);
- }
-
- async getPieSliceStyle(name: string) {
- log.debug(`VisualizePage.getPieSliceStyle(${name})`);
- const pieSlice = await this.getPieSlice(name);
- return await pieSlice.getAttribute('style');
- }
-
- async getAllPieSliceStyles(name: string) {
- log.debug(`VisualizePage.getAllPieSliceStyles(${name})`);
- const pieSlices = await this.getAllPieSlices(name);
- return await Promise.all(
- pieSlices.map(async (pieSlice) => await pieSlice.getAttribute('style'))
- );
- }
-
- async getPieChartData() {
- const chartTypes = await find.allByCssSelector('path.slice', defaultFindTimeout * 2);
- return await Promise.all(chartTypes.map(async (chart) => await chart.getAttribute('d')));
- }
-
- async expectPieChartTableData(expectedTableData: Array<[]>) {
- await inspector.open();
- await inspector.setTablePageSize(50);
- await inspector.expectTableData(expectedTableData);
- }
-
- async getPieChartLabels() {
- const chartTypes = await find.allByCssSelector('path.slice', defaultFindTimeout * 2);
- return await Promise.all(
- chartTypes.map(async (chart) => await chart.getAttribute('data-label'))
- );
- }
-
- async getPieSliceCount() {
- log.debug('PieChart.getPieSliceCount');
- const slices = await find.allByCssSelector('svg > g > g.arcs > path.slice');
- return slices.length;
- }
-
- async expectPieSliceCount(expectedCount: number) {
- log.debug(`PieChart.expectPieSliceCount(${expectedCount})`);
- await retry.try(async () => {
- const slicesCount = await this.getPieSliceCount();
- expect(slicesCount).to.be(expectedCount);
+import { FtrService } from '../../ftr_provider_context';
+
+export class PieChartService extends FtrService {
+ private readonly log = this.ctx.getService('log');
+ private readonly retry = this.ctx.getService('retry');
+ private readonly config = this.ctx.getService('config');
+ private readonly inspector = this.ctx.getService('inspector');
+ private readonly testSubjects = this.ctx.getService('testSubjects');
+ private readonly find = this.ctx.getService('find');
+ private readonly panelActions = this.ctx.getService('dashboardPanelActions');
+ private readonly defaultFindTimeout = this.config.get('timeouts.find');
+
+ private readonly filterActionText = 'Apply filter to current view';
+
+ async clickOnPieSlice(name?: string) {
+ this.log.debug(`PieChart.clickOnPieSlice(${name})`);
+ if (name) {
+ await this.testSubjects.click(`pieSlice-${name.split(' ').join('-')}`);
+ } else {
+ // If no pie slice has been provided, find the first one available.
+ await this.retry.try(async () => {
+ const slices = await this.find.allByCssSelector('svg > g > g.arcs > path.slice');
+ this.log.debug('Slices found:' + slices.length);
+ return slices[0].click();
});
}
-
- async expectPieChartLabels(expectedLabels: string[]) {
- log.debug(`PieChart.expectPieChartLabels(${expectedLabels.join(',')})`);
- await retry.try(async () => {
- const pieData = await this.getPieChartLabels();
- expect(pieData).to.eql(expectedLabels);
- });
+ }
+
+ async filterOnPieSlice(name?: string) {
+ this.log.debug(`PieChart.filterOnPieSlice(${name})`);
+ await this.clickOnPieSlice(name);
+ const hasUiActionsPopup = await this.testSubjects.exists('multipleActionsContextMenu');
+ if (hasUiActionsPopup) {
+ const actionElement = await this.panelActions.getActionWebElementByText(
+ this.filterActionText
+ );
+ await actionElement.click();
}
- })();
+ }
+
+ async filterByLegendItem(label: string) {
+ this.log.debug(`PieChart.filterByLegendItem(${label})`);
+ await this.testSubjects.click(`legend-${label}`);
+ await this.testSubjects.click(`legend-${label}-filterIn`);
+ }
+
+ async getPieSlice(name: string) {
+ return await this.testSubjects.find(`pieSlice-${name.split(' ').join('-')}`);
+ }
+
+ async getAllPieSlices(name: string) {
+ return await this.testSubjects.findAll(`pieSlice-${name.split(' ').join('-')}`);
+ }
+
+ async getPieSliceStyle(name: string) {
+ this.log.debug(`VisualizePage.getPieSliceStyle(${name})`);
+ const pieSlice = await this.getPieSlice(name);
+ return await pieSlice.getAttribute('style');
+ }
+
+ async getAllPieSliceStyles(name: string) {
+ this.log.debug(`VisualizePage.getAllPieSliceStyles(${name})`);
+ const pieSlices = await this.getAllPieSlices(name);
+ return await Promise.all(
+ pieSlices.map(async (pieSlice) => await pieSlice.getAttribute('style'))
+ );
+ }
+
+ async getPieChartData() {
+ const chartTypes = await this.find.allByCssSelector('path.slice', this.defaultFindTimeout * 2);
+ return await Promise.all(chartTypes.map(async (chart) => await chart.getAttribute('d')));
+ }
+
+ async expectPieChartTableData(expectedTableData: Array<[]>) {
+ await this.inspector.open();
+ await this.inspector.setTablePageSize(50);
+ await this.inspector.expectTableData(expectedTableData);
+ }
+
+ async getPieChartLabels() {
+ const chartTypes = await this.find.allByCssSelector('path.slice', this.defaultFindTimeout * 2);
+ return await Promise.all(
+ chartTypes.map(async (chart) => await chart.getAttribute('data-label'))
+ );
+ }
+
+ async getPieSliceCount() {
+ this.log.debug('PieChart.getPieSliceCount');
+ const slices = await this.find.allByCssSelector('svg > g > g.arcs > path.slice');
+ return slices.length;
+ }
+
+ async expectPieSliceCount(expectedCount: number) {
+ this.log.debug(`PieChart.expectPieSliceCount(${expectedCount})`);
+ await this.retry.try(async () => {
+ const slicesCount = await this.getPieSliceCount();
+ expect(slicesCount).to.be(expectedCount);
+ });
+ }
+
+ async expectPieChartLabels(expectedLabels: string[]) {
+ this.log.debug(`PieChart.expectPieChartLabels(${expectedLabels.join(',')})`);
+ await this.retry.try(async () => {
+ const pieData = await this.getPieChartLabels();
+ expect(pieData).to.eql(expectedLabels);
+ });
+ }
}
diff --git a/test/functional/services/visualizations/vega_debug_inspector.ts b/test/functional/services/visualizations/vega_debug_inspector.ts
index af61a5aee4dea..f85d1d51107eb 100644
--- a/test/functional/services/visualizations/vega_debug_inspector.ts
+++ b/test/functional/services/visualizations/vega_debug_inspector.ts
@@ -6,53 +6,49 @@
* Side Public License, v 1.
*/
-import { FtrProviderContext } from '../../ftr_provider_context';
+import { FtrService } from '../../ftr_provider_context';
-export function VegaDebugInspectorViewProvider({ getService }: FtrProviderContext) {
- const testSubjects = getService('testSubjects');
- const inspector = getService('inspector');
- const dataGrid = getService('dataGrid');
+export class VegaDebugInspectorViewService extends FtrService {
+ private readonly testSubjects = this.ctx.getService('testSubjects');
+ private readonly inspector = this.ctx.getService('inspector');
+ private readonly dataGrid = this.ctx.getService('dataGrid');
- class VegaDebugInspectorView {
- async openVegaDebugInspectorView() {
- await inspector.openInspectorView('inspectorViewChooserVega debug');
- }
-
- public getOpenDataViewerButton() {
- return testSubjects.find('vegaDataInspectorDataViewerButton');
- }
+ async openVegaDebugInspectorView() {
+ await this.inspector.openInspectorView('inspectorViewChooserVega debug');
+ }
- public getOpenSignalViewerButton() {
- return testSubjects.find('vegaDataInspectorSignalViewerButton');
- }
+ public getOpenDataViewerButton() {
+ return this.testSubjects.find('vegaDataInspectorDataViewerButton');
+ }
- public getOpenSpecViewerButton() {
- return testSubjects.find('vegaDataInspectorSpecViewerButton');
- }
+ public getOpenSignalViewerButton() {
+ return this.testSubjects.find('vegaDataInspectorSignalViewerButton');
+ }
- public getCopyClipboardButton() {
- return testSubjects.find('vegaDataInspectorCopyClipboardButton');
- }
+ public getOpenSpecViewerButton() {
+ return this.testSubjects.find('vegaDataInspectorSpecViewerButton');
+ }
- public getGridTableData() {
- return dataGrid.getDataGridTableData();
- }
+ public getCopyClipboardButton() {
+ return this.testSubjects.find('vegaDataInspectorCopyClipboardButton');
+ }
- public async navigateToDataViewerTab() {
- const dataViewerButton = await this.getOpenDataViewerButton();
- await dataViewerButton.click();
- }
+ public getGridTableData() {
+ return this.dataGrid.getDataGridTableData();
+ }
- public async navigateToSignalViewerTab() {
- const signalViewerButton = await this.getOpenSignalViewerButton();
- await signalViewerButton.click();
- }
+ public async navigateToDataViewerTab() {
+ const dataViewerButton = await this.getOpenDataViewerButton();
+ await dataViewerButton.click();
+ }
- public async navigateToSpecViewerTab() {
- const specViewerButton = await this.getOpenSpecViewerButton();
- await specViewerButton.click();
- }
+ public async navigateToSignalViewerTab() {
+ const signalViewerButton = await this.getOpenSignalViewerButton();
+ await signalViewerButton.click();
}
- return new VegaDebugInspectorView();
+ public async navigateToSpecViewerTab() {
+ const specViewerButton = await this.getOpenSpecViewerButton();
+ await specViewerButton.click();
+ }
}
From 7270c3bf40b1c1c5f302de8fb910a61aa0979321 Mon Sep 17 00:00:00 2001
From: Spencer
Date: Wed, 26 May 2021 12:10:14 -0700
Subject: [PATCH 19/30] [ftr] migrate management services to FtrService class
(#100521)
Co-authored-by: spalger
---
test/functional/services/index.ts | 4 +-
test/functional/services/management/index.ts | 2 +-
.../services/management/management_menu.ts | 44 +++++++++----------
3 files changed, 23 insertions(+), 27 deletions(-)
diff --git a/test/functional/services/index.ts b/test/functional/services/index.ts
index a483dd4f21ba9..b2e0a3e0f473e 100644
--- a/test/functional/services/index.ts
+++ b/test/functional/services/index.ts
@@ -32,7 +32,7 @@ import { FlyoutProvider } from './flyout';
import { GlobalNavService } from './global_nav';
import { InspectorProvider } from './inspector';
import { FieldEditorService } from './field_editor';
-import { ManagementMenuProvider } from './management';
+import { ManagementMenuService } from './management';
import { QueryBarProvider } from './query_bar';
import { RemoteProvider } from './remote';
import { RenderableProvider } from './renderable';
@@ -83,7 +83,7 @@ export const services = {
savedQueryManagementComponent: SavedQueryManagementComponentProvider,
elasticChart: ElasticChartService,
supertest: KibanaSupertestProvider,
- managementMenu: ManagementMenuProvider,
+ managementMenu: ManagementMenuService,
monacoEditor: MonacoEditorProvider,
MenuToggle: MenuToggleProvider,
};
diff --git a/test/functional/services/management/index.ts b/test/functional/services/management/index.ts
index 988ac06f1ca18..8fc1a88ee5892 100644
--- a/test/functional/services/management/index.ts
+++ b/test/functional/services/management/index.ts
@@ -6,4 +6,4 @@
* Side Public License, v 1.
*/
-export { ManagementMenuProvider } from './management_menu';
+export { ManagementMenuService } from './management_menu';
diff --git a/test/functional/services/management/management_menu.ts b/test/functional/services/management/management_menu.ts
index eb8c6901ffa66..738a8d55439ec 100644
--- a/test/functional/services/management/management_menu.ts
+++ b/test/functional/services/management/management_menu.ts
@@ -6,35 +6,31 @@
* Side Public License, v 1.
*/
-import { FtrProviderContext } from 'test/functional/ftr_provider_context';
+import { FtrService } from '../../ftr_provider_context';
-export function ManagementMenuProvider({ getService }: FtrProviderContext) {
- const find = getService('find');
+export class ManagementMenuService extends FtrService {
+ private readonly find = this.ctx.getService('find');
- class ManagementMenu {
- public async getSections() {
- const sectionsElements = await find.allByCssSelector(
- '.mgtSideBarNav > .euiSideNav__content > .euiSideNavItem'
- );
-
- const sections = [];
+ public async getSections() {
+ const sectionsElements = await this.find.allByCssSelector(
+ '.mgtSideBarNav > .euiSideNav__content > .euiSideNavItem'
+ );
- for (const el of sectionsElements) {
- const sectionId = await (await el.findByClassName('euiSideNavItemButton')).getAttribute(
- 'data-test-subj'
- );
- const sectionLinks = await Promise.all(
- (await el.findAllByCssSelector('.euiSideNavItem > a.euiSideNavItemButton')).map((item) =>
- item.getAttribute('data-test-subj')
- )
- );
+ const sections = [];
- sections.push({ sectionId, sectionLinks });
- }
+ for (const el of sectionsElements) {
+ const sectionId = await (await el.findByClassName('euiSideNavItemButton')).getAttribute(
+ 'data-test-subj'
+ );
+ const sectionLinks = await Promise.all(
+ (await el.findAllByCssSelector('.euiSideNavItem > a.euiSideNavItemButton')).map((item) =>
+ item.getAttribute('data-test-subj')
+ )
+ );
- return sections;
+ sections.push({ sectionId, sectionLinks });
}
- }
- return new ManagementMenu();
+ return sections;
+ }
}
From b189d05bc3304ad6180787b8e48f78a352814ffc Mon Sep 17 00:00:00 2001
From: Justin Kambic
Date: Wed, 26 May 2021 15:31:15 -0400
Subject: [PATCH 20/30] [Uptime] Move uptime actions to Header Actions Menu
(#100298)
* Move uptime actions to Kibana's HeaderActionsMenu.
* Delete a comment.
* Extract ActionMenu content to dedicated component to make testing easier.
* Add tests.
* Use `EuiHeaderLinks` instead of `EuiFlexItem`.
* Clean up tests.
* Prefer `getByRole` for a test.
* Fix copy mistake.
* Fix a test broken by the previous commit.
* Prefer `EuiHeaderSectionItem` over `EuiHeaderSectionLink` to avoid nesting `button`s within `buttons`.
* Reverse "Settings" and "Alerts" menu options to make them uniform with APM.
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
---
.../components/common/header/action_menu.tsx | 72 ++-----------
.../header/action_menu_content.test.tsx | 55 ++++++++++
.../common/header/action_menu_content.tsx | 101 ++++++++++++++++++
.../components/common/header/page_header.tsx | 4 -
.../common/header/page_tabs.test.tsx | 5 -
.../components/common/header/page_tabs.tsx | 17 +--
6 files changed, 166 insertions(+), 88 deletions(-)
create mode 100644 x-pack/plugins/uptime/public/components/common/header/action_menu_content.test.tsx
create mode 100644 x-pack/plugins/uptime/public/components/common/header/action_menu_content.tsx
diff --git a/x-pack/plugins/uptime/public/components/common/header/action_menu.tsx b/x-pack/plugins/uptime/public/components/common/header/action_menu.tsx
index 1d5a375acedee..6186d6f38b968 100644
--- a/x-pack/plugins/uptime/public/components/common/header/action_menu.tsx
+++ b/x-pack/plugins/uptime/public/components/common/header/action_menu.tsx
@@ -6,70 +6,12 @@
*/
import React from 'react';
-import { EuiButtonEmpty, EuiFlexGroup, EuiFlexItem, EuiToolTip } from '@elastic/eui';
-import { i18n } from '@kbn/i18n';
-import { useKibana } from '../../../../../../../src/plugins/kibana_react/public';
-import {
- createExploratoryViewUrl,
- HeaderMenuPortal,
- SeriesUrl,
-} from '../../../../../observability/public';
+import { HeaderMenuPortal } from '../../../../../observability/public';
import { AppMountParameters } from '../../../../../../../src/core/public';
-import { useUptimeSettingsContext } from '../../../contexts/uptime_settings_context';
-import { useGetUrlParams } from '../../../hooks';
+import { ActionMenuContent } from './action_menu_content';
-const ADD_DATA_LABEL = i18n.translate('xpack.uptime.addDataButtonLabel', {
- defaultMessage: 'Add data',
-});
-
-const ANALYZE_DATA = i18n.translate('xpack.uptime.analyzeDataButtonLabel', {
- defaultMessage: 'Analyze data',
-});
-
-const ANALYZE_MESSAGE = i18n.translate('xpack.uptime.analyzeDataButtonLabel.message', {
- defaultMessage:
- 'EXPERIMENTAL - Analyze Data allows you to select and filter result data in any dimension and look for the cause or impact of performance problems.',
-});
-
-export const ActionMenu = ({ appMountParameters }: { appMountParameters: AppMountParameters }) => {
- const kibana = useKibana();
- const { basePath } = useUptimeSettingsContext();
- const { dateRangeStart, dateRangeEnd } = useGetUrlParams();
-
- const syntheticExploratoryViewLink = createExploratoryViewUrl(
- {
- 'synthetics-series': {
- dataType: 'synthetics',
- time: { from: dateRangeStart, to: dateRangeEnd },
- } as SeriesUrl,
- },
- basePath
- );
-
- return (
-
-
-
- {ANALYZE_MESSAGE}
}>
-
- {ANALYZE_DATA}
-
-
-
-
-
- {ADD_DATA_LABEL}
-
-
-
-
- );
-};
+export const ActionMenu = ({ appMountParameters }: { appMountParameters: AppMountParameters }) => (
+
+
+
+);
diff --git a/x-pack/plugins/uptime/public/components/common/header/action_menu_content.test.tsx b/x-pack/plugins/uptime/public/components/common/header/action_menu_content.test.tsx
new file mode 100644
index 0000000000000..bc5eab6f92111
--- /dev/null
+++ b/x-pack/plugins/uptime/public/components/common/header/action_menu_content.test.tsx
@@ -0,0 +1,55 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import React from 'react';
+import { fireEvent, waitFor } from '@testing-library/react';
+import { render } from '../../../lib/helper/rtl_helpers';
+import { ActionMenuContent } from './action_menu_content';
+
+describe('ActionMenuContent', () => {
+ it('renders alerts dropdown', async () => {
+ const { getByLabelText, getByText } = render( );
+
+ const alertsDropdown = getByLabelText('Open alert context menu');
+ fireEvent.click(alertsDropdown);
+
+ await waitFor(() => {
+ expect(getByText('Create alert'));
+ expect(getByText('Manage alerts'));
+ });
+ });
+
+ it('renders settings link', () => {
+ const { getByRole, getByText } = render( );
+
+ const settingsAnchor = getByRole('link', { name: 'Navigate to the Uptime settings page' });
+ expect(settingsAnchor.getAttribute('href')).toBe('/settings');
+ expect(getByText('Settings'));
+ });
+
+ it('renders exploratory view link', () => {
+ const { getByLabelText, getByText } = render( );
+
+ const analyzeAnchor = getByLabelText(
+ 'Navigate to the "Analyze Data" view to visualize Synthetics/User data'
+ );
+
+ expect(analyzeAnchor.getAttribute('href')).toContain('/app/observability/exploratory-view');
+ expect(getByText('Analyze data'));
+ });
+
+ it('renders Add Data link', () => {
+ const { getByLabelText, getByText } = render( );
+
+ const addDataAnchor = getByLabelText('Navigate to a tutorial about adding Uptime data');
+
+ // this href value is mocked, so it doesn't correspond to the real link
+ // that Kibana core services will provide
+ expect(addDataAnchor.getAttribute('href')).toBe('/app/uptime');
+ expect(getByText('Add data'));
+ });
+});
diff --git a/x-pack/plugins/uptime/public/components/common/header/action_menu_content.tsx b/x-pack/plugins/uptime/public/components/common/header/action_menu_content.tsx
new file mode 100644
index 0000000000000..ac7c8ae0a95c6
--- /dev/null
+++ b/x-pack/plugins/uptime/public/components/common/header/action_menu_content.tsx
@@ -0,0 +1,101 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import React from 'react';
+import { EuiButtonEmpty, EuiHeaderLinks, EuiHeaderSectionItem, EuiToolTip } from '@elastic/eui';
+import { i18n } from '@kbn/i18n';
+import { FormattedMessage } from '@kbn/i18n/react';
+import { useHistory } from 'react-router-dom';
+import { createExploratoryViewUrl, SeriesUrl } from '../../../../../observability/public';
+import { useKibana } from '../../../../../../../src/plugins/kibana_react/public';
+import { useUptimeSettingsContext } from '../../../contexts/uptime_settings_context';
+import { useGetUrlParams } from '../../../hooks';
+import { ToggleAlertFlyoutButton } from '../../overview/alerts/alerts_containers';
+import { SETTINGS_ROUTE } from '../../../../common/constants';
+import { stringifyUrlParams } from '../../../lib/helper/stringify_url_params';
+
+const ADD_DATA_LABEL = i18n.translate('xpack.uptime.addDataButtonLabel', {
+ defaultMessage: 'Add data',
+});
+
+const ANALYZE_DATA = i18n.translate('xpack.uptime.analyzeDataButtonLabel', {
+ defaultMessage: 'Analyze data',
+});
+
+const ANALYZE_MESSAGE = i18n.translate('xpack.uptime.analyzeDataButtonLabel.message', {
+ defaultMessage:
+ 'EXPERIMENTAL - Analyze Data allows you to select and filter result data in any dimension and look for the cause or impact of performance problems.',
+});
+
+export function ActionMenuContent(): React.ReactElement {
+ const kibana = useKibana();
+ const { basePath } = useUptimeSettingsContext();
+ const params = useGetUrlParams();
+ const { dateRangeStart, dateRangeEnd } = params;
+ const history = useHistory();
+
+ const syntheticExploratoryViewLink = createExploratoryViewUrl(
+ {
+ 'synthetics-series': {
+ dataType: 'synthetics',
+ time: { from: dateRangeStart, to: dateRangeEnd },
+ } as SeriesUrl,
+ },
+ basePath
+ );
+
+ return (
+
+
+
+
+
+
+
+
+
+
+ {ANALYZE_MESSAGE}}>
+
+ {ANALYZE_DATA}
+
+
+
+
+
+ {ADD_DATA_LABEL}
+
+
+
+ );
+}
diff --git a/x-pack/plugins/uptime/public/components/common/header/page_header.tsx b/x-pack/plugins/uptime/public/components/common/header/page_header.tsx
index 753ce267d141c..28a133698ae8b 100644
--- a/x-pack/plugins/uptime/public/components/common/header/page_header.tsx
+++ b/x-pack/plugins/uptime/public/components/common/header/page_header.tsx
@@ -12,7 +12,6 @@ import { UptimeDatePicker } from '../uptime_date_picker';
import { SyntheticsCallout } from '../../overview/synthetics_callout';
import { PageTabs } from './page_tabs';
import { CertRefreshBtn } from '../../certificates/cert_refresh_btn';
-import { ToggleAlertFlyoutButton } from '../../overview/alerts/alerts_containers';
import { MonitorPageTitle } from '../../monitor/monitor_title';
export interface Props {
@@ -52,9 +51,6 @@ export const PageHeader = ({
{showMonitorTitle && }
{showTabs && }
-
-
-
{showCertificateRefreshBtn && }
{showDatePicker && (
diff --git a/x-pack/plugins/uptime/public/components/common/header/page_tabs.test.tsx b/x-pack/plugins/uptime/public/components/common/header/page_tabs.test.tsx
index edb1b56668b15..2870006dc20be 100644
--- a/x-pack/plugins/uptime/public/components/common/header/page_tabs.test.tsx
+++ b/x-pack/plugins/uptime/public/components/common/header/page_tabs.test.tsx
@@ -15,7 +15,6 @@ describe('PageTabs', () => {
const { getByText } = render( );
expect(getByText('Overview')).toBeInTheDocument();
expect(getByText('Certificates')).toBeInTheDocument();
- expect(getByText('Settings')).toBeInTheDocument();
});
it('it keep params while switching', () => {
@@ -32,10 +31,6 @@ describe('PageTabs', () => {
'href',
'/certificates?dateRangeStart=now-10m'
);
- expect(getByTestId('settings-page-link')).toHaveAttribute(
- 'href',
- '/settings?dateRangeStart=now-10m'
- );
});
it('it resets params on overview if already on overview', () => {
diff --git a/x-pack/plugins/uptime/public/components/common/header/page_tabs.tsx b/x-pack/plugins/uptime/public/components/common/header/page_tabs.tsx
index 263351d4ea4d0..74b037971c126 100644
--- a/x-pack/plugins/uptime/public/components/common/header/page_tabs.tsx
+++ b/x-pack/plugins/uptime/public/components/common/header/page_tabs.tsx
@@ -10,7 +10,7 @@ import React, { useEffect, useState } from 'react';
import { EuiTabs, EuiTab } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { useHistory, useRouteMatch } from 'react-router-dom';
-import { CERTIFICATES_ROUTE, OVERVIEW_ROUTE, SETTINGS_ROUTE } from '../../../../common/constants';
+import { CERTIFICATES_ROUTE, OVERVIEW_ROUTE } from '../../../../common/constants';
import { useGetUrlParams } from '../../../hooks';
import { stringifyUrlParams } from '../../../lib/helper/stringify_url_params';
@@ -28,13 +28,6 @@ const tabs = [
name: 'Certificates',
dataTestSubj: 'uptimeCertificatesLink',
},
- {
- id: SETTINGS_ROUTE,
- dataTestSubj: 'settings-page-link',
- name: i18n.translate('xpack.uptime.page_header.settingsLink', {
- defaultMessage: 'Settings',
- }),
- },
];
export const PageTabs = () => {
@@ -45,7 +38,6 @@ export const PageTabs = () => {
const params = useGetUrlParams();
const isOverView = useRouteMatch(OVERVIEW_ROUTE);
- const isSettings = useRouteMatch(SETTINGS_ROUTE);
const isCerts = useRouteMatch(CERTIFICATES_ROUTE);
useEffect(() => {
@@ -55,13 +47,10 @@ export const PageTabs = () => {
if (isCerts) {
setSelectedTabId(CERTIFICATES_ROUTE);
}
- if (isSettings) {
- setSelectedTabId(SETTINGS_ROUTE);
- }
- if (!isOverView?.isExact && !isCerts && !isSettings) {
+ if (!isOverView?.isExact && !isCerts) {
setSelectedTabId(null);
}
- }, [isCerts, isSettings, isOverView]);
+ }, [isCerts, isOverView]);
const createHrefForTab = (id: string) => {
if (selectedTabId === OVERVIEW_ROUTE && id === OVERVIEW_ROUTE) {
From dbd0ce761ad8f06cc8494827ef69df0a621cf5a6 Mon Sep 17 00:00:00 2001
From: Spencer
Date: Wed, 26 May 2021 12:41:05 -0700
Subject: [PATCH 21/30] [ftr] migrate "toasts" service to FtrService class
(#100613)
Co-authored-by: spalger
---
test/functional/services/index.ts | 4 +-
test/functional/services/toasts.ts | 116 ++++++++++++++---------------
2 files changed, 58 insertions(+), 62 deletions(-)
diff --git a/test/functional/services/index.ts b/test/functional/services/index.ts
index b2e0a3e0f473e..93026af6766bd 100644
--- a/test/functional/services/index.ts
+++ b/test/functional/services/index.ts
@@ -36,7 +36,7 @@ import { ManagementMenuService } from './management';
import { QueryBarProvider } from './query_bar';
import { RemoteProvider } from './remote';
import { RenderableProvider } from './renderable';
-import { ToastsProvider } from './toasts';
+import { ToastsService } from './toasts';
import { DataGridService } from './data_grid';
import {
PieChartService,
@@ -79,7 +79,7 @@ export const services = {
vegaDebugInspector: VegaDebugInspectorViewService,
appsMenu: AppsMenuProvider,
globalNav: GlobalNavService,
- toasts: ToastsProvider,
+ toasts: ToastsService,
savedQueryManagementComponent: SavedQueryManagementComponentProvider,
elasticChart: ElasticChartService,
supertest: KibanaSupertestProvider,
diff --git a/test/functional/services/toasts.ts b/test/functional/services/toasts.ts
index aeaf79e75574a..d71d66e399785 100644
--- a/test/functional/services/toasts.ts
+++ b/test/functional/services/toasts.ts
@@ -6,78 +6,74 @@
* Side Public License, v 1.
*/
-import { FtrProviderContext } from '../ftr_provider_context';
+import { FtrService } from '../ftr_provider_context';
-export function ToastsProvider({ getService }: FtrProviderContext) {
- const testSubjects = getService('testSubjects');
+export class ToastsService extends FtrService {
+ private readonly testSubjects = this.ctx.getService('testSubjects');
- class Toasts {
- /**
- * Returns the title and message of a specific error toast.
- * This method is specific to toasts created via `.addError` since they contain
- * an additional button, that should not be part of the message.
- *
- * @param index The index of the toast (1-based, NOT 0-based!) of the toast. Use first by default.
- * @returns The title and message of the specified error toast.https://github.com/elastic/kibana/issues/17087
- */
- public async getErrorToast(index: number = 1) {
- const toast = await this.getToastElement(index);
- const titleElement = await testSubjects.findDescendant('euiToastHeader', toast);
- const title: string = await titleElement.getVisibleText();
- const messageElement = await testSubjects.findDescendant('errorToastMessage', toast);
- const message: string = await messageElement.getVisibleText();
- return { title, message };
- }
+ /**
+ * Returns the title and message of a specific error toast.
+ * This method is specific to toasts created via `.addError` since they contain
+ * an additional button, that should not be part of the message.
+ *
+ * @param index The index of the toast (1-based, NOT 0-based!) of the toast. Use first by default.
+ * @returns The title and message of the specified error toast.https://github.com/elastic/kibana/issues/17087
+ */
+ public async getErrorToast(index: number = 1) {
+ const toast = await this.getToastElement(index);
+ const titleElement = await this.testSubjects.findDescendant('euiToastHeader', toast);
+ const title: string = await titleElement.getVisibleText();
+ const messageElement = await this.testSubjects.findDescendant('errorToastMessage', toast);
+ const message: string = await messageElement.getVisibleText();
+ return { title, message };
+ }
- /**
- * Dismiss a specific toast from the toast list. Since toasts usually should time out themselves,
- * you only need to call this for permanent toasts (e.g. error toasts).
- *
- * @param index The 1-based index of the toast to dismiss. Use first by default.
- */
- public async dismissToast(index: number = 1) {
- const toast = await this.getToastElement(index);
- await toast.moveMouseTo();
- const dismissButton = await testSubjects.findDescendant('toastCloseButton', toast);
- await dismissButton.click();
- }
+ /**
+ * Dismiss a specific toast from the toast list. Since toasts usually should time out themselves,
+ * you only need to call this for permanent toasts (e.g. error toasts).
+ *
+ * @param index The 1-based index of the toast to dismiss. Use first by default.
+ */
+ public async dismissToast(index: number = 1) {
+ const toast = await this.getToastElement(index);
+ await toast.moveMouseTo();
+ const dismissButton = await this.testSubjects.findDescendant('toastCloseButton', toast);
+ await dismissButton.click();
+ }
- public async dismissAllToasts() {
- const list = await this.getGlobalToastList();
- const toasts = await list.findAllByCssSelector(`.euiToast`);
+ public async dismissAllToasts() {
+ const list = await this.getGlobalToastList();
+ const toasts = await list.findAllByCssSelector(`.euiToast`);
- if (toasts.length === 0) return;
+ if (toasts.length === 0) return;
- for (const toast of toasts) {
- await toast.moveMouseTo();
+ for (const toast of toasts) {
+ await toast.moveMouseTo();
- if (await testSubjects.descendantExists('toastCloseButton', toast)) {
- try {
- const dismissButton = await testSubjects.findDescendant('toastCloseButton', toast);
- await dismissButton.click();
- } catch (err) {
- // ignore errors
- // toasts are finnicky because they can dismiss themselves right before you close them
- }
+ if (await this.testSubjects.descendantExists('toastCloseButton', toast)) {
+ try {
+ const dismissButton = await this.testSubjects.findDescendant('toastCloseButton', toast);
+ await dismissButton.click();
+ } catch (err) {
+ // ignore errors
+ // toasts are finnicky because they can dismiss themselves right before you close them
}
}
}
+ }
- public async getToastElement(index: number) {
- const list = await this.getGlobalToastList();
- return await list.findByCssSelector(`.euiToast:nth-child(${index})`);
- }
-
- private async getGlobalToastList() {
- return await testSubjects.find('globalToastList');
- }
+ public async getToastElement(index: number) {
+ const list = await this.getGlobalToastList();
+ return await list.findByCssSelector(`.euiToast:nth-child(${index})`);
+ }
- public async getToastCount() {
- const list = await this.getGlobalToastList();
- const toasts = await list.findAllByCssSelector(`.euiToast`);
- return toasts.length;
- }
+ private async getGlobalToastList() {
+ return await this.testSubjects.find('globalToastList');
}
- return new Toasts();
+ public async getToastCount() {
+ const list = await this.getGlobalToastList();
+ const toasts = await list.findAllByCssSelector(`.euiToast`);
+ return toasts.length;
+ }
}
From 881d89fba7cc8b7f963fcd5230a60b1f23ac8259 Mon Sep 17 00:00:00 2001
From: Mikhail Shustov
Date: Wed, 26 May 2021 22:01:33 +0200
Subject: [PATCH 22/30] remove src/legacy and src/optimizer from configs
(#100538)
* cleanup removed dirs
* delete removed folders from other places in the repo
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
---
.i18nrc.json | 2 --
packages/kbn-test/src/jest/run_check_jest_configs_cli.ts | 2 +-
src/dev/precommit_hook/casing_check_config.js | 1 -
tsconfig.json | 2 --
x-pack/plugins/canvas/shareable_runtime/webpack.config.js | 1 -
x-pack/plugins/canvas/storybook/webpack.dll.config.js | 7 -------
6 files changed, 1 insertion(+), 14 deletions(-)
diff --git a/.i18nrc.json b/.i18nrc.json
index 1e07d662c057a..dc01a10b6a686 100644
--- a/.i18nrc.json
+++ b/.i18nrc.json
@@ -1,6 +1,5 @@
{
"paths": {
- "common.ui": "src/legacy/ui",
"console": "src/plugins/console",
"core": "src/core",
"discover": "src/plugins/discover",
@@ -61,6 +60,5 @@
"apmOss": "src/plugins/apm_oss",
"usageCollection": "src/plugins/usage_collection"
},
- "exclude": ["src/legacy/ui/ui_render/ui_render_mixin.js"],
"translations": []
}
diff --git a/packages/kbn-test/src/jest/run_check_jest_configs_cli.ts b/packages/kbn-test/src/jest/run_check_jest_configs_cli.ts
index 3ce38733dfd24..5895ef193fbfe 100644
--- a/packages/kbn-test/src/jest/run_check_jest_configs_cli.ts
+++ b/packages/kbn-test/src/jest/run_check_jest_configs_cli.ts
@@ -26,7 +26,7 @@ const template: string = `module.exports = {
};
`;
-const roots: string[] = ['x-pack/plugins', 'packages', 'src/legacy', 'src/plugins', 'test', 'src'];
+const roots: string[] = ['x-pack/plugins', 'packages', 'src/plugins', 'test', 'src'];
export async function runCheckJestConfigsCli() {
run(
diff --git a/src/dev/precommit_hook/casing_check_config.js b/src/dev/precommit_hook/casing_check_config.js
index 3aed49b5015bb..0d5ecab40fbc4 100644
--- a/src/dev/precommit_hook/casing_check_config.js
+++ b/src/dev/precommit_hook/casing_check_config.js
@@ -94,7 +94,6 @@ export const IGNORE_DIRECTORY_GLOBS = [
...KEBAB_CASE_DIRECTORY_GLOBS,
'src/babel-*',
'packages/*',
- 'src/legacy/ui/public/flot-charts',
'test/functional/fixtures/es_archiver/visualize_source-filters',
'packages/kbn-pm/src/utils/__fixtures__/*',
'x-pack/dev-tools',
diff --git a/tsconfig.json b/tsconfig.json
index c56d4c6b8dc32..ceb03107076c2 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -10,8 +10,6 @@
"src/cli/**/*",
"src/dev/**/*",
"src/fixtures/**/*",
- "src/legacy/**/*",
- "src/optimize/**/*",
"x-pack/tasks/**/*",
],
diff --git a/x-pack/plugins/canvas/shareable_runtime/webpack.config.js b/x-pack/plugins/canvas/shareable_runtime/webpack.config.js
index 34fade58ffc8d..e85840e873430 100644
--- a/x-pack/plugins/canvas/shareable_runtime/webpack.config.js
+++ b/x-pack/plugins/canvas/shareable_runtime/webpack.config.js
@@ -33,7 +33,6 @@ module.exports = {
// Include a require alias for legacy UI code and styles
resolve: {
alias: {
- ui: path.resolve(KIBANA_ROOT, 'src/legacy/ui/public'),
'data/interpreter': path.resolve(
KIBANA_ROOT,
'src/plugins/data/public/expressions/interpreter'
diff --git a/x-pack/plugins/canvas/storybook/webpack.dll.config.js b/x-pack/plugins/canvas/storybook/webpack.dll.config.js
index 3051bbebdaf0c..c13fabe998921 100644
--- a/x-pack/plugins/canvas/storybook/webpack.dll.config.js
+++ b/x-pack/plugins/canvas/storybook/webpack.dll.config.js
@@ -77,13 +77,6 @@ module.exports = {
filename: 'dll.js',
library: DLL_NAME,
},
- // Include a require alias for legacy UI code and styles
- resolve: {
- alias: {
- ui: path.resolve(KIBANA_ROOT, 'src/legacy/ui/public'),
- },
- symlinks: false,
- },
module: {
rules: [
{
From af59f68e8ba60d0919742f9a5fb0fb052295dcc7 Mon Sep 17 00:00:00 2001
From: Spencer
Date: Wed, 26 May 2021 13:55:04 -0700
Subject: [PATCH 23/30] [ftr] migrate "flyout" and "inspector" services to
FtrService class (#100602)
Co-authored-by: spalger
---
test/functional/services/flyout.ts | 74 +++--
test/functional/services/index.ts | 8 +-
test/functional/services/inspector.ts | 414 +++++++++++++-------------
3 files changed, 244 insertions(+), 252 deletions(-)
diff --git a/test/functional/services/flyout.ts b/test/functional/services/flyout.ts
index 2e10bf757ac7a..e7b57dc0fb66b 100644
--- a/test/functional/services/flyout.ts
+++ b/test/functional/services/flyout.ts
@@ -6,50 +6,46 @@
* Side Public License, v 1.
*/
-import { FtrProviderContext } from '../ftr_provider_context';
-
-export function FlyoutProvider({ getService }: FtrProviderContext) {
- const testSubjects = getService('testSubjects');
- const find = getService('find');
- const log = getService('log');
- const retry = getService('retry');
-
- class Flyout {
- public async close(dataTestSubj: string): Promise {
- log.debug('Closing flyout', dataTestSubj);
- const flyoutElement = await testSubjects.find(dataTestSubj);
- const closeBtn = await flyoutElement.findByCssSelector('[aria-label*="Close"]');
- await closeBtn.click();
- await retry.waitFor(
- 'flyout closed',
- async () => !(await testSubjects.exists(dataTestSubj, { timeout: 1000 }))
- );
- }
+import { FtrService } from '../ftr_provider_context';
+
+export class FlyoutService extends FtrService {
+ private readonly testSubjects = this.ctx.getService('testSubjects');
+ private readonly find = this.ctx.getService('find');
+ private readonly log = this.ctx.getService('log');
+ private readonly retry = this.ctx.getService('retry');
+
+ public async close(dataTestSubj: string): Promise {
+ this.log.debug('Closing flyout', dataTestSubj);
+ const flyoutElement = await this.testSubjects.find(dataTestSubj);
+ const closeBtn = await flyoutElement.findByCssSelector('[aria-label*="Close"]');
+ await closeBtn.click();
+ await this.retry.waitFor(
+ 'flyout closed',
+ async () => !(await this.testSubjects.exists(dataTestSubj, { timeout: 1000 }))
+ );
+ }
- public async ensureClosed(dataTestSubj: string): Promise {
- if (await testSubjects.exists(dataTestSubj, { timeout: 1000 })) {
- await this.close(dataTestSubj);
- }
+ public async ensureClosed(dataTestSubj: string): Promise {
+ if (await this.testSubjects.exists(dataTestSubj, { timeout: 1000 })) {
+ await this.close(dataTestSubj);
}
+ }
- public async ensureAllClosed(): Promise {
- const flyoutElements = await find.allByCssSelector('.euiFlyout');
-
- if (!flyoutElements.length) {
- return;
- }
+ public async ensureAllClosed(): Promise {
+ const flyoutElements = await this.find.allByCssSelector('.euiFlyout');
- for (let i = 0; i < flyoutElements.length; i++) {
- const closeBtn = await flyoutElements[i].findByCssSelector('[aria-label*="Close"]');
- await closeBtn.click();
- }
+ if (!flyoutElements.length) {
+ return;
+ }
- await retry.waitFor(
- 'all flyouts to be closed',
- async () => (await find.allByCssSelector('.euiFlyout')).length === 0
- );
+ for (let i = 0; i < flyoutElements.length; i++) {
+ const closeBtn = await flyoutElements[i].findByCssSelector('[aria-label*="Close"]');
+ await closeBtn.click();
}
- }
- return new Flyout();
+ await this.retry.waitFor(
+ 'all flyouts to be closed',
+ async () => (await this.find.allByCssSelector('.euiFlyout')).length === 0
+ );
+ }
}
diff --git a/test/functional/services/index.ts b/test/functional/services/index.ts
index 93026af6766bd..8dcefcba55d6d 100644
--- a/test/functional/services/index.ts
+++ b/test/functional/services/index.ts
@@ -28,9 +28,9 @@ import {
import { DocTableService } from './doc_table';
import { EmbeddingProvider } from './embedding';
import { FilterBarService } from './filter_bar';
-import { FlyoutProvider } from './flyout';
+import { FlyoutService } from './flyout';
import { GlobalNavService } from './global_nav';
-import { InspectorProvider } from './inspector';
+import { InspectorService } from './inspector';
import { FieldEditorService } from './field_editor';
import { ManagementMenuService } from './management';
import { QueryBarProvider } from './query_bar';
@@ -67,14 +67,14 @@ export const services = {
dashboardAddPanel: DashboardAddPanelService,
dashboardReplacePanel: DashboardReplacePanelService,
dashboardPanelActions: DashboardPanelActionsService,
- flyout: FlyoutProvider,
+ flyout: FlyoutService,
comboBox: ComboBoxProvider,
dataGrid: DataGridService,
embedding: EmbeddingProvider,
renderable: RenderableProvider,
browser: BrowserProvider,
pieChart: PieChartService,
- inspector: InspectorProvider,
+ inspector: InspectorService,
fieldEditor: FieldEditorService,
vegaDebugInspector: VegaDebugInspectorViewService,
appsMenu: AppsMenuProvider,
diff --git a/test/functional/services/inspector.ts b/test/functional/services/inspector.ts
index c9cf159d0d38e..dc46db458501b 100644
--- a/test/functional/services/inspector.ts
+++ b/test/functional/services/inspector.ts
@@ -7,234 +7,230 @@
*/
import expect from '@kbn/expect';
-import { FtrProviderContext } from '../ftr_provider_context';
-
-export function InspectorProvider({ getService }: FtrProviderContext) {
- const log = getService('log');
- const retry = getService('retry');
- const renderable = getService('renderable');
- const flyout = getService('flyout');
- const testSubjects = getService('testSubjects');
- const find = getService('find');
-
- class Inspector {
- private async getIsEnabled(): Promise {
- const ariaDisabled = await testSubjects.getAttribute('openInspectorButton', 'disabled');
- return ariaDisabled !== 'true';
- }
-
- /**
- * Asserts that inspector is enabled
- */
- public async expectIsEnabled(): Promise {
- await retry.try(async () => {
- const isEnabled = await this.getIsEnabled();
- expect(isEnabled).to.be(true);
- });
- }
+import { FtrService } from '../ftr_provider_context';
+
+export class InspectorService extends FtrService {
+ private readonly log = this.ctx.getService('log');
+ private readonly retry = this.ctx.getService('retry');
+ private readonly renderable = this.ctx.getService('renderable');
+ private readonly flyout = this.ctx.getService('flyout');
+ private readonly testSubjects = this.ctx.getService('testSubjects');
+ private readonly find = this.ctx.getService('find');
+
+ private async getIsEnabled(): Promise {
+ const ariaDisabled = await this.testSubjects.getAttribute('openInspectorButton', 'disabled');
+ return ariaDisabled !== 'true';
+ }
- /**
- * Asserts that inspector is disabled
- */
- public async expectIsNotEnabled(): Promise {
- await retry.try(async () => {
- const isEnabled = await this.getIsEnabled();
- expect(isEnabled).to.be(false);
- });
- }
+ /**
+ * Asserts that inspector is enabled
+ */
+ public async expectIsEnabled(): Promise {
+ await this.retry.try(async () => {
+ const isEnabled = await this.getIsEnabled();
+ expect(isEnabled).to.be(true);
+ });
+ }
- /**
- * Opens inspector panel
- */
- public async open(): Promise {
- log.debug('Inspector.open');
- const isOpen = await testSubjects.exists('inspectorPanel');
- if (!isOpen) {
- await retry.try(async () => {
- await testSubjects.click('openInspectorButton');
- await testSubjects.exists('inspectorPanel');
- });
- }
- }
+ /**
+ * Asserts that inspector is disabled
+ */
+ public async expectIsNotEnabled(): Promise {
+ await this.retry.try(async () => {
+ const isEnabled = await this.getIsEnabled();
+ expect(isEnabled).to.be(false);
+ });
+ }
- /**
- * Closes inspector panel
- */
- public async close(): Promise {
- log.debug('Close Inspector');
- let isOpen = await testSubjects.exists('inspectorPanel');
- if (isOpen) {
- await retry.try(async () => {
- await flyout.close('inspectorPanel');
- isOpen = await testSubjects.exists('inspectorPanel');
- if (isOpen) {
- throw new Error('Failed to close inspector');
- }
- });
- }
+ /**
+ * Opens inspector panel
+ */
+ public async open(): Promise {
+ this.log.debug('Inspector.open');
+ const isOpen = await this.testSubjects.exists('inspectorPanel');
+ if (!isOpen) {
+ await this.retry.try(async () => {
+ await this.testSubjects.click('openInspectorButton');
+ await this.testSubjects.exists('inspectorPanel');
+ });
}
+ }
- /**
- * Asserts data on inspector panel
- * @param expectedData
- */
- public async expectTableData(expectedData: string[][]): Promise {
- log.debug(`Inspector.expectTableData(${expectedData.join(',')})`);
- const data = await this.getTableData();
- expect(data).to.eql(expectedData);
+ /**
+ * Closes inspector panel
+ */
+ public async close(): Promise {
+ this.log.debug('Close Inspector');
+ let isOpen = await this.testSubjects.exists('inspectorPanel');
+ if (isOpen) {
+ await this.retry.try(async () => {
+ await this.flyout.close('inspectorPanel');
+ isOpen = await this.testSubjects.exists('inspectorPanel');
+ if (isOpen) {
+ throw new Error('Failed to close inspector');
+ }
+ });
}
+ }
- /**
- * Sets table page size
- * @param size rows count
- */
- public async setTablePageSize(size: number): Promise {
- const panel = await testSubjects.find('inspectorPanel');
- await find.clickByButtonText('Rows per page: 20', panel);
- // The buttons for setting table page size are in a popover element. This popover
- // element appears as if it's part of the inspectorPanel but it's really attached
- // to the body element by a portal.
- const tableSizesPopover = await find.byCssSelector('.euiPanel .euiContextMenuPanel');
- await find.clickByButtonText(`${size} rows`, tableSizesPopover);
- }
+ /**
+ * Asserts data on inspector panel
+ * @param expectedData
+ */
+ public async expectTableData(expectedData: string[][]): Promise {
+ this.log.debug(`Inspector.expectTableData(${expectedData.join(',')})`);
+ const data = await this.getTableData();
+ expect(data).to.eql(expectedData);
+ }
- /**
- * Returns table data in nested array format
- */
- public async getTableData(): Promise {
- // TODO: we should use datat-test-subj=inspectorTable as soon as EUI supports it
- const inspectorPanel = await testSubjects.find('inspectorPanel');
- const tableBody = await retry.try(async () => inspectorPanel.findByTagName('tbody'));
- const $ = await tableBody.parseDomContent();
- return $('tr')
- .toArray()
- .map((tr) => {
- return $(tr)
- .find('td')
- .toArray()
- .map((cell) => {
- // if this is an EUI table, filter down to the specific cell content
- // otherwise this will include mobile-specific header information
- const euiTableCellContent = $(cell).find('.euiTableCellContent');
-
- if (euiTableCellContent.length > 0) {
- return $(cell).find('.euiTableCellContent').text().trim();
- } else {
- return $(cell).text().trim();
- }
- });
- });
- }
+ /**
+ * Sets table page size
+ * @param size rows count
+ */
+ public async setTablePageSize(size: number): Promise {
+ const panel = await this.testSubjects.find('inspectorPanel');
+ await this.find.clickByButtonText('Rows per page: 20', panel);
+ // The buttons for setting table page size are in a popover element. This popover
+ // element appears as if it's part of the inspectorPanel but it's really attached
+ // to the body element by a portal.
+ const tableSizesPopover = await this.find.byCssSelector('.euiPanel .euiContextMenuPanel');
+ await this.find.clickByButtonText(`${size} rows`, tableSizesPopover);
+ }
- /**
- * Returns table headers
- */
- public async getTableHeaders(): Promise {
- log.debug('Inspector.getTableHeaders');
- // TODO: we should use datat-test-subj=inspectorTable as soon as EUI supports it
- const dataTableHeader = await retry.try(async () => {
- const inspectorPanel = await testSubjects.find('inspectorPanel');
- return await inspectorPanel.findByTagName('thead');
+ /**
+ * Returns table data in nested array format
+ */
+ public async getTableData(): Promise {
+ // TODO: we should use datat-test-subj=inspectorTable as soon as EUI supports it
+ const inspectorPanel = await this.testSubjects.find('inspectorPanel');
+ const tableBody = await this.retry.try(async () => inspectorPanel.findByTagName('tbody'));
+ const $ = await tableBody.parseDomContent();
+ return $('tr')
+ .toArray()
+ .map((tr) => {
+ return $(tr)
+ .find('td')
+ .toArray()
+ .map((cell) => {
+ // if this is an EUI table, filter down to the specific cell content
+ // otherwise this will include mobile-specific header information
+ const euiTableCellContent = $(cell).find('.euiTableCellContent');
+
+ if (euiTableCellContent.length > 0) {
+ return $(cell).find('.euiTableCellContent').text().trim();
+ } else {
+ return $(cell).text().trim();
+ }
+ });
});
- const $ = await dataTableHeader.parseDomContent();
- return $('th span.euiTableCellContent__text')
- .toArray()
- .map((cell) => $(cell).text().trim());
- }
+ }
- /**
- * Asserts table headers
- * @param expected expected headers
- */
- public async expectTableHeaders(expected: string[]): Promise {
- await retry.try(async () => {
- const headers = await this.getTableHeaders();
- expect(headers).to.eql(expected);
- });
- }
+ /**
+ * Returns table headers
+ */
+ public async getTableHeaders(): Promise {
+ this.log.debug('Inspector.getTableHeaders');
+ // TODO: we should use datat-test-subj=inspectorTable as soon as EUI supports it
+ const dataTableHeader = await this.retry.try(async () => {
+ const inspectorPanel = await this.testSubjects.find('inspectorPanel');
+ return await inspectorPanel.findByTagName('thead');
+ });
+ const $ = await dataTableHeader.parseDomContent();
+ return $('th span.euiTableCellContent__text')
+ .toArray()
+ .map((cell) => $(cell).text().trim());
+ }
- /**
- * Filters table for value by clicking specified cell
- * @param column column index
- * @param row row index
- */
- public async filterForTableCell(column: string | number, row: string | number): Promise {
- await retry.try(async () => {
- const table = await testSubjects.find('inspectorTable');
- const cell = await table.findByCssSelector(
- `tbody tr:nth-child(${row}) td:nth-child(${column})`
- );
- await cell.moveMouseTo();
- const filterBtn = await testSubjects.findDescendant('filterForInspectorCellValue', cell);
- await filterBtn.click();
- });
- await renderable.waitForRender();
- }
+ /**
+ * Asserts table headers
+ * @param expected expected headers
+ */
+ public async expectTableHeaders(expected: string[]): Promise {
+ await this.retry.try(async () => {
+ const headers = await this.getTableHeaders();
+ expect(headers).to.eql(expected);
+ });
+ }
- /**
- * Filters out table by clicking specified cell
- * @param column column index
- * @param row row index
- */
- public async filterOutTableCell(column: string | number, row: string | number): Promise {
- await retry.try(async () => {
- const table = await testSubjects.find('inspectorTable');
- const cell = await table.findByCssSelector(
- `tbody tr:nth-child(${row}) td:nth-child(${column})`
- );
- await cell.moveMouseTo();
- const filterBtn = await testSubjects.findDescendant('filterOutInspectorCellValue', cell);
- await filterBtn.click();
- });
- await renderable.waitForRender();
- }
+ /**
+ * Filters table for value by clicking specified cell
+ * @param column column index
+ * @param row row index
+ */
+ public async filterForTableCell(column: string | number, row: string | number): Promise {
+ await this.retry.try(async () => {
+ const table = await this.testSubjects.find('inspectorTable');
+ const cell = await table.findByCssSelector(
+ `tbody tr:nth-child(${row}) td:nth-child(${column})`
+ );
+ await cell.moveMouseTo();
+ const filterBtn = await this.testSubjects.findDescendant('filterForInspectorCellValue', cell);
+ await filterBtn.click();
+ });
+ await this.renderable.waitForRender();
+ }
- /**
- * Opens inspector view
- * @param viewId
- */
- public async openInspectorView(viewId: string): Promise {
- log.debug(`Open Inspector view ${viewId}`);
- await testSubjects.click('inspectorViewChooser');
- await testSubjects.click(viewId);
- }
+ /**
+ * Filters out table by clicking specified cell
+ * @param column column index
+ * @param row row index
+ */
+ public async filterOutTableCell(column: string | number, row: string | number): Promise {
+ await this.retry.try(async () => {
+ const table = await this.testSubjects.find('inspectorTable');
+ const cell = await table.findByCssSelector(
+ `tbody tr:nth-child(${row}) td:nth-child(${column})`
+ );
+ await cell.moveMouseTo();
+ const filterBtn = await this.testSubjects.findDescendant('filterOutInspectorCellValue', cell);
+ await filterBtn.click();
+ });
+ await this.renderable.waitForRender();
+ }
- /**
- * Opens inspector requests view
- */
- public async openInspectorRequestsView(): Promise {
- await this.openInspectorView('inspectorViewChooserRequests');
- }
+ /**
+ * Opens inspector view
+ * @param viewId
+ */
+ public async openInspectorView(viewId: string): Promise {
+ this.log.debug(`Open Inspector view ${viewId}`);
+ await this.testSubjects.click('inspectorViewChooser');
+ await this.testSubjects.click(viewId);
+ }
- /**
- * Returns request name as the comma-separated string
- */
- public async getRequestNames(): Promise {
- await this.openInspectorRequestsView();
- const requestChooserExists = await testSubjects.exists('inspectorRequestChooser');
- if (requestChooserExists) {
- await testSubjects.click('inspectorRequestChooser');
- const menu = await testSubjects.find('inspectorRequestChooserMenuPanel');
- const requestNames = await menu.getVisibleText();
- return requestNames.trim().split('\n').join(',');
- }
-
- const singleRequest = await testSubjects.find('inspectorRequestName');
- return await singleRequest.getVisibleText();
- }
+ /**
+ * Opens inspector requests view
+ */
+ public async openInspectorRequestsView(): Promise {
+ await this.openInspectorView('inspectorViewChooserRequests');
+ }
- public getOpenRequestStatisticButton() {
- return testSubjects.find('inspectorRequestDetailStatistics');
- }
+ /**
+ * Returns request name as the comma-separated string
+ */
+ public async getRequestNames(): Promise {
+ await this.openInspectorRequestsView();
+ const requestChooserExists = await this.testSubjects.exists('inspectorRequestChooser');
+ if (requestChooserExists) {
+ await this.testSubjects.click('inspectorRequestChooser');
+ const menu = await this.testSubjects.find('inspectorRequestChooserMenuPanel');
+ const requestNames = await menu.getVisibleText();
+ return requestNames.trim().split('\n').join(',');
+ }
+
+ const singleRequest = await this.testSubjects.find('inspectorRequestName');
+ return await singleRequest.getVisibleText();
+ }
- public getOpenRequestDetailRequestButton() {
- return testSubjects.find('inspectorRequestDetailRequest');
- }
+ public getOpenRequestStatisticButton() {
+ return this.testSubjects.find('inspectorRequestDetailStatistics');
+ }
- public getOpenRequestDetailResponseButton() {
- return testSubjects.find('inspectorRequestDetailResponse');
- }
+ public getOpenRequestDetailRequestButton() {
+ return this.testSubjects.find('inspectorRequestDetailRequest');
}
- return new Inspector();
+ public getOpenRequestDetailResponseButton() {
+ return this.testSubjects.find('inspectorRequestDetailResponse');
+ }
}
From b6d595268eab40d0184eb0ec0193974f2b8d46c1 Mon Sep 17 00:00:00 2001
From: Joe Portner <5295965+jportner@users.noreply.github.com>
Date: Wed, 26 May 2021 17:10:55 -0400
Subject: [PATCH 24/30] Bump dependencies (#100724)
---
packages/kbn-pm/dist/index.js | 52 ++++++++++++-----------------------
yarn.lock | 6 ++--
2 files changed, 20 insertions(+), 38 deletions(-)
diff --git a/packages/kbn-pm/dist/index.js b/packages/kbn-pm/dist/index.js
index c0afb92b859cd..29c0457c316f0 100644
--- a/packages/kbn-pm/dist/index.js
+++ b/packages/kbn-pm/dist/index.js
@@ -30541,29 +30541,14 @@ module.exports = function nodeModulesPaths(start, opts, request) {
var isWindows = process.platform === 'win32';
-// Regex to split a windows path into three parts: [*, device, slash,
-// tail] windows-only
-var splitDeviceRe =
- /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;
-
-// Regex to split the tail part of the above into [*, dir, basename, ext]
-var splitTailRe =
- /^([\s\S]*?)((?:\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))(?:[\\\/]*)$/;
+// Regex to split a windows path into into [dir, root, basename, name, ext]
+var splitWindowsRe =
+ /^(((?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?[\\\/]?)(?:[^\\\/]*[\\\/])*)((\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))[\\\/]*$/;
var win32 = {};
-// Function to split a filename into [root, dir, basename, ext]
function win32SplitPath(filename) {
- // Separate device+slash from tail
- var result = splitDeviceRe.exec(filename),
- device = (result[1] || '') + (result[2] || ''),
- tail = result[3] || '';
- // Split the tail into dir, basename and extension
- var result2 = splitTailRe.exec(tail),
- dir = result2[1],
- basename = result2[2],
- ext = result2[3];
- return [device, dir, basename, ext];
+ return splitWindowsRe.exec(filename).slice(1);
}
win32.parse = function(pathString) {
@@ -30573,24 +30558,24 @@ win32.parse = function(pathString) {
);
}
var allParts = win32SplitPath(pathString);
- if (!allParts || allParts.length !== 4) {
+ if (!allParts || allParts.length !== 5) {
throw new TypeError("Invalid path '" + pathString + "'");
}
return {
- root: allParts[0],
- dir: allParts[0] + allParts[1].slice(0, -1),
+ root: allParts[1],
+ dir: allParts[0] === allParts[1] ? allParts[0] : allParts[0].slice(0, -1),
base: allParts[2],
- ext: allParts[3],
- name: allParts[2].slice(0, allParts[2].length - allParts[3].length)
+ ext: allParts[4],
+ name: allParts[3]
};
};
-// Split a filename into [root, dir, basename, ext], unix version
+// Split a filename into [dir, root, basename, name, ext], unix version
// 'root' is just a slash, or nothing.
var splitPathRe =
- /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
+ /^((\/?)(?:[^\/]*\/)*)((\.{1,2}|[^\/]+?|)(\.[^.\/]*|))[\/]*$/;
var posix = {};
@@ -30606,19 +30591,16 @@ posix.parse = function(pathString) {
);
}
var allParts = posixSplitPath(pathString);
- if (!allParts || allParts.length !== 4) {
+ if (!allParts || allParts.length !== 5) {
throw new TypeError("Invalid path '" + pathString + "'");
}
- allParts[1] = allParts[1] || '';
- allParts[2] = allParts[2] || '';
- allParts[3] = allParts[3] || '';
-
+
return {
- root: allParts[0],
- dir: allParts[0] + allParts[1].slice(0, -1),
+ root: allParts[1],
+ dir: allParts[0].slice(0, -1),
base: allParts[2],
- ext: allParts[3],
- name: allParts[2].slice(0, allParts[2].length - allParts[3].length)
+ ext: allParts[4],
+ name: allParts[3],
};
};
diff --git a/yarn.lock b/yarn.lock
index 1f09ede5e7900..9f7db552a3f53 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -21264,9 +21264,9 @@ path-key@^3.0.0, path-key@^3.1.0:
integrity sha512-8cChqz0RP6SHJkMt48FW0A7+qUOn+OsnOsVtzI59tZ8m+5bCSk7hzwET0pulwOM2YMn9J1efb07KB9l9f30SGg==
path-parse@^1.0.5, path-parse@^1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
- integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
path-platform@~0.11.15:
version "0.11.15"
From f3c846cc4fc7de58fc710a592f85923b6890b582 Mon Sep 17 00:00:00 2001
From: Spencer
Date: Wed, 26 May 2021 14:39:10 -0700
Subject: [PATCH 25/30] [ftr] migrate AppsMenuService to FtrService class
(#100588)
Co-authored-by: spalger
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
---
test/functional/services/apps_menu.ts | 219 +++++++++++++-------------
test/functional/services/index.ts | 4 +-
2 files changed, 111 insertions(+), 112 deletions(-)
diff --git a/test/functional/services/apps_menu.ts b/test/functional/services/apps_menu.ts
index f9c80a6450c2f..9fb8e36476f3e 100644
--- a/test/functional/services/apps_menu.ts
+++ b/test/functional/services/apps_menu.ts
@@ -6,133 +6,132 @@
* Side Public License, v 1.
*/
-import { FtrProviderContext } from '../ftr_provider_context';
+import { FtrService } from '../ftr_provider_context';
-export function AppsMenuProvider({ getService, getPageObjects }: FtrProviderContext) {
- const testSubjects = getService('testSubjects');
- const log = getService('log');
- const config = getService('config');
- const defaultFindTimeout = config.get('timeouts.find');
- const find = getService('find');
+export class AppsMenuService extends FtrService {
+ private readonly testSubjects = this.ctx.getService('testSubjects');
+ private readonly log = this.ctx.getService('log');
+ private readonly config = this.ctx.getService('config');
+ private readonly find = this.ctx.getService('find');
- return new (class AppsMenu {
- private async waitUntilLoadingHasFinished() {
- try {
- await this.isGlobalLoadingIndicatorVisible();
- } catch (exception) {
- if (exception.name === 'ElementNotVisible') {
- // selenium might just have been too slow to catch it
- } else {
- throw exception;
- }
+ private readonly defaultFindTimeout = this.config.get('timeouts.find');
+
+ private async waitUntilLoadingHasFinished() {
+ try {
+ await this.isGlobalLoadingIndicatorVisible();
+ } catch (exception) {
+ if (exception.name === 'ElementNotVisible') {
+ // selenium might just have been too slow to catch it
+ } else {
+ throw exception;
}
- await this.awaitGlobalLoadingIndicatorHidden();
}
+ await this.awaitGlobalLoadingIndicatorHidden();
+ }
- private async isGlobalLoadingIndicatorVisible() {
- log.debug('isGlobalLoadingIndicatorVisible');
- return await testSubjects.exists('globalLoadingIndicator', { timeout: 1500 });
- }
+ private async isGlobalLoadingIndicatorVisible() {
+ this.log.debug('isGlobalLoadingIndicatorVisible');
+ return await this.testSubjects.exists('globalLoadingIndicator', { timeout: 1500 });
+ }
- private async awaitGlobalLoadingIndicatorHidden() {
- await testSubjects.existOrFail('globalLoadingIndicator-hidden', {
- allowHidden: true,
- timeout: defaultFindTimeout * 10,
- });
- }
- /**
- * Close the collapsible nav
- * TODO #64541 can replace with a data-test-subj
- */
- public async closeCollapsibleNav() {
- const CLOSE_BUTTON = '[data-test-subj=collapsibleNav] > button';
- if (await find.existsByCssSelector(CLOSE_BUTTON)) {
- // Close button is only visible when focused
- const button = await find.byCssSelector(CLOSE_BUTTON);
- await button.focus();
+ private async awaitGlobalLoadingIndicatorHidden() {
+ await this.testSubjects.existOrFail('globalLoadingIndicator-hidden', {
+ allowHidden: true,
+ timeout: this.defaultFindTimeout * 10,
+ });
+ }
+ /**
+ * Close the collapsible nav
+ * TODO #64541 can replace with a data-test-subj
+ */
+ public async closeCollapsibleNav() {
+ const CLOSE_BUTTON = '[data-test-subj=collapsibleNav] > button';
+ if (await this.find.existsByCssSelector(CLOSE_BUTTON)) {
+ // Close button is only visible when focused
+ const button = await this.find.byCssSelector(CLOSE_BUTTON);
+ await button.focus();
- await find.clickByCssSelector(CLOSE_BUTTON);
- }
+ await this.find.clickByCssSelector(CLOSE_BUTTON);
}
+ }
- public async openCollapsibleNav() {
- if (!(await testSubjects.exists('collapsibleNav'))) {
- await testSubjects.click('toggleNavButton');
- }
+ public async openCollapsibleNav() {
+ if (!(await this.testSubjects.exists('collapsibleNav'))) {
+ await this.testSubjects.click('toggleNavButton');
}
+ }
- /**
- * Get the attributes from each of the links in the apps menu
- */
- public async readLinks() {
- // wait for the chrome to finish initializing
- await this.waitUntilLoadingHasFinished();
- await this.openCollapsibleNav();
- const appMenu = await testSubjects.find('collapsibleNav');
- const $ = await appMenu.parseDomContent();
- const links = $.findTestSubjects('collapsibleNavAppLink')
- .toArray()
- .map((link) => {
- return {
- text: $(link).text(),
- href: $(link).attr('href'),
- disabled: $(link).attr('disabled') != null,
- };
- });
+ /**
+ * Get the attributes from each of the links in the apps menu
+ */
+ public async readLinks() {
+ // wait for the chrome to finish initializing
+ await this.waitUntilLoadingHasFinished();
+ await this.openCollapsibleNav();
+ const appMenu = await this.testSubjects.find('collapsibleNav');
+ const $ = await appMenu.parseDomContent();
+ const links = $.findTestSubjects('collapsibleNavAppLink')
+ .toArray()
+ .map((link) => {
+ return {
+ text: $(link).text(),
+ href: $(link).attr('href'),
+ disabled: $(link).attr('disabled') != null,
+ };
+ });
- await this.closeCollapsibleNav();
+ await this.closeCollapsibleNav();
- return links;
- }
+ return links;
+ }
- /**
- * Get the attributes from the link with the given name.
- * @param name
- */
- public async getLink(name: string) {
- return (await this.readLinks()).find((nl) => nl.text === name);
- }
+ /**
+ * Get the attributes from the link with the given name.
+ * @param name
+ */
+ public async getLink(name: string) {
+ return (await this.readLinks()).find((nl) => nl.text === name);
+ }
- /**
- * Determine if an app link with the given name exists
- * @param name
- */
- public async linkExists(name: string) {
- return (await this.readLinks()).some((nl) => nl.text === name);
- }
+ /**
+ * Determine if an app link with the given name exists
+ * @param name
+ */
+ public async linkExists(name: string) {
+ return (await this.readLinks()).some((nl) => nl.text === name);
+ }
- /**
- * Click the app link within the app menu that has the given name
- * @param name
- * @param options.closeCollapsibleNav
- * @param options.category - optional field to ensure that a link is clicked in a particular category
- * helpful when there may be a recent link with the same name as an app
- */
- public async clickLink(
- name: string,
- {
- closeCollapsibleNav = true,
- category,
- }: { closeCollapsibleNav?: boolean; category?: string } = {}
- ) {
- try {
- log.debug(`click "${name}" app link`);
- await this.openCollapsibleNav();
- let nav;
- if (typeof category === 'string') {
- nav = await testSubjects.find(`collapsibleNavGroup-${category}`);
- } else {
- nav = await testSubjects.find('collapsibleNav');
- }
- const link = await nav.findByPartialLinkText(name);
- await link.click();
+ /**
+ * Click the app link within the app menu that has the given name
+ * @param name
+ * @param options.closeCollapsibleNav
+ * @param options.category - optional field to ensure that a link is clicked in a particular category
+ * helpful when there may be a recent link with the same name as an app
+ */
+ public async clickLink(
+ name: string,
+ {
+ closeCollapsibleNav = true,
+ category,
+ }: { closeCollapsibleNav?: boolean; category?: string } = {}
+ ) {
+ try {
+ this.log.debug(`click "${name}" app link`);
+ await this.openCollapsibleNav();
+ let nav;
+ if (typeof category === 'string') {
+ nav = await this.testSubjects.find(`collapsibleNavGroup-${category}`);
+ } else {
+ nav = await this.testSubjects.find('collapsibleNav');
+ }
+ const link = await nav.findByPartialLinkText(name);
+ await link.click();
- if (closeCollapsibleNav) {
- await this.closeCollapsibleNav();
- }
- } finally {
- // Intentionally empty
+ if (closeCollapsibleNav) {
+ await this.closeCollapsibleNav();
}
+ } finally {
+ // Intentionally empty
}
- })();
+ }
}
diff --git a/test/functional/services/index.ts b/test/functional/services/index.ts
index 8dcefcba55d6d..294b68c548865 100644
--- a/test/functional/services/index.ts
+++ b/test/functional/services/index.ts
@@ -8,7 +8,7 @@
import { services as commonServiceProviders } from '../../common/services';
-import { AppsMenuProvider } from './apps_menu';
+import { AppsMenuService } from './apps_menu';
import {
BrowserProvider,
FailureDebuggingProvider,
@@ -77,7 +77,7 @@ export const services = {
inspector: InspectorService,
fieldEditor: FieldEditorService,
vegaDebugInspector: VegaDebugInspectorViewService,
- appsMenu: AppsMenuProvider,
+ appsMenu: AppsMenuService,
globalNav: GlobalNavService,
toasts: ToastsService,
savedQueryManagementComponent: SavedQueryManagementComponentProvider,
From 417c06b9a1e71a1a07feb158fb5082bd66b60f48 Mon Sep 17 00:00:00 2001
From: Tim Sullivan
Date: Wed, 26 May 2021 17:31:55 -0700
Subject: [PATCH 26/30] [Reporting] Use the deprecations service to advise
critical config changes (#100427)
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
---
.../reporting/server/config/index.test.ts | 2 +-
.../plugins/reporting/server/config/index.ts | 4 +-
x-pack/plugins/reporting/server/core.ts | 14 +--
.../reporting/server/deprecations.test.ts | 107 ++++++++++++++++++
.../plugins/reporting/server/deprecations.ts | 52 +++++++++
x-pack/plugins/reporting/server/plugin.ts | 11 +-
6 files changed, 174 insertions(+), 16 deletions(-)
create mode 100644 x-pack/plugins/reporting/server/deprecations.test.ts
create mode 100644 x-pack/plugins/reporting/server/deprecations.ts
diff --git a/x-pack/plugins/reporting/server/config/index.test.ts b/x-pack/plugins/reporting/server/config/index.test.ts
index 8f13fe8b53810..327b03d679cae 100644
--- a/x-pack/plugins/reporting/server/config/index.test.ts
+++ b/x-pack/plugins/reporting/server/config/index.test.ts
@@ -45,7 +45,7 @@ describe('deprecations', () => {
const { messages } = applyReportingDeprecations({ roles: { enabled: true } });
expect(messages).toMatchInlineSnapshot(`
Array [
- "\\"xpack.reporting.roles\\" is deprecated. Granting reporting privilege through a \\"reporting_user\\" role will not be supported starting in 8.0. Please set 'xpack.reporting.roles.enabled' to 'false' and grant reporting privilege to users through feature controls in Management > Security > Roles",
+ "\\"xpack.reporting.roles\\" is deprecated. Granting reporting privilege through a \\"reporting_user\\" role will not be supported starting in 8.0. Please set 'xpack.reporting.roles.enabled' to 'false' and grant reporting privileges to users using Kibana application privileges **Management > Security > Roles**.",
]
`);
});
diff --git a/x-pack/plugins/reporting/server/config/index.ts b/x-pack/plugins/reporting/server/config/index.ts
index 10d7ba5059f83..8927bd8ee94d5 100644
--- a/x-pack/plugins/reporting/server/config/index.ts
+++ b/x-pack/plugins/reporting/server/config/index.ts
@@ -35,8 +35,8 @@ export const config: PluginConfigDescriptor = {
addDeprecation({
message:
`"${fromPath}.roles" is deprecated. Granting reporting privilege through a "reporting_user" role will not be supported ` +
- `starting in 8.0. Please set 'xpack.reporting.roles.enabled' to 'false' and grant reporting privilege to users ` +
- `through feature controls in Management > Security > Roles`,
+ `starting in 8.0. Please set 'xpack.reporting.roles.enabled' to 'false' and grant reporting privileges to users ` +
+ `using Kibana application privileges **Management > Security > Roles**.`,
});
}
},
diff --git a/x-pack/plugins/reporting/server/core.ts b/x-pack/plugins/reporting/server/core.ts
index 2d55a4aa7fa6d..b7f3ebe9dcfa8 100644
--- a/x-pack/plugins/reporting/server/core.ts
+++ b/x-pack/plugins/reporting/server/core.ts
@@ -25,14 +25,14 @@ import { SecurityPluginSetup } from '../../security/server';
import { DEFAULT_SPACE_ID } from '../../spaces/common/constants';
import { SpacesPluginSetup } from '../../spaces/server';
import { TaskManagerSetupContract, TaskManagerStartContract } from '../../task_manager/server';
-import { ReportingConfig } from './';
+import { ReportingConfig, ReportingSetup } from './';
import { HeadlessChromiumDriverFactory } from './browsers/chromium/driver_factory';
import { ReportingConfigType } from './config';
import { checkLicense, getExportTypesRegistry, LevelLogger } from './lib';
import { screenshotsObservableFactory, ScreenshotsObservableFn } from './lib/screenshots';
import { ReportingStore } from './lib/store';
import { ExecuteReportTask, MonitorReportsTask, ReportTaskParams } from './lib/tasks';
-import { ReportingPluginRouter, ReportingStart } from './types';
+import { ReportingPluginRouter } from './types';
export interface ReportingInternalSetup {
basePath: Pick;
@@ -69,7 +69,7 @@ export class ReportingCore {
private config?: ReportingConfig; // final config, includes dynamic values based on OS type
private executing: Set;
- public getStartContract: () => ReportingStart;
+ public getContract: () => ReportingSetup;
constructor(private logger: LevelLogger, context: PluginInitializerContext) {
const syncConfig = context.config.get();
@@ -77,11 +77,9 @@ export class ReportingCore {
this.executeTask = new ExecuteReportTask(this, syncConfig, this.logger);
this.monitorTask = new MonitorReportsTask(this, syncConfig, this.logger);
- this.getStartContract = (): ReportingStart => {
- return {
- usesUiCapabilities: () => syncConfig.roles.enabled === false,
- };
- };
+ this.getContract = () => ({
+ usesUiCapabilities: () => syncConfig.roles.enabled === false,
+ });
this.executing = new Set();
}
diff --git a/x-pack/plugins/reporting/server/deprecations.test.ts b/x-pack/plugins/reporting/server/deprecations.test.ts
new file mode 100644
index 0000000000000..cce4721b941a0
--- /dev/null
+++ b/x-pack/plugins/reporting/server/deprecations.test.ts
@@ -0,0 +1,107 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import { ReportingCore } from '.';
+import { registerDeprecations } from './deprecations';
+import { createMockConfigSchema, createMockReportingCore } from './test_helpers';
+import { coreMock, elasticsearchServiceMock } from 'src/core/server/mocks';
+import { GetDeprecationsContext, IScopedClusterClient } from 'kibana/server';
+
+let reportingCore: ReportingCore;
+let context: GetDeprecationsContext;
+let esClient: jest.Mocked;
+
+beforeEach(async () => {
+ const mockReportingConfig = createMockConfigSchema({ roles: { enabled: false } });
+ reportingCore = await createMockReportingCore(mockReportingConfig);
+ esClient = elasticsearchServiceMock.createScopedClusterClient();
+ esClient.asCurrentUser.security.getUser = jest.fn().mockResolvedValue({
+ body: { xyz: { username: 'normal_user', roles: ['data_analyst'] } },
+ });
+ context = ({ esClient } as unknown) as GetDeprecationsContext;
+});
+
+test('logs no deprecations when setup has no issues', async () => {
+ const { getDeprecations } = await registerDeprecations(reportingCore, coreMock.createSetup());
+ expect(await getDeprecations(context)).toMatchInlineSnapshot(`Array []`);
+});
+
+test('logs a plain message when only a reporting_user role issue is found', async () => {
+ esClient.asCurrentUser.security.getUser = jest.fn().mockResolvedValue({
+ body: { reportron: { username: 'reportron', roles: ['kibana_admin', 'reporting_user'] } },
+ });
+
+ const { getDeprecations } = await registerDeprecations(reportingCore, coreMock.createSetup());
+ expect(await getDeprecations(context)).toMatchInlineSnapshot(`
+ Array [
+ Object {
+ "correctiveActions": Object {
+ "manualSteps": Array [
+ "Create one or more custom roles that provide Kibana application privileges to reporting features in **Management > Security > Roles**.",
+ "Assign the custom role(s) as desired, and remove the \\"reporting_user\\" role from the user(s).",
+ ],
+ },
+ "documentationUrl": "https://www.elastic.co/guide/en/kibana/current/secure-reporting.html",
+ "level": "critical",
+ "message": "The deprecated \\"reporting_user\\" role has been found for 1 user(s): \\"reportron\\"",
+ },
+ ]
+ `);
+});
+
+test('logs multiple entries when multiple reporting_user role issues are found', async () => {
+ esClient.asCurrentUser.security.getUser = jest.fn().mockResolvedValue({
+ body: {
+ reportron: { username: 'reportron', roles: ['kibana_admin', 'reporting_user'] },
+ supercooluser: { username: 'supercooluser', roles: ['kibana_admin', 'reporting_user'] },
+ },
+ });
+
+ const { getDeprecations } = await registerDeprecations(reportingCore, coreMock.createSetup());
+ expect(await getDeprecations(context)).toMatchInlineSnapshot(`
+ Array [
+ Object {
+ "correctiveActions": Object {
+ "manualSteps": Array [
+ "Create one or more custom roles that provide Kibana application privileges to reporting features in **Management > Security > Roles**.",
+ "Assign the custom role(s) as desired, and remove the \\"reporting_user\\" role from the user(s).",
+ ],
+ },
+ "documentationUrl": "https://www.elastic.co/guide/en/kibana/current/secure-reporting.html",
+ "level": "critical",
+ "message": "The deprecated \\"reporting_user\\" role has been found for 2 user(s): \\"reportron\\", \\"supercooluser\\"",
+ },
+ ]
+ `);
+});
+
+test('logs an expanded message when a config issue and a reporting_user role issue is found', async () => {
+ esClient.asCurrentUser.security.getUser = jest.fn().mockResolvedValue({
+ body: { reportron: { username: 'reportron', roles: ['kibana_admin', 'reporting_user'] } },
+ });
+
+ const mockReportingConfig = createMockConfigSchema({ roles: { enabled: true } });
+ reportingCore = await createMockReportingCore(mockReportingConfig);
+
+ const { getDeprecations } = await registerDeprecations(reportingCore, coreMock.createSetup());
+ expect(await getDeprecations(context)).toMatchInlineSnapshot(`
+ Array [
+ Object {
+ "correctiveActions": Object {
+ "manualSteps": Array [
+ "Set \\"xpack.reporting.roles.enabled: false\\" in kibana.yml",
+ "Create one or more custom roles that provide Kibana application privileges to reporting features in **Management > Security > Roles**.",
+ "Assign the custom role(s) as desired, and remove the \\"reporting_user\\" role from the user(s).",
+ ],
+ },
+ "documentationUrl": "https://www.elastic.co/guide/en/kibana/current/secure-reporting.html",
+ "level": "critical",
+ "message": "The deprecated \\"reporting_user\\" role has been found for 1 user(s): \\"reportron\\"",
+ },
+ ]
+ `);
+});
diff --git a/x-pack/plugins/reporting/server/deprecations.ts b/x-pack/plugins/reporting/server/deprecations.ts
new file mode 100644
index 0000000000000..61074fff012a2
--- /dev/null
+++ b/x-pack/plugins/reporting/server/deprecations.ts
@@ -0,0 +1,52 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+import type { CoreSetup, DeprecationsDetails, RegisterDeprecationsConfig } from 'src/core/server';
+import { ReportingCore } from '.';
+
+const deprecatedRole = 'reporting_user';
+const upgradableConfig = 'xpack.reporting.roles.enabled: false';
+
+export async function registerDeprecations(
+ reporting: ReportingCore,
+ { deprecations: deprecationsService }: CoreSetup
+) {
+ const deprecationsConfig: RegisterDeprecationsConfig = {
+ getDeprecations: async ({ esClient }) => {
+ const usingDeprecatedConfig = !reporting.getContract().usesUiCapabilities();
+ const deprecations: DeprecationsDetails[] = [];
+ const { body: users } = await esClient.asCurrentUser.security.getUser();
+
+ const reportingUsers = Object.entries(users)
+ .filter(([username, user]) => user.roles.includes(deprecatedRole))
+ .map(([, user]) => user.username);
+ const numReportingUsers = reportingUsers.length;
+
+ if (numReportingUsers > 0) {
+ const usernames = reportingUsers.join('", "');
+ deprecations.push({
+ message: `The deprecated "${deprecatedRole}" role has been found for ${numReportingUsers} user(s): "${usernames}"`,
+ documentationUrl: 'https://www.elastic.co/guide/en/kibana/current/secure-reporting.html',
+ level: 'critical',
+ correctiveActions: {
+ manualSteps: [
+ ...(usingDeprecatedConfig ? [`Set "${upgradableConfig}" in kibana.yml`] : []),
+ `Create one or more custom roles that provide Kibana application privileges to reporting features in **Management > Security > Roles**.`,
+ `Assign the custom role(s) as desired, and remove the "${deprecatedRole}" role from the user(s).`,
+ ],
+ },
+ });
+ }
+
+ return deprecations;
+ },
+ };
+
+ deprecationsService.registerDeprecations(deprecationsConfig);
+
+ return deprecationsConfig;
+}
diff --git a/x-pack/plugins/reporting/server/plugin.ts b/x-pack/plugins/reporting/server/plugin.ts
index efe1d9450bef3..dc0ddf27a53b3 100644
--- a/x-pack/plugins/reporting/server/plugin.ts
+++ b/x-pack/plugins/reporting/server/plugin.ts
@@ -10,6 +10,7 @@ import { PLUGIN_ID } from '../common/constants';
import { ReportingCore } from './';
import { initializeBrowserDriverFactory } from './browsers';
import { buildConfig, registerUiSettings, ReportingConfigType } from './config';
+import { registerDeprecations } from './deprecations';
import { LevelLogger, ReportingStore } from './lib';
import { registerRoutes } from './routes';
import { setFieldFormats } from './services';
@@ -38,15 +39,13 @@ export class ReportingPlugin
// @ts-expect-error null is not assignable to object. use a boolean property to ensure reporting API is enabled.
core.http.registerRouteHandlerContext(PLUGIN_ID, () => {
if (reportingCore.pluginIsStarted()) {
- return reportingCore.getStartContract();
+ return reportingCore.getContract();
} else {
this.logger.error(`Reporting features are not yet ready`);
return null;
}
});
- registerUiSettings(core);
-
const { http } = core;
const { screenshotMode, features, licensing, security, spaces, taskManager } = plugins;
@@ -65,6 +64,8 @@ export class ReportingPlugin
logger: this.logger,
});
+ registerUiSettings(core);
+ registerDeprecations(reportingCore, core);
registerReportingUsageCollector(reportingCore, plugins);
registerRoutes(reportingCore, this.logger);
@@ -81,7 +82,7 @@ export class ReportingPlugin
});
this.reportingCore = reportingCore;
- return reportingCore.getStartContract();
+ return reportingCore.getContract();
}
public start(core: CoreStart, plugins: ReportingStartDeps) {
@@ -116,6 +117,6 @@ export class ReportingPlugin
this.logger.error(e);
});
- return reportingCore.getStartContract();
+ return reportingCore.getContract();
}
}
From aa32903440b58d1e7cd10199e7cac5cb0735552f Mon Sep 17 00:00:00 2001
From: ymao1
Date: Wed, 26 May 2021 20:57:40 -0400
Subject: [PATCH 27/30] [Alerting] Link to action config settings from
connector docs (#100358)
* wip
* Adding section about connector networking config to all connectors
* Updating wording
* Changing header size
* Updating links
* Apply suggestions from code review
Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com>
Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com>
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
---
docs/management/action-types.asciidoc | 7 ++++++-
docs/management/connectors/action-types/email.asciidoc | 6 ++++++
docs/management/connectors/action-types/jira.asciidoc | 6 ++++++
docs/management/connectors/action-types/pagerduty.asciidoc | 6 ++++++
docs/management/connectors/action-types/resilient.asciidoc | 6 ++++++
.../management/connectors/action-types/servicenow.asciidoc | 6 ++++++
docs/management/connectors/action-types/slack.asciidoc | 6 ++++++
docs/management/connectors/action-types/teams.asciidoc | 6 ++++++
docs/management/connectors/action-types/webhook.asciidoc | 6 ++++++
9 files changed, 54 insertions(+), 1 deletion(-)
diff --git a/docs/management/action-types.asciidoc b/docs/management/action-types.asciidoc
index ec5677bd04a6e..65b600d4b7281 100644
--- a/docs/management/action-types.asciidoc
+++ b/docs/management/action-types.asciidoc
@@ -71,6 +71,11 @@ image::images/connector-listing.png[Example connector listing in the Rules and C
Access to connectors is granted based on your privileges to alerting-enabled features. See <> for more information.
+[float]
+=== Connector networking configuration
+
+Use the <> to customize connector networking configurations, such as proxies, certificates, or TLS settings. You can set configurations that apply to all your connectors or use `xpack.actions.customHostSettings` to set per-host configurations.
+
[float]
[[connectors-list]]
=== Connector list
@@ -110,7 +115,7 @@ image::images/connector-select-type.png[Connector select type]
[[importing-and-exporting-connectors]]
=== Importing and exporting connectors
-To import and export rules, use the <>.
+To import and export connectors, use the <>.
After a successful import, the proper banner is displayed:
[role="screenshot"]
image::images/coonectors-import-banner.png[Connectors import banner, width=50%]
diff --git a/docs/management/connectors/action-types/email.asciidoc b/docs/management/connectors/action-types/email.asciidoc
index 1c2f9212b4887..719d00c16c932 100644
--- a/docs/management/connectors/action-types/email.asciidoc
+++ b/docs/management/connectors/action-types/email.asciidoc
@@ -24,6 +24,12 @@ Require authentication:: If true, a username and password for login type authent
Username:: Username for login type authentication.
Password:: Password for login type authentication.
+[float]
+[[email-connector-networking-configuration]]
+==== Connector networking configuration
+
+Use the <> to customize connector networking configurations, such as proxies, certificates, or TLS settings. You can set configurations that apply to all your connectors or use `xpack.actions.customHostSettings` to set per-host configurations.
+
[float]
[[preconfigured-email-configuration]]
==== Preconfigured connector type
diff --git a/docs/management/connectors/action-types/jira.asciidoc b/docs/management/connectors/action-types/jira.asciidoc
index a5e629887d5c6..368b11225654c 100644
--- a/docs/management/connectors/action-types/jira.asciidoc
+++ b/docs/management/connectors/action-types/jira.asciidoc
@@ -19,6 +19,12 @@ Project key:: Jira project key.
Email (or username):: The account email (or username) for HTTP Basic authentication.
API token (or password):: Jira API authentication token (or password) for HTTP Basic authentication.
+[float]
+[[jira-connector-networking-configuration]]
+==== Connector networking configuration
+
+Use the <> to customize connector networking configurations, such as proxies, certificates, or TLS settings. You can set configurations that apply to all your connectors or use `xpack.actions.customHostSettings` to set per-host configurations.
+
[float]
[[Preconfigured-jira-configuration]]
==== Preconfigured connector type
diff --git a/docs/management/connectors/action-types/pagerduty.asciidoc b/docs/management/connectors/action-types/pagerduty.asciidoc
index 25cba05010548..db1c4e3932d14 100644
--- a/docs/management/connectors/action-types/pagerduty.asciidoc
+++ b/docs/management/connectors/action-types/pagerduty.asciidoc
@@ -17,6 +17,12 @@ Name:: The name of the connector. The name is used to identify a connector
API URL:: An optional PagerDuty event URL. Defaults to `https://events.pagerduty.com/v2/enqueue`. If you are using the <> setting, make sure the hostname is added to the allowed hosts.
Integration Key:: A 32 character PagerDuty Integration Key for an integration on a service, also referred to as the routing key.
+[float]
+[[pagerduty-connector-networking-configuration]]
+==== Connector networking configuration
+
+Use the <> to customize connector networking configurations, such as proxies, certificates, or TLS settings. You can set configurations that apply to all your connectors or use `xpack.actions.customHostSettings` to set per-host configurations.
+
[float]
[[Preconfigured-pagerduty-configuration]]
==== Preconfigured connector type
diff --git a/docs/management/connectors/action-types/resilient.asciidoc b/docs/management/connectors/action-types/resilient.asciidoc
index 454ae145bbc57..ef8196bea0aab 100644
--- a/docs/management/connectors/action-types/resilient.asciidoc
+++ b/docs/management/connectors/action-types/resilient.asciidoc
@@ -19,6 +19,12 @@ Organization ID:: IBM Resilient organization ID.
API key ID:: The authentication key ID for HTTP Basic authentication.
API key secret:: The authentication key secret for HTTP Basic authentication.
+[float]
+[[resilient-connector-networking-configuration]]
+==== Connector networking configuration
+
+Use the <> to customize connector networking configurations, such as proxies, certificates, or TLS settings. You can set configurations that apply to all your connectors or use `xpack.actions.customHostSettings` to set per-host configurations.
+
[float]
[[Preconfigured-resilient-configuration]]
==== Preconfigured connector type
diff --git a/docs/management/connectors/action-types/servicenow.asciidoc b/docs/management/connectors/action-types/servicenow.asciidoc
index 24892c62e804b..dfac22cb23c6c 100644
--- a/docs/management/connectors/action-types/servicenow.asciidoc
+++ b/docs/management/connectors/action-types/servicenow.asciidoc
@@ -18,6 +18,12 @@ URL:: ServiceNow instance URL.
Username:: Username for HTTP Basic authentication.
Password:: Password for HTTP Basic authentication.
+[float]
+[[servicenow-connector-networking-configuration]]
+==== Connector networking configuration
+
+Use the <> to customize connector networking configurations, such as proxies, certificates, or TLS settings. You can set configurations that apply to all your connectors or use `xpack.actions.customHostSettings` to set per-host configurations.
+
[float]
[[Preconfigured-servicenow-configuration]]
==== Preconfigured connector type
diff --git a/docs/management/connectors/action-types/slack.asciidoc b/docs/management/connectors/action-types/slack.asciidoc
index da0bf321f9ade..6dffebd9d9354 100644
--- a/docs/management/connectors/action-types/slack.asciidoc
+++ b/docs/management/connectors/action-types/slack.asciidoc
@@ -16,6 +16,12 @@ Slack connectors have the following configuration properties.
Name:: The name of the connector. The name is used to identify a connector in the management UI connector listing, or in the connector list when configuring an action.
Webhook URL:: The URL of the incoming webhook. See https://api.slack.com/messaging/webhooks#getting_started[Slack Incoming Webhooks] for instructions on generating this URL. If you are using the <> setting, make sure the hostname is added to the allowed hosts.
+[float]
+[[slack-connector-networking-configuration]]
+==== Connector networking configuration
+
+Use the <> to customize connector networking configurations, such as proxies, certificates, or TLS settings. You can set configurations that apply to all your connectors or use `xpack.actions.customHostSettings` to set per-host configurations.
+
[float]
[[Preconfigured-slack-configuration]]
==== Preconfigured connector type
diff --git a/docs/management/connectors/action-types/teams.asciidoc b/docs/management/connectors/action-types/teams.asciidoc
index ba723a6f33c86..32cfaaf801d70 100644
--- a/docs/management/connectors/action-types/teams.asciidoc
+++ b/docs/management/connectors/action-types/teams.asciidoc
@@ -16,6 +16,12 @@ Microsoft Teams connectors have the following configuration properties.
Name:: The name of the connector. The name is used to identify a connector in the management UI connector listing, or in the connector list when configuring an action.
Webhook URL:: The URL of the incoming webhook. See https://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook#add-an-incoming-webhook-to-a-teams-channel[Add Incoming Webhooks] for instructions on generating this URL. If you are using the <> setting, make sure the hostname is added to the allowed hosts.
+[float]
+[[teams-connector-networking-configuration]]
+==== Connector networking configuration
+
+Use the <> to customize connector networking configurations, such as proxies, certificates, or TLS settings. You can set configurations that apply to all your connectors or use `xpack.actions.customHostSettings` to set per-host configurations.
+
[float]
[[Preconfigured-teams-configuration]]
==== Preconfigured connector type
diff --git a/docs/management/connectors/action-types/webhook.asciidoc b/docs/management/connectors/action-types/webhook.asciidoc
index a2024b9457a1c..aa52e8a3bdb43 100644
--- a/docs/management/connectors/action-types/webhook.asciidoc
+++ b/docs/management/connectors/action-types/webhook.asciidoc
@@ -21,6 +21,12 @@ Require authentication:: If true, a username and password for login type authent
Username:: Username for HTTP basic authentication.
Password:: Password for HTTP basic authentication.
+[float]
+[[webhook-connector-networking-configuration]]
+==== Connector networking configuration
+
+Use the <> to customize connector networking configurations, such as proxies, certificates, or TLS settings. You can set configurations that apply to all your connectors or use `xpack.actions.customHostSettings` to set per-host configurations.
+
[float]
[[Preconfigured-webhook-configuration]]
==== Preconfigured connector type
From 5da329a809a9a57be9616ae263f747c19103ef3f Mon Sep 17 00:00:00 2001
From: Thomas Neirynck
Date: Wed, 26 May 2021 21:09:38 -0400
Subject: [PATCH 28/30] [Maps] Isolate mapbox-gl types and align downstream
package versions. (#100610)
---
package.json | 8 +-
packages/kbn-mapbox-gl/src/index.ts | 38 +++-
.../vega_view/vega_map_view/constants.ts | 2 +-
.../vega_view/vega_map_view/layers/types.ts | 2 +-
.../vega_map_view/layers/vega_layer.ts | 2 +-
.../public/vega_view/vega_map_view/view.ts | 2 +-
.../layers/heatmap_layer/heatmap_layer.ts | 2 +-
.../maps/public/classes/layers/layer.tsx | 2 +-
.../tiled_vector_layer/tiled_vector_layer.tsx | 4 +-
.../classes/layers/vector_layer/utils.tsx | 2 +-
.../layers/vector_layer/vector_layer.tsx | 6 +-
.../classes/styles/heatmap/heatmap_style.tsx | 2 +-
.../properties/dynamic_color_property.tsx | 2 +-
.../properties/dynamic_icon_property.tsx | 2 +-
.../dynamic_orientation_property.ts | 2 +-
.../properties/dynamic_size_property.test.tsx | 2 +-
.../properties/dynamic_size_property.tsx | 2 +-
.../properties/dynamic_style_property.tsx | 2 +-
.../properties/dynamic_text_property.test.tsx | 2 +-
.../properties/dynamic_text_property.ts | 2 +-
.../properties/label_border_size_property.ts | 2 +-
.../properties/static_color_property.ts | 2 +-
.../vector/properties/static_icon_property.ts | 2 +-
.../properties/static_orientation_property.ts | 2 +-
.../vector/properties/static_size_property.ts | 2 +-
.../properties/static_text_property.test.ts | 2 +-
.../vector/properties/static_text_property.ts | 2 +-
.../classes/styles/vector/vector_style.tsx | 2 +-
.../mb_map/draw_control/draw_control.tsx | 2 +-
.../draw_filter_control.tsx | 2 +-
.../mb_map/draw_control/draw_tooltip.tsx | 2 +-
.../connected_components/mb_map/mb_map.tsx | 2 +-
.../scale_control/scale_control.test.tsx | 2 +-
.../mb_map/scale_control/scale_control.tsx | 2 +-
.../mb_map/sort_layers.test.ts | 2 +-
.../mb_map/sort_layers.ts | 2 +-
.../mb_map/tile_status_tracker.test.ts | 2 +-
.../mb_map/tile_status_tracker.ts | 2 +-
.../tooltip_control/tooltip_control.test.tsx | 2 +-
.../tooltip_control/tooltip_control.tsx | 2 +-
.../tooltip_control/tooltip_popover.test.tsx | 2 +-
.../tooltip_control/tooltip_popover.tsx | 2 +-
yarn.lock | 185 +++++-------------
43 files changed, 132 insertions(+), 185 deletions(-)
diff --git a/package.json b/package.json
index 3cdde5e52584a..936f985498ab1 100644
--- a/package.json
+++ b/package.json
@@ -158,8 +158,8 @@
"@loaders.gl/core": "^2.3.1",
"@loaders.gl/json": "^2.3.1",
"@mapbox/geojson-rewind": "^0.5.0",
- "@mapbox/mapbox-gl-draw": "^1.2.0",
- "@mapbox/mapbox-gl-rtl-text": "^0.2.3",
+ "@mapbox/mapbox-gl-draw": "1.3.0",
+ "@mapbox/mapbox-gl-rtl-text": "0.2.3",
"@mapbox/vector-tile": "1.3.1",
"@scant/router": "^0.1.1",
"@slack/webhook": "^5.0.4",
@@ -285,7 +285,7 @@
"lru-cache": "^4.1.5",
"lz-string": "^1.4.4",
"mapbox-gl": "1.13.1",
- "mapbox-gl-draw-rectangle-mode": "^1.0.4",
+ "mapbox-gl-draw-rectangle-mode": "1.0.4",
"markdown-it": "^10.0.0",
"md5": "^2.1.0",
"memoize-one": "^5.0.0",
@@ -562,7 +562,7 @@
"@types/loader-utils": "^1.1.3",
"@types/lodash": "^4.14.159",
"@types/lru-cache": "^5.1.0",
- "@types/mapbox-gl": "^1.9.1",
+ "@types/mapbox-gl": "1.13.1",
"@types/markdown-it": "^0.0.7",
"@types/md5": "^2.2.0",
"@types/memoize-one": "^4.1.0",
diff --git a/packages/kbn-mapbox-gl/src/index.ts b/packages/kbn-mapbox-gl/src/index.ts
index 117b874a28ffb..404684af78031 100644
--- a/packages/kbn-mapbox-gl/src/index.ts
+++ b/packages/kbn-mapbox-gl/src/index.ts
@@ -7,6 +7,24 @@
*/
import './typings';
+import type {
+ Map,
+ GeoJSONSource,
+ VectorSource,
+ Layer,
+ AnyLayer,
+ FeatureIdentifier,
+ Style,
+ MapboxOptions,
+ MapMouseEvent,
+ MapSourceDataEvent,
+ LngLat,
+ LngLatBounds,
+ PointLike,
+ MapboxGeoJSONFeature,
+ Point,
+ CustomLayerInterface,
+} from 'mapbox-gl';
import mapboxgl from 'mapbox-gl/dist/mapbox-gl-csp';
// @ts-expect-error
import mbRtlPlugin from '!!file-loader!@mapbox/mapbox-gl-rtl-text/mapbox-gl-rtl-text.min.js';
@@ -17,4 +35,22 @@ import 'mapbox-gl/dist/mapbox-gl.css';
mapboxgl.workerUrl = mbWorkerUrl;
mapboxgl.setRTLTextPlugin(mbRtlPlugin);
-export { mapboxgl };
+export {
+ mapboxgl,
+ Map,
+ GeoJSONSource,
+ VectorSource,
+ Layer,
+ AnyLayer,
+ FeatureIdentifier,
+ Style,
+ MapboxOptions,
+ MapMouseEvent,
+ MapSourceDataEvent,
+ LngLat,
+ LngLatBounds,
+ PointLike,
+ MapboxGeoJSONFeature,
+ Point,
+ CustomLayerInterface,
+};
diff --git a/src/plugins/vis_type_vega/public/vega_view/vega_map_view/constants.ts b/src/plugins/vis_type_vega/public/vega_view/vega_map_view/constants.ts
index 75e3b66a784b3..04957fda5b8ff 100644
--- a/src/plugins/vis_type_vega/public/vega_view/vega_map_view/constants.ts
+++ b/src/plugins/vis_type_vega/public/vega_view/vega_map_view/constants.ts
@@ -6,7 +6,7 @@
* Side Public License, v 1.
*/
-import type { Style } from 'mapbox-gl';
+import type { Style } from '@kbn/mapbox-gl';
import { TMS_IN_YML_ID } from '../../../../maps_ems/public';
export const vegaLayerId = 'vega';
diff --git a/src/plugins/vis_type_vega/public/vega_view/vega_map_view/layers/types.ts b/src/plugins/vis_type_vega/public/vega_view/vega_map_view/layers/types.ts
index d3e8bc3f5ab33..428910cbf2d38 100644
--- a/src/plugins/vis_type_vega/public/vega_view/vega_map_view/layers/types.ts
+++ b/src/plugins/vis_type_vega/public/vega_view/vega_map_view/layers/types.ts
@@ -6,7 +6,7 @@
* Side Public License, v 1.
*/
-import type { Map } from 'mapbox-gl';
+import type { Map } from '@kbn/mapbox-gl';
export interface LayerParameters = {}> {
id: string;
diff --git a/src/plugins/vis_type_vega/public/vega_view/vega_map_view/layers/vega_layer.ts b/src/plugins/vis_type_vega/public/vega_view/vega_map_view/layers/vega_layer.ts
index 8972b80cb99c5..b6bac1e842926 100644
--- a/src/plugins/vis_type_vega/public/vega_view/vega_map_view/layers/vega_layer.ts
+++ b/src/plugins/vis_type_vega/public/vega_view/vega_map_view/layers/vega_layer.ts
@@ -6,7 +6,7 @@
* Side Public License, v 1.
*/
-import type { Map, CustomLayerInterface } from 'mapbox-gl';
+import type { Map, CustomLayerInterface } from '@kbn/mapbox-gl';
import type { View } from 'vega';
import type { LayerParameters } from './types';
diff --git a/src/plugins/vis_type_vega/public/vega_view/vega_map_view/view.ts b/src/plugins/vis_type_vega/public/vega_view/vega_map_view/view.ts
index 835ac36ceee47..f4104a0f2457c 100644
--- a/src/plugins/vis_type_vega/public/vega_view/vega_map_view/view.ts
+++ b/src/plugins/vis_type_vega/public/vega_view/vega_map_view/view.ts
@@ -7,7 +7,7 @@
*/
import { i18n } from '@kbn/i18n';
-import type { Map, Style, MapboxOptions } from 'mapbox-gl';
+import type { Map, Style, MapboxOptions } from '@kbn/mapbox-gl';
import { View, parse } from 'vega';
diff --git a/x-pack/plugins/maps/public/classes/layers/heatmap_layer/heatmap_layer.ts b/x-pack/plugins/maps/public/classes/layers/heatmap_layer/heatmap_layer.ts
index 96c7fcedaf3d9..368ff8bebcdd1 100644
--- a/x-pack/plugins/maps/public/classes/layers/heatmap_layer/heatmap_layer.ts
+++ b/x-pack/plugins/maps/public/classes/layers/heatmap_layer/heatmap_layer.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { Map as MbMap, GeoJSONSource as MbGeoJSONSource } from 'mapbox-gl';
+import type { Map as MbMap, GeoJSONSource as MbGeoJSONSource } from '@kbn/mapbox-gl';
import { FeatureCollection } from 'geojson';
import { AbstractLayer } from '../layer';
import { HeatmapStyle } from '../../styles/heatmap/heatmap_style';
diff --git a/x-pack/plugins/maps/public/classes/layers/layer.tsx b/x-pack/plugins/maps/public/classes/layers/layer.tsx
index 1c1e29ca485ff..be113ab4cc2c9 100644
--- a/x-pack/plugins/maps/public/classes/layers/layer.tsx
+++ b/x-pack/plugins/maps/public/classes/layers/layer.tsx
@@ -7,7 +7,7 @@
/* eslint-disable @typescript-eslint/consistent-type-definitions */
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { Query } from 'src/plugins/data/public';
import _ from 'lodash';
import React, { ReactElement, ReactNode } from 'react';
diff --git a/x-pack/plugins/maps/public/classes/layers/tiled_vector_layer/tiled_vector_layer.tsx b/x-pack/plugins/maps/public/classes/layers/tiled_vector_layer/tiled_vector_layer.tsx
index d452096250576..6dba935ccc87d 100644
--- a/x-pack/plugins/maps/public/classes/layers/tiled_vector_layer/tiled_vector_layer.tsx
+++ b/x-pack/plugins/maps/public/classes/layers/tiled_vector_layer/tiled_vector_layer.tsx
@@ -6,11 +6,11 @@
*/
import React from 'react';
-import {
+import type {
Map as MbMap,
GeoJSONSource as MbGeoJSONSource,
VectorSource as MbVectorSource,
-} from 'mapbox-gl';
+} from '@kbn/mapbox-gl';
import { EuiIcon } from '@elastic/eui';
import { Feature } from 'geojson';
import uuid from 'uuid/v4';
diff --git a/x-pack/plugins/maps/public/classes/layers/vector_layer/utils.tsx b/x-pack/plugins/maps/public/classes/layers/vector_layer/utils.tsx
index e49339b6250b4..a7ac9dd9cfb6a 100644
--- a/x-pack/plugins/maps/public/classes/layers/vector_layer/utils.tsx
+++ b/x-pack/plugins/maps/public/classes/layers/vector_layer/utils.tsx
@@ -6,7 +6,7 @@
*/
import { FeatureCollection } from 'geojson';
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import {
EMPTY_FEATURE_COLLECTION,
SOURCE_BOUNDS_DATA_REQUEST_ID,
diff --git a/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.tsx b/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.tsx
index a4d913979cf1b..ca171f10207e1 100644
--- a/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.tsx
+++ b/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.tsx
@@ -6,7 +6,11 @@
*/
import React from 'react';
-import { Map as MbMap, Layer as MbLayer, GeoJSONSource as MbGeoJSONSource } from 'mapbox-gl';
+import type {
+ Map as MbMap,
+ AnyLayer as MbLayer,
+ GeoJSONSource as MbGeoJSONSource,
+} from '@kbn/mapbox-gl';
import { Feature, FeatureCollection, GeoJsonProperties } from 'geojson';
import _ from 'lodash';
import { EuiIcon } from '@elastic/eui';
diff --git a/x-pack/plugins/maps/public/classes/styles/heatmap/heatmap_style.tsx b/x-pack/plugins/maps/public/classes/styles/heatmap/heatmap_style.tsx
index fe581a1807b28..723390ff23676 100644
--- a/x-pack/plugins/maps/public/classes/styles/heatmap/heatmap_style.tsx
+++ b/x-pack/plugins/maps/public/classes/styles/heatmap/heatmap_style.tsx
@@ -6,7 +6,7 @@
*/
import React from 'react';
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { i18n } from '@kbn/i18n';
import { EuiIcon } from '@elastic/eui';
import { IStyle } from '../style';
diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_color_property.tsx b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_color_property.tsx
index d654cdc6bff51..73f8736750656 100644
--- a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_color_property.tsx
+++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_color_property.tsx
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import React from 'react';
import { EuiTextColor } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_icon_property.tsx b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_icon_property.tsx
index ad87b43c8e4a5..56d7c8597e151 100644
--- a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_icon_property.tsx
+++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_icon_property.tsx
@@ -8,7 +8,7 @@
import _ from 'lodash';
import React from 'react';
import { EuiTextColor } from '@elastic/eui';
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { DynamicStyleProperty } from './dynamic_style_property';
// @ts-expect-error
import { getIconPalette, getMakiIconId, getMakiSymbolAnchor } from '../symbol_utils';
diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_orientation_property.ts b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_orientation_property.ts
index e72b411909e82..afa034b4d395c 100644
--- a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_orientation_property.ts
+++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_orientation_property.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { DynamicStyleProperty, getNumericalMbFeatureStateValue } from './dynamic_style_property';
import { OrientationDynamicOptions } from '../../../../../common/descriptor_types';
import { RawValue } from '../../../../../common/constants';
diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_size_property.test.tsx b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_size_property.test.tsx
index 64a3e0cf0e322..e1a92fdcad08a 100644
--- a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_size_property.test.tsx
+++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_size_property.test.tsx
@@ -18,7 +18,7 @@ import { shallow } from 'enzyme';
import { DynamicSizeProperty } from './dynamic_size_property';
import { RawValue, VECTOR_STYLES } from '../../../../../common/constants';
import { IField } from '../../../fields/field';
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { SizeDynamicOptions } from '../../../../../common/descriptor_types';
import { mockField, MockLayer, MockStyle } from './test_helpers/test_util';
import { IVectorLayer } from '../../../layers/vector_layer';
diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_size_property.tsx b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_size_property.tsx
index 7076775dcce31..8599adef33f01 100644
--- a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_size_property.tsx
+++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_size_property.tsx
@@ -7,7 +7,7 @@
import _ from 'lodash';
import React from 'react';
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { DynamicStyleProperty } from './dynamic_style_property';
import { OrdinalLegend } from '../components/legend/ordinal_legend';
import { makeMbClampedNumberExpression } from '../style_util';
diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_style_property.tsx b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_style_property.tsx
index 9ffd9a0f1b345..0841bb7546d9e 100644
--- a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_style_property.tsx
+++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_style_property.tsx
@@ -8,7 +8,7 @@
import _ from 'lodash';
import React from 'react';
import { Feature, FeatureCollection } from 'geojson';
-import { FeatureIdentifier, Map as MbMap } from 'mapbox-gl';
+import type { FeatureIdentifier, Map as MbMap } from '@kbn/mapbox-gl';
import { AbstractStyleProperty, IStyleProperty } from './style_property';
import { DEFAULT_SIGMA } from '../vector_style_defaults';
import {
diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.test.tsx b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.test.tsx
index 4550a27ac2d9a..b5872773fdce6 100644
--- a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.test.tsx
+++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.test.tsx
@@ -17,7 +17,7 @@ import React from 'react';
import { DynamicTextProperty } from './dynamic_text_property';
import { RawValue, VECTOR_STYLES } from '../../../../../common/constants';
import { IField } from '../../../fields/field';
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { mockField, MockLayer, MockStyle } from './test_helpers/test_util';
import { IVectorLayer } from '../../../layers/vector_layer';
diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.ts b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.ts
index e8612388a5ae1..c59d720798371 100644
--- a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.ts
+++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { DynamicStyleProperty } from './dynamic_style_property';
import { LabelDynamicOptions } from '../../../../../common/descriptor_types';
import { RawValue } from '../../../../../common/constants';
diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/label_border_size_property.ts b/x-pack/plugins/maps/public/classes/styles/vector/properties/label_border_size_property.ts
index 4d9473a9adced..5d4425a9d4995 100644
--- a/x-pack/plugins/maps/public/classes/styles/vector/properties/label_border_size_property.ts
+++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/label_border_size_property.ts
@@ -6,7 +6,7 @@
*/
import _ from 'lodash';
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { AbstractStyleProperty } from './style_property';
import { DEFAULT_LABEL_SIZE } from '../vector_style_defaults';
import { LABEL_BORDER_SIZES } from '../../../../../common/constants';
diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/static_color_property.ts b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_color_property.ts
index dae983c4ae4fe..c8a80b5ee28dc 100644
--- a/x-pack/plugins/maps/public/classes/styles/vector/properties/static_color_property.ts
+++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_color_property.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { StaticStyleProperty } from './static_style_property';
import { ColorStaticOptions } from '../../../../../common/descriptor_types';
diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/static_icon_property.ts b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_icon_property.ts
index 887f16a176048..3a61e1a074868 100644
--- a/x-pack/plugins/maps/public/classes/styles/vector/properties/static_icon_property.ts
+++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_icon_property.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { StaticStyleProperty } from './static_style_property';
// @ts-expect-error
import { getMakiSymbolAnchor, getMakiIconId } from '../symbol_utils';
diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/static_orientation_property.ts b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_orientation_property.ts
index 329088fdb160d..48a52f641dfc7 100644
--- a/x-pack/plugins/maps/public/classes/styles/vector/properties/static_orientation_property.ts
+++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_orientation_property.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { StaticStyleProperty } from './static_style_property';
import { VECTOR_STYLES } from '../../../../../common/constants';
import { OrientationStaticOptions } from '../../../../../common/descriptor_types';
diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/static_size_property.ts b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_size_property.ts
index 3dd706043d158..de71d07aa7167 100644
--- a/x-pack/plugins/maps/public/classes/styles/vector/properties/static_size_property.ts
+++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_size_property.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { StaticStyleProperty } from './static_style_property';
import { VECTOR_STYLES } from '../../../../../common/constants';
import {
diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/static_text_property.test.ts b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_text_property.test.ts
index 70c7721e760b6..498ad2fc4ea17 100644
--- a/x-pack/plugins/maps/public/classes/styles/vector/properties/static_text_property.test.ts
+++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_text_property.test.ts
@@ -7,7 +7,7 @@
import { StaticTextProperty } from './static_text_property';
import { VECTOR_STYLES } from '../../../../../common/constants';
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
export class MockMbMap {
_paintPropertyCalls: unknown[];
diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/static_text_property.ts b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_text_property.ts
index fb05fa052db21..083d091aaefe5 100644
--- a/x-pack/plugins/maps/public/classes/styles/vector/properties/static_text_property.ts
+++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_text_property.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { StaticStyleProperty } from './static_style_property';
import { LabelStaticOptions } from '../../../../../common/descriptor_types';
diff --git a/x-pack/plugins/maps/public/classes/styles/vector/vector_style.tsx b/x-pack/plugins/maps/public/classes/styles/vector/vector_style.tsx
index 692be08d07bc6..7578695d7ac6f 100644
--- a/x-pack/plugins/maps/public/classes/styles/vector/vector_style.tsx
+++ b/x-pack/plugins/maps/public/classes/styles/vector/vector_style.tsx
@@ -7,7 +7,7 @@
import _ from 'lodash';
import React, { ReactElement } from 'react';
-import { FeatureIdentifier, Map as MbMap } from 'mapbox-gl';
+import { FeatureIdentifier, Map as MbMap } from '@kbn/mapbox-gl';
import { FeatureCollection } from 'geojson';
import { StyleProperties, VectorStyleEditor } from './components/vector_style_editor';
import { getDefaultStaticProperties, LINE_STYLES, POLYGON_STYLES } from './vector_style_defaults';
diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/draw_control/draw_control.tsx b/x-pack/plugins/maps/public/connected_components/mb_map/draw_control/draw_control.tsx
index a1bea4a8e93dc..4f8182963a185 100644
--- a/x-pack/plugins/maps/public/connected_components/mb_map/draw_control/draw_control.tsx
+++ b/x-pack/plugins/maps/public/connected_components/mb_map/draw_control/draw_control.tsx
@@ -11,7 +11,7 @@ import React, { Component } from 'react';
import MapboxDraw from '@mapbox/mapbox-gl-draw';
// @ts-expect-error
import DrawRectangle from 'mapbox-gl-draw-rectangle-mode';
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { Feature } from 'geojson';
import { DRAW_TYPE } from '../../../../common/constants';
import { DrawCircle } from './draw_circle';
diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/draw_control/draw_filter_control/draw_filter_control.tsx b/x-pack/plugins/maps/public/connected_components/mb_map/draw_control/draw_filter_control/draw_filter_control.tsx
index e6359394cd741..5fad291a5367f 100644
--- a/x-pack/plugins/maps/public/connected_components/mb_map/draw_control/draw_filter_control/draw_filter_control.tsx
+++ b/x-pack/plugins/maps/public/connected_components/mb_map/draw_control/draw_filter_control/draw_filter_control.tsx
@@ -7,7 +7,7 @@
import _ from 'lodash';
import React, { Component } from 'react';
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { i18n } from '@kbn/i18n';
import { Filter } from 'src/plugins/data/public';
import { Feature, Polygon } from 'geojson';
diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/draw_control/draw_tooltip.tsx b/x-pack/plugins/maps/public/connected_components/mb_map/draw_control/draw_tooltip.tsx
index df650d5dfe410..38d3bab6cd129 100644
--- a/x-pack/plugins/maps/public/connected_components/mb_map/draw_control/draw_tooltip.tsx
+++ b/x-pack/plugins/maps/public/connected_components/mb_map/draw_control/draw_tooltip.tsx
@@ -9,7 +9,7 @@ import _ from 'lodash';
import React, { Component, RefObject } from 'react';
import { EuiPopover, EuiText } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { DRAW_TYPE } from '../../../../common/constants';
const noop = () => {};
diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/mb_map.tsx b/x-pack/plugins/maps/public/connected_components/mb_map/mb_map.tsx
index ce36ec811df40..877de10e11383 100644
--- a/x-pack/plugins/maps/public/connected_components/mb_map/mb_map.tsx
+++ b/x-pack/plugins/maps/public/connected_components/mb_map/mb_map.tsx
@@ -7,7 +7,7 @@
import _ from 'lodash';
import React, { Component } from 'react';
-import type { Map as MapboxMap, MapboxOptions, MapMouseEvent } from 'mapbox-gl';
+import type { Map as MapboxMap, MapboxOptions, MapMouseEvent } from '@kbn/mapbox-gl';
// @ts-expect-error
import { spritesheet } from '@elastic/maki';
diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/scale_control/scale_control.test.tsx b/x-pack/plugins/maps/public/connected_components/mb_map/scale_control/scale_control.test.tsx
index bd735d5cd5183..0eb3ff2de16e8 100644
--- a/x-pack/plugins/maps/public/connected_components/mb_map/scale_control/scale_control.test.tsx
+++ b/x-pack/plugins/maps/public/connected_components/mb_map/scale_control/scale_control.test.tsx
@@ -8,7 +8,7 @@
import React from 'react';
import { mount, shallow } from 'enzyme';
import { ScaleControl } from './scale_control';
-import { LngLat, LngLatBounds, Map as MapboxMap, PointLike } from 'mapbox-gl';
+import type { LngLat, LngLatBounds, Map as MapboxMap, PointLike } from '@kbn/mapbox-gl';
const CLIENT_HEIGHT_PIXELS = 1200;
const DISTANCE_METERS = 87653;
diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/scale_control/scale_control.tsx b/x-pack/plugins/maps/public/connected_components/mb_map/scale_control/scale_control.tsx
index 68f37721bdb1f..d762f17b9b898 100644
--- a/x-pack/plugins/maps/public/connected_components/mb_map/scale_control/scale_control.tsx
+++ b/x-pack/plugins/maps/public/connected_components/mb_map/scale_control/scale_control.tsx
@@ -8,7 +8,7 @@
import { i18n } from '@kbn/i18n';
import classNames from 'classnames';
import React, { Component } from 'react';
-import { Map as MapboxMap } from 'mapbox-gl';
+import type { Map as MapboxMap } from '@kbn/mapbox-gl';
const MAX_WIDTH = 110;
interface Props {
diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/sort_layers.test.ts b/x-pack/plugins/maps/public/connected_components/mb_map/sort_layers.test.ts
index 6be53cfb1349a..596ba793db708 100644
--- a/x-pack/plugins/maps/public/connected_components/mb_map/sort_layers.test.ts
+++ b/x-pack/plugins/maps/public/connected_components/mb_map/sort_layers.test.ts
@@ -8,7 +8,7 @@
/* eslint-disable max-classes-per-file */
import _ from 'lodash';
-import { Map as MbMap, Layer as MbLayer, Style as MbStyle } from 'mapbox-gl';
+import type { Map as MbMap, AnyLayer as MbLayer, Style as MbStyle } from '@kbn/mapbox-gl';
import { getIsTextLayer, syncLayerOrder } from './sort_layers';
import { SPATIAL_FILTERS_LAYER_ID } from '../../../common/constants';
import { ILayer } from '../../classes/layers/layer';
diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/sort_layers.ts b/x-pack/plugins/maps/public/connected_components/mb_map/sort_layers.ts
index 8c16c13bfcc90..927c6819351c2 100644
--- a/x-pack/plugins/maps/public/connected_components/mb_map/sort_layers.ts
+++ b/x-pack/plugins/maps/public/connected_components/mb_map/sort_layers.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { Map as MbMap, Layer as MbLayer } from 'mapbox-gl';
+import type { Map as MbMap, Layer as MbLayer } from '@kbn/mapbox-gl';
import { ILayer } from '../../classes/layers/layer';
// "Layer" is overloaded and can mean the following
diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/tile_status_tracker.test.ts b/x-pack/plugins/maps/public/connected_components/mb_map/tile_status_tracker.test.ts
index 223efae657601..6b47fe3e6e650 100644
--- a/x-pack/plugins/maps/public/connected_components/mb_map/tile_status_tracker.test.ts
+++ b/x-pack/plugins/maps/public/connected_components/mb_map/tile_status_tracker.test.ts
@@ -7,7 +7,7 @@
// eslint-disable-next-line max-classes-per-file
import { TileStatusTracker } from './tile_status_tracker';
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { ILayer } from '../../classes/layers/layer';
class MockMbMap {
diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/tile_status_tracker.ts b/x-pack/plugins/maps/public/connected_components/mb_map/tile_status_tracker.ts
index be946a12fe225..fc99cd3067d0b 100644
--- a/x-pack/plugins/maps/public/connected_components/mb_map/tile_status_tracker.ts
+++ b/x-pack/plugins/maps/public/connected_components/mb_map/tile_status_tracker.ts
@@ -5,7 +5,7 @@
* 2.0.
*/
-import { Map as MapboxMap, MapSourceDataEvent } from 'mapbox-gl';
+import type { Map as MapboxMap, MapSourceDataEvent } from '@kbn/mapbox-gl';
import _ from 'lodash';
import { ILayer } from '../../classes/layers/layer';
import { SPATIAL_FILTERS_LAYER_ID } from '../../../common/constants';
diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_control.test.tsx b/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_control.test.tsx
index 451150fabb064..ac6e3cfcccf4e 100644
--- a/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_control.test.tsx
+++ b/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_control.test.tsx
@@ -14,7 +14,7 @@ jest.mock('./tooltip_popover', () => ({
import sinon from 'sinon';
import React from 'react';
import { mount, shallow } from 'enzyme';
-import { Map as MbMap, MapMouseEvent, MapboxGeoJSONFeature } from 'mapbox-gl';
+import type { Map as MbMap, MapMouseEvent, MapboxGeoJSONFeature } from '@kbn/mapbox-gl';
import { TooltipControl } from './tooltip_control';
import { IVectorLayer } from '../../../classes/layers/vector_layer';
diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_control.tsx b/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_control.tsx
index e8c3a46430cb9..09dd9ee4f51d9 100644
--- a/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_control.tsx
+++ b/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_control.tsx
@@ -14,7 +14,7 @@ import {
MapboxGeoJSONFeature,
MapMouseEvent,
Point as MbPoint,
-} from 'mapbox-gl';
+} from '@kbn/mapbox-gl';
import uuid from 'uuid/v4';
import { Geometry } from 'geojson';
import { Filter } from 'src/plugins/data/public';
diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_popover.test.tsx b/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_popover.test.tsx
index 22223df366011..002ec09e68c2f 100644
--- a/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_popover.test.tsx
+++ b/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_popover.test.tsx
@@ -14,7 +14,7 @@ jest.mock('./features_tooltip/features_tooltip', () => ({
import sinon from 'sinon';
import React from 'react';
import { mount, shallow } from 'enzyme';
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { TooltipPopover } from './tooltip_popover';
// mutable map state
diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_popover.tsx b/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_popover.tsx
index a3fcc0ea6a07a..0b7ba3468d30c 100644
--- a/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_popover.tsx
+++ b/x-pack/plugins/maps/public/connected_components/mb_map/tooltip_control/tooltip_popover.tsx
@@ -7,7 +7,7 @@
import React, { Component, RefObject } from 'react';
import { EuiPopover, EuiText } from '@elastic/eui';
-import { Map as MbMap } from 'mapbox-gl';
+import type { Map as MbMap } from '@kbn/mapbox-gl';
import { GeoJsonProperties, Geometry } from 'geojson';
import { Filter } from 'src/plugins/data/public';
import { ActionExecutionContext, Action } from 'src/plugins/ui_actions/public';
diff --git a/yarn.lock b/yarn.lock
index 9f7db552a3f53..24f80c7dcb7b5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2854,32 +2854,32 @@
resolved "https://registry.yarnpkg.com/@mapbox/extent/-/extent-0.4.0.tgz#3e591f32e1f0c3981c864239f7b0ac06e610f8a9"
integrity sha1-PlkfMuHww5gchkI597CsBuYQ+Kk=
-"@mapbox/geojson-area@^0.2.1":
+"@mapbox/geojson-area@^0.2.2":
version "0.2.2"
resolved "https://registry.yarnpkg.com/@mapbox/geojson-area/-/geojson-area-0.2.2.tgz#18d7814aa36bf23fbbcc379f8e26a22927debf10"
integrity sha1-GNeBSqNr8j+7zDefjiaiKSfevxA=
dependencies:
wgs84 "0.0.0"
-"@mapbox/geojson-coords@0.0.0":
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/@mapbox/geojson-coords/-/geojson-coords-0.0.0.tgz#4847a5b96059666e527a2139e75e35d84fd58f50"
- integrity sha1-SEeluWBZZm5SeiE551412E/Vj1A=
+"@mapbox/geojson-coords@0.0.1":
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/@mapbox/geojson-coords/-/geojson-coords-0.0.1.tgz#31338ac5bc7b2e663409fb129643257ce715594f"
+ integrity sha512-cdMlqmDl1vzAl2E0XC2zIuqM74vdet0Dq2el49haJEVbGpC8se40j5UcsnBK/gsvZzrume30fon1u/aSYMXG4Q==
dependencies:
"@mapbox/geojson-normalize" "0.0.1"
- geojson-flatten "~0.2.1"
+ geojson-flatten "^1.0.4"
-"@mapbox/geojson-extent@^0.3.2":
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/@mapbox/geojson-extent/-/geojson-extent-0.3.2.tgz#a1bdb2015afd0e031c18c3f29f7eb229e4e1950f"
- integrity sha1-ob2yAVr9DgMcGMPyn36yKeThlQ8=
+"@mapbox/geojson-extent@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@mapbox/geojson-extent/-/geojson-extent-1.0.0.tgz#cc1db1ca5f28e7a3a2d71dcfc86c9ef3486e1558"
+ integrity sha512-OWW/Tw7OkKHoogXjQJNILjLd2d4JZzO/elc5Qr08VNwFSIPpSnJgyaEGO2xRPqNuWDLr4RocuqmC0FcQWPgeOA==
dependencies:
"@mapbox/extent" "0.4.0"
- "@mapbox/geojson-coords" "0.0.0"
+ "@mapbox/geojson-coords" "0.0.1"
rw "~0.1.4"
traverse "~0.6.6"
-"@mapbox/geojson-normalize@0.0.1":
+"@mapbox/geojson-normalize@0.0.1", "@mapbox/geojson-normalize@^0.0.1":
version "0.0.1"
resolved "https://registry.yarnpkg.com/@mapbox/geojson-normalize/-/geojson-normalize-0.0.1.tgz#1da1e6b3a7add3ad29909b30f438f60581b7cd80"
integrity sha1-HaHms6et060pkJsw9Dj2BYG3zYA=
@@ -2897,17 +2897,6 @@
resolved "https://registry.yarnpkg.com/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz#9aecf642cb00eab1080a57c4f949a65b4a5846d6"
integrity sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==
-"@mapbox/geojsonhint@3.0.0":
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/@mapbox/geojsonhint/-/geojsonhint-3.0.0.tgz#42448232ce4236cb89c1b69c36b0cadeac99e02e"
- integrity sha512-zHcyh1rDHYnEBd6NvOWoeHLuvazlDkIjvz9MJx4cKwcKTlfrqgxVnTv1QLnVJnsSU5neJnhQJcgscR/Zl4uYgw==
- dependencies:
- concat-stream "^1.6.1"
- jsonlint-lines "1.7.1"
- minimist "1.2.0"
- vfile "^4.0.0"
- vfile-reporter "^5.1.1"
-
"@mapbox/hast-util-table-cell-style@^0.1.3":
version "0.1.3"
resolved "https://registry.yarnpkg.com/@mapbox/hast-util-table-cell-style/-/hast-util-table-cell-style-0.1.3.tgz#5b7166ae01297d72216932b245e4b2f0b642dca6"
@@ -2920,22 +2909,20 @@
resolved "https://registry.yarnpkg.com/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz#ce56e539f83552b58d10d672ea4d6fc9adc7b234"
integrity sha1-zlblOfg1UrWNENZy6k1vya3HsjQ=
-"@mapbox/mapbox-gl-draw@^1.2.0":
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/@mapbox/mapbox-gl-draw/-/mapbox-gl-draw-1.2.0.tgz#b6e5278afef65bd5d7d92366034997768e478ad9"
- integrity sha512-gMrP2zn8PzDtrs72FMJTPytCumX5vUn9R7IK38qBOVy9UfqbdWr56KYuNA/2X+jKn4FIOpmWf8CWkKpOaQkv7w==
+"@mapbox/mapbox-gl-draw@1.3.0":
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/@mapbox/mapbox-gl-draw/-/mapbox-gl-draw-1.3.0.tgz#7a30fb99488cb47a32c25e99c3c62413b04bbaed"
+ integrity sha512-B+KWK+dAgzLHMNyKVuuMRfjeSlQ77MhNLdfpQQpbp3pkhnrdmydDe3ixto1Ua78hktNut0WTrAaD8gYu4PVcjA==
dependencies:
- "@mapbox/geojson-area" "^0.2.1"
- "@mapbox/geojson-extent" "^0.3.2"
- "@mapbox/geojson-normalize" "0.0.1"
- "@mapbox/geojsonhint" "3.0.0"
- "@mapbox/point-geometry" "0.1.0"
- eslint-plugin-import "^2.19.1"
+ "@mapbox/geojson-area" "^0.2.2"
+ "@mapbox/geojson-extent" "^1.0.0"
+ "@mapbox/geojson-normalize" "^0.0.1"
+ "@mapbox/point-geometry" "^0.1.0"
hat "0.0.3"
- lodash.isequal "^4.2.0"
- xtend "^4.0.1"
+ lodash.isequal "^4.5.0"
+ xtend "^4.0.2"
-"@mapbox/mapbox-gl-rtl-text@^0.2.3":
+"@mapbox/mapbox-gl-rtl-text@0.2.3":
version "0.2.3"
resolved "https://registry.yarnpkg.com/@mapbox/mapbox-gl-rtl-text/-/mapbox-gl-rtl-text-0.2.3.tgz#a26ecfb3f0061456d93ee8570dd9587d226ea8bd"
integrity sha512-RaCYfnxULUUUxNwcUimV9C/o2295ktTyLEUzD/+VWkqXqvaVfFcZ5slytGzb2Sd/Jj4MlbxD0DCZbfa6CzcmMw==
@@ -5349,10 +5336,10 @@
resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.0.tgz#57f228f2b80c046b4a1bd5cac031f81f207f4f03"
integrity sha512-RaE0B+14ToE4l6UqdarKPnXwVDuigfFv+5j9Dze/Nqr23yyuqdNvzcZi3xB+3Agvi5R4EOgAksfv3lXX4vBt9w==
-"@types/mapbox-gl@^1.9.1":
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/@types/mapbox-gl/-/mapbox-gl-1.9.1.tgz#78b62f8a1ead78bc525a4c1db84bb71fa0fcc579"
- integrity sha512-5LS/fljbGjCPfjtOK5+pz8TT0PL4bBXTnN/PDbPtTQMqQdY/KWTWE4jRPuo0fL5wctd543DCptEUTydn+JK+gA==
+"@types/mapbox-gl@1.13.1":
+ version "1.13.1"
+ resolved "https://registry.yarnpkg.com/@types/mapbox-gl/-/mapbox-gl-1.13.1.tgz#bd8108f912f32c895117e2970b6d4fbbecbe42a1"
+ integrity sha512-Yqv1eFAzG2gdecc94higNC8KE+BR6t8QhFgbQGGEpKr3OgSVVtr2qaBNBPaGlIAtCoKDF6JGB2haOhvijYC4Bg==
dependencies:
"@types/geojson" "*"
@@ -6470,11 +6457,6 @@ JSONStream@1.3.5, JSONStream@^1.0.3:
jsonparse "^1.2.0"
through ">=2.2.7 <3"
-"JSV@>= 4.0.x":
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57"
- integrity sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=
-
abab@^2.0.0, abab@^2.0.3, abab@^2.0.4:
version "2.0.5"
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a"
@@ -6871,11 +6853,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
"@types/color-name" "^1.1.1"
color-convert "^2.0.1"
-ansi-styles@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178"
- integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=
-
ansi-to-html@^0.6.11:
version "0.6.13"
resolved "https://registry.yarnpkg.com/ansi-to-html/-/ansi-to-html-0.6.13.tgz#c72eae8b63e5ca0643aab11bfc6e6f2217425833"
@@ -9141,15 +9118,6 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@~4.1.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
-chalk@~0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
- integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=
- dependencies:
- ansi-styles "~1.0.0"
- has-color "~0.1.0"
- strip-ansi "~0.1.0"
-
chalk@~0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174"
@@ -12649,7 +12617,7 @@ eslint-formatter-pretty@^4.0.0:
string-width "^4.2.0"
supports-hyperlinks "^2.0.0"
-eslint-import-resolver-node@0.3.2, eslint-import-resolver-node@^0.3.2:
+eslint-import-resolver-node@0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a"
integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==
@@ -12681,7 +12649,7 @@ eslint-import-resolver-webpack@0.11.1:
resolve "^1.10.0"
semver "^5.3.0"
-eslint-module-utils@2.5.0, eslint-module-utils@^2.4.1:
+eslint-module-utils@2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.0.tgz#cdf0b40d623032274ccd2abd7e64c4e524d6e19c"
integrity sha512-kCo8pZaNz2dsAW7nCUjuVoI11EBXXpIzfNxmaoLhXoRDOnqXLC4iSGVRdZPhOitfbdEfMEfKOiENaK6wDPZEGw==
@@ -12734,24 +12702,6 @@ eslint-plugin-eslint-comments@^3.2.0:
escape-string-regexp "^1.0.5"
ignore "^5.0.5"
-eslint-plugin-import@^2.19.1:
- version "2.19.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.19.1.tgz#5654e10b7839d064dd0d46cd1b88ec2133a11448"
- integrity sha512-x68131aKoCZlCae7rDXKSAQmbT5DQuManyXo2sK6fJJ0aK5CWAkv6A6HJZGgqC8IhjQxYPgo6/IY4Oz8AFsbBw==
- dependencies:
- array-includes "^3.0.3"
- array.prototype.flat "^1.2.1"
- contains-path "^0.1.0"
- debug "^2.6.9"
- doctrine "1.5.0"
- eslint-import-resolver-node "^0.3.2"
- eslint-module-utils "^2.4.1"
- has "^1.0.3"
- minimatch "^3.0.4"
- object.values "^1.1.0"
- read-pkg-up "^2.0.0"
- resolve "^1.12.0"
-
eslint-plugin-import@^2.22.1:
version "2.22.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702"
@@ -14232,13 +14182,13 @@ gensync@^1.0.0-beta.1:
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269"
integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==
-geojson-flatten@~0.2.1:
- version "0.2.4"
- resolved "https://registry.yarnpkg.com/geojson-flatten/-/geojson-flatten-0.2.4.tgz#8f3396f31a0f5b747e39c9e6a14088f43ba4ecfb"
- integrity sha512-LiX6Jmot8adiIdZ/fthbcKKPOfWjTQchX/ggHnwMZ2e4b0I243N1ANUos0LvnzepTEsj0+D4fIJ5bKhBrWnAHA==
+geojson-flatten@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/geojson-flatten/-/geojson-flatten-1.0.4.tgz#cdfef2e9042996fcaa14fe658db6d88c99c20930"
+ integrity sha512-PpscUXxO6dvvhZxtwuqiI5v+1C/IQYPJRMWoQeaF2oohJgfGYSHKVAe8L+yUqF34PH/hmq9JlwmO+juPw+95/Q==
dependencies:
- get-stdin "^6.0.0"
- minimist "1.2.0"
+ get-stdin "^7.0.0"
+ minimist "^1.2.5"
geojson-vt@^3.2.1:
version "3.2.1"
@@ -14311,6 +14261,11 @@ get-stdin@^6.0.0:
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b"
integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==
+get-stdin@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6"
+ integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==
+
get-stdin@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53"
@@ -15056,11 +15011,6 @@ has-bigints@^1.0.1:
resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
-has-color@~0.1.0:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f"
- integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=
-
has-flag@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
@@ -17749,14 +17699,6 @@ jsonify@~0.0.0:
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
-jsonlint-lines@1.7.1:
- version "1.7.1"
- resolved "https://registry.yarnpkg.com/jsonlint-lines/-/jsonlint-lines-1.7.1.tgz#507de680d3fb8c4be1641cc57d6f679f29f178ff"
- integrity sha1-UH3mgNP7jEvhZBzFfW9nnynxeP8=
- dependencies:
- JSV ">= 4.0.x"
- nomnom ">= 1.5.x"
-
jsonparse@^1.2.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
@@ -18452,7 +18394,7 @@ lodash.isempty@^4.4.0:
resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e"
integrity sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=
-lodash.isequal@^4.0.0, lodash.isequal@^4.1.1, lodash.isequal@^4.2.0, lodash.isequal@^4.5.0:
+lodash.isequal@^4.0.0, lodash.isequal@^4.1.1, lodash.isequal@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
@@ -18815,7 +18757,7 @@ map-visit@^1.0.0:
dependencies:
object-visit "^1.0.0"
-mapbox-gl-draw-rectangle-mode@^1.0.4:
+mapbox-gl-draw-rectangle-mode@1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/mapbox-gl-draw-rectangle-mode/-/mapbox-gl-draw-rectangle-mode-1.0.4.tgz#42987d68872a5fb5cc5d76d3375ee20cd8bab8f7"
integrity sha512-BdF6nwEK2p8n9LQoMPzBO8LhddW1fe+d5vK8HQIei+4VcRnUbKNsEj7Z15FsJxCHzsc2BQKXbESx5GaE8x0imQ==
@@ -19367,7 +19309,7 @@ minimist-options@4.1.0, minimist-options@^4.0.2:
is-plain-obj "^1.1.0"
kind-of "^6.0.3"
-minimist@0.0.8, minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.0:
+minimist@0.0.8, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.0:
version "1.2.5"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
@@ -20214,14 +20156,6 @@ nodemon@^2.0.4:
undefsafe "^2.0.3"
update-notifier "^4.1.0"
-"nomnom@>= 1.5.x":
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7"
- integrity sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=
- dependencies:
- chalk "~0.4.0"
- underscore "~1.6.0"
-
"nopt@2 || 3", nopt@~3.0.6:
version "3.0.6"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
@@ -24097,7 +24031,7 @@ repeat-element@^1.1.2:
resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
integrity sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=
-repeat-string@^1.0.0, repeat-string@^1.5.0, repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1:
+repeat-string@^1.0.0, repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
@@ -25879,7 +25813,7 @@ string-width@^1.0.1, string-width@^1.0.2:
is-fullwidth-code-point "^1.0.0"
strip-ansi "^3.0.0"
-"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1:
+"string-width@^1.0.2 || 2", string-width@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
@@ -26027,11 +25961,6 @@ strip-ansi@^4.0.0:
dependencies:
ansi-regex "^3.0.0"
-strip-ansi@~0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991"
- integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=
-
strip-bom-string@1.X:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92"
@@ -27486,7 +27415,7 @@ underscore.string@~3.3.5:
sprintf-js "^1.0.3"
util-deprecate "^1.0.2"
-underscore@^1.13.1, underscore@^1.8.3, underscore@~1.6.0:
+underscore@^1.13.1, underscore@^1.8.3:
version "1.13.1"
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1"
integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==
@@ -28618,28 +28547,6 @@ vfile-message@^1.0.0:
dependencies:
unist-util-stringify-position "^1.1.1"
-vfile-reporter@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-5.1.1.tgz#419688c7e9dcaf65ba81bfdb0ad443e9e0248e09"
- integrity sha512-A/cfKvfVmeEmAKx1yyOWggCjC/k184Vkl5pVJAw5CEdppHd5FHBVcdyJ1JBSqIdJjJqyhZY4ZD3JycHr/uwmlA==
- dependencies:
- repeat-string "^1.5.0"
- string-width "^2.0.0"
- supports-color "^5.4.0"
- unist-util-stringify-position "^1.0.0"
- vfile-sort "^2.1.2"
- vfile-statistics "^1.1.0"
-
-vfile-sort@^2.1.2:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-2.2.0.tgz#383a8727ec4c5daf37c05683684a5eb686366d39"
- integrity sha512-RgxLXVWrJBWb2GuP8FsSkqK7HmbjXjnI8qx3nD6NTWhsWaelaKvJuxfh1F1d1lkCPD7imo4zzi8cf6IOMgaTnQ==
-
-vfile-statistics@^1.1.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.2.tgz#c50132627e4669a3afa07c64ff1e7aa7695e8151"
- integrity sha512-16wAC9eEGXdsD35LX9m/iXCRIZyX5LIrDgDtAF92rbATSqsBRbC4n05e0Rj5vt3XRpcKu0UJeWnTxWsSyvNZ+w==
-
vfile@^2.0.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a"
From 83e5b6c689a221fa92db1bbd1d71e7c8f19dd627 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alejandro=20Fern=C3=A1ndez=20G=C3=B3mez?=
Date: Thu, 27 May 2021 11:30:15 +0200
Subject: [PATCH 29/30] [Fleet] Remove beats management plugin (#99789)
---
.github/CODEOWNERS | 3 -
api_docs/alerting.json | 22 +-
api_docs/beats_management.json | 72 -
api_docs/beats_management.mdx | 21 -
api_docs/core.json | 338 ++-
api_docs/core_application.json | 388 ++-
api_docs/core_chrome.json | 144 +-
api_docs/data.json | 2444 ++++++++---------
api_docs/data_index_patterns.json | 1730 ++++++------
api_docs/data_search.json | 81 +-
api_docs/deprecations.mdx | 136 +-
api_docs/features.json | 14 -
api_docs/fleet.json | 24 +-
api_docs/home.json | 14 +-
api_docs/kibana_utils.json | 4 +-
api_docs/licensing.json | 411 ++-
api_docs/lists.json | 1359 +--------
api_docs/lists.mdx | 14 -
api_docs/management.json | 53 +-
api_docs/ml.json | 2 +-
api_docs/saved_objects.json | 48 +-
api_docs/security.json | 49 +-
api_docs/spaces.json | 28 +-
docs/developer/plugin-list.asciidoc | 5 -
docs/management/managing-beats.asciidoc | 108 -
docs/user/management.asciidoc | 6 -
packages/kbn-optimizer/limits.yml | 1 -
tsconfig.json | 1 -
tsconfig.refs.json | 1 -
x-pack/.i18nrc.json | 1 -
.../beats_management/common/config_schemas.ts | 384 ---
.../common/config_schemas_translations_map.ts | 243 --
.../common/constants/configuration_blocks.ts | 8 -
.../common/constants/index.ts | 13 -
.../common/constants/index_names.ts | 16 -
.../common/constants/plugin.ts | 12 -
.../common/constants/security.ts | 18 -
.../common/constants/table.ts | 13 -
.../beats_management/common/domain_types.ts | 136 -
.../plugins/beats_management/common/index.ts | 23 -
.../beats_management/common/io_ts_types.ts | 34 -
.../beats_management/common/return_types.ts | 106 -
.../plugins/beats_management/jest.config.js | 12 -
x-pack/plugins/beats_management/kibana.json | 16 -
.../beats_management/public/application.tsx | 89 -
.../beats_management/public/bootstrap.tsx | 69 -
.../components/autocomplete_field/index.tsx | 290 --
.../autocomplete_field/suggestion_item.tsx | 119 -
.../public/components/config_list.tsx | 117 -
.../public/components/enroll_beats.tsx | 292 --
.../public/components/inputs/code_editor.tsx | 114 -
.../public/components/inputs/index.ts | 12 -
.../public/components/inputs/input.tsx | 120 -
.../public/components/inputs/multi_input.tsx | 122 -
.../components/inputs/password_input.tsx | 114 -
.../public/components/inputs/select.tsx | 125 -
.../public/components/layouts/background.tsx | 12 -
.../public/components/layouts/no_data.tsx | 31 -
.../public/components/layouts/primary.tsx | 84 -
.../public/components/layouts/walkthrough.tsx | 49 -
.../public/components/loading.tsx | 17 -
.../navigation/breadcrumb/breadcrumb.tsx | 64 -
.../navigation/breadcrumb/consumer.tsx | 8 -
.../navigation/breadcrumb/context.tsx | 19 -
.../components/navigation/breadcrumb/index.ts | 10 -
.../navigation/breadcrumb/provider.tsx | 73 -
.../navigation/breadcrumb/types.d.ts | 16 -
.../components/navigation/child_routes.tsx | 40 -
.../components/navigation/connected_link.tsx | 46 -
.../public/components/table/action_schema.ts | 101 -
.../table/controls/action_control.tsx | 97 -
.../public/components/table/controls/index.ts | 8 -
.../table/controls/option_control.tsx | 58 -
.../table/controls/tag_badge_list.tsx | 110 -
.../public/components/table/index.ts | 16 -
.../public/components/table/table.tsx | 160 --
.../components/table/table_type_configs.tsx | 345 ---
.../tag/config_view/config_form.tsx | 216 --
.../components/tag/config_view/index.tsx | 189 --
.../public/components/tag/index.ts | 9 -
.../public/components/tag/tag_badge.tsx | 48 -
.../public/components/tag/tag_edit.tsx | 238 --
.../public/containers/beats.ts | 104 -
.../public/containers/tags.ts | 54 -
.../containers/with_kuery_autocompletion.tsx | 89 -
.../public/containers/with_url_state.tsx | 101 -
.../public/frontend_types.d.ts | 36 -
.../plugins/beats_management/public/index.ts | 40 -
.../beats_management/public/kbn_services.ts | 26 -
.../lib/adapters/beats/adapter_types.ts | 38 -
.../adapters/beats/memory_beats_adapter.ts | 109 -
.../lib/adapters/beats/rest_beats_adapter.ts | 80 -
.../configuration_blocks/adapter_types.ts | 15 -
.../memory_config_blocks_adapter.ts | 42 -
.../rest_config_blocks_adapter.ts | 36 -
.../adapters/elasticsearch/adapter_types.ts | 14 -
.../lib/adapters/elasticsearch/memory.ts | 27 -
.../public/lib/adapters/elasticsearch/rest.ts | 66 -
.../lib/adapters/framework/adapter_types.ts | 54 -
.../framework/kibana_framework_adapter.ts | 160 --
.../framework/testing_framework_adapter.ts | 46 -
.../lib/adapters/rest_api/adapter_types.ts | 15 -
.../rest_api/axios_rest_api_adapter.ts | 79 -
.../rest_api/node_axios_api_adapter.ts | 93 -
.../public/lib/adapters/tags/adapter_types.ts | 16 -
.../lib/adapters/tags/memory_tags_adapter.ts | 44 -
.../lib/adapters/tags/rest_tags_adapter.ts | 66 -
.../lib/adapters/tokens/adapter_types.ts | 10 -
.../adapters/tokens/memory_tokens_adapter.ts | 14 -
.../adapters/tokens/rest_tokens_adapter.ts | 23 -
.../beats_management/public/lib/beats.ts | 66 -
.../public/lib/compose/kibana.ts | 81 -
.../public/lib/compose/scripts.ts | 79 -
.../public/lib/config_blocks.test.ts | 149 -
.../public/lib/configuration_blocks.ts | 123 -
.../public/lib/elasticsearch.ts | 70 -
.../beats_management/public/lib/framework.ts | 61 -
.../beats_management/public/lib/tags.ts | 48 -
.../beats_management/public/lib/types.ts | 60 -
.../beats_management/public/pages/__404.tsx | 22 -
.../public/pages/beat/details.tsx | 201 --
.../public/pages/beat/index.tsx | 201 --
.../public/pages/beat/tags.tsx | 76 -
.../public/pages/error/enforce_security.tsx | 27 -
.../public/pages/error/invalid_license.tsx | 28 -
.../public/pages/error/no_access.tsx | 29 -
.../beats_management/public/pages/index.ts | 56 -
.../pages/overview/configuration_tags.tsx | 118 -
.../public/pages/overview/enrolled_beats.tsx | 355 ---
.../public/pages/overview/index.tsx | 110 -
.../public/pages/tag/create.tsx | 160 --
.../public/pages/tag/edit.tsx | 203 --
.../public/pages/walkthrough/initial/beat.tsx | 65 -
.../pages/walkthrough/initial/finish.tsx | 136 -
.../pages/walkthrough/initial/index.tsx | 97 -
.../public/pages/walkthrough/initial/tag.tsx | 137 -
.../beats_management/public/router.tsx | 132 -
.../public/utils/random_eui_color.ts | 26 -
.../public/utils/typed_react.ts | 21 -
x-pack/plugins/beats_management/readme.md | 39 -
.../beats_management/scripts/enroll.js | 42 -
.../beats_management/scripts/fake_env.ts | 158 --
.../plugins/beats_management/server/index.ts | 22 -
.../index_templates/beats_template.json | 137 -
.../index_templates/events_template.json | 45 -
.../server/index_templates/index.ts | 11 -
.../lib/adapters/beats/adapter_types.ts | 46 -
.../beats/elasticsearch_beats_adapter.ts | 245 --
.../configuration_blocks/adapter_types.ts | 28 -
...asticsearch_configuration_block_adapter.ts | 168 --
.../lib/adapters/database/adapter_types.ts | 302 --
.../database/kibana_database_adapter.ts | 118 -
.../lib/adapters/framework/adapter_types.ts | 115 -
.../framework/kibana_framework_adapter.ts | 116 -
.../server/lib/adapters/tags/adapter_types.ts | 17 -
.../tags/elasticsearch_tags_adapter.ts | 180 --
.../lib/adapters/tokens/adapter_types.ts | 19 -
.../tokens/elasticsearch_tokens_adapter.ts | 76 -
.../server/lib/beat_events.ts | 59 -
.../beats_management/server/lib/beats.ts | 260 --
.../server/lib/compose/kibana.ts | 85 -
.../server/lib/configuration_blocks.ts | 77 -
.../beats_management/server/lib/framework.ts | 54 -
.../beats_management/server/lib/tags.ts | 62 -
.../beats_management/server/lib/tokens.ts | 144 -
.../beats_management/server/lib/types.ts | 61 -
.../plugins/beats_management/server/plugin.ts | 89 -
.../server/routes/beats/configuration.ts | 83 -
.../server/routes/beats/enroll.ts | 90 -
.../server/routes/beats/events.ts | 67 -
.../server/routes/beats/get.ts | 60 -
.../server/routes/beats/index.ts | 15 -
.../server/routes/beats/list.ts | 70 -
.../server/routes/beats/tag_assignment.ts | 69 -
.../server/routes/beats/tag_removal.ts | 67 -
.../server/routes/beats/update.ts | 105 -
.../server/routes/configurations/delete.ts | 48 -
.../server/routes/configurations/get.ts | 53 -
.../server/routes/configurations/index.ts | 10 -
.../server/routes/configurations/upsert.ts | 73 -
.../beats_management/server/routes/index.ts | 55 -
.../server/routes/tags/assignable.ts | 51 -
.../server/routes/tags/delete.ts | 48 -
.../server/routes/tags/get.ts | 46 -
.../server/routes/tags/index.ts | 12 -
.../server/routes/tags/list.ts | 53 -
.../server/routes/tags/set.ts | 63 -
.../server/routes/tokens/create.ts | 58 -
.../server/routes/tokens/index.ts | 8 -
.../server/routes/wrap_route_with_security.ts | 70 -
x-pack/plugins/beats_management/tsconfig.json | 26 -
.../beats_management/types/formsy.d.ts | 49 -
.../translations/translations/ja-JP.json | 179 --
.../translations/translations/zh-CN.json | 183 --
.../apis/beats/assign_tags_to_beats.js | 254 --
.../api_integration/apis/beats/constants.js | 8 -
.../apis/beats/create_enrollment_tokens.js | 88 -
.../api_integration/apis/beats/enroll_beat.js | 184 --
.../api_integration/apis/beats/get_beat.js | 87 -
.../test/api_integration/apis/beats/index.js | 31 -
.../api_integration/apis/beats/list_beats.js | 39 -
.../apis/beats/remove_tags_from_beats.js | 218 --
.../api_integration/apis/beats/set_config.js | 246 --
.../api_integration/apis/beats/set_tag.js | 67 -
.../api_integration/apis/beats/update_beat.js | 122 -
x-pack/test/api_integration/apis/index.ts | 1 -
x-pack/test/tsconfig.json | 1 -
207 files changed, 2938 insertions(+), 19531 deletions(-)
delete mode 100644 api_docs/beats_management.json
delete mode 100644 api_docs/beats_management.mdx
delete mode 100644 docs/management/managing-beats.asciidoc
delete mode 100644 x-pack/plugins/beats_management/common/config_schemas.ts
delete mode 100644 x-pack/plugins/beats_management/common/config_schemas_translations_map.ts
delete mode 100644 x-pack/plugins/beats_management/common/constants/configuration_blocks.ts
delete mode 100644 x-pack/plugins/beats_management/common/constants/index.ts
delete mode 100644 x-pack/plugins/beats_management/common/constants/index_names.ts
delete mode 100644 x-pack/plugins/beats_management/common/constants/plugin.ts
delete mode 100644 x-pack/plugins/beats_management/common/constants/security.ts
delete mode 100644 x-pack/plugins/beats_management/common/constants/table.ts
delete mode 100644 x-pack/plugins/beats_management/common/domain_types.ts
delete mode 100644 x-pack/plugins/beats_management/common/index.ts
delete mode 100644 x-pack/plugins/beats_management/common/io_ts_types.ts
delete mode 100644 x-pack/plugins/beats_management/common/return_types.ts
delete mode 100644 x-pack/plugins/beats_management/jest.config.js
delete mode 100644 x-pack/plugins/beats_management/kibana.json
delete mode 100644 x-pack/plugins/beats_management/public/application.tsx
delete mode 100644 x-pack/plugins/beats_management/public/bootstrap.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/autocomplete_field/index.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/autocomplete_field/suggestion_item.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/config_list.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/enroll_beats.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/inputs/code_editor.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/inputs/index.ts
delete mode 100644 x-pack/plugins/beats_management/public/components/inputs/input.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/inputs/multi_input.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/inputs/password_input.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/inputs/select.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/layouts/background.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/layouts/no_data.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/layouts/primary.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/layouts/walkthrough.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/loading.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/navigation/breadcrumb/breadcrumb.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/navigation/breadcrumb/consumer.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/navigation/breadcrumb/context.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/navigation/breadcrumb/index.ts
delete mode 100644 x-pack/plugins/beats_management/public/components/navigation/breadcrumb/provider.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/navigation/breadcrumb/types.d.ts
delete mode 100644 x-pack/plugins/beats_management/public/components/navigation/child_routes.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/navigation/connected_link.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/table/action_schema.ts
delete mode 100644 x-pack/plugins/beats_management/public/components/table/controls/action_control.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/table/controls/index.ts
delete mode 100644 x-pack/plugins/beats_management/public/components/table/controls/option_control.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/table/controls/tag_badge_list.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/table/index.ts
delete mode 100644 x-pack/plugins/beats_management/public/components/table/table.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/table/table_type_configs.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/tag/config_view/config_form.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/tag/config_view/index.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/tag/index.ts
delete mode 100644 x-pack/plugins/beats_management/public/components/tag/tag_badge.tsx
delete mode 100644 x-pack/plugins/beats_management/public/components/tag/tag_edit.tsx
delete mode 100644 x-pack/plugins/beats_management/public/containers/beats.ts
delete mode 100644 x-pack/plugins/beats_management/public/containers/tags.ts
delete mode 100644 x-pack/plugins/beats_management/public/containers/with_kuery_autocompletion.tsx
delete mode 100644 x-pack/plugins/beats_management/public/containers/with_url_state.tsx
delete mode 100644 x-pack/plugins/beats_management/public/frontend_types.d.ts
delete mode 100644 x-pack/plugins/beats_management/public/index.ts
delete mode 100644 x-pack/plugins/beats_management/public/kbn_services.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/beats/adapter_types.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/beats/memory_beats_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/beats/rest_beats_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/configuration_blocks/adapter_types.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/configuration_blocks/memory_config_blocks_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/configuration_blocks/rest_config_blocks_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/elasticsearch/adapter_types.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/elasticsearch/memory.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/elasticsearch/rest.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/framework/adapter_types.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/framework/kibana_framework_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/framework/testing_framework_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/rest_api/adapter_types.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/rest_api/axios_rest_api_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/rest_api/node_axios_api_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/tags/adapter_types.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/tags/memory_tags_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/tags/rest_tags_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/tokens/adapter_types.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/tokens/memory_tokens_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/adapters/tokens/rest_tokens_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/beats.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/compose/kibana.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/compose/scripts.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/config_blocks.test.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/configuration_blocks.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/elasticsearch.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/framework.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/tags.ts
delete mode 100644 x-pack/plugins/beats_management/public/lib/types.ts
delete mode 100644 x-pack/plugins/beats_management/public/pages/__404.tsx
delete mode 100644 x-pack/plugins/beats_management/public/pages/beat/details.tsx
delete mode 100644 x-pack/plugins/beats_management/public/pages/beat/index.tsx
delete mode 100644 x-pack/plugins/beats_management/public/pages/beat/tags.tsx
delete mode 100644 x-pack/plugins/beats_management/public/pages/error/enforce_security.tsx
delete mode 100644 x-pack/plugins/beats_management/public/pages/error/invalid_license.tsx
delete mode 100644 x-pack/plugins/beats_management/public/pages/error/no_access.tsx
delete mode 100644 x-pack/plugins/beats_management/public/pages/index.ts
delete mode 100644 x-pack/plugins/beats_management/public/pages/overview/configuration_tags.tsx
delete mode 100644 x-pack/plugins/beats_management/public/pages/overview/enrolled_beats.tsx
delete mode 100644 x-pack/plugins/beats_management/public/pages/overview/index.tsx
delete mode 100644 x-pack/plugins/beats_management/public/pages/tag/create.tsx
delete mode 100644 x-pack/plugins/beats_management/public/pages/tag/edit.tsx
delete mode 100644 x-pack/plugins/beats_management/public/pages/walkthrough/initial/beat.tsx
delete mode 100644 x-pack/plugins/beats_management/public/pages/walkthrough/initial/finish.tsx
delete mode 100644 x-pack/plugins/beats_management/public/pages/walkthrough/initial/index.tsx
delete mode 100644 x-pack/plugins/beats_management/public/pages/walkthrough/initial/tag.tsx
delete mode 100644 x-pack/plugins/beats_management/public/router.tsx
delete mode 100644 x-pack/plugins/beats_management/public/utils/random_eui_color.ts
delete mode 100644 x-pack/plugins/beats_management/public/utils/typed_react.ts
delete mode 100644 x-pack/plugins/beats_management/readme.md
delete mode 100644 x-pack/plugins/beats_management/scripts/enroll.js
delete mode 100644 x-pack/plugins/beats_management/scripts/fake_env.ts
delete mode 100644 x-pack/plugins/beats_management/server/index.ts
delete mode 100644 x-pack/plugins/beats_management/server/index_templates/beats_template.json
delete mode 100644 x-pack/plugins/beats_management/server/index_templates/events_template.json
delete mode 100644 x-pack/plugins/beats_management/server/index_templates/index.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/adapters/beats/adapter_types.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/adapters/beats/elasticsearch_beats_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/adapters/configuration_blocks/adapter_types.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/adapters/configuration_blocks/elasticsearch_configuration_block_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/adapters/database/adapter_types.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/adapters/database/kibana_database_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/adapters/framework/adapter_types.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/adapters/framework/kibana_framework_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/adapters/tags/adapter_types.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/adapters/tags/elasticsearch_tags_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/adapters/tokens/adapter_types.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/adapters/tokens/elasticsearch_tokens_adapter.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/beat_events.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/beats.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/compose/kibana.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/configuration_blocks.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/framework.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/tags.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/tokens.ts
delete mode 100644 x-pack/plugins/beats_management/server/lib/types.ts
delete mode 100644 x-pack/plugins/beats_management/server/plugin.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/beats/configuration.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/beats/enroll.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/beats/events.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/beats/get.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/beats/index.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/beats/list.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/beats/tag_assignment.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/beats/tag_removal.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/beats/update.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/configurations/delete.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/configurations/get.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/configurations/index.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/configurations/upsert.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/index.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/tags/assignable.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/tags/delete.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/tags/get.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/tags/index.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/tags/list.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/tags/set.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/tokens/create.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/tokens/index.ts
delete mode 100644 x-pack/plugins/beats_management/server/routes/wrap_route_with_security.ts
delete mode 100644 x-pack/plugins/beats_management/tsconfig.json
delete mode 100644 x-pack/plugins/beats_management/types/formsy.d.ts
delete mode 100644 x-pack/test/api_integration/apis/beats/assign_tags_to_beats.js
delete mode 100644 x-pack/test/api_integration/apis/beats/constants.js
delete mode 100644 x-pack/test/api_integration/apis/beats/create_enrollment_tokens.js
delete mode 100644 x-pack/test/api_integration/apis/beats/enroll_beat.js
delete mode 100644 x-pack/test/api_integration/apis/beats/get_beat.js
delete mode 100644 x-pack/test/api_integration/apis/beats/index.js
delete mode 100644 x-pack/test/api_integration/apis/beats/list_beats.js
delete mode 100644 x-pack/test/api_integration/apis/beats/remove_tags_from_beats.js
delete mode 100644 x-pack/test/api_integration/apis/beats/set_config.js
delete mode 100644 x-pack/test/api_integration/apis/beats/set_tag.js
delete mode 100644 x-pack/test/api_integration/apis/beats/update_beat.js
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 39daa5780436f..df7dc1040907c 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -94,9 +94,6 @@
/x-pack/plugins/apm/server/projections/rum_page_load_transactions.ts @elastic/uptime
/x-pack/test/apm_api_integration/tests/csm/ @elastic/uptime
-# Beats
-/x-pack/plugins/beats_management/ @elastic/beats
-#CC# /x-pack/plugins/beats_management/ @elastic/beats
# Presentation
/src/plugins/dashboard/ @elastic/kibana-presentation
diff --git a/api_docs/alerting.json b/api_docs/alerting.json
index ddb92f5aff9bb..13a150d0af00d 100644
--- a/api_docs/alerting.json
+++ b/api_docs/alerting.json
@@ -516,13 +516,15 @@
"label": "rule",
"description": [],
"signature": [
+ "Pick, \"enabled\" | \"id\" | \"name\" | \"params\" | \"actions\" | \"tags\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">, \"enabled\" | \"name\" | \"actions\" | \"tags\" | \"consumer\" | \"schedule\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"throttle\" | \"notifyWhen\"> & { producer: string; ruleTypeId: string; ruleTypeName: string; }"
],
"source": {
"path": "x-pack/plugins/alerting/server/types.ts",
@@ -840,7 +842,7 @@
"description": [],
"source": {
"path": "x-pack/plugins/alerting/server/types.ts",
- "lineNumber": 75
+ "lineNumber": 76
},
"deprecated": false
}
@@ -1030,7 +1032,7 @@
],
"source": {
"path": "x-pack/plugins/alerting/server/types.ts",
- "lineNumber": 107
+ "lineNumber": 109
},
"deprecated": false
}
@@ -3913,7 +3915,15 @@
"label": "SanitizedRuleConfig",
"description": [],
"signature": [
- "Pick, \"enabled\" | \"id\" | \"name\" | \"params\" | \"actions\" | \"tags\" | \"muteAll\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"mutedInstanceIds\" | \"executionStatus\">, \"enabled\" | \"name\" | \"actions\" | \"tags\" | \"consumer\" | \"schedule\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"throttle\" | \"notifyWhen\"> & { producer: string; ruleTypeId: string; ruleTypeName: string; }"
+ "Pick, \"enabled\" | \"id\" | \"name\" | \"params\" | \"actions\" | \"tags\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">, \"enabled\" | \"name\" | \"actions\" | \"tags\" | \"consumer\" | \"schedule\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"throttle\" | \"notifyWhen\"> & { producer: string; ruleTypeId: string; ruleTypeName: string; }"
],
"source": {
"path": "x-pack/plugins/alerting/common/alert.ts",
diff --git a/api_docs/beats_management.json b/api_docs/beats_management.json
deleted file mode 100644
index c8f0f6af96ce8..0000000000000
--- a/api_docs/beats_management.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "id": "beatsManagement",
- "client": {
- "classes": [],
- "functions": [],
- "interfaces": [],
- "enums": [],
- "misc": [],
- "objects": []
- },
- "server": {
- "classes": [],
- "functions": [],
- "interfaces": [],
- "enums": [],
- "misc": [],
- "objects": []
- },
- "common": {
- "classes": [],
- "functions": [],
- "interfaces": [],
- "enums": [],
- "misc": [
- {
- "parentPluginId": "beatsManagement",
- "id": "def-common.BeatsManagementConfigType",
- "type": "Type",
- "tags": [],
- "label": "BeatsManagementConfigType",
- "description": [],
- "signature": [
- "{ readonly enabled: boolean; readonly defaultUserRoles: string[]; readonly encryptionKey: string; readonly enrollmentTokensTtlInSeconds: number; }"
- ],
- "source": {
- "path": "x-pack/plugins/beats_management/common/index.ts",
- "lineNumber": 23
- },
- "deprecated": false,
- "initialIsOpen": false
- }
- ],
- "objects": [
- {
- "parentPluginId": "beatsManagement",
- "id": "def-common.beatsManagementConfigSchema",
- "type": "Object",
- "tags": [],
- "label": "beatsManagementConfigSchema",
- "description": [],
- "signature": [
- "ObjectType",
- "<{ enabled: ",
- "Type",
- "; defaultUserRoles: ",
- "Type",
- "; encryptionKey: ",
- "Type",
- "; enrollmentTokensTtlInSeconds: ",
- "Type",
- "; }>"
- ],
- "source": {
- "path": "x-pack/plugins/beats_management/common/index.ts",
- "lineNumber": 12
- },
- "deprecated": false,
- "initialIsOpen": false
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/api_docs/beats_management.mdx b/api_docs/beats_management.mdx
deleted file mode 100644
index 9d712c102a1a2..0000000000000
--- a/api_docs/beats_management.mdx
+++ /dev/null
@@ -1,21 +0,0 @@
----
-id: kibBeatsManagementPluginApi
-slug: /kibana-dev-docs/beatsManagementPluginApi
-title: beatsManagement
-image: https://source.unsplash.com/400x175/?github
-summary: API docs for the beatsManagement plugin
-date: 2020-11-16
-tags: ['contributor', 'dev', 'apidocs', 'kibana', 'beatsManagement']
-warning: This document is auto-generated and is meant to be viewed inside our experimental, new docs system. Reach out in #docs-engineering for more info.
----
-
-import beatsManagementObj from './beats_management.json';
-
-## Common
-
-### Objects
-
-
-### Consts, variables and types
-
-
diff --git a/api_docs/core.json b/api_docs/core.json
index fbf766cad30b3..ee4fe9b10b145 100644
--- a/api_docs/core.json
+++ b/api_docs/core.json
@@ -1112,7 +1112,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 206
+ "lineNumber": 203
},
"deprecated": false,
"children": [
@@ -1136,7 +1136,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 208
+ "lineNumber": 205
},
"deprecated": false
},
@@ -1160,7 +1160,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 210
+ "lineNumber": 207
},
"deprecated": false
},
@@ -1184,7 +1184,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 212
+ "lineNumber": 209
},
"deprecated": false
},
@@ -1208,7 +1208,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 214
+ "lineNumber": 211
},
"deprecated": false
},
@@ -1232,7 +1232,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 216
+ "lineNumber": 213
},
"deprecated": false
},
@@ -1252,7 +1252,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 223
+ "lineNumber": 220
},
"deprecated": true,
"references": []
@@ -1279,7 +1279,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 227
+ "lineNumber": 224
},
"deprecated": false,
"returnComment": [],
@@ -1299,7 +1299,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 251
+ "lineNumber": 248
},
"deprecated": false,
"children": [
@@ -1323,7 +1323,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 253
+ "lineNumber": 250
},
"deprecated": false
},
@@ -1347,7 +1347,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 255
+ "lineNumber": 252
},
"deprecated": false
},
@@ -1371,7 +1371,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 257
+ "lineNumber": 254
},
"deprecated": false
},
@@ -1395,7 +1395,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 259
+ "lineNumber": 256
},
"deprecated": false
},
@@ -1419,7 +1419,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 261
+ "lineNumber": 258
},
"deprecated": false
},
@@ -1443,7 +1443,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 263
+ "lineNumber": 260
},
"deprecated": false
},
@@ -1467,7 +1467,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 265
+ "lineNumber": 262
},
"deprecated": false
},
@@ -1491,7 +1491,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 267
+ "lineNumber": 264
},
"deprecated": false
},
@@ -1515,7 +1515,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 269
+ "lineNumber": 266
},
"deprecated": false
},
@@ -1539,7 +1539,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 271
+ "lineNumber": 268
},
"deprecated": false
},
@@ -1563,7 +1563,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 273
+ "lineNumber": 270
},
"deprecated": false
},
@@ -1583,7 +1583,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 280
+ "lineNumber": 277
},
"deprecated": true,
"references": [
@@ -7427,7 +7427,7 @@
],
"source": {
"path": "src/core/public/index.ts",
- "lineNumber": 237
+ "lineNumber": 234
},
"deprecated": false,
"initialIsOpen": false
@@ -8545,45 +8545,38 @@
}
},
{
- "plugin": "securitySolution",
+ "plugin": "monitoring",
"link": {
- "path": "x-pack/plugins/security_solution/server/lib/telemetry/sender.ts",
- "lineNumber": 125
+ "path": "x-pack/plugins/monitoring/server/kibana_monitoring/collectors/get_usage_collector.ts",
+ "lineNumber": 107
}
},
{
- "plugin": "securitySolution",
+ "plugin": "monitoring",
"link": {
- "path": "x-pack/plugins/security_solution/server/lib/telemetry/sender.ts",
- "lineNumber": 218
+ "path": "x-pack/plugins/monitoring/server/telemetry_collection/register_monitoring_telemetry_collection.ts",
+ "lineNumber": 148
}
},
{
"plugin": "securitySolution",
"link": {
"path": "x-pack/plugins/security_solution/server/lib/telemetry/sender.ts",
- "lineNumber": 235
- }
- },
- {
- "plugin": "beatsManagement",
- "link": {
- "path": "x-pack/plugins/beats_management/server/lib/adapters/database/kibana_database_adapter.ts",
- "lineNumber": 113
+ "lineNumber": 125
}
},
{
- "plugin": "monitoring",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/monitoring/server/kibana_monitoring/collectors/get_usage_collector.ts",
- "lineNumber": 107
+ "path": "x-pack/plugins/security_solution/server/lib/telemetry/sender.ts",
+ "lineNumber": 218
}
},
{
- "plugin": "monitoring",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/monitoring/server/telemetry_collection/register_monitoring_telemetry_collection.ts",
- "lineNumber": 148
+ "path": "x-pack/plugins/security_solution/server/lib/telemetry/sender.ts",
+ "lineNumber": 235
}
},
{
@@ -9387,55 +9380,6 @@
"lineNumber": 67
}
},
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/server/routes/read_privileges_route.ts",
- "lineNumber": 31
- }
- },
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/server/routes/read_privileges_route.ts",
- "lineNumber": 35
- }
- },
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/server/lib/framework/kibana_framework_adapter.ts",
- "lineNumber": 34
- }
- },
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/query_signals_route.ts",
- "lineNumber": 52
- }
- },
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/open_close_signals_route.ts",
- "lineNumber": 60
- }
- },
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/server/lib/detection_engine/routes/privileges/read_privileges_route.ts",
- "lineNumber": 41
- }
- },
- {
- "plugin": "beatsManagement",
- "link": {
- "path": "x-pack/plugins/beats_management/server/lib/adapters/database/kibana_database_adapter.ts",
- "lineNumber": 111
- }
- },
{
"plugin": "canvas",
"link": {
@@ -9821,6 +9765,20 @@
"lineNumber": 420
}
},
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/server/routes/read_privileges_route.ts",
+ "lineNumber": 31
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/server/routes/read_privileges_route.ts",
+ "lineNumber": 35
+ }
+ },
{
"plugin": "monitoring",
"link": {
@@ -9842,6 +9800,34 @@
"lineNumber": 356
}
},
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/server/lib/framework/kibana_framework_adapter.ts",
+ "lineNumber": 34
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/query_signals_route.ts",
+ "lineNumber": 52
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/open_close_signals_route.ts",
+ "lineNumber": 60
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/server/lib/detection_engine/routes/privileges/read_privileges_route.ts",
+ "lineNumber": 41
+ }
+ },
{
"plugin": "canvas",
"link": {
@@ -12712,34 +12698,6 @@
"lineNumber": 117
}
},
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/server/lib/telemetry/sender.ts",
- "lineNumber": 125
- }
- },
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/server/lib/telemetry/sender.ts",
- "lineNumber": 218
- }
- },
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/server/lib/telemetry/sender.ts",
- "lineNumber": 235
- }
- },
- {
- "plugin": "beatsManagement",
- "link": {
- "path": "x-pack/plugins/beats_management/server/lib/adapters/database/kibana_database_adapter.ts",
- "lineNumber": 31
- }
- },
{
"plugin": "indexManagement",
"link": {
@@ -12768,6 +12726,27 @@
"lineNumber": 41
}
},
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/server/lib/telemetry/sender.ts",
+ "lineNumber": 125
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/server/lib/telemetry/sender.ts",
+ "lineNumber": 218
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/server/lib/telemetry/sender.ts",
+ "lineNumber": 235
+ }
+ },
{
"plugin": "licensing",
"link": {
@@ -15940,48 +15919,6 @@
"deprecated": true,
"removeBy": "7.16",
"references": [
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/server/schemas/common/get_call_cluster.mock.ts",
- "lineNumber": 9
- }
- },
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/server/schemas/common/get_call_cluster.mock.ts",
- "lineNumber": 27
- }
- },
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/server/schemas/common/get_call_cluster.mock.ts",
- "lineNumber": 31
- }
- },
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/server/lib/telemetry/sender.ts",
- "lineNumber": 10
- }
- },
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/server/lib/telemetry/sender.ts",
- "lineNumber": 447
- }
- },
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/server/lib/telemetry/sender.ts",
- "lineNumber": 466
- }
- },
{
"plugin": "canvas",
"link": {
@@ -16269,6 +16206,48 @@
"lineNumber": 35
}
},
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/server/lib/telemetry/sender.ts",
+ "lineNumber": 10
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/server/lib/telemetry/sender.ts",
+ "lineNumber": 447
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/server/lib/telemetry/sender.ts",
+ "lineNumber": 466
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/server/schemas/common/get_call_cluster.mock.ts",
+ "lineNumber": 9
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/server/schemas/common/get_call_cluster.mock.ts",
+ "lineNumber": 27
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/server/schemas/common/get_call_cluster.mock.ts",
+ "lineNumber": 31
+ }
+ },
{
"plugin": "monitoring",
"link": {
@@ -16458,6 +16437,27 @@
"lineNumber": 20
}
},
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/target/types/server/schemas/common/get_call_cluster.mock.d.ts",
+ "lineNumber": 2
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/target/types/server/schemas/common/get_call_cluster.mock.d.ts",
+ "lineNumber": 4
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/target/types/server/schemas/common/get_call_cluster.mock.d.ts",
+ "lineNumber": 5
+ }
+ },
{
"plugin": "monitoring",
"link": {
@@ -19544,7 +19544,7 @@
"The os platform"
],
"signature": [
- "\"linux\" | \"aix\" | \"android\" | \"darwin\" | \"freebsd\" | \"openbsd\" | \"sunos\" | \"win32\" | \"cygwin\" | \"netbsd\""
+ "\"linux\" | \"aix\" | \"android\" | \"darwin\" | \"freebsd\" | \"openbsd\" | \"sunos\" | \"win32\" | \"cygwin\""
],
"source": {
"path": "src/core/server/metrics/collectors/types.ts",
@@ -23173,20 +23173,6 @@
"lineNumber": 180
}
},
- {
- "plugin": "beatsManagement",
- "link": {
- "path": "x-pack/plugins/beats_management/server/lib/adapters/database/kibana_database_adapter.ts",
- "lineNumber": 8
- }
- },
- {
- "plugin": "beatsManagement",
- "link": {
- "path": "x-pack/plugins/beats_management/server/lib/adapters/database/kibana_database_adapter.ts",
- "lineNumber": 28
- }
- },
{
"plugin": "licensing",
"link": {
diff --git a/api_docs/core_application.json b/api_docs/core_application.json
index 3141bf16a9349..13b110900ab53 100644
--- a/api_docs/core_application.json
+++ b/api_docs/core_application.json
@@ -886,7 +886,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 339
+ "lineNumber": 326
},
"deprecated": false
}
@@ -930,26 +930,44 @@
},
{
"parentPluginId": "core",
- "id": "def-public.App.meta",
- "type": "Object",
+ "id": "def-public.App.keywords",
+ "type": "Array",
+ "tags": [],
+ "label": "keywords",
+ "description": [
+ "Optional keywords to match with in deep links search. Omit if this part of the hierarchy does not have a page URL."
+ ],
+ "signature": [
+ "string[] | undefined"
+ ],
+ "source": {
+ "path": "src/core/public/application/types.ts",
+ "lineNumber": 215
+ },
+ "deprecated": false
+ },
+ {
+ "parentPluginId": "core",
+ "id": "def-public.App.deepLinks",
+ "type": "Array",
"tags": [],
- "label": "meta",
+ "label": "deepLinks",
"description": [
- "\nMeta data for an application that represent additional information for the app.\nSee {@link AppMeta}\n"
+ "\nInput type for registering secondary in-app locations for an application.\n\nDeep links must include at least one of `path` or `deepLinks`. A deep link that does not have a `path`\nrepresents a topological level in the application's hierarchy, but does not have a destination URL that is\nuser-accessible.\n"
],
"signature": [
{
"pluginId": "core",
"scope": "public",
"docId": "kibCoreApplicationPluginApi",
- "section": "def-public.AppMeta",
- "text": "AppMeta"
+ "section": "def-public.AppDeepLink",
+ "text": "AppDeepLink"
},
- " | undefined"
+ "[] | undefined"
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 244
+ "lineNumber": 254
},
"deprecated": false
}
@@ -967,7 +985,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 565
+ "lineNumber": 552
},
"deprecated": false,
"children": [
@@ -990,7 +1008,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 566
+ "lineNumber": 553
},
"deprecated": false
},
@@ -1003,7 +1021,7 @@
"description": [],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 567
+ "lineNumber": 554
},
"deprecated": false
},
@@ -1019,7 +1037,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 568
+ "lineNumber": 555
},
"deprecated": false
},
@@ -1035,7 +1053,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 569
+ "lineNumber": 556
},
"deprecated": false
}
@@ -1053,7 +1071,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 553
+ "lineNumber": 540
},
"deprecated": false,
"children": [
@@ -1076,7 +1094,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 554
+ "lineNumber": 541
},
"deprecated": false
}
@@ -1092,7 +1110,7 @@
"description": [],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 620
+ "lineNumber": 607
},
"deprecated": false,
"children": [
@@ -1118,7 +1136,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 626
+ "lineNumber": 613
},
"deprecated": false,
"children": [
@@ -1143,7 +1161,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 626
+ "lineNumber": 613
},
"deprecated": false,
"isRequired": true
@@ -1175,7 +1193,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 655
+ "lineNumber": 642
},
"deprecated": false,
"children": [
@@ -1200,7 +1218,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 655
+ "lineNumber": 642
},
"deprecated": false,
"isRequired": true
@@ -1220,7 +1238,7 @@
"description": [],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 696
+ "lineNumber": 683
},
"deprecated": false,
"children": [
@@ -1238,7 +1256,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 700
+ "lineNumber": 687
},
"deprecated": false
},
@@ -1265,7 +1283,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 709
+ "lineNumber": 696
},
"deprecated": false
},
@@ -1291,7 +1309,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 717
+ "lineNumber": 704
},
"deprecated": false,
"children": [
@@ -1307,7 +1325,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 717
+ "lineNumber": 704
},
"deprecated": false,
"isRequired": true
@@ -1333,7 +1351,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 717
+ "lineNumber": 704
},
"deprecated": false,
"isRequired": false
@@ -1355,7 +1373,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 755
+ "lineNumber": 742
},
"deprecated": false,
"children": [
@@ -1373,7 +1391,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 755
+ "lineNumber": 742
},
"deprecated": false,
"isRequired": true
@@ -1395,7 +1413,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 769
+ "lineNumber": 756
},
"deprecated": false,
"children": [
@@ -1411,7 +1429,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 769
+ "lineNumber": 756
},
"deprecated": false,
"isRequired": true
@@ -1425,7 +1443,7 @@
"description": [],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 769
+ "lineNumber": 756
},
"deprecated": false,
"children": [
@@ -1441,7 +1459,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 769
+ "lineNumber": 756
},
"deprecated": false
},
@@ -1457,7 +1475,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 769
+ "lineNumber": 756
},
"deprecated": false
}
@@ -1481,68 +1499,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 774
- },
- "deprecated": false
- }
- ],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "core",
- "id": "def-public.AppMeta",
- "type": "Interface",
- "tags": [],
- "label": "AppMeta",
- "description": [
- "\nInput type for meta data for an application.\n\nMeta fields include `keywords` and `searchDeepLinks`\nKeywords is an array of string with which to associate the app, must include at least one unique string as an array.\n`searchDeepLinks` is an array of links that represent secondary in-app locations for the app."
- ],
- "source": {
- "path": "src/core/public/application/types.ts",
- "lineNumber": 255
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "core",
- "id": "def-public.AppMeta.keywords",
- "type": "Array",
- "tags": [],
- "label": "keywords",
- "description": [
- "Keywords to represent this application"
- ],
- "signature": [
- "string[] | undefined"
- ],
- "source": {
- "path": "src/core/public/application/types.ts",
- "lineNumber": 257
- },
- "deprecated": false
- },
- {
- "parentPluginId": "core",
- "id": "def-public.AppMeta.searchDeepLinks",
- "type": "Array",
- "tags": [],
- "label": "searchDeepLinks",
- "description": [
- "Array of links that represent secondary in-app locations for the app."
- ],
- "signature": [
- {
- "pluginId": "core",
- "scope": "public",
- "docId": "kibCoreApplicationPluginApi",
- "section": "def-public.AppSearchDeepLink",
- "text": "AppSearchDeepLink"
- },
- "[] | undefined"
- ],
- "source": {
- "path": "src/core/public/application/types.ts",
- "lineNumber": 259
+ "lineNumber": 761
},
"deprecated": false
}
@@ -1568,7 +1525,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 349
+ "lineNumber": 336
},
"deprecated": false,
"children": [
@@ -1586,7 +1543,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 353
+ "lineNumber": 340
},
"deprecated": false
},
@@ -1611,7 +1568,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 399
+ "lineNumber": 386
},
"deprecated": false
},
@@ -1628,7 +1585,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 449
+ "lineNumber": 436
},
"deprecated": true,
"references": [
@@ -1721,7 +1678,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 484
+ "lineNumber": 471
},
"deprecated": true,
"references": [
@@ -1746,20 +1703,6 @@
"lineNumber": 298
}
},
- {
- "plugin": "lens",
- "link": {
- "path": "x-pack/plugins/lens/public/app_plugin/types.ts",
- "lineNumber": 71
- }
- },
- {
- "plugin": "lens",
- "link": {
- "path": "x-pack/plugins/lens/public/app_plugin/mounter.tsx",
- "lineNumber": 171
- }
- },
{
"plugin": "maps",
"link": {
@@ -1781,6 +1724,20 @@
"lineNumber": 19
}
},
+ {
+ "plugin": "lens",
+ "link": {
+ "path": "x-pack/plugins/lens/public/app_plugin/types.ts",
+ "lineNumber": 71
+ }
+ },
+ {
+ "plugin": "lens",
+ "link": {
+ "path": "x-pack/plugins/lens/public/app_plugin/mounter.tsx",
+ "lineNumber": 171
+ }
+ },
{
"plugin": "ml",
"link": {
@@ -1882,7 +1839,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 484
+ "lineNumber": 471
},
"deprecated": false
}
@@ -1910,7 +1867,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 515
+ "lineNumber": 502
},
"deprecated": false,
"returnComment": [],
@@ -1934,7 +1891,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 515
+ "lineNumber": 502
},
"deprecated": false
}
@@ -1954,7 +1911,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 674
+ "lineNumber": 661
},
"deprecated": false,
"children": [
@@ -1972,7 +1929,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 679
+ "lineNumber": 666
},
"deprecated": false
},
@@ -1990,7 +1947,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 683
+ "lineNumber": 670
},
"deprecated": false
},
@@ -2008,7 +1965,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 687
+ "lineNumber": 674
},
"deprecated": false
},
@@ -2026,7 +1983,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 692
+ "lineNumber": 679
},
"deprecated": false
}
@@ -2046,7 +2003,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 540
+ "lineNumber": 527
},
"deprecated": false,
"initialIsOpen": false
@@ -2085,6 +2042,57 @@
}
],
"misc": [
+ {
+ "parentPluginId": "core",
+ "id": "def-public.AppDeepLink",
+ "type": "Type",
+ "tags": [],
+ "label": "AppDeepLink",
+ "description": [
+ "\nInput type for registering secondary in-app locations for an application.\n\nDeep links must include at least one of `path` or `deepLinks`. A deep link that does not have a `path`\nrepresents a topological level in the application's hierarchy, but does not have a destination URL that is\nuser-accessible."
+ ],
+ "signature": [
+ "({ id: string; title: string; keywords?: string[] | undefined; navLinkStatus?: ",
+ {
+ "pluginId": "core",
+ "scope": "public",
+ "docId": "kibCoreApplicationPluginApi",
+ "section": "def-public.AppNavLinkStatus",
+ "text": "AppNavLinkStatus"
+ },
+ " | undefined; } & { path: string; deepLinks?: ",
+ {
+ "pluginId": "core",
+ "scope": "public",
+ "docId": "kibCoreApplicationPluginApi",
+ "section": "def-public.AppDeepLink",
+ "text": "AppDeepLink"
+ },
+ "[] | undefined; }) | ({ id: string; title: string; keywords?: string[] | undefined; navLinkStatus?: ",
+ {
+ "pluginId": "core",
+ "scope": "public",
+ "docId": "kibCoreApplicationPluginApi",
+ "section": "def-public.AppNavLinkStatus",
+ "text": "AppNavLinkStatus"
+ },
+ " | undefined; } & { path?: string | undefined; deepLinks: ",
+ {
+ "pluginId": "core",
+ "scope": "public",
+ "docId": "kibCoreApplicationPluginApi",
+ "section": "def-public.AppDeepLink",
+ "text": "AppDeepLink"
+ },
+ "[]; })"
+ ],
+ "source": {
+ "path": "src/core/public/application/types.ts",
+ "lineNumber": 279
+ },
+ "deprecated": false,
+ "initialIsOpen": false
+ },
{
"parentPluginId": "core",
"id": "def-public.AppLeaveAction",
@@ -2113,7 +2121,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 579
+ "lineNumber": 566
},
"deprecated": false,
"initialIsOpen": false
@@ -2143,7 +2151,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 530
+ "lineNumber": 517
},
"deprecated": true,
"references": [
@@ -2251,42 +2259,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 338
- },
- "deprecated": false,
- "initialIsOpen": false
- },
- {
- "parentPluginId": "core",
- "id": "def-public.AppSearchDeepLink",
- "type": "Type",
- "tags": [],
- "label": "AppSearchDeepLink",
- "description": [
- "\nInput type for registering secondary in-app locations for an application.\n\nDeep links must include at least one of `path` or `searchDeepLinks`. A deep link that does not have a `path`\nrepresents a topological level in the application's hierarchy, but does not have a destination URL that is\nuser-accessible."
- ],
- "signature": [
- "({ id: string; title: string; } & { path: string; searchDeepLinks?: ",
- {
- "pluginId": "core",
- "scope": "public",
- "docId": "kibCoreApplicationPluginApi",
- "section": "def-public.AppSearchDeepLink",
- "text": "AppSearchDeepLink"
- },
- "[] | undefined; keywords?: string[] | undefined; }) | ({ id: string; title: string; } & { path?: string | undefined; searchDeepLinks: ",
- {
- "pluginId": "core",
- "scope": "public",
- "docId": "kibCoreApplicationPluginApi",
- "section": "def-public.AppSearchDeepLink",
- "text": "AppSearchDeepLink"
- },
- "[]; keywords?: string[] | undefined; })"
- ],
- "source": {
- "path": "src/core/public/application/types.ts",
- "lineNumber": 293
+ "lineNumber": 325
},
"deprecated": false,
"initialIsOpen": false
@@ -2305,7 +2278,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 346
+ "lineNumber": 333
},
"deprecated": false,
"initialIsOpen": false
@@ -2328,15 +2301,15 @@
"section": "def-public.AppStatus",
"text": "AppStatus"
},
- " | undefined; meta?: ",
+ " | undefined; deepLinks?: ",
{
"pluginId": "core",
"scope": "public",
"docId": "kibCoreApplicationPluginApi",
- "section": "def-public.AppMeta",
- "text": "AppMeta"
+ "section": "def-public.AppDeepLink",
+ "text": "AppDeepLink"
},
- " | undefined; navLinkStatus?: ",
+ "[] | undefined; navLinkStatus?: ",
{
"pluginId": "core",
"scope": "public",
@@ -2379,7 +2352,7 @@
"section": "def-public.App",
"text": "App"
},
- ", \"status\" | \"meta\" | \"navLinkStatus\" | \"defaultPath\" | \"tooltip\">> | undefined"
+ ", \"status\" | \"deepLinks\" | \"navLinkStatus\" | \"defaultPath\" | \"tooltip\">> | undefined"
],
"source": {
"path": "src/core/public/application/types.ts",
@@ -2390,12 +2363,12 @@
},
{
"parentPluginId": "core",
- "id": "def-public.PublicAppInfo",
+ "id": "def-public.PublicAppDeepLinkInfo",
"type": "Type",
"tags": [],
- "label": "PublicAppInfo",
+ "label": "PublicAppDeepLinkInfo",
"description": [
- "\nPublic information about a registered {@link App | application}\n"
+ "\nPublic information about a registered app's {@link AppDeepLink | deepLinks}\n"
],
"signature": [
"Pick<",
@@ -2403,18 +2376,18 @@
"pluginId": "core",
"scope": "public",
"docId": "kibCoreApplicationPluginApi",
- "section": "def-public.App",
- "text": "App"
+ "section": "def-public.AppDeepLink",
+ "text": "AppDeepLink"
},
- ", \"status\" | \"title\" | \"id\" | \"order\" | \"category\" | \"navLinkStatus\" | \"defaultPath\" | \"tooltip\" | \"euiIconType\" | \"icon\" | \"capabilities\" | \"chromeless\" | \"appRoute\" | \"exactRoute\"> & { status: ",
+ ", \"title\" | \"id\" | \"path\"> & { deepLinks: ",
{
"pluginId": "core",
"scope": "public",
"docId": "kibCoreApplicationPluginApi",
- "section": "def-public.AppStatus",
- "text": "AppStatus"
+ "section": "def-public.PublicAppDeepLinkInfo",
+ "text": "PublicAppDeepLinkInfo"
},
- "; navLinkStatus: ",
+ "[]; keywords: string[]; navLinkStatus: ",
{
"pluginId": "core",
"scope": "public",
@@ -2422,31 +2395,23 @@
"section": "def-public.AppNavLinkStatus",
"text": "AppNavLinkStatus"
},
- "; appRoute: string; meta: ",
- {
- "pluginId": "core",
- "scope": "public",
- "docId": "kibCoreApplicationPluginApi",
- "section": "def-public.PublicAppMetaInfo",
- "text": "PublicAppMetaInfo"
- },
"; }"
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 322
+ "lineNumber": 262
},
"deprecated": false,
"initialIsOpen": false
},
{
"parentPluginId": "core",
- "id": "def-public.PublicAppMetaInfo",
+ "id": "def-public.PublicAppInfo",
"type": "Type",
"tags": [],
- "label": "PublicAppMetaInfo",
+ "label": "PublicAppInfo",
"description": [
- "\nPublic information about a registered app's {@link AppMeta | keywords }\n"
+ "\nPublic information about a registered {@link App | application}\n"
],
"signature": [
"Pick<",
@@ -2454,57 +2419,38 @@
"pluginId": "core",
"scope": "public",
"docId": "kibCoreApplicationPluginApi",
- "section": "def-public.AppMeta",
- "text": "AppMeta"
+ "section": "def-public.App",
+ "text": "App"
},
- ", never> & { keywords: string[]; searchDeepLinks: ",
+ ", \"status\" | \"title\" | \"id\" | \"order\" | \"category\" | \"navLinkStatus\" | \"defaultPath\" | \"tooltip\" | \"euiIconType\" | \"icon\" | \"capabilities\" | \"chromeless\" | \"appRoute\" | \"exactRoute\"> & { status: ",
{
"pluginId": "core",
"scope": "public",
"docId": "kibCoreApplicationPluginApi",
- "section": "def-public.PublicAppSearchDeepLinkInfo",
- "text": "PublicAppSearchDeepLinkInfo"
+ "section": "def-public.AppStatus",
+ "text": "AppStatus"
},
- "[]; }"
- ],
- "source": {
- "path": "src/core/public/application/types.ts",
- "lineNumber": 267
- },
- "deprecated": false,
- "initialIsOpen": false
- },
- {
- "parentPluginId": "core",
- "id": "def-public.PublicAppSearchDeepLinkInfo",
- "type": "Type",
- "tags": [],
- "label": "PublicAppSearchDeepLinkInfo",
- "description": [
- "\nPublic information about a registered app's {@link AppSearchDeepLink | searchDeepLinks}\n"
- ],
- "signature": [
- "Pick<",
+ "; navLinkStatus: ",
{
"pluginId": "core",
"scope": "public",
"docId": "kibCoreApplicationPluginApi",
- "section": "def-public.AppSearchDeepLink",
- "text": "AppSearchDeepLink"
+ "section": "def-public.AppNavLinkStatus",
+ "text": "AppNavLinkStatus"
},
- ", \"title\" | \"id\" | \"path\"> & { searchDeepLinks: ",
+ "; appRoute: string; keywords: string[]; deepLinks: ",
{
"pluginId": "core",
"scope": "public",
"docId": "kibCoreApplicationPluginApi",
- "section": "def-public.PublicAppSearchDeepLinkInfo",
- "text": "PublicAppSearchDeepLinkInfo"
+ "section": "def-public.PublicAppDeepLinkInfo",
+ "text": "PublicAppDeepLinkInfo"
},
- "[]; keywords: string[]; }"
+ "[]; }"
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 277
+ "lineNumber": 308
},
"deprecated": false,
"initialIsOpen": false
diff --git a/api_docs/core_chrome.json b/api_docs/core_chrome.json
index d6ec4b0d3f640..fae65ff62c971 100644
--- a/api_docs/core_chrome.json
+++ b/api_docs/core_chrome.json
@@ -890,7 +890,7 @@
"description": [],
"source": {
"path": "src/core/public/chrome/nav_links/nav_link.ts",
- "lineNumber": 15
+ "lineNumber": 14
},
"deprecated": false,
"children": [
@@ -905,7 +905,7 @@
],
"source": {
"path": "src/core/public/chrome/nav_links/nav_link.ts",
- "lineNumber": 19
+ "lineNumber": 18
},
"deprecated": false
},
@@ -920,7 +920,7 @@
],
"source": {
"path": "src/core/public/chrome/nav_links/nav_link.ts",
- "lineNumber": 24
+ "lineNumber": 23
},
"deprecated": false
},
@@ -939,7 +939,7 @@
],
"source": {
"path": "src/core/public/chrome/nav_links/nav_link.ts",
- "lineNumber": 29
+ "lineNumber": 28
},
"deprecated": false
},
@@ -954,7 +954,7 @@
],
"source": {
"path": "src/core/public/chrome/nav_links/nav_link.ts",
- "lineNumber": 34
+ "lineNumber": 33
},
"deprecated": false
},
@@ -972,7 +972,7 @@
],
"source": {
"path": "src/core/public/chrome/nav_links/nav_link.ts",
- "lineNumber": 40
+ "lineNumber": 39
},
"deprecated": false
},
@@ -990,7 +990,7 @@
],
"source": {
"path": "src/core/public/chrome/nav_links/nav_link.ts",
- "lineNumber": 45
+ "lineNumber": 44
},
"deprecated": false
},
@@ -1008,7 +1008,7 @@
],
"source": {
"path": "src/core/public/chrome/nav_links/nav_link.ts",
- "lineNumber": 50
+ "lineNumber": 49
},
"deprecated": false
},
@@ -1026,7 +1026,7 @@
],
"source": {
"path": "src/core/public/chrome/nav_links/nav_link.ts",
- "lineNumber": 56
+ "lineNumber": 55
},
"deprecated": false
},
@@ -1044,7 +1044,7 @@
],
"source": {
"path": "src/core/public/chrome/nav_links/nav_link.ts",
- "lineNumber": 62
+ "lineNumber": 61
},
"deprecated": false
},
@@ -1059,7 +1059,7 @@
],
"source": {
"path": "src/core/public/chrome/nav_links/nav_link.ts",
- "lineNumber": 67
+ "lineNumber": 66
},
"deprecated": false
},
@@ -1077,7 +1077,7 @@
],
"source": {
"path": "src/core/public/chrome/nav_links/nav_link.ts",
- "lineNumber": 76
+ "lineNumber": 75
},
"deprecated": false
},
@@ -1095,7 +1095,7 @@
],
"source": {
"path": "src/core/public/chrome/nav_links/nav_link.ts",
- "lineNumber": 81
+ "lineNumber": 80
},
"deprecated": false
}
@@ -1297,103 +1297,6 @@
],
"returnComment": []
},
- {
- "parentPluginId": "core",
- "id": "def-public.ChromeNavLinks.update",
- "type": "Function",
- "tags": [
- "deprecated"
- ],
- "label": "update",
- "description": [
- "\nUpdate the navlink for the given id with the updated attributes.\nReturns the updated navlink or `undefined` if it does not exist.\n"
- ],
- "signature": [
- "(id: string, values: Partial>) => ",
- {
- "pluginId": "core",
- "scope": "public",
- "docId": "kibCoreChromePluginApi",
- "section": "def-public.ChromeNavLink",
- "text": "ChromeNavLink"
- },
- " | undefined"
- ],
- "source": {
- "path": "src/core/public/chrome/nav_links/nav_links_service.ts",
- "lineNumber": 71
- },
- "deprecated": true,
- "references": [
- {
- "plugin": "apm",
- "link": {
- "path": "x-pack/plugins/apm/public/toggleAppLinkInNav.ts",
- "lineNumber": 13
- }
- },
- {
- "plugin": "graph",
- "link": {
- "path": "x-pack/plugins/graph/public/services/toggle_nav_link.ts",
- "lineNumber": 26
- }
- }
- ],
- "children": [
- {
- "parentPluginId": "core",
- "id": "def-public.ChromeNavLinks.update.$1",
- "type": "string",
- "tags": [],
- "label": "id",
- "description": [],
- "signature": [
- "string"
- ],
- "source": {
- "path": "src/core/public/chrome/nav_links/nav_links_service.ts",
- "lineNumber": 71
- },
- "deprecated": false,
- "isRequired": true
- },
- {
- "parentPluginId": "core",
- "id": "def-public.ChromeNavLinks.update.$2",
- "type": "Object",
- "tags": [],
- "label": "values",
- "description": [],
- "signature": [
- "Partial>"
- ],
- "source": {
- "path": "src/core/public/chrome/nav_links/nav_links_service.ts",
- "lineNumber": 71
- },
- "deprecated": false,
- "isRequired": true
- }
- ],
- "returnComment": []
- },
{
"parentPluginId": "core",
"id": "def-public.ChromeNavLinks.enableForcedAppSwitcherNavigation",
@@ -1408,7 +1311,7 @@
],
"source": {
"path": "src/core/public/chrome/nav_links/nav_links_service.ts",
- "lineNumber": 85
+ "lineNumber": 73
},
"deprecated": false,
"children": [],
@@ -1430,7 +1333,7 @@
],
"source": {
"path": "src/core/public/chrome/nav_links/nav_links_service.ts",
- "lineNumber": 90
+ "lineNumber": 78
},
"deprecated": false,
"children": [],
@@ -2678,23 +2581,6 @@
"deprecated": false,
"initialIsOpen": false
},
- {
- "parentPluginId": "core",
- "id": "def-public.ChromeNavLinkUpdateableFields",
- "type": "Type",
- "tags": [],
- "label": "ChromeNavLinkUpdateableFields",
- "description": [],
- "signature": [
- "{ readonly hidden?: boolean | undefined; readonly url?: string | undefined; readonly disabled?: boolean | undefined; readonly href?: string | undefined; }"
- ],
- "source": {
- "path": "src/core/public/chrome/nav_links/nav_link.ts",
- "lineNumber": 85
- },
- "deprecated": false,
- "initialIsOpen": false
- },
{
"parentPluginId": "core",
"id": "def-public.NavType",
diff --git a/api_docs/data.json b/api_docs/data.json
index 77d26811db5bf..ab5196934d855 100644
--- a/api_docs/data.json
+++ b/api_docs/data.json
@@ -11486,111 +11486,6 @@
"lineNumber": 58
}
},
- {
- "plugin": "fleet",
- "link": {
- "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
- "lineNumber": 10
- }
- },
- {
- "plugin": "fleet",
- "link": {
- "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
- "lineNumber": 33
- }
- },
- {
- "plugin": "fleet",
- "link": {
- "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
- "lineNumber": 51
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
- "lineNumber": 10
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
- "lineNumber": 42
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
- "lineNumber": 9
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
- "lineNumber": 43
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.ts",
- "lineNumber": 10
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.ts",
- "lineNumber": 12
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts",
- "lineNumber": 9
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts",
- "lineNumber": 11
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx",
- "lineNumber": 11
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx",
- "lineNumber": 23
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx",
- "lineNumber": 45
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx",
- "lineNumber": 148
- }
- },
{
"plugin": "maps",
"link": {
@@ -11955,6 +11850,90 @@
"lineNumber": 66
}
},
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
+ "lineNumber": 10
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
+ "lineNumber": 42
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
+ "lineNumber": 9
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
+ "lineNumber": 43
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.ts",
+ "lineNumber": 10
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.ts",
+ "lineNumber": 12
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts",
+ "lineNumber": 9
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts",
+ "lineNumber": 11
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx",
+ "lineNumber": 11
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx",
+ "lineNumber": 23
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx",
+ "lineNumber": 45
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx",
+ "lineNumber": 148
+ }
+ },
{
"plugin": "ml",
"link": {
@@ -12207,6 +12186,27 @@
"lineNumber": 21
}
},
+ {
+ "plugin": "fleet",
+ "link": {
+ "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
+ "lineNumber": 10
+ }
+ },
+ {
+ "plugin": "fleet",
+ "link": {
+ "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
+ "lineNumber": 33
+ }
+ },
+ {
+ "plugin": "fleet",
+ "link": {
+ "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
+ "lineNumber": 51
+ }
+ },
{
"plugin": "fleet",
"link": {
@@ -12747,409 +12747,346 @@
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
- "lineNumber": 19
+ "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
+ "lineNumber": 10
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
- "lineNumber": 30
+ "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
+ "lineNumber": 16
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
- "lineNumber": 54
+ "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
+ "lineNumber": 29
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
- "lineNumber": 84
+ "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx",
+ "lineNumber": 12
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
- "lineNumber": 150
+ "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx",
+ "lineNumber": 16
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 11
+ "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
+ "lineNumber": 18
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 26
+ "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
+ "lineNumber": 30
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 28
+ "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
+ "lineNumber": 33
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 57
+ "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
+ "lineNumber": 35
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 95
+ "path": "x-pack/plugins/lens/public/indexpattern_datasource/types.ts",
+ "lineNumber": 8
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 96
+ "path": "x-pack/plugins/lens/public/indexpattern_datasource/types.ts",
+ "lineNumber": 57
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 101
+ "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
+ "lineNumber": 11
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 114
+ "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
+ "lineNumber": 139
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 121
+ "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
+ "lineNumber": 248
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 125
+ "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
+ "lineNumber": 287
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 125
+ "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
+ "lineNumber": 329
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 130
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
+ "lineNumber": 19
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 131
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
+ "lineNumber": 30
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 133
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
+ "lineNumber": 54
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 134
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
+ "lineNumber": 84
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.tsx",
- "lineNumber": 11
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
+ "lineNumber": 150
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.tsx",
- "lineNumber": 27
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 11
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 13
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 26
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 16
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 28
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 32
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 57
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
- "lineNumber": 19
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 95
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
- "lineNumber": 36
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 96
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
- "lineNumber": 13
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 101
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
- "lineNumber": 23
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 114
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx",
- "lineNumber": 13
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 121
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx",
- "lineNumber": 29
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 125
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
- "lineNumber": 31
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 125
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
- "lineNumber": 91
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 130
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 19
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 131
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 333
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 133
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 339
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 134
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 347
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.tsx",
+ "lineNumber": 11
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 355
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.tsx",
+ "lineNumber": 27
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 363
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 13
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 371
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 16
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 380
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 32
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 62
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
+ "lineNumber": 19
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 166
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
+ "lineNumber": 36
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 167
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
+ "lineNumber": 13
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 629
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
+ "lineNumber": 23
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 666
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx",
+ "lineNumber": 14
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 691
- }
- },
- {
- "plugin": "lens",
- "link": {
- "path": "x-pack/plugins/lens/public/indexpattern_datasource/types.ts",
- "lineNumber": 8
- }
- },
- {
- "plugin": "lens",
- "link": {
- "path": "x-pack/plugins/lens/public/indexpattern_datasource/types.ts",
- "lineNumber": 57
- }
- },
- {
- "plugin": "maps",
- "link": {
- "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
- "lineNumber": 10
- }
- },
- {
- "plugin": "maps",
- "link": {
- "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
- "lineNumber": 16
- }
- },
- {
- "plugin": "maps",
- "link": {
- "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx",
"lineNumber": 29
}
},
{
- "plugin": "maps",
- "link": {
- "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx",
- "lineNumber": 12
- }
- },
- {
- "plugin": "maps",
- "link": {
- "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx",
- "lineNumber": 16
- }
- },
- {
- "plugin": "maps",
- "link": {
- "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
- "lineNumber": 18
- }
- },
- {
- "plugin": "maps",
- "link": {
- "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
- "lineNumber": 30
- }
- },
- {
- "plugin": "maps",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
- "lineNumber": 33
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
+ "lineNumber": 31
}
},
{
- "plugin": "maps",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
- "lineNumber": 35
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
+ "lineNumber": 91
}
},
{
@@ -13391,192 +13328,213 @@
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_lists.tsx",
- "lineNumber": 12
+ "path": "x-pack/plugins/lens/target/types/public/indexpattern_datasource/types.d.ts",
+ "lineNumber": 1
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_lists.tsx",
- "lineNumber": 20
- }
+ "path": "x-pack/plugins/lens/target/types/public/indexpattern_datasource/types.d.ts",
+ "lineNumber": 22
+ }
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx",
- "lineNumber": 13
+ "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
+ "lineNumber": 3
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx",
- "lineNumber": 22
+ "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
+ "lineNumber": 7
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
- "lineNumber": 11
+ "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
+ "lineNumber": 8
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
+ "lineNumber": 9
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
+ "lineNumber": 19
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 333
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 339
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 347
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 355
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 363
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 371
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 380
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/operator.tsx",
- "lineNumber": 11
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 62
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/operator.tsx",
- "lineNumber": 17
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 166
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx",
- "lineNumber": 43
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 167
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx",
- "lineNumber": 104
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 629
}
},
{
- "plugin": "lens",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
- "lineNumber": 11
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 666
}
},
{
- "plugin": "lens",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
- "lineNumber": 139
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 691
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
- "lineNumber": 248
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 11
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
- "lineNumber": 287
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 333
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
- "lineNumber": 329
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 339
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/public/indexpattern_datasource/types.d.ts",
- "lineNumber": 1
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 347
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/public/indexpattern_datasource/types.d.ts",
- "lineNumber": 22
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 355
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
- "lineNumber": 3
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 363
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
- "lineNumber": 7
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 371
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
- "lineNumber": 8
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 380
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
- "lineNumber": 9
+ "path": "x-pack/plugins/security_solution/target/types/public/common/components/exceptions/helpers.test.d.ts",
+ "lineNumber": 1
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/target/types/public/common/components/exceptions/helpers.test.d.ts",
+ "lineNumber": 2
}
},
{
@@ -14103,48 +14061,6 @@
},
"deprecated": true,
"references": [
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx",
- "lineNumber": 34
- }
- },
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx",
- "lineNumber": 78
- }
- },
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx",
- "lineNumber": 86
- }
- },
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx",
- "lineNumber": 88
- }
- },
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts",
- "lineNumber": 8
- }
- },
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts",
- "lineNumber": 86
- }
- },
{
"plugin": "savedObjects",
"link": {
@@ -14237,206 +14153,178 @@
}
},
{
- "plugin": "savedObjectsManagement",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx",
- "lineNumber": 37
+ "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
+ "lineNumber": 10
}
},
{
- "plugin": "savedObjectsManagement",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx",
- "lineNumber": 89
+ "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
+ "lineNumber": 29
}
},
{
- "plugin": "infra",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/infra/public/containers/with_kuery_autocompletion.tsx",
- "lineNumber": 9
+ "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
+ "lineNumber": 29
}
},
{
- "plugin": "infra",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/infra/public/containers/with_kuery_autocompletion.tsx",
- "lineNumber": 24
+ "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
+ "lineNumber": 42
}
},
{
- "plugin": "infra",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/kuery_bar.tsx",
- "lineNumber": 15
+ "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
+ "lineNumber": 46
}
},
{
- "plugin": "infra",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/kuery_bar.tsx",
- "lineNumber": 28
+ "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
+ "lineNumber": 9
}
},
{
- "plugin": "lens",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx",
- "lineNumber": 14
+ "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
+ "lineNumber": 32
}
},
{
- "plugin": "lens",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx",
- "lineNumber": 85
+ "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
+ "lineNumber": 32
}
},
{
- "plugin": "lens",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx",
- "lineNumber": 47
+ "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
+ "lineNumber": 43
}
},
{
- "plugin": "lens",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx",
- "lineNumber": 172
+ "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
+ "lineNumber": 50
}
},
{
- "plugin": "lens",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx",
- "lineNumber": 42
- }
- },
- {
- "plugin": "lens",
- "link": {
- "path": "x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx",
- "lineNumber": 96
- }
- },
- {
- "plugin": "lens",
- "link": {
- "path": "x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx",
- "lineNumber": 166
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
- "lineNumber": 10
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
- "lineNumber": 29
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx",
+ "lineNumber": 22
}
},
{
"plugin": "indexPatternManagement",
"link": {
- "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
- "lineNumber": 29
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx",
+ "lineNumber": 171
}
},
{
"plugin": "indexPatternManagement",
"link": {
- "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
- "lineNumber": 42
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/components/table/table.tsx",
+ "lineNumber": 15
}
},
{
"plugin": "indexPatternManagement",
"link": {
- "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
- "lineNumber": 46
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/components/table/table.tsx",
+ "lineNumber": 18
}
},
{
"plugin": "indexPatternManagement",
"link": {
- "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
- "lineNumber": 9
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/index_header/index_header.tsx",
+ "lineNumber": 12
}
},
{
"plugin": "indexPatternManagement",
"link": {
- "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
- "lineNumber": 32
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/index_header/index_header.tsx",
+ "lineNumber": 15
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "savedObjectsManagement",
"link": {
- "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
- "lineNumber": 32
+ "path": "src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx",
+ "lineNumber": 37
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "savedObjectsManagement",
"link": {
- "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
- "lineNumber": 43
+ "path": "src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx",
+ "lineNumber": 89
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "lens",
"link": {
- "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
- "lineNumber": 50
+ "path": "x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx",
+ "lineNumber": 14
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "lens",
"link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx",
- "lineNumber": 22
+ "path": "x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx",
+ "lineNumber": 85
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "lens",
"link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx",
- "lineNumber": 171
+ "path": "x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx",
+ "lineNumber": 47
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "lens",
"link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/components/table/table.tsx",
- "lineNumber": 15
+ "path": "x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx",
+ "lineNumber": 172
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "lens",
"link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/components/table/table.tsx",
- "lineNumber": 18
+ "path": "x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx",
+ "lineNumber": 42
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "lens",
"link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/index_header/index_header.tsx",
- "lineNumber": 12
+ "path": "x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx",
+ "lineNumber": 96
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "lens",
"link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/index_header/index_header.tsx",
- "lineNumber": 15
+ "path": "x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx",
+ "lineNumber": 166
}
},
{
@@ -14509,6 +14397,48 @@
"lineNumber": 30
}
},
+ {
+ "plugin": "apm",
+ "link": {
+ "path": "x-pack/plugins/apm/public/components/shared/KueryBar/index.tsx",
+ "lineNumber": 14
+ }
+ },
+ {
+ "plugin": "apm",
+ "link": {
+ "path": "x-pack/plugins/apm/public/components/shared/KueryBar/index.tsx",
+ "lineNumber": 31
+ }
+ },
+ {
+ "plugin": "infra",
+ "link": {
+ "path": "x-pack/plugins/infra/public/containers/with_kuery_autocompletion.tsx",
+ "lineNumber": 9
+ }
+ },
+ {
+ "plugin": "infra",
+ "link": {
+ "path": "x-pack/plugins/infra/public/containers/with_kuery_autocompletion.tsx",
+ "lineNumber": 24
+ }
+ },
+ {
+ "plugin": "infra",
+ "link": {
+ "path": "x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/kuery_bar.tsx",
+ "lineNumber": 15
+ }
+ },
+ {
+ "plugin": "infra",
+ "link": {
+ "path": "x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/kuery_bar.tsx",
+ "lineNumber": 28
+ }
+ },
{
"plugin": "infra",
"link": {
@@ -14649,32 +14579,74 @@
"lineNumber": 23
}
},
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx",
+ "lineNumber": 34
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx",
+ "lineNumber": 78
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx",
+ "lineNumber": 86
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx",
+ "lineNumber": 88
+ }
+ },
{
"plugin": "securitySolution",
"link": {
"path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts",
- "lineNumber": 20
+ "lineNumber": 21
}
},
{
"plugin": "securitySolution",
"link": {
"path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts",
- "lineNumber": 64
+ "lineNumber": 66
}
},
{
"plugin": "securitySolution",
"link": {
"path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts",
- "lineNumber": 17
+ "lineNumber": 19
}
},
{
"plugin": "securitySolution",
"link": {
"path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts",
- "lineNumber": 98
+ "lineNumber": 100
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts",
+ "lineNumber": 8
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts",
+ "lineNumber": 86
}
},
{
@@ -14912,21 +14884,21 @@
"plugin": "securitySolution",
"link": {
"path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts",
- "lineNumber": 32
+ "lineNumber": 40
}
},
{
"plugin": "securitySolution",
"link": {
"path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts",
- "lineNumber": 38
+ "lineNumber": 55
}
},
{
"plugin": "securitySolution",
"link": {
"path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts",
- "lineNumber": 43
+ "lineNumber": 60
}
},
{
@@ -15013,34 +14985,6 @@
"lineNumber": 33
}
},
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/public/common/containers/kuery_autocompletion/index.tsx",
- "lineNumber": 9
- }
- },
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/public/common/containers/kuery_autocompletion/index.tsx",
- "lineNumber": 21
- }
- },
- {
- "plugin": "apm",
- "link": {
- "path": "x-pack/plugins/apm/public/components/shared/KueryBar/index.tsx",
- "lineNumber": 14
- }
- },
- {
- "plugin": "apm",
- "link": {
- "path": "x-pack/plugins/apm/public/components/shared/KueryBar/index.tsx",
- "lineNumber": 31
- }
- },
{
"plugin": "uptime",
"link": {
@@ -15083,6 +15027,20 @@
"lineNumber": 36
}
},
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/target/types/common/search_strategy/index_fields/index.d.ts",
+ "lineNumber": 1
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/target/types/common/search_strategy/index_fields/index.d.ts",
+ "lineNumber": 66
+ }
+ },
{
"plugin": "infra",
"link": {
@@ -15126,486 +15084,444 @@
}
},
{
- "plugin": "infra",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/alerting/metric_threshold/components/expression_chart.d.ts",
- "lineNumber": 2
+ "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts",
+ "lineNumber": 1
}
},
{
- "plugin": "infra",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/alerting/metric_threshold/components/expression_chart.d.ts",
- "lineNumber": 7
+ "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts",
+ "lineNumber": 10
}
},
{
- "plugin": "infra",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/alerting/metric_threshold/hooks/use_metrics_explorer_chart_data.d.ts",
- "lineNumber": 1
- }
- },
- {
- "plugin": "infra",
- "link": {
- "path": "x-pack/plugins/infra/target/types/public/alerting/metric_threshold/hooks/use_metrics_explorer_chart_data.d.ts",
- "lineNumber": 4
+ "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts",
+ "lineNumber": 23
}
},
{
"plugin": "infra",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/index.d.ts",
- "lineNumber": 1
+ "path": "x-pack/plugins/infra/target/types/public/alerting/metric_threshold/components/expression_chart.d.ts",
+ "lineNumber": 2
}
},
{
"plugin": "infra",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/index.d.ts",
- "lineNumber": 5
+ "path": "x-pack/plugins/infra/target/types/public/alerting/metric_threshold/components/expression_chart.d.ts",
+ "lineNumber": 7
}
},
{
"plugin": "infra",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/hooks/use_metric_explorer_state.d.ts",
+ "path": "x-pack/plugins/infra/target/types/public/alerting/metric_threshold/hooks/use_metrics_explorer_chart_data.d.ts",
"lineNumber": 1
}
},
{
"plugin": "infra",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/hooks/use_metric_explorer_state.d.ts",
- "lineNumber": 11
+ "path": "x-pack/plugins/infra/target/types/public/alerting/metric_threshold/hooks/use_metrics_explorer_chart_data.d.ts",
+ "lineNumber": 4
}
},
{
"plugin": "infra",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.d.ts",
+ "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/index.d.ts",
"lineNumber": 1
}
},
{
"plugin": "infra",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.d.ts",
- "lineNumber": 4
+ "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/index.d.ts",
+ "lineNumber": 5
}
},
{
- "plugin": "ml",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/ml/target/types/public/application/jobs/new_job/common/index_pattern_context.d.ts",
- "lineNumber": 2
+ "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts",
+ "lineNumber": 3
}
},
{
- "plugin": "ml",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/ml/target/types/public/application/jobs/new_job/common/index_pattern_context.d.ts",
- "lineNumber": 3
+ "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts",
+ "lineNumber": 25
}
},
{
- "plugin": "ml",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/ml/target/types/public/application/jobs/new_job/common/index_pattern_context.d.ts",
- "lineNumber": 4
+ "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts",
+ "lineNumber": 55
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 11
+ "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts",
+ "lineNumber": 1
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 21
+ "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts",
+ "lineNumber": 20
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 100
+ "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts",
+ "lineNumber": 21
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 121
+ "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts",
+ "lineNumber": 3
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 13
+ "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts",
+ "lineNumber": 9
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 17
+ "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts",
+ "lineNumber": 2
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 29
+ "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts",
+ "lineNumber": 40
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
- "lineNumber": 19
+ "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts",
+ "lineNumber": 2
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
- "lineNumber": 38
+ "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts",
+ "lineNumber": 10
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
- "lineNumber": 13
+ "path": "x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts",
+ "lineNumber": 1
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
+ "path": "x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts",
"lineNumber": 25
}
},
{
- "plugin": "lists",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
- "lineNumber": 31
+ "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/hooks/use_metric_explorer_state.d.ts",
+ "lineNumber": 1
}
},
{
- "plugin": "lists",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
- "lineNumber": 53
+ "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/hooks/use_metric_explorer_state.d.ts",
+ "lineNumber": 11
}
},
{
- "plugin": "lists",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
- "lineNumber": 58
+ "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.d.ts",
+ "lineNumber": 1
}
},
{
- "plugin": "lists",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
- "lineNumber": 61
+ "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.d.ts",
+ "lineNumber": 4
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx",
- "lineNumber": 22
+ "path": "x-pack/plugins/ml/target/types/public/application/jobs/new_job/common/index_pattern_context.d.ts",
+ "lineNumber": 2
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx",
- "lineNumber": 50
+ "path": "x-pack/plugins/ml/target/types/public/application/jobs/new_job/common/index_pattern_context.d.ts",
+ "lineNumber": 3
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx",
- "lineNumber": 55
+ "path": "x-pack/plugins/ml/target/types/public/application/jobs/new_job/common/index_pattern_context.d.ts",
+ "lineNumber": 4
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx",
- "lineNumber": 58
+ "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_clone/clone_action_name.tsx",
+ "lineNumber": 12
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 62
+ "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_clone/clone_action_name.tsx",
+ "lineNumber": 412
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 96
+ "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_delete/use_delete_action.tsx",
+ "lineNumber": 12
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 169
+ "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_delete/use_delete_action.tsx",
+ "lineNumber": 60
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 169
+ "path": "x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/utils.d.ts",
+ "lineNumber": 8
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 184
+ "path": "x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/utils.d.ts",
+ "lineNumber": 37
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 187
+ "path": "x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_utils.d.ts",
+ "lineNumber": 8
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 196
+ "path": "x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_utils.d.ts",
+ "lineNumber": 11
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 199
+ "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/actions_panel/actions_panel.tsx",
+ "lineNumber": 25
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 208
+ "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/actions_panel/actions_panel.tsx",
+ "lineNumber": 28
}
},
{
- "plugin": "lists",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 214
+ "path": "x-pack/plugins/infra/public/pages/metrics/index.tsx",
+ "lineNumber": 14
}
},
{
- "plugin": "lists",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 226
+ "path": "x-pack/plugins/infra/public/pages/metrics/index.tsx",
+ "lineNumber": 193
}
},
{
- "plugin": "lists",
+ "plugin": "visTypeTimeseries",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 229
+ "path": "src/plugins/vis_type_timeseries/common/index_patterns_utils.ts",
+ "lineNumber": 11
}
},
{
- "plugin": "lists",
+ "plugin": "visTypeTimeseries",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 239
+ "path": "src/plugins/vis_type_timeseries/common/index_patterns_utils.ts",
+ "lineNumber": 20
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 267
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 11
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 285
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 21
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 320
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 100
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 336
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 121
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 1026
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 13
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 1045
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 17
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 1095
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 29
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 1251
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
+ "lineNumber": 19
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 1302
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
+ "lineNumber": 38
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 1352
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
+ "lineNumber": 13
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts",
- "lineNumber": 15
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
+ "lineNumber": 25
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
"lineNumber": 31
}
},
{
- "plugin": "ml",
- "link": {
- "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_clone/clone_action_name.tsx",
- "lineNumber": 12
- }
- },
- {
- "plugin": "ml",
- "link": {
- "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_clone/clone_action_name.tsx",
- "lineNumber": 412
- }
- },
- {
- "plugin": "ml",
- "link": {
- "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_delete/use_delete_action.tsx",
- "lineNumber": 12
- }
- },
- {
- "plugin": "ml",
- "link": {
- "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_delete/use_delete_action.tsx",
- "lineNumber": 60
- }
- },
- {
- "plugin": "ml",
- "link": {
- "path": "x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/utils.d.ts",
- "lineNumber": 8
- }
- },
- {
- "plugin": "ml",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/utils.d.ts",
- "lineNumber": 37
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
+ "lineNumber": 53
}
},
{
- "plugin": "ml",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_utils.d.ts",
- "lineNumber": 8
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
+ "lineNumber": 58
}
},
{
- "plugin": "ml",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_utils.d.ts",
- "lineNumber": 11
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
+ "lineNumber": 61
}
},
{
- "plugin": "ml",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/actions_panel/actions_panel.tsx",
- "lineNumber": 25
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx",
+ "lineNumber": 22
}
},
{
- "plugin": "ml",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/actions_panel/actions_panel.tsx",
- "lineNumber": 28
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx",
+ "lineNumber": 50
}
},
{
- "plugin": "infra",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/infra/public/pages/metrics/index.tsx",
- "lineNumber": 14
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx",
+ "lineNumber": 55
}
},
{
- "plugin": "infra",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/infra/public/pages/metrics/index.tsx",
- "lineNumber": 193
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx",
+ "lineNumber": 58
}
},
{
@@ -15629,6 +15545,20 @@
"lineNumber": 53
}
},
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts",
+ "lineNumber": 16
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts",
+ "lineNumber": 31
+ }
+ },
{
"plugin": "securitySolution",
"link": {
@@ -15756,164 +15686,220 @@
}
},
{
- "plugin": "securitySolution",
+ "plugin": "stackAlerts",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx",
+ "path": "x-pack/plugins/stack_alerts/server/alert_types/geo_containment/es_query_builder.ts",
"lineNumber": 13
}
},
{
- "plugin": "securitySolution",
+ "plugin": "stackAlerts",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx",
- "lineNumber": 24
+ "path": "x-pack/plugins/stack_alerts/server/alert_types/geo_containment/es_query_builder.ts",
+ "lineNumber": 25
}
},
{
- "plugin": "securitySolution",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx",
- "lineNumber": 43
+ "path": "x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts",
+ "lineNumber": 13
}
},
{
- "plugin": "securitySolution",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx",
- "lineNumber": 49
+ "path": "x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts",
+ "lineNumber": 30
}
},
{
- "plugin": "securitySolution",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx",
- "lineNumber": 368
+ "path": "x-pack/plugins/infra/target/types/common/dependency_mocks/index_patterns.d.ts",
+ "lineNumber": 1
}
},
{
- "plugin": "visTypeTimeseries",
+ "plugin": "infra",
"link": {
- "path": "src/plugins/vis_type_timeseries/common/index_patterns_utils.ts",
- "lineNumber": 11
+ "path": "x-pack/plugins/infra/target/types/common/dependency_mocks/index_patterns.d.ts",
+ "lineNumber": 3
}
},
{
- "plugin": "visTypeTimeseries",
+ "plugin": "lists",
"link": {
- "path": "src/plugins/vis_type_timeseries/common/index_patterns_utils.ts",
- "lineNumber": 20
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 62
}
},
{
- "plugin": "stackAlerts",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/stack_alerts/server/alert_types/geo_containment/es_query_builder.ts",
- "lineNumber": 13
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 96
}
},
{
- "plugin": "stackAlerts",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/stack_alerts/server/alert_types/geo_containment/es_query_builder.ts",
- "lineNumber": 25
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 169
}
},
{
- "plugin": "infra",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts",
- "lineNumber": 13
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 169
}
},
{
- "plugin": "infra",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts",
- "lineNumber": 30
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 184
}
},
{
- "plugin": "infra",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/infra/target/types/common/dependency_mocks/index_patterns.d.ts",
- "lineNumber": 1
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 187
}
},
{
- "plugin": "infra",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/infra/target/types/common/dependency_mocks/index_patterns.d.ts",
- "lineNumber": 3
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 196
}
},
{
- "plugin": "discover",
+ "plugin": "lists",
"link": {
- "path": "src/plugins/discover/public/application/components/context_app/context_app_legacy.tsx",
- "lineNumber": 17
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 199
}
},
{
- "plugin": "discover",
+ "plugin": "lists",
"link": {
- "path": "src/plugins/discover/public/application/components/context_app/context_app_legacy.tsx",
- "lineNumber": 26
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 208
}
},
{
- "plugin": "observability",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/types.ts",
- "lineNumber": 18
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 214
}
},
{
- "plugin": "observability",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/types.ts",
- "lineNumber": 95
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 226
}
},
{
- "plugin": "observability",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts",
- "lineNumber": 10
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 229
}
},
{
- "plugin": "observability",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts",
- "lineNumber": 53
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 239
}
},
{
- "plugin": "observability",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts",
- "lineNumber": 61
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 267
}
},
{
- "plugin": "observability",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts",
- "lineNumber": 69
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 285
}
},
{
- "plugin": "observability",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts",
- "lineNumber": 19
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 320
}
},
{
- "plugin": "observability",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts",
- "lineNumber": 24
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 336
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 1026
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 1045
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 1095
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 1251
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 1302
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 1352
+ }
+ },
+ {
+ "plugin": "discover",
+ "link": {
+ "path": "src/plugins/discover/public/application/components/context_app/context_app_legacy.tsx",
+ "lineNumber": 17
+ }
+ },
+ {
+ "plugin": "discover",
+ "link": {
+ "path": "src/plugins/discover/public/application/components/context_app/context_app_legacy.tsx",
+ "lineNumber": 26
}
},
{
@@ -15980,52 +15966,108 @@
}
},
{
- "plugin": "ml",
+ "plugin": "ml",
+ "link": {
+ "path": "x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/tabs/custom_urls.tsx",
+ "lineNumber": 57
+ }
+ },
+ {
+ "plugin": "ml",
+ "link": {
+ "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/field_data_row/action_menu/lens_utils.ts",
+ "lineNumber": 14
+ }
+ },
+ {
+ "plugin": "ml",
+ "link": {
+ "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/field_data_row/action_menu/lens_utils.ts",
+ "lineNumber": 27
+ }
+ },
+ {
+ "plugin": "ml",
+ "link": {
+ "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/field_data_row/action_menu/lens_utils.ts",
+ "lineNumber": 213
+ }
+ },
+ {
+ "plugin": "ml",
+ "link": {
+ "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/field_data_row/action_menu/lens_utils.ts",
+ "lineNumber": 234
+ }
+ },
+ {
+ "plugin": "ml",
+ "link": {
+ "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/field_data_row/action_menu/actions.ts",
+ "lineNumber": 12
+ }
+ },
+ {
+ "plugin": "ml",
+ "link": {
+ "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/field_data_row/action_menu/actions.ts",
+ "lineNumber": 17
+ }
+ },
+ {
+ "plugin": "observability",
+ "link": {
+ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/types.ts",
+ "lineNumber": 18
+ }
+ },
+ {
+ "plugin": "observability",
"link": {
- "path": "x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/tabs/custom_urls.tsx",
- "lineNumber": 57
+ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/types.ts",
+ "lineNumber": 95
}
},
{
- "plugin": "ml",
+ "plugin": "observability",
"link": {
- "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/field_data_row/action_menu/lens_utils.ts",
- "lineNumber": 14
+ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts",
+ "lineNumber": 10
}
},
{
- "plugin": "ml",
+ "plugin": "observability",
"link": {
- "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/field_data_row/action_menu/lens_utils.ts",
- "lineNumber": 27
+ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts",
+ "lineNumber": 53
}
},
{
- "plugin": "ml",
+ "plugin": "observability",
"link": {
- "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/field_data_row/action_menu/lens_utils.ts",
- "lineNumber": 213
+ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts",
+ "lineNumber": 61
}
},
{
- "plugin": "ml",
+ "plugin": "observability",
"link": {
- "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/field_data_row/action_menu/lens_utils.ts",
- "lineNumber": 234
+ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts",
+ "lineNumber": 69
}
},
{
- "plugin": "ml",
+ "plugin": "observability",
"link": {
- "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/field_data_row/action_menu/actions.ts",
- "lineNumber": 12
+ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts",
+ "lineNumber": 19
}
},
{
- "plugin": "ml",
+ "plugin": "observability",
"link": {
- "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/field_data_row/action_menu/actions.ts",
- "lineNumber": 17
+ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts",
+ "lineNumber": 24
}
},
{
@@ -16098,20 +16140,6 @@
"lineNumber": 19
}
},
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts",
- "lineNumber": 8
- }
- },
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts",
- "lineNumber": 10
- }
- },
{
"plugin": "stackAlerts",
"link": {
@@ -16231,6 +16259,20 @@
"lineNumber": 13
}
},
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts",
+ "lineNumber": 8
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts",
+ "lineNumber": 10
+ }
+ },
{
"plugin": "ml",
"link": {
@@ -33252,111 +33294,6 @@
"lineNumber": 58
}
},
- {
- "plugin": "fleet",
- "link": {
- "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
- "lineNumber": 10
- }
- },
- {
- "plugin": "fleet",
- "link": {
- "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
- "lineNumber": 33
- }
- },
- {
- "plugin": "fleet",
- "link": {
- "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
- "lineNumber": 51
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
- "lineNumber": 10
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
- "lineNumber": 42
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
- "lineNumber": 9
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
- "lineNumber": 43
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.ts",
- "lineNumber": 10
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.ts",
- "lineNumber": 12
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts",
- "lineNumber": 9
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts",
- "lineNumber": 11
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx",
- "lineNumber": 11
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx",
- "lineNumber": 23
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx",
- "lineNumber": 45
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx",
- "lineNumber": 148
- }
- },
{
"plugin": "maps",
"link": {
@@ -33701,24 +33638,108 @@
}
},
{
- "plugin": "maps",
+ "plugin": "maps",
+ "link": {
+ "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx",
+ "lineNumber": 59
+ }
+ },
+ {
+ "plugin": "maps",
+ "link": {
+ "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx",
+ "lineNumber": 60
+ }
+ },
+ {
+ "plugin": "maps",
+ "link": {
+ "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx",
+ "lineNumber": 66
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
+ "lineNumber": 10
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
+ "lineNumber": 42
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
+ "lineNumber": 9
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
+ "lineNumber": 43
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.ts",
+ "lineNumber": 10
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.ts",
+ "lineNumber": 12
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts",
+ "lineNumber": 9
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts",
+ "lineNumber": 11
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx",
+ "lineNumber": 11
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx",
- "lineNumber": 59
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx",
+ "lineNumber": 23
}
},
{
- "plugin": "maps",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx",
- "lineNumber": 60
+ "path": "src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx",
+ "lineNumber": 45
}
},
{
- "plugin": "maps",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx",
- "lineNumber": 66
+ "path": "src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx",
+ "lineNumber": 148
}
},
{
@@ -33973,6 +33994,27 @@
"lineNumber": 21
}
},
+ {
+ "plugin": "fleet",
+ "link": {
+ "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
+ "lineNumber": 10
+ }
+ },
+ {
+ "plugin": "fleet",
+ "link": {
+ "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
+ "lineNumber": 33
+ }
+ },
+ {
+ "plugin": "fleet",
+ "link": {
+ "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
+ "lineNumber": 51
+ }
+ },
{
"plugin": "fleet",
"link": {
@@ -34513,409 +34555,346 @@
}
},
{
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
- "lineNumber": 19
- }
- },
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
- "lineNumber": 30
- }
- },
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
- "lineNumber": 54
- }
- },
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
- "lineNumber": 84
- }
- },
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
- "lineNumber": 150
- }
- },
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 11
- }
- },
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 26
- }
- },
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 28
- }
- },
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 57
- }
- },
- {
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 95
+ "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
+ "lineNumber": 10
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 96
+ "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
+ "lineNumber": 16
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 101
+ "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
+ "lineNumber": 29
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 114
+ "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx",
+ "lineNumber": 12
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 121
+ "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx",
+ "lineNumber": 16
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 125
+ "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
+ "lineNumber": 18
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 125
+ "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
+ "lineNumber": 30
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 130
+ "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
+ "lineNumber": 33
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 131
+ "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
+ "lineNumber": 35
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 133
+ "path": "x-pack/plugins/lens/public/indexpattern_datasource/types.ts",
+ "lineNumber": 8
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 134
+ "path": "x-pack/plugins/lens/public/indexpattern_datasource/types.ts",
+ "lineNumber": 57
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.tsx",
+ "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
"lineNumber": 11
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.tsx",
- "lineNumber": 27
+ "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
+ "lineNumber": 139
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 13
+ "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
+ "lineNumber": 248
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 16
+ "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
+ "lineNumber": 287
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 32
+ "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
+ "lineNumber": 329
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
"lineNumber": 19
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
- "lineNumber": 36
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
+ "lineNumber": 30
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
- "lineNumber": 13
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
+ "lineNumber": 54
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
- "lineNumber": 23
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
+ "lineNumber": 84
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx",
- "lineNumber": 13
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
+ "lineNumber": 150
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx",
- "lineNumber": 29
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 11
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
- "lineNumber": 31
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 26
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
- "lineNumber": 91
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 28
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 19
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 57
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 333
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 95
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 339
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 96
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 347
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 101
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 355
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 114
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 363
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 121
}
},
{
"plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 371
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 125
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 380
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 125
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 62
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 130
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 166
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 131
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 167
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 133
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 629
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 134
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 666
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.tsx",
+ "lineNumber": 11
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 691
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.tsx",
+ "lineNumber": 27
}
},
{
- "plugin": "lens",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/lens/public/indexpattern_datasource/types.ts",
- "lineNumber": 8
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 13
}
},
{
- "plugin": "lens",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/lens/public/indexpattern_datasource/types.ts",
- "lineNumber": 57
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 16
}
},
{
- "plugin": "maps",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
- "lineNumber": 10
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 32
}
},
{
- "plugin": "maps",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
- "lineNumber": 16
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
+ "lineNumber": 19
}
},
{
- "plugin": "maps",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
- "lineNumber": 29
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
+ "lineNumber": 36
}
},
{
- "plugin": "maps",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx",
- "lineNumber": 12
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
+ "lineNumber": 13
}
},
{
- "plugin": "maps",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx",
- "lineNumber": 16
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
+ "lineNumber": 23
}
},
{
- "plugin": "maps",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
- "lineNumber": 18
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx",
+ "lineNumber": 14
}
},
{
- "plugin": "maps",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
- "lineNumber": 30
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx",
+ "lineNumber": 29
}
},
{
- "plugin": "maps",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
- "lineNumber": 33
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
+ "lineNumber": 31
}
},
{
- "plugin": "maps",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
- "lineNumber": 35
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
+ "lineNumber": 91
}
},
{
@@ -35157,192 +35136,213 @@
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_lists.tsx",
- "lineNumber": 12
+ "path": "x-pack/plugins/lens/target/types/public/indexpattern_datasource/types.d.ts",
+ "lineNumber": 1
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_lists.tsx",
- "lineNumber": 20
+ "path": "x-pack/plugins/lens/target/types/public/indexpattern_datasource/types.d.ts",
+ "lineNumber": 22
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx",
- "lineNumber": 13
+ "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
+ "lineNumber": 3
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx",
- "lineNumber": 22
+ "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
+ "lineNumber": 7
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
- "lineNumber": 11
+ "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
+ "lineNumber": 8
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
+ "lineNumber": 9
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
+ "lineNumber": 19
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 333
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 339
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 347
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 355
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 363
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 371
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 380
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/operator.tsx",
- "lineNumber": 11
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 62
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/operator.tsx",
- "lineNumber": 17
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 166
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx",
- "lineNumber": 43
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 167
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx",
- "lineNumber": 104
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 629
}
},
{
- "plugin": "lens",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
- "lineNumber": 11
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 666
}
},
{
- "plugin": "lens",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
- "lineNumber": 139
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 691
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
- "lineNumber": 248
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 11
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
- "lineNumber": 287
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 333
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
- "lineNumber": 329
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 339
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/public/indexpattern_datasource/types.d.ts",
- "lineNumber": 1
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 347
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/public/indexpattern_datasource/types.d.ts",
- "lineNumber": 22
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 355
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
- "lineNumber": 3
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 363
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
- "lineNumber": 7
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 371
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
- "lineNumber": 8
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 380
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
- "lineNumber": 9
+ "path": "x-pack/plugins/security_solution/target/types/public/common/components/exceptions/helpers.test.d.ts",
+ "lineNumber": 1
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/target/types/public/common/components/exceptions/helpers.test.d.ts",
+ "lineNumber": 2
}
},
{
diff --git a/api_docs/data_index_patterns.json b/api_docs/data_index_patterns.json
index 08c47437faa56..6d9230cfb6a87 100644
--- a/api_docs/data_index_patterns.json
+++ b/api_docs/data_index_patterns.json
@@ -5513,111 +5513,6 @@
"lineNumber": 58
}
},
- {
- "plugin": "fleet",
- "link": {
- "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
- "lineNumber": 10
- }
- },
- {
- "plugin": "fleet",
- "link": {
- "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
- "lineNumber": 33
- }
- },
- {
- "plugin": "fleet",
- "link": {
- "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
- "lineNumber": 51
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
- "lineNumber": 10
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
- "lineNumber": 42
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
- "lineNumber": 9
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
- "lineNumber": 43
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.ts",
- "lineNumber": 10
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.ts",
- "lineNumber": 12
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts",
- "lineNumber": 9
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts",
- "lineNumber": 11
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx",
- "lineNumber": 11
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx",
- "lineNumber": 23
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx",
- "lineNumber": 45
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx",
- "lineNumber": 148
- }
- },
{
"plugin": "maps",
"link": {
@@ -5982,6 +5877,90 @@
"lineNumber": 66
}
},
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
+ "lineNumber": 10
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
+ "lineNumber": 42
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
+ "lineNumber": 9
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
+ "lineNumber": 43
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.ts",
+ "lineNumber": 10
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/extract_time_fields.ts",
+ "lineNumber": 12
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts",
+ "lineNumber": 9
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts",
+ "lineNumber": 11
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx",
+ "lineNumber": 11
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx",
+ "lineNumber": 23
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx",
+ "lineNumber": 45
+ }
+ },
+ {
+ "plugin": "indexPatternManagement",
+ "link": {
+ "path": "src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx",
+ "lineNumber": 148
+ }
+ },
{
"plugin": "ml",
"link": {
@@ -6234,6 +6213,27 @@
"lineNumber": 21
}
},
+ {
+ "plugin": "fleet",
+ "link": {
+ "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
+ "lineNumber": 10
+ }
+ },
+ {
+ "plugin": "fleet",
+ "link": {
+ "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
+ "lineNumber": 33
+ }
+ },
+ {
+ "plugin": "fleet",
+ "link": {
+ "path": "x-pack/plugins/fleet/public/applications/fleet/components/search_bar.tsx",
+ "lineNumber": 51
+ }
+ },
{
"plugin": "fleet",
"link": {
@@ -6774,409 +6774,346 @@
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
- "lineNumber": 19
+ "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
+ "lineNumber": 10
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
- "lineNumber": 30
+ "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
+ "lineNumber": 16
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
- "lineNumber": 54
+ "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
+ "lineNumber": 29
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
- "lineNumber": 84
+ "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx",
+ "lineNumber": 12
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
- "lineNumber": 150
+ "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx",
+ "lineNumber": 16
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 11
+ "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
+ "lineNumber": 18
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 26
+ "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
+ "lineNumber": 30
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 28
+ "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
+ "lineNumber": 33
}
},
{
- "plugin": "lists",
+ "plugin": "maps",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 57
+ "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
+ "lineNumber": 35
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 95
+ "path": "x-pack/plugins/lens/public/indexpattern_datasource/types.ts",
+ "lineNumber": 8
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 96
+ "path": "x-pack/plugins/lens/public/indexpattern_datasource/types.ts",
+ "lineNumber": 57
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 101
+ "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
+ "lineNumber": 11
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 114
+ "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
+ "lineNumber": 139
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 121
+ "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
+ "lineNumber": 248
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 125
+ "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
+ "lineNumber": 287
}
},
{
- "plugin": "lists",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 125
+ "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
+ "lineNumber": 329
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 130
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
+ "lineNumber": 19
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 131
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
+ "lineNumber": 30
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 133
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
+ "lineNumber": 54
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 134
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
+ "lineNumber": 84
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.tsx",
- "lineNumber": 11
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.ts",
+ "lineNumber": 150
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.tsx",
- "lineNumber": 27
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 11
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 13
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 26
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 16
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 28
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 32
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 57
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
- "lineNumber": 19
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 95
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
- "lineNumber": 36
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 96
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
- "lineNumber": 13
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 101
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
- "lineNumber": 23
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 114
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx",
- "lineNumber": 13
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 121
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx",
- "lineNumber": 29
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 125
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
- "lineNumber": 31
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 125
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
- "lineNumber": 91
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 130
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 19
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 131
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 333
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 133
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 339
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 134
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 347
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.tsx",
+ "lineNumber": 11
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 355
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/operator.tsx",
+ "lineNumber": 27
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 363
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 13
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 371
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 16
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
- "lineNumber": 380
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 32
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 62
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
+ "lineNumber": 19
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 166
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
+ "lineNumber": 36
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 167
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
+ "lineNumber": 13
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 629
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
+ "lineNumber": 23
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 666
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx",
+ "lineNumber": 14
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 691
- }
- },
- {
- "plugin": "lens",
- "link": {
- "path": "x-pack/plugins/lens/public/indexpattern_datasource/types.ts",
- "lineNumber": 8
- }
- },
- {
- "plugin": "lens",
- "link": {
- "path": "x-pack/plugins/lens/public/indexpattern_datasource/types.ts",
- "lineNumber": 57
- }
- },
- {
- "plugin": "maps",
- "link": {
- "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
- "lineNumber": 10
- }
- },
- {
- "plugin": "maps",
- "link": {
- "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
- "lineNumber": 16
- }
- },
- {
- "plugin": "maps",
- "link": {
- "path": "x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx",
"lineNumber": 29
}
},
{
- "plugin": "maps",
- "link": {
- "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx",
- "lineNumber": 12
- }
- },
- {
- "plugin": "maps",
- "link": {
- "path": "x-pack/plugins/maps/public/components/geo_field_select.tsx",
- "lineNumber": 16
- }
- },
- {
- "plugin": "maps",
- "link": {
- "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
- "lineNumber": 18
- }
- },
- {
- "plugin": "maps",
- "link": {
- "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
- "lineNumber": 30
- }
- },
- {
- "plugin": "maps",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
- "lineNumber": 33
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
+ "lineNumber": 31
}
},
{
- "plugin": "maps",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx",
- "lineNumber": 35
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
+ "lineNumber": 91
}
},
{
@@ -7418,192 +7355,213 @@
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_lists.tsx",
- "lineNumber": 12
+ "path": "x-pack/plugins/lens/target/types/public/indexpattern_datasource/types.d.ts",
+ "lineNumber": 1
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_lists.tsx",
- "lineNumber": 20
- }
+ "path": "x-pack/plugins/lens/target/types/public/indexpattern_datasource/types.d.ts",
+ "lineNumber": 22
+ }
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx",
- "lineNumber": 13
+ "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
+ "lineNumber": 3
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx",
- "lineNumber": 22
+ "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
+ "lineNumber": 7
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
- "lineNumber": 11
+ "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
+ "lineNumber": 8
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lens",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
+ "lineNumber": 9
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
+ "lineNumber": 19
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 333
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 339
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 347
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 355
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 363
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 371
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/helpers.test.ts",
"lineNumber": 380
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/operator.tsx",
- "lineNumber": 11
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 62
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/operator.tsx",
- "lineNumber": 17
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 166
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx",
- "lineNumber": 43
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 167
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx",
- "lineNumber": 104
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 629
}
},
{
- "plugin": "lens",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
- "lineNumber": 11
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 666
}
},
{
- "plugin": "lens",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
- "lineNumber": 139
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 691
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
- "lineNumber": 248
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 11
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
- "lineNumber": 287
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 333
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/server/routes/field_stats.ts",
- "lineNumber": 329
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 339
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/public/indexpattern_datasource/types.d.ts",
- "lineNumber": 1
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 347
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/public/indexpattern_datasource/types.d.ts",
- "lineNumber": 22
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 355
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
- "lineNumber": 3
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 363
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
- "lineNumber": 7
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 371
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
- "lineNumber": 8
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts",
+ "lineNumber": 380
}
},
{
- "plugin": "lens",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts",
- "lineNumber": 9
+ "path": "x-pack/plugins/security_solution/target/types/public/common/components/exceptions/helpers.test.d.ts",
+ "lineNumber": 1
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/target/types/public/common/components/exceptions/helpers.test.d.ts",
+ "lineNumber": 2
}
},
{
@@ -8130,48 +8088,6 @@
},
"deprecated": true,
"references": [
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx",
- "lineNumber": 34
- }
- },
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx",
- "lineNumber": 78
- }
- },
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx",
- "lineNumber": 86
- }
- },
- {
- "plugin": "lists",
- "link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx",
- "lineNumber": 88
- }
- },
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts",
- "lineNumber": 8
- }
- },
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts",
- "lineNumber": 86
- }
- },
{
"plugin": "savedObjects",
"link": {
@@ -8264,206 +8180,178 @@
}
},
{
- "plugin": "savedObjectsManagement",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx",
- "lineNumber": 37
+ "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
+ "lineNumber": 10
}
},
{
- "plugin": "savedObjectsManagement",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx",
- "lineNumber": 89
+ "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
+ "lineNumber": 29
}
},
{
- "plugin": "infra",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/infra/public/containers/with_kuery_autocompletion.tsx",
- "lineNumber": 9
+ "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
+ "lineNumber": 29
}
},
{
- "plugin": "infra",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/infra/public/containers/with_kuery_autocompletion.tsx",
- "lineNumber": 24
+ "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
+ "lineNumber": 42
}
},
{
- "plugin": "infra",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/kuery_bar.tsx",
- "lineNumber": 15
+ "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
+ "lineNumber": 46
}
},
{
- "plugin": "infra",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/kuery_bar.tsx",
- "lineNumber": 28
+ "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
+ "lineNumber": 9
}
},
{
- "plugin": "lens",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx",
- "lineNumber": 14
+ "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
+ "lineNumber": 32
}
},
{
- "plugin": "lens",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx",
- "lineNumber": 85
+ "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
+ "lineNumber": 32
}
},
{
- "plugin": "lens",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx",
- "lineNumber": 47
+ "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
+ "lineNumber": 43
}
},
{
- "plugin": "lens",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx",
- "lineNumber": 172
+ "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
+ "lineNumber": 50
}
},
{
- "plugin": "lens",
+ "plugin": "indexPatternManagement",
"link": {
- "path": "x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx",
- "lineNumber": 42
- }
- },
- {
- "plugin": "lens",
- "link": {
- "path": "x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx",
- "lineNumber": 96
- }
- },
- {
- "plugin": "lens",
- "link": {
- "path": "x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx",
- "lineNumber": 166
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
- "lineNumber": 10
- }
- },
- {
- "plugin": "indexPatternManagement",
- "link": {
- "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
- "lineNumber": 29
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx",
+ "lineNumber": 22
}
},
{
"plugin": "indexPatternManagement",
"link": {
- "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
- "lineNumber": 29
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx",
+ "lineNumber": 171
}
},
{
"plugin": "indexPatternManagement",
"link": {
- "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
- "lineNumber": 42
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/components/table/table.tsx",
+ "lineNumber": 15
}
},
{
"plugin": "indexPatternManagement",
"link": {
- "path": "src/plugins/index_pattern_management/public/service/list/config.ts",
- "lineNumber": 46
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/components/table/table.tsx",
+ "lineNumber": 18
}
},
{
"plugin": "indexPatternManagement",
"link": {
- "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
- "lineNumber": 9
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/index_header/index_header.tsx",
+ "lineNumber": 12
}
},
{
"plugin": "indexPatternManagement",
"link": {
- "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
- "lineNumber": 32
+ "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/index_header/index_header.tsx",
+ "lineNumber": 15
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "savedObjectsManagement",
"link": {
- "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
- "lineNumber": 32
+ "path": "src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx",
+ "lineNumber": 37
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "savedObjectsManagement",
"link": {
- "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
- "lineNumber": 43
+ "path": "src/plugins/saved_objects_management/public/management_section/objects_table/components/flyout.tsx",
+ "lineNumber": 89
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "lens",
"link": {
- "path": "src/plugins/index_pattern_management/public/service/list/manager.ts",
- "lineNumber": 50
+ "path": "x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx",
+ "lineNumber": 14
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "lens",
"link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx",
- "lineNumber": 22
+ "path": "x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx",
+ "lineNumber": 85
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "lens",
"link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx",
- "lineNumber": 171
+ "path": "x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx",
+ "lineNumber": 47
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "lens",
"link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/components/table/table.tsx",
- "lineNumber": 15
+ "path": "x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx",
+ "lineNumber": 172
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "lens",
"link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/components/table/table.tsx",
- "lineNumber": 18
+ "path": "x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx",
+ "lineNumber": 42
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "lens",
"link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/index_header/index_header.tsx",
- "lineNumber": 12
+ "path": "x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx",
+ "lineNumber": 96
}
},
{
- "plugin": "indexPatternManagement",
+ "plugin": "lens",
"link": {
- "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/index_header/index_header.tsx",
- "lineNumber": 15
+ "path": "x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx",
+ "lineNumber": 166
}
},
{
@@ -8536,6 +8424,48 @@
"lineNumber": 30
}
},
+ {
+ "plugin": "apm",
+ "link": {
+ "path": "x-pack/plugins/apm/public/components/shared/KueryBar/index.tsx",
+ "lineNumber": 14
+ }
+ },
+ {
+ "plugin": "apm",
+ "link": {
+ "path": "x-pack/plugins/apm/public/components/shared/KueryBar/index.tsx",
+ "lineNumber": 31
+ }
+ },
+ {
+ "plugin": "infra",
+ "link": {
+ "path": "x-pack/plugins/infra/public/containers/with_kuery_autocompletion.tsx",
+ "lineNumber": 9
+ }
+ },
+ {
+ "plugin": "infra",
+ "link": {
+ "path": "x-pack/plugins/infra/public/containers/with_kuery_autocompletion.tsx",
+ "lineNumber": 24
+ }
+ },
+ {
+ "plugin": "infra",
+ "link": {
+ "path": "x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/kuery_bar.tsx",
+ "lineNumber": 15
+ }
+ },
+ {
+ "plugin": "infra",
+ "link": {
+ "path": "x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/kuery_bar.tsx",
+ "lineNumber": 28
+ }
+ },
{
"plugin": "infra",
"link": {
@@ -8676,32 +8606,74 @@
"lineNumber": 23
}
},
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx",
+ "lineNumber": 34
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx",
+ "lineNumber": 78
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx",
+ "lineNumber": 86
+ }
+ },
+ {
+ "plugin": "lists",
+ "link": {
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx",
+ "lineNumber": 88
+ }
+ },
{
"plugin": "securitySolution",
"link": {
"path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts",
- "lineNumber": 20
+ "lineNumber": 21
}
},
{
"plugin": "securitySolution",
"link": {
"path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts",
- "lineNumber": 64
+ "lineNumber": 66
}
},
{
"plugin": "securitySolution",
"link": {
"path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts",
- "lineNumber": 17
+ "lineNumber": 19
}
},
{
"plugin": "securitySolution",
"link": {
"path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts",
- "lineNumber": 98
+ "lineNumber": 100
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts",
+ "lineNumber": 8
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts",
+ "lineNumber": 86
}
},
{
@@ -8939,21 +8911,21 @@
"plugin": "securitySolution",
"link": {
"path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts",
- "lineNumber": 32
+ "lineNumber": 40
}
},
{
"plugin": "securitySolution",
"link": {
"path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts",
- "lineNumber": 38
+ "lineNumber": 55
}
},
{
"plugin": "securitySolution",
"link": {
"path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts",
- "lineNumber": 43
+ "lineNumber": 60
}
},
{
@@ -9040,34 +9012,6 @@
"lineNumber": 33
}
},
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/public/common/containers/kuery_autocompletion/index.tsx",
- "lineNumber": 9
- }
- },
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/public/common/containers/kuery_autocompletion/index.tsx",
- "lineNumber": 21
- }
- },
- {
- "plugin": "apm",
- "link": {
- "path": "x-pack/plugins/apm/public/components/shared/KueryBar/index.tsx",
- "lineNumber": 14
- }
- },
- {
- "plugin": "apm",
- "link": {
- "path": "x-pack/plugins/apm/public/components/shared/KueryBar/index.tsx",
- "lineNumber": 31
- }
- },
{
"plugin": "uptime",
"link": {
@@ -9110,6 +9054,20 @@
"lineNumber": 36
}
},
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/target/types/common/search_strategy/index_fields/index.d.ts",
+ "lineNumber": 1
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/target/types/common/search_strategy/index_fields/index.d.ts",
+ "lineNumber": 66
+ }
+ },
{
"plugin": "infra",
"link": {
@@ -9153,507 +9111,479 @@
}
},
{
- "plugin": "infra",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/alerting/metric_threshold/components/expression_chart.d.ts",
- "lineNumber": 2
+ "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts",
+ "lineNumber": 1
}
},
{
- "plugin": "infra",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/alerting/metric_threshold/components/expression_chart.d.ts",
- "lineNumber": 7
+ "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts",
+ "lineNumber": 10
}
},
{
- "plugin": "infra",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/alerting/metric_threshold/hooks/use_metrics_explorer_chart_data.d.ts",
- "lineNumber": 1
- }
- },
- {
- "plugin": "infra",
- "link": {
- "path": "x-pack/plugins/infra/target/types/public/alerting/metric_threshold/hooks/use_metrics_explorer_chart_data.d.ts",
- "lineNumber": 4
+ "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts",
+ "lineNumber": 23
}
},
{
"plugin": "infra",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/index.d.ts",
- "lineNumber": 1
+ "path": "x-pack/plugins/infra/target/types/public/alerting/metric_threshold/components/expression_chart.d.ts",
+ "lineNumber": 2
}
},
{
"plugin": "infra",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/index.d.ts",
- "lineNumber": 5
+ "path": "x-pack/plugins/infra/target/types/public/alerting/metric_threshold/components/expression_chart.d.ts",
+ "lineNumber": 7
}
},
{
"plugin": "infra",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/hooks/use_metric_explorer_state.d.ts",
+ "path": "x-pack/plugins/infra/target/types/public/alerting/metric_threshold/hooks/use_metrics_explorer_chart_data.d.ts",
"lineNumber": 1
}
},
{
"plugin": "infra",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/hooks/use_metric_explorer_state.d.ts",
- "lineNumber": 11
+ "path": "x-pack/plugins/infra/target/types/public/alerting/metric_threshold/hooks/use_metrics_explorer_chart_data.d.ts",
+ "lineNumber": 4
}
},
{
"plugin": "infra",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.d.ts",
+ "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/index.d.ts",
"lineNumber": 1
}
},
{
"plugin": "infra",
"link": {
- "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.d.ts",
- "lineNumber": 4
+ "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/index.d.ts",
+ "lineNumber": 5
}
},
{
- "plugin": "ml",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/ml/target/types/public/application/jobs/new_job/common/index_pattern_context.d.ts",
- "lineNumber": 2
+ "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts",
+ "lineNumber": 3
}
},
{
- "plugin": "ml",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/ml/target/types/public/application/jobs/new_job/common/index_pattern_context.d.ts",
- "lineNumber": 3
+ "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts",
+ "lineNumber": 25
}
},
{
- "plugin": "ml",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/ml/target/types/public/application/jobs/new_job/common/index_pattern_context.d.ts",
- "lineNumber": 4
+ "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts",
+ "lineNumber": 55
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 11
+ "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts",
+ "lineNumber": 1
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 21
+ "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts",
+ "lineNumber": 20
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 100
+ "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts",
+ "lineNumber": 21
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
- "lineNumber": 121
+ "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts",
+ "lineNumber": 3
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 13
+ "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts",
+ "lineNumber": 9
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 17
+ "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts",
+ "lineNumber": 2
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 29
+ "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts",
+ "lineNumber": 40
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
- "lineNumber": 19
+ "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts",
+ "lineNumber": 2
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
- "lineNumber": 38
+ "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts",
+ "lineNumber": 10
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
- "lineNumber": 13
+ "path": "x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts",
+ "lineNumber": 1
}
},
{
- "plugin": "lists",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
+ "path": "x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts",
"lineNumber": 25
}
},
{
- "plugin": "lists",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
- "lineNumber": 31
+ "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/hooks/use_metric_explorer_state.d.ts",
+ "lineNumber": 1
}
},
{
- "plugin": "lists",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
- "lineNumber": 53
+ "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/hooks/use_metric_explorer_state.d.ts",
+ "lineNumber": 11
}
},
{
- "plugin": "lists",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
- "lineNumber": 58
+ "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.d.ts",
+ "lineNumber": 1
}
},
{
- "plugin": "lists",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
- "lineNumber": 61
+ "path": "x-pack/plugins/infra/target/types/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.d.ts",
+ "lineNumber": 4
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx",
- "lineNumber": 22
+ "path": "x-pack/plugins/ml/target/types/public/application/jobs/new_job/common/index_pattern_context.d.ts",
+ "lineNumber": 2
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx",
- "lineNumber": 50
+ "path": "x-pack/plugins/ml/target/types/public/application/jobs/new_job/common/index_pattern_context.d.ts",
+ "lineNumber": 3
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx",
- "lineNumber": 55
+ "path": "x-pack/plugins/ml/target/types/public/application/jobs/new_job/common/index_pattern_context.d.ts",
+ "lineNumber": 4
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx",
- "lineNumber": 58
+ "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_clone/clone_action_name.tsx",
+ "lineNumber": 12
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 62
+ "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_clone/clone_action_name.tsx",
+ "lineNumber": 412
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 96
+ "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_delete/use_delete_action.tsx",
+ "lineNumber": 12
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 169
+ "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_delete/use_delete_action.tsx",
+ "lineNumber": 60
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 169
+ "path": "x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/utils.d.ts",
+ "lineNumber": 8
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 184
+ "path": "x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/utils.d.ts",
+ "lineNumber": 37
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 187
+ "path": "x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_utils.d.ts",
+ "lineNumber": 8
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 196
+ "path": "x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_utils.d.ts",
+ "lineNumber": 11
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 199
+ "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/actions_panel/actions_panel.tsx",
+ "lineNumber": 25
}
},
{
- "plugin": "lists",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 208
+ "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/actions_panel/actions_panel.tsx",
+ "lineNumber": 28
}
},
{
- "plugin": "lists",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 214
+ "path": "x-pack/plugins/infra/public/pages/metrics/index.tsx",
+ "lineNumber": 14
}
},
{
- "plugin": "lists",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 226
+ "path": "x-pack/plugins/infra/public/pages/metrics/index.tsx",
+ "lineNumber": 193
}
},
{
- "plugin": "lists",
+ "plugin": "visTypeTimeseries",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 229
+ "path": "src/plugins/vis_type_timeseries/common/index_patterns_utils.ts",
+ "lineNumber": 11
}
},
{
- "plugin": "lists",
+ "plugin": "visTypeTimeseries",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 239
+ "path": "src/plugins/vis_type_timeseries/common/index_patterns_utils.ts",
+ "lineNumber": 20
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 267
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 11
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 285
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 21
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 320
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 100
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 336
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field.tsx",
+ "lineNumber": 121
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 1026
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 13
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 1045
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 17
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 1095
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 29
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 1251
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
+ "lineNumber": 19
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 1302
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx",
+ "lineNumber": 38
}
},
{
"plugin": "lists",
"link": {
- "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
- "lineNumber": 1352
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
+ "lineNumber": 13
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts",
- "lineNumber": 15
+ "path": "x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx",
+ "lineNumber": 25
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts",
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
"lineNumber": 31
}
},
{
- "plugin": "ml",
- "link": {
- "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_clone/clone_action_name.tsx",
- "lineNumber": 12
- }
- },
- {
- "plugin": "ml",
- "link": {
- "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_clone/clone_action_name.tsx",
- "lineNumber": 412
- }
- },
- {
- "plugin": "ml",
- "link": {
- "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_delete/use_delete_action.tsx",
- "lineNumber": 12
- }
- },
- {
- "plugin": "ml",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_delete/use_delete_action.tsx",
- "lineNumber": 60
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
+ "lineNumber": 53
}
},
{
- "plugin": "ml",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/utils.d.ts",
- "lineNumber": 8
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
+ "lineNumber": 58
}
},
{
- "plugin": "ml",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/ml/public/application/jobs/components/custom_url_editor/utils.d.ts",
- "lineNumber": 37
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx",
+ "lineNumber": 61
}
},
{
- "plugin": "ml",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_utils.d.ts",
- "lineNumber": 8
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx",
+ "lineNumber": 22
}
},
{
- "plugin": "ml",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/ml/public/application/jobs/jobs_list/components/edit_job_flyout/edit_utils.d.ts",
- "lineNumber": 11
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx",
+ "lineNumber": 50
}
},
{
- "plugin": "ml",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/actions_panel/actions_panel.tsx",
- "lineNumber": 25
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx",
+ "lineNumber": 55
}
},
{
- "plugin": "ml",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/components/actions_panel/actions_panel.tsx",
- "lineNumber": 28
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx",
+ "lineNumber": 58
}
},
{
- "plugin": "infra",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/infra/public/pages/metrics/index.tsx",
- "lineNumber": 14
+ "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts",
+ "lineNumber": 9
}
},
{
- "plugin": "infra",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/infra/public/pages/metrics/index.tsx",
- "lineNumber": 193
+ "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts",
+ "lineNumber": 35
}
},
{
"plugin": "securitySolution",
"link": {
"path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts",
- "lineNumber": 9
+ "lineNumber": 53
}
},
{
"plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts",
- "lineNumber": 35
+ "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts",
+ "lineNumber": 16
}
},
{
"plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts",
- "lineNumber": 53
+ "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts",
+ "lineNumber": 31
}
},
{
@@ -9736,211 +9666,267 @@
{
"plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field.tsx",
- "lineNumber": 93
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field.tsx",
+ "lineNumber": 93
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field.tsx",
+ "lineNumber": 114
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 12
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 19
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/hooks/use_field_value_autocomplete.ts",
+ "lineNumber": 31
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match.tsx",
+ "lineNumber": 19
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match.tsx",
+ "lineNumber": 30
+ }
+ },
+ {
+ "plugin": "stackAlerts",
+ "link": {
+ "path": "x-pack/plugins/stack_alerts/server/alert_types/geo_containment/es_query_builder.ts",
+ "lineNumber": 13
+ }
+ },
+ {
+ "plugin": "stackAlerts",
+ "link": {
+ "path": "x-pack/plugins/stack_alerts/server/alert_types/geo_containment/es_query_builder.ts",
+ "lineNumber": 25
}
},
{
- "plugin": "securitySolution",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field.tsx",
- "lineNumber": 114
+ "path": "x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts",
+ "lineNumber": 13
}
},
{
- "plugin": "securitySolution",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 12
+ "path": "x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts",
+ "lineNumber": 30
}
},
{
- "plugin": "securitySolution",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 19
+ "path": "x-pack/plugins/infra/target/types/common/dependency_mocks/index_patterns.d.ts",
+ "lineNumber": 1
}
},
{
- "plugin": "securitySolution",
+ "plugin": "infra",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/hooks/use_field_value_autocomplete.ts",
- "lineNumber": 31
+ "path": "x-pack/plugins/infra/target/types/common/dependency_mocks/index_patterns.d.ts",
+ "lineNumber": 3
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match.tsx",
- "lineNumber": 19
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 62
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match.tsx",
- "lineNumber": 30
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 96
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx",
- "lineNumber": 13
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 169
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx",
- "lineNumber": 24
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 169
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx",
- "lineNumber": 43
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 184
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx",
- "lineNumber": 49
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 187
}
},
{
- "plugin": "securitySolution",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx",
- "lineNumber": 368
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 196
}
},
{
- "plugin": "visTypeTimeseries",
+ "plugin": "lists",
"link": {
- "path": "src/plugins/vis_type_timeseries/common/index_patterns_utils.ts",
- "lineNumber": 11
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 199
}
},
{
- "plugin": "visTypeTimeseries",
+ "plugin": "lists",
"link": {
- "path": "src/plugins/vis_type_timeseries/common/index_patterns_utils.ts",
- "lineNumber": 20
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 208
}
},
{
- "plugin": "stackAlerts",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/stack_alerts/server/alert_types/geo_containment/es_query_builder.ts",
- "lineNumber": 13
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 214
}
},
{
- "plugin": "stackAlerts",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/stack_alerts/server/alert_types/geo_containment/es_query_builder.ts",
- "lineNumber": 25
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 226
}
},
{
- "plugin": "infra",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts",
- "lineNumber": 13
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 229
}
},
{
- "plugin": "infra",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/infra/common/dependency_mocks/index_patterns.ts",
- "lineNumber": 30
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 239
}
},
{
- "plugin": "infra",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/infra/target/types/common/dependency_mocks/index_patterns.d.ts",
- "lineNumber": 1
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 267
}
},
{
- "plugin": "infra",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/infra/target/types/common/dependency_mocks/index_patterns.d.ts",
- "lineNumber": 3
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 285
}
},
{
- "plugin": "discover",
+ "plugin": "lists",
"link": {
- "path": "src/plugins/discover/public/application/components/context_app/context_app_legacy.tsx",
- "lineNumber": 17
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 320
}
},
{
- "plugin": "discover",
+ "plugin": "lists",
"link": {
- "path": "src/plugins/discover/public/application/components/context_app/context_app_legacy.tsx",
- "lineNumber": 26
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 336
}
},
{
- "plugin": "observability",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/types.ts",
- "lineNumber": 18
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 1026
}
},
{
- "plugin": "observability",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/types.ts",
- "lineNumber": 95
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 1045
}
},
{
- "plugin": "observability",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts",
- "lineNumber": 10
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 1095
}
},
{
- "plugin": "observability",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts",
- "lineNumber": 53
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 1251
}
},
{
- "plugin": "observability",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts",
- "lineNumber": 61
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 1302
}
},
{
- "plugin": "observability",
+ "plugin": "lists",
"link": {
- "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts",
- "lineNumber": 69
+ "path": "x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts",
+ "lineNumber": 1352
}
},
{
- "plugin": "observability",
+ "plugin": "discover",
"link": {
- "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts",
- "lineNumber": 19
+ "path": "src/plugins/discover/public/application/components/context_app/context_app_legacy.tsx",
+ "lineNumber": 17
}
},
{
- "plugin": "observability",
+ "plugin": "discover",
"link": {
- "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts",
- "lineNumber": 24
+ "path": "src/plugins/discover/public/application/components/context_app/context_app_legacy.tsx",
+ "lineNumber": 26
}
},
{
@@ -10055,6 +10041,62 @@
"lineNumber": 17
}
},
+ {
+ "plugin": "observability",
+ "link": {
+ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/types.ts",
+ "lineNumber": 18
+ }
+ },
+ {
+ "plugin": "observability",
+ "link": {
+ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/types.ts",
+ "lineNumber": 95
+ }
+ },
+ {
+ "plugin": "observability",
+ "link": {
+ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts",
+ "lineNumber": 10
+ }
+ },
+ {
+ "plugin": "observability",
+ "link": {
+ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts",
+ "lineNumber": 53
+ }
+ },
+ {
+ "plugin": "observability",
+ "link": {
+ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts",
+ "lineNumber": 61
+ }
+ },
+ {
+ "plugin": "observability",
+ "link": {
+ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts",
+ "lineNumber": 69
+ }
+ },
+ {
+ "plugin": "observability",
+ "link": {
+ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts",
+ "lineNumber": 19
+ }
+ },
+ {
+ "plugin": "observability",
+ "link": {
+ "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts",
+ "lineNumber": 24
+ }
+ },
{
"plugin": "securitySolution",
"link": {
@@ -10125,20 +10167,6 @@
"lineNumber": 19
}
},
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts",
- "lineNumber": 8
- }
- },
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts",
- "lineNumber": 10
- }
- },
{
"plugin": "stackAlerts",
"link": {
@@ -10258,6 +10286,20 @@
"lineNumber": 13
}
},
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts",
+ "lineNumber": 8
+ }
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts",
+ "lineNumber": 10
+ }
+ },
{
"plugin": "ml",
"link": {
diff --git a/api_docs/data_search.json b/api_docs/data_search.json
index a82a2ca24d899..082553e94dcf4 100644
--- a/api_docs/data_search.json
+++ b/api_docs/data_search.json
@@ -2690,7 +2690,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 89
+ "lineNumber": 90
},
"deprecated": false,
"children": [
@@ -2708,7 +2708,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 90
+ "lineNumber": 91
},
"deprecated": false,
"returnComment": [],
@@ -2758,7 +2758,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 91
+ "lineNumber": 92
},
"deprecated": false,
"returnComment": [],
@@ -2806,7 +2806,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 92
+ "lineNumber": 93
},
"deprecated": false,
"returnComment": [],
@@ -2875,7 +2875,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 93
+ "lineNumber": 94
},
"deprecated": false,
"returnComment": [],
@@ -2923,7 +2923,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 94
+ "lineNumber": 95
},
"deprecated": false,
"returnComment": [],
@@ -2955,7 +2955,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 95
+ "lineNumber": 96
},
"deprecated": false,
"returnComment": [],
@@ -2995,7 +2995,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 96
+ "lineNumber": 97
},
"deprecated": false,
"returnComment": [],
@@ -3128,7 +3128,7 @@
"description": [],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 42
+ "lineNumber": 43
},
"deprecated": false,
"children": [
@@ -3144,7 +3144,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 43
+ "lineNumber": 44
},
"deprecated": false
},
@@ -3202,7 +3202,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 48
+ "lineNumber": 49
},
"deprecated": false,
"returnComment": [],
@@ -3216,7 +3216,7 @@
"description": [],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 52
+ "lineNumber": 53
},
"deprecated": false
},
@@ -3239,7 +3239,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 53
+ "lineNumber": 54
},
"deprecated": false
}
@@ -3266,7 +3266,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 59
+ "lineNumber": 60
},
"deprecated": false
}
@@ -3292,7 +3292,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 99
+ "lineNumber": 100
},
"deprecated": false,
"children": [
@@ -3308,7 +3308,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 103
+ "lineNumber": 104
},
"deprecated": false
},
@@ -3334,7 +3334,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 109
+ "lineNumber": 110
},
"deprecated": false,
"returnComment": [],
@@ -3351,7 +3351,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 110
+ "lineNumber": 111
},
"deprecated": false
}
@@ -3384,7 +3384,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 112
+ "lineNumber": 113
},
"deprecated": false,
"returnComment": [],
@@ -3408,7 +3408,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 112
+ "lineNumber": 113
},
"deprecated": false
}
@@ -3442,7 +3442,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 113
+ "lineNumber": 114
},
"deprecated": false
}
@@ -3470,7 +3470,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 71
+ "lineNumber": 72
},
"deprecated": false,
"children": [
@@ -3504,7 +3504,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 75
+ "lineNumber": 76
},
"deprecated": false,
"returnComment": [],
@@ -3521,7 +3521,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 76
+ "lineNumber": 77
},
"deprecated": false
},
@@ -3543,7 +3543,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 77
+ "lineNumber": 78
},
"deprecated": false
},
@@ -3565,7 +3565,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 78
+ "lineNumber": 79
},
"deprecated": false
}
@@ -3599,7 +3599,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 80
+ "lineNumber": 81
},
"deprecated": false
},
@@ -3631,7 +3631,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 81
+ "lineNumber": 82
},
"deprecated": false
}
@@ -4027,6 +4027,29 @@
"lineNumber": 39
},
"deprecated": false
+ },
+ {
+ "parentPluginId": "data",
+ "id": "def-server.SearchStrategyDependencies.request",
+ "type": "Object",
+ "tags": [],
+ "label": "request",
+ "description": [],
+ "signature": [
+ {
+ "pluginId": "core",
+ "scope": "server",
+ "docId": "kibCoreHttpPluginApi",
+ "section": "def-server.KibanaRequest",
+ "text": "KibanaRequest"
+ },
+ ""
+ ],
+ "source": {
+ "path": "src/plugins/data/server/search/types.ts",
+ "lineNumber": 40
+ },
+ "deprecated": false
}
],
"initialIsOpen": false
@@ -4122,7 +4145,7 @@
],
"source": {
"path": "src/plugins/data/server/search/types.ts",
- "lineNumber": 118
+ "lineNumber": 119
},
"deprecated": false,
"initialIsOpen": false
diff --git a/api_docs/deprecations.mdx b/api_docs/deprecations.mdx
index 7d6df4965c712..9eee6d51d84ab 100644
--- a/api_docs/deprecations.mdx
+++ b/api_docs/deprecations.mdx
@@ -42,15 +42,6 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
-## beatsManagement
-
-| Deprecated API | Reference location | Remove By |
-| ---------------|-----------|-----------|
-| | [kibana_database_adapter.ts#L8](https://github.com/elastic/kibana/tree/master/x-pack/plugins/beats_management/server/lib/adapters/database/kibana_database_adapter.ts#L8) | 7.16 |
-| | [kibana_database_adapter.ts#L28](https://github.com/elastic/kibana/tree/master/x-pack/plugins/beats_management/server/lib/adapters/database/kibana_database_adapter.ts#L28) | 7.16 |
-
-
-
## canvas
| Deprecated API | Reference location | Remove By |
@@ -783,7 +774,7 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| | [field_value_match.tsx#L36](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx#L36) | - |
| | [field_value_match_any.tsx#L13](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx#L13) | - |
| | [field_value_match_any.tsx#L23](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx#L23) | - |
-| | [field_value_lists.tsx#L13](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx#L13) | - |
+| | [field_value_lists.tsx#L14](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx#L14) | - |
| | [field_value_lists.tsx#L29](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx#L29) | - |
| | [entry_renderer.tsx#L31](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx#L31) | - |
| | [entry_renderer.tsx#L91](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx#L91) | - |
@@ -830,7 +821,7 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| | [field_value_match.tsx#L36](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx#L36) | - |
| | [field_value_match_any.tsx#L13](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx#L13) | - |
| | [field_value_match_any.tsx#L23](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx#L23) | - |
-| | [field_value_lists.tsx#L13](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx#L13) | - |
+| | [field_value_lists.tsx#L14](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx#L14) | - |
| | [field_value_lists.tsx#L29](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx#L29) | - |
| | [entry_renderer.tsx#L31](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx#L31) | - |
| | [entry_renderer.tsx#L91](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx#L91) | - |
@@ -923,7 +914,7 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| | [field_value_match.tsx#L36](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match.tsx#L36) | - |
| | [field_value_match_any.tsx#L13](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx#L13) | - |
| | [field_value_match_any.tsx#L23](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_match_any.tsx#L23) | - |
-| | [field_value_lists.tsx#L13](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx#L13) | - |
+| | [field_value_lists.tsx#L14](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx#L14) | - |
| | [field_value_lists.tsx#L29](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/autocomplete/field_value_lists.tsx#L29) | - |
| | [entry_renderer.tsx#L31](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx#L31) | - |
| | [entry_renderer.tsx#L91](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx#L91) | - |
@@ -944,6 +935,9 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| | [get_call_cluster.mock.ts#L9](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/server/schemas/common/get_call_cluster.mock.ts#L9) | 7.16 |
| | [get_call_cluster.mock.ts#L27](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/server/schemas/common/get_call_cluster.mock.ts#L27) | 7.16 |
| | [get_call_cluster.mock.ts#L31](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/server/schemas/common/get_call_cluster.mock.ts#L31) | 7.16 |
+| | [get_call_cluster.mock.d.ts#L2](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/target/types/server/schemas/common/get_call_cluster.mock.d.ts#L2) | 7.16 |
+| | [get_call_cluster.mock.d.ts#L4](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/target/types/server/schemas/common/get_call_cluster.mock.d.ts#L4) | 7.16 |
+| | [get_call_cluster.mock.d.ts#L5](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lists/target/types/server/schemas/common/get_call_cluster.mock.d.ts#L5) | 7.16 |
@@ -1579,12 +1573,12 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| Deprecated API | Reference location | Remove By |
| ---------------|-----------|-----------|
+| | [types.ts#L21](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts#L21) | - |
+| | [types.ts#L66](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts#L66) | - |
+| | [action.ts#L19](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts#L19) | - |
+| | [action.ts#L100](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts#L100) | - |
| | [index.ts#L8](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts#L8) | - |
| | [index.ts#L86](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts#L86) | - |
-| | [types.ts#L20](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts#L20) | - |
-| | [types.ts#L64](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts#L64) | - |
-| | [action.ts#L17](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts#L17) | - |
-| | [action.ts#L98](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts#L98) | - |
| | [index.tsx#L12](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#L12) | - |
| | [index.tsx#L48](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#L48) | - |
| | [index.tsx#L122](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#L122) | - |
@@ -1618,9 +1612,9 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| | [types.ts#L41](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/network/pages/details/types.ts#L41) | - |
| | [index.tsx#L12](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx#L12) | - |
| | [index.tsx#L34](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx#L34) | - |
-| | [middleware.ts#L32](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#L32) | - |
-| | [middleware.ts#L38](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#L38) | - |
-| | [middleware.ts#L43](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#L43) | - |
+| | [middleware.ts#L40](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#L40) | - |
+| | [middleware.ts#L55](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#L55) | - |
+| | [middleware.ts#L60](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#L60) | - |
| | [types.ts#L12](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts#L12) | - |
| | [types.ts#L28](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts#L28) | - |
| | [index.tsx#L15](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx#L15) | - |
@@ -1633,13 +1627,30 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| | [index.tsx#L44](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx#L44) | - |
| | [index.tsx#L21](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx#L21) | - |
| | [index.tsx#L33](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx#L33) | - |
-| | [index.tsx#L9](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/kuery_autocompletion/index.tsx#L9) | - |
-| | [index.tsx#L21](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/kuery_autocompletion/index.tsx#L21) | - |
-| | [get_query_filter.ts#L15](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts#L15) | - |
-| | [get_query_filter.ts#L31](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts#L31) | - |
+| | [index.d.ts#L1](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/common/search_strategy/index_fields/index.d.ts#L1) | - |
+| | [index.d.ts#L66](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/common/search_strategy/index_fields/index.d.ts#L66) | - |
+| | [index.d.ts#L1](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts#L1) | - |
+| | [index.d.ts#L10](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts#L10) | - |
+| | [index.d.ts#L23](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts#L23) | - |
+| | [types.d.ts#L3](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts#L3) | - |
+| | [types.d.ts#L25](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts#L25) | - |
+| | [types.d.ts#L55](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts#L55) | - |
+| | [columns.d.ts#L1](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts#L1) | - |
+| | [columns.d.ts#L20](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts#L20) | - |
+| | [columns.d.ts#L21](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts#L21) | - |
+| | [index.d.ts#L3](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts#L3) | - |
+| | [index.d.ts#L9](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts#L9) | - |
+| | [types.d.ts#L2](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts#L2) | - |
+| | [types.d.ts#L40](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts#L40) | - |
+| | [index.d.ts#L2](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts#L2) | - |
+| | [index.d.ts#L10](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts#L10) | - |
+| | [types.d.ts#L1](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts#L1) | - |
+| | [types.d.ts#L25](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts#L25) | - |
| | [types.ts#L9](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/network/pages/navigation/types.ts#L9) | - |
| | [types.ts#L35](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/network/pages/navigation/types.ts#L35) | - |
| | [types.ts#L53](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/network/pages/navigation/types.ts#L53) | - |
+| | [get_query_filter.ts#L16](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts#L16) | - |
+| | [get_query_filter.ts#L31](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts#L31) | - |
| | [helpers.tsx#L39](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.tsx#L39) | - |
| | [helpers.tsx#L49](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.tsx#L49) | - |
| | [helpers.tsx#L52](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.tsx#L52) | - |
@@ -1658,11 +1669,6 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| | [use_field_value_autocomplete.ts#L31](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/hooks/use_field_value_autocomplete.ts#L31) | - |
| | [field_value_match.tsx#L19](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match.tsx#L19) | - |
| | [field_value_match.tsx#L30](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match.tsx#L30) | - |
-| | [field_value_match_any.tsx#L13](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx#L13) | - |
-| | [field_value_match_any.tsx#L24](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx#L24) | - |
-| | [helpers.test.tsx#L43](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx#L43) | - |
-| | [helpers.test.tsx#L49](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx#L49) | - |
-| | [helpers.test.tsx#L368](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx#L368) | - |
| | [model.ts#L8](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/sourcerer/model.ts#L8) | - |
| | [model.ts#L30](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/sourcerer/model.ts#L30) | - |
| | [index.tsx#L33](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx#L33) | - |
@@ -1709,10 +1715,6 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| | [use_field_value_autocomplete.ts#L27](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/hooks/use_field_value_autocomplete.ts#L27) | - |
| | [field_value_match.tsx#L19](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match.tsx#L19) | - |
| | [field_value_match.tsx#L28](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match.tsx#L28) | - |
-| | [field_value_lists.tsx#L12](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_lists.tsx#L12) | - |
-| | [field_value_lists.tsx#L20](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_lists.tsx#L20) | - |
-| | [field_value_match_any.tsx#L13](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx#L13) | - |
-| | [field_value_match_any.tsx#L22](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx#L22) | - |
| | [helpers.test.ts#L11](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L11) | - |
| | [helpers.test.ts#L333](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L333) | - |
| | [helpers.test.ts#L339](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L339) | - |
@@ -1721,10 +1723,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| | [helpers.test.ts#L363](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L363) | - |
| | [helpers.test.ts#L371](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L371) | - |
| | [helpers.test.ts#L380](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L380) | - |
-| | [operator.tsx#L11](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/operator.tsx#L11) | - |
-| | [operator.tsx#L17](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/operator.tsx#L17) | - |
-| | [helpers.test.tsx#L43](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx#L43) | - |
-| | [helpers.test.tsx#L104](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx#L104) | - |
+| | [helpers.test.d.ts#L1](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/components/exceptions/helpers.test.d.ts#L1) | - |
+| | [helpers.test.d.ts#L2](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/components/exceptions/helpers.test.d.ts#L2) | - |
| | [index.tsx#L32](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx#L32) | - |
| | [index.tsx#L86](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx#L86) | - |
| | [index.tsx#L305](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx#L305) | - |
@@ -1767,10 +1767,6 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| | [use_field_value_autocomplete.ts#L27](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/hooks/use_field_value_autocomplete.ts#L27) | - |
| | [field_value_match.tsx#L19](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match.tsx#L19) | - |
| | [field_value_match.tsx#L28](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match.tsx#L28) | - |
-| | [field_value_lists.tsx#L12](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_lists.tsx#L12) | - |
-| | [field_value_lists.tsx#L20](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_lists.tsx#L20) | - |
-| | [field_value_match_any.tsx#L13](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx#L13) | - |
-| | [field_value_match_any.tsx#L22](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx#L22) | - |
| | [helpers.test.ts#L11](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L11) | - |
| | [helpers.test.ts#L333](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L333) | - |
| | [helpers.test.ts#L339](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L339) | - |
@@ -1779,10 +1775,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| | [helpers.test.ts#L363](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L363) | - |
| | [helpers.test.ts#L371](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L371) | - |
| | [helpers.test.ts#L380](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L380) | - |
-| | [operator.tsx#L11](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/operator.tsx#L11) | - |
-| | [operator.tsx#L17](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/operator.tsx#L17) | - |
-| | [helpers.test.tsx#L43](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx#L43) | - |
-| | [helpers.test.tsx#L104](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx#L104) | - |
+| | [helpers.test.d.ts#L1](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/components/exceptions/helpers.test.d.ts#L1) | - |
+| | [helpers.test.d.ts#L2](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/components/exceptions/helpers.test.d.ts#L2) | - |
| | [index.tsx#L32](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx#L32) | - |
| | [index.tsx#L86](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx#L86) | - |
| | [index.tsx#L305](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx#L305) | - |
@@ -1791,12 +1785,12 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| | [index.tsx#L242](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/risk_score_mapping/index.tsx#L242) | - |
| | [index.tsx#L12](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/autocomplete_field/index.tsx#L12) | - |
| | [index.tsx#L35](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/autocomplete_field/index.tsx#L35) | - |
+| | [types.ts#L21](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts#L21) | - |
+| | [types.ts#L66](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts#L66) | - |
+| | [action.ts#L19](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts#L19) | - |
+| | [action.ts#L100](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts#L100) | - |
| | [index.ts#L8](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts#L8) | - |
| | [index.ts#L86](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts#L86) | - |
-| | [types.ts#L20](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts#L20) | - |
-| | [types.ts#L64](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts#L64) | - |
-| | [action.ts#L17](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts#L17) | - |
-| | [action.ts#L98](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts#L98) | - |
| | [index.tsx#L12](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#L12) | - |
| | [index.tsx#L48](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#L48) | - |
| | [index.tsx#L122](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#L122) | - |
@@ -1830,9 +1824,9 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| | [types.ts#L41](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/network/pages/details/types.ts#L41) | - |
| | [index.tsx#L12](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx#L12) | - |
| | [index.tsx#L34](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx#L34) | - |
-| | [middleware.ts#L32](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#L32) | - |
-| | [middleware.ts#L38](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#L38) | - |
-| | [middleware.ts#L43](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#L43) | - |
+| | [middleware.ts#L40](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#L40) | - |
+| | [middleware.ts#L55](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#L55) | - |
+| | [middleware.ts#L60](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#L60) | - |
| | [types.ts#L12](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts#L12) | - |
| | [types.ts#L28](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts#L28) | - |
| | [index.tsx#L15](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx#L15) | - |
@@ -1845,13 +1839,30 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| | [index.tsx#L44](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx#L44) | - |
| | [index.tsx#L21](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx#L21) | - |
| | [index.tsx#L33](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx#L33) | - |
-| | [index.tsx#L9](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/kuery_autocompletion/index.tsx#L9) | - |
-| | [index.tsx#L21](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/kuery_autocompletion/index.tsx#L21) | - |
-| | [get_query_filter.ts#L15](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts#L15) | - |
-| | [get_query_filter.ts#L31](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts#L31) | - |
+| | [index.d.ts#L1](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/common/search_strategy/index_fields/index.d.ts#L1) | - |
+| | [index.d.ts#L66](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/common/search_strategy/index_fields/index.d.ts#L66) | - |
+| | [index.d.ts#L1](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts#L1) | - |
+| | [index.d.ts#L10](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts#L10) | - |
+| | [index.d.ts#L23](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts#L23) | - |
+| | [types.d.ts#L3](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts#L3) | - |
+| | [types.d.ts#L25](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts#L25) | - |
+| | [types.d.ts#L55](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts#L55) | - |
+| | [columns.d.ts#L1](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts#L1) | - |
+| | [columns.d.ts#L20](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts#L20) | - |
+| | [columns.d.ts#L21](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts#L21) | - |
+| | [index.d.ts#L3](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts#L3) | - |
+| | [index.d.ts#L9](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts#L9) | - |
+| | [types.d.ts#L2](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts#L2) | - |
+| | [types.d.ts#L40](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts#L40) | - |
+| | [index.d.ts#L2](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts#L2) | - |
+| | [index.d.ts#L10](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts#L10) | - |
+| | [types.d.ts#L1](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts#L1) | - |
+| | [types.d.ts#L25](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts#L25) | - |
| | [types.ts#L9](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/network/pages/navigation/types.ts#L9) | - |
| | [types.ts#L35](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/network/pages/navigation/types.ts#L35) | - |
| | [types.ts#L53](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/network/pages/navigation/types.ts#L53) | - |
+| | [get_query_filter.ts#L16](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts#L16) | - |
+| | [get_query_filter.ts#L31](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.ts#L31) | - |
| | [helpers.tsx#L39](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.tsx#L39) | - |
| | [helpers.tsx#L49](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.tsx#L49) | - |
| | [helpers.tsx#L52](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.tsx#L52) | - |
@@ -1870,11 +1881,6 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| | [use_field_value_autocomplete.ts#L31](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/hooks/use_field_value_autocomplete.ts#L31) | - |
| | [field_value_match.tsx#L19](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match.tsx#L19) | - |
| | [field_value_match.tsx#L30](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match.tsx#L30) | - |
-| | [field_value_match_any.tsx#L13](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx#L13) | - |
-| | [field_value_match_any.tsx#L24](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx#L24) | - |
-| | [helpers.test.tsx#L43](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx#L43) | - |
-| | [helpers.test.tsx#L49](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx#L49) | - |
-| | [helpers.test.tsx#L368](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx#L368) | - |
| | [model.ts#L8](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/sourcerer/model.ts#L8) | - |
| | [model.ts#L30](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/sourcerer/model.ts#L30) | - |
| | [index.tsx#L33](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx#L33) | - |
@@ -1921,10 +1927,6 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| | [use_field_value_autocomplete.ts#L27](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/hooks/use_field_value_autocomplete.ts#L27) | - |
| | [field_value_match.tsx#L19](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match.tsx#L19) | - |
| | [field_value_match.tsx#L28](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match.tsx#L28) | - |
-| | [field_value_lists.tsx#L12](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_lists.tsx#L12) | - |
-| | [field_value_lists.tsx#L20](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_lists.tsx#L20) | - |
-| | [field_value_match_any.tsx#L13](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx#L13) | - |
-| | [field_value_match_any.tsx#L22](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/field_value_match_any.tsx#L22) | - |
| | [helpers.test.ts#L11](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L11) | - |
| | [helpers.test.ts#L333](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L333) | - |
| | [helpers.test.ts#L339](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L339) | - |
@@ -1933,10 +1935,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex
| | [helpers.test.ts#L363](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L363) | - |
| | [helpers.test.ts#L371](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L371) | - |
| | [helpers.test.ts#L380](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/helpers.test.ts#L380) | - |
-| | [operator.tsx#L11](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/operator.tsx#L11) | - |
-| | [operator.tsx#L17](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/autocomplete/operator.tsx#L17) | - |
-| | [helpers.test.tsx#L43](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx#L43) | - |
-| | [helpers.test.tsx#L104](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx#L104) | - |
+| | [helpers.test.d.ts#L1](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/components/exceptions/helpers.test.d.ts#L1) | - |
+| | [helpers.test.d.ts#L2](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/target/types/public/common/components/exceptions/helpers.test.d.ts#L2) | - |
| | [index.tsx#L32](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx#L32) | - |
| | [index.tsx#L86](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx#L86) | - |
| | [index.tsx#L305](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx#L305) | - |
diff --git a/api_docs/features.json b/api_docs/features.json
index 6881b65061fac..63c3ebe3a92de 100644
--- a/api_docs/features.json
+++ b/api_docs/features.json
@@ -1599,13 +1599,6 @@
"path": "x-pack/plugins/security/server/authorization/disable_ui_capabilities.ts",
"lineNumber": 311
}
- },
- {
- "plugin": "beatsManagement",
- "link": {
- "path": "x-pack/plugins/beats_management/server/plugin.ts",
- "lineNumber": 61
- }
}
]
},
@@ -3298,13 +3291,6 @@
"path": "x-pack/plugins/security/server/authorization/disable_ui_capabilities.ts",
"lineNumber": 311
}
- },
- {
- "plugin": "beatsManagement",
- "link": {
- "path": "x-pack/plugins/beats_management/server/plugin.ts",
- "lineNumber": 61
- }
}
]
},
diff --git a/api_docs/fleet.json b/api_docs/fleet.json
index 94f2acc12adf7..389a56cccefc5 100644
--- a/api_docs/fleet.json
+++ b/api_docs/fleet.json
@@ -8837,7 +8837,7 @@
],
"source": {
"path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts",
- "lineNumber": 113
+ "lineNumber": 114
},
"deprecated": false,
"children": [
@@ -8855,7 +8855,7 @@
],
"source": {
"path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts",
- "lineNumber": 117
+ "lineNumber": 118
},
"deprecated": false
},
@@ -8870,7 +8870,7 @@
],
"source": {
"path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts",
- "lineNumber": 121
+ "lineNumber": 122
},
"deprecated": false
},
@@ -8885,7 +8885,7 @@
],
"source": {
"path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts",
- "lineNumber": 125
+ "lineNumber": 126
},
"deprecated": false
},
@@ -8900,7 +8900,7 @@
],
"source": {
"path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts",
- "lineNumber": 129
+ "lineNumber": 130
},
"deprecated": false
},
@@ -8918,7 +8918,7 @@
],
"source": {
"path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts",
- "lineNumber": 133
+ "lineNumber": 134
},
"deprecated": false
},
@@ -8933,7 +8933,7 @@
],
"source": {
"path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts",
- "lineNumber": 139
+ "lineNumber": 140
},
"deprecated": false
}
@@ -9085,7 +9085,7 @@
"label": "agent",
"description": [],
"signature": [
- "{ monitoring: { use_output?: string | undefined; enabled: boolean; metrics: boolean; logs: boolean; }; } | undefined"
+ "{ monitoring: { namespace?: string | undefined; use_output?: string | undefined; enabled: boolean; metrics: boolean; logs: boolean; }; } | undefined"
],
"source": {
"path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts",
@@ -9326,7 +9326,7 @@
"description": [],
"source": {
"path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts",
- "lineNumber": 102
+ "lineNumber": 103
},
"deprecated": false,
"children": [
@@ -9342,7 +9342,7 @@
],
"source": {
"path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts",
- "lineNumber": 103
+ "lineNumber": 104
},
"deprecated": false
},
@@ -9355,7 +9355,7 @@
"description": [],
"source": {
"path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts",
- "lineNumber": 104
+ "lineNumber": 105
},
"deprecated": false
},
@@ -9371,7 +9371,7 @@
],
"source": {
"path": "x-pack/plugins/fleet/common/types/models/agent_policy.ts",
- "lineNumber": 105
+ "lineNumber": 106
},
"deprecated": false
}
diff --git a/api_docs/home.json b/api_docs/home.json
index bc99a31a09c30..2aa23c1b756df 100644
--- a/api_docs/home.json
+++ b/api_docs/home.json
@@ -953,13 +953,6 @@
},
"deprecated": true,
"references": [
- {
- "plugin": "cloud",
- "link": {
- "path": "x-pack/plugins/cloud/public/plugin.ts",
- "lineNumber": 66
- }
- },
{
"plugin": "ml",
"link": {
@@ -973,6 +966,13 @@
"path": "x-pack/plugins/apm/public/plugin.ts",
"lineNumber": 82
}
+ },
+ {
+ "plugin": "cloud",
+ "link": {
+ "path": "x-pack/plugins/cloud/public/plugin.ts",
+ "lineNumber": 66
+ }
}
]
}
diff --git a/api_docs/kibana_utils.json b/api_docs/kibana_utils.json
index ade7a843a6841..173348ea2f263 100644
--- a/api_docs/kibana_utils.json
+++ b/api_docs/kibana_utils.json
@@ -3799,7 +3799,7 @@
"description": [],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 717
+ "lineNumber": 704
},
"deprecated": false
},
@@ -3822,7 +3822,7 @@
],
"source": {
"path": "src/core/public/application/types.ts",
- "lineNumber": 717
+ "lineNumber": 704
},
"deprecated": false
}
diff --git a/api_docs/licensing.json b/api_docs/licensing.json
index f3ec50895547f..873f40bd301a1 100644
--- a/api_docs/licensing.json
+++ b/api_docs/licensing.json
@@ -554,192 +554,192 @@
"deprecated": true,
"references": [
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/common/license/policy_config.test.ts",
- "lineNumber": 22
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 19
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/common/license/policy_config.test.ts",
- "lineNumber": 23
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 36
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/common/license/policy_config.test.ts",
- "lineNumber": 24
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 53
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/public/management/pages/policy/store/policy_details/index.test.ts",
- "lineNumber": 159
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 70
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/public/management/pages/policy/store/policy_details/index.test.ts",
- "lineNumber": 161
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 87
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts",
- "lineNumber": 42
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 104
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts",
- "lineNumber": 43
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 122
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts",
- "lineNumber": 44
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 139
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/server/endpoint/routes/actions/isolation.test.ts",
- "lineNumber": 54
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 156
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/server/endpoint/routes/actions/isolation.test.ts",
- "lineNumber": 55
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 173
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts",
- "lineNumber": 47
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 190
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts",
- "lineNumber": 48
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 207
}
},
{
- "plugin": "apm",
+ "plugin": "security",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 19
+ "path": "x-pack/plugins/security/common/licensing/license_service.test.ts",
+ "lineNumber": 169
}
},
{
- "plugin": "apm",
+ "plugin": "security",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 36
+ "path": "x-pack/plugins/security/common/licensing/license_service.test.ts",
+ "lineNumber": 194
}
},
{
- "plugin": "apm",
+ "plugin": "security",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 53
+ "path": "x-pack/plugins/security/common/licensing/license_service.test.ts",
+ "lineNumber": 219
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 70
+ "path": "x-pack/plugins/security_solution/common/license/policy_config.test.ts",
+ "lineNumber": 22
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 87
+ "path": "x-pack/plugins/security_solution/common/license/policy_config.test.ts",
+ "lineNumber": 23
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 104
+ "path": "x-pack/plugins/security_solution/common/license/policy_config.test.ts",
+ "lineNumber": 24
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 122
+ "path": "x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts",
+ "lineNumber": 47
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 139
+ "path": "x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts",
+ "lineNumber": 48
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 156
+ "path": "x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts",
+ "lineNumber": 42
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 173
+ "path": "x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts",
+ "lineNumber": 43
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 190
+ "path": "x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts",
+ "lineNumber": 44
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 207
+ "path": "x-pack/plugins/security_solution/server/endpoint/routes/actions/isolation.test.ts",
+ "lineNumber": 54
}
},
{
- "plugin": "security",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/security/common/licensing/license_service.test.ts",
- "lineNumber": 169
+ "path": "x-pack/plugins/security_solution/server/endpoint/routes/actions/isolation.test.ts",
+ "lineNumber": 55
}
},
{
- "plugin": "security",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/security/common/licensing/license_service.test.ts",
- "lineNumber": 194
+ "path": "x-pack/plugins/security_solution/public/management/pages/policy/store/policy_details/index.test.ts",
+ "lineNumber": 159
}
},
{
- "plugin": "security",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/security/common/licensing/license_service.test.ts",
- "lineNumber": 219
+ "path": "x-pack/plugins/security_solution/public/management/pages/policy/store/policy_details/index.test.ts",
+ "lineNumber": 161
}
}
]
@@ -942,73 +942,66 @@
"deprecated": true,
"references": [
{
- "plugin": "security",
- "link": {
- "path": "x-pack/plugins/security/public/plugin.tsx",
- "lineNumber": 82
- }
- },
- {
- "plugin": "licenseManagement",
+ "plugin": "reporting",
"link": {
- "path": "x-pack/plugins/license_management/public/plugin.ts",
- "lineNumber": 61
+ "path": "x-pack/plugins/reporting/public/panel_actions/get_csv_panel_action.tsx",
+ "lineNumber": 40
}
},
{
- "plugin": "ml",
+ "plugin": "reporting",
"link": {
- "path": "x-pack/plugins/ml/public/application/license/check_license.tsx",
- "lineNumber": 26
+ "path": "x-pack/plugins/reporting/public/share_context_menu/register_csv_reporting.tsx",
+ "lineNumber": 33
}
},
{
- "plugin": "ml",
+ "plugin": "reporting",
"link": {
- "path": "x-pack/plugins/ml/public/plugin.ts",
- "lineNumber": 136
+ "path": "x-pack/plugins/reporting/public/share_context_menu/register_pdf_png_reporting.tsx",
+ "lineNumber": 81
}
},
{
- "plugin": "fleet",
+ "plugin": "reporting",
"link": {
- "path": "x-pack/plugins/fleet/public/plugin.ts",
- "lineNumber": 97
+ "path": "x-pack/plugins/reporting/public/plugin.ts",
+ "lineNumber": 116
}
},
{
"plugin": "reporting",
"link": {
- "path": "x-pack/plugins/reporting/public/panel_actions/get_csv_panel_action.tsx",
- "lineNumber": 40
+ "path": "x-pack/plugins/reporting/public/components/report_listing.tsx",
+ "lineNumber": 61
}
},
{
- "plugin": "reporting",
+ "plugin": "licenseManagement",
"link": {
- "path": "x-pack/plugins/reporting/public/share_context_menu/register_csv_reporting.tsx",
- "lineNumber": 33
+ "path": "x-pack/plugins/license_management/public/plugin.ts",
+ "lineNumber": 61
}
},
{
- "plugin": "reporting",
+ "plugin": "security",
"link": {
- "path": "x-pack/plugins/reporting/public/share_context_menu/register_pdf_png_reporting.tsx",
- "lineNumber": 81
+ "path": "x-pack/plugins/security/public/plugin.tsx",
+ "lineNumber": 82
}
},
{
- "plugin": "reporting",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/reporting/public/plugin.ts",
- "lineNumber": 116
+ "path": "x-pack/plugins/ml/public/application/license/check_license.tsx",
+ "lineNumber": 26
}
},
{
- "plugin": "reporting",
+ "plugin": "ml",
"link": {
- "path": "x-pack/plugins/reporting/public/components/report_listing.tsx",
- "lineNumber": 61
+ "path": "x-pack/plugins/ml/public/plugin.ts",
+ "lineNumber": 136
}
},
{
@@ -1019,17 +1012,17 @@
}
},
{
- "plugin": "beatsManagement",
+ "plugin": "crossClusterReplication",
"link": {
- "path": "x-pack/plugins/beats_management/public/lib/adapters/framework/kibana_framework_adapter.ts",
- "lineNumber": 65
+ "path": "x-pack/plugins/cross_cluster_replication/public/plugin.ts",
+ "lineNumber": 75
}
},
{
- "plugin": "crossClusterReplication",
+ "plugin": "fleet",
"link": {
- "path": "x-pack/plugins/cross_cluster_replication/public/plugin.ts",
- "lineNumber": 75
+ "path": "x-pack/plugins/fleet/public/plugin.ts",
+ "lineNumber": 97
}
},
{
@@ -2650,192 +2643,192 @@
"deprecated": true,
"references": [
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/common/license/policy_config.test.ts",
- "lineNumber": 22
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 19
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/common/license/policy_config.test.ts",
- "lineNumber": 23
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 36
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/common/license/policy_config.test.ts",
- "lineNumber": 24
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 53
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/public/management/pages/policy/store/policy_details/index.test.ts",
- "lineNumber": 159
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 70
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/public/management/pages/policy/store/policy_details/index.test.ts",
- "lineNumber": 161
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 87
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts",
- "lineNumber": 42
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 104
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts",
- "lineNumber": 43
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 122
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts",
- "lineNumber": 44
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 139
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/server/endpoint/routes/actions/isolation.test.ts",
- "lineNumber": 54
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 156
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/server/endpoint/routes/actions/isolation.test.ts",
- "lineNumber": 55
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 173
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts",
- "lineNumber": 47
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 190
}
},
{
- "plugin": "securitySolution",
+ "plugin": "apm",
"link": {
- "path": "x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts",
- "lineNumber": 48
+ "path": "x-pack/plugins/apm/common/license_check.test.ts",
+ "lineNumber": 207
}
},
{
- "plugin": "apm",
+ "plugin": "security",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 19
+ "path": "x-pack/plugins/security/common/licensing/license_service.test.ts",
+ "lineNumber": 169
}
},
{
- "plugin": "apm",
+ "plugin": "security",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 36
+ "path": "x-pack/plugins/security/common/licensing/license_service.test.ts",
+ "lineNumber": 194
}
},
{
- "plugin": "apm",
+ "plugin": "security",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 53
+ "path": "x-pack/plugins/security/common/licensing/license_service.test.ts",
+ "lineNumber": 219
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 70
+ "path": "x-pack/plugins/security_solution/common/license/policy_config.test.ts",
+ "lineNumber": 22
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 87
+ "path": "x-pack/plugins/security_solution/common/license/policy_config.test.ts",
+ "lineNumber": 23
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 104
+ "path": "x-pack/plugins/security_solution/common/license/policy_config.test.ts",
+ "lineNumber": 24
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 122
+ "path": "x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts",
+ "lineNumber": 47
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 139
+ "path": "x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts",
+ "lineNumber": 48
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 156
+ "path": "x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts",
+ "lineNumber": 42
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 173
+ "path": "x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts",
+ "lineNumber": 43
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 190
+ "path": "x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts",
+ "lineNumber": 44
}
},
{
- "plugin": "apm",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/apm/common/license_check.test.ts",
- "lineNumber": 207
+ "path": "x-pack/plugins/security_solution/server/endpoint/routes/actions/isolation.test.ts",
+ "lineNumber": 54
}
},
{
- "plugin": "security",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/security/common/licensing/license_service.test.ts",
- "lineNumber": 169
+ "path": "x-pack/plugins/security_solution/server/endpoint/routes/actions/isolation.test.ts",
+ "lineNumber": 55
}
},
{
- "plugin": "security",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/security/common/licensing/license_service.test.ts",
- "lineNumber": 194
+ "path": "x-pack/plugins/security_solution/public/management/pages/policy/store/policy_details/index.test.ts",
+ "lineNumber": 159
}
},
{
- "plugin": "security",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/security/common/licensing/license_service.test.ts",
- "lineNumber": 219
+ "path": "x-pack/plugins/security_solution/public/management/pages/policy/store/policy_details/index.test.ts",
+ "lineNumber": 161
}
}
]
@@ -3060,7 +3053,7 @@
"plugin": "spaces",
"link": {
"path": "x-pack/plugins/spaces/server/usage_collection/spaces_usage_collector.ts",
- "lineNumber": 442
+ "lineNumber": 431
}
},
{
@@ -3126,13 +3119,6 @@
"lineNumber": 139
}
},
- {
- "plugin": "fleet",
- "link": {
- "path": "x-pack/plugins/fleet/server/plugin.ts",
- "lineNumber": 213
- }
- },
{
"plugin": "indexManagement",
"link": {
@@ -3147,6 +3133,13 @@
"lineNumber": 73
}
},
+ {
+ "plugin": "fleet",
+ "link": {
+ "path": "x-pack/plugins/fleet/server/plugin.ts",
+ "lineNumber": 213
+ }
+ },
{
"plugin": "graph",
"link": {
diff --git a/api_docs/lists.json b/api_docs/lists.json
index 8932650bdff76..90f5cd726287b 100644
--- a/api_docs/lists.json
+++ b/api_docs/lists.json
@@ -273,1055 +273,8 @@
"initialIsOpen": false
}
],
- "functions": [
- {
- "parentPluginId": "lists",
- "id": "def-public.addEndpointExceptionListWithValidation",
- "type": "Function",
- "tags": [],
- "label": "addEndpointExceptionListWithValidation",
- "description": [],
- "signature": [
- "({ http, signal, }: ",
- "AddEndpointExceptionListProps",
- ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; id: string; immutable: boolean; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"endpoint\" | \"detection\" | \"endpoint_events\"; updated_at: string; updated_by: string; version: number; } | {}>"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/api.ts",
- "lineNumber": 532
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.addEndpointExceptionListWithValidation.$1",
- "type": "Object",
- "tags": [],
- "label": "{\n http,\n signal,\n}",
- "description": [],
- "signature": [
- "AddEndpointExceptionListProps"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/api.ts",
- "lineNumber": 532
- },
- "deprecated": false,
- "isRequired": true
- }
- ],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.addExceptionListWithValidation",
- "type": "Function",
- "tags": [],
- "label": "addExceptionListWithValidation",
- "description": [],
- "signature": [
- "({ http, list, signal, }: ",
- "AddExceptionListProps",
- ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; id: string; immutable: boolean; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"endpoint\" | \"detection\" | \"endpoint_events\"; updated_at: string; updated_by: string; version: number; }>"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/api.ts",
- "lineNumber": 66
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.addExceptionListWithValidation.$1",
- "type": "Object",
- "tags": [],
- "label": "{\n http,\n list,\n signal,\n}",
- "description": [],
- "signature": [
- "AddExceptionListProps"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/api.ts",
- "lineNumber": 66
- },
- "deprecated": false,
- "isRequired": true
- }
- ],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.exportListWithValidation",
- "type": "Function",
- "tags": [],
- "label": "exportListWithValidation",
- "description": [],
- "signature": [
- "({ http, listId, signal, }: ",
- "ExportListParams",
- ") => Promise"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/lists/api.ts",
- "lineNumber": 174
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.exportListWithValidation.$1",
- "type": "Object",
- "tags": [],
- "label": "{\n http,\n listId,\n signal,\n}",
- "description": [],
- "signature": [
- "ExportListParams"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/lists/api.ts",
- "lineNumber": 174
- },
- "deprecated": false,
- "isRequired": true
- }
- ],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.fetchExceptionListByIdWithValidation",
- "type": "Function",
- "tags": [],
- "label": "fetchExceptionListByIdWithValidation",
- "description": [],
- "signature": [
- "({ http, id, namespaceType, signal, }: ",
- "ApiCallByIdProps",
- ") => Promise<{ _version: string | undefined; created_at: string; created_by: string; description: string; id: string; immutable: boolean; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"endpoint\" | \"detection\" | \"endpoint_events\"; updated_at: string; updated_by: string; version: number; }>"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/api.ts",
- "lineNumber": 299
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.fetchExceptionListByIdWithValidation.$1",
- "type": "Object",
- "tags": [],
- "label": "{\n http,\n id,\n namespaceType,\n signal,\n}",
- "description": [],
- "signature": [
- "ApiCallByIdProps"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/api.ts",
- "lineNumber": 299
- },
- "deprecated": false,
- "isRequired": true
- }
- ],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.transformNewItemOutput",
- "type": "Function",
- "tags": [],
- "label": "transformNewItemOutput",
- "description": [],
- "signature": [
- "(exceptionItem: { description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"text\" | \"keyword\" | \"long\" | \"double\" | \"ip\" | \"date_nanos\" | \"geo_point\" | \"geo_shape\" | \"binary\" | \"short\" | \"date_range\" | \"ip_range\" | \"shape\" | \"integer\" | \"byte\" | \"float\" | \"half_float\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }) => { description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"text\" | \"keyword\" | \"long\" | \"double\" | \"ip\" | \"date_nanos\" | \"geo_point\" | \"geo_shape\" | \"binary\" | \"short\" | \"date_range\" | \"ip_range\" | \"shape\" | \"integer\" | \"byte\" | \"float\" | \"half_float\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/transforms.ts",
- "lineNumber": 40
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.transformNewItemOutput.$1",
- "type": "CompoundType",
- "tags": [],
- "label": "exceptionItem",
- "description": [],
- "signature": [
- "{ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"text\" | \"keyword\" | \"long\" | \"double\" | \"ip\" | \"date_nanos\" | \"geo_point\" | \"geo_shape\" | \"binary\" | \"short\" | \"date_range\" | \"ip_range\" | \"shape\" | \"integer\" | \"byte\" | \"float\" | \"half_float\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/transforms.ts",
- "lineNumber": 41
- },
- "deprecated": false,
- "isRequired": true
- }
- ],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.transformOutput",
- "type": "Function",
- "tags": [],
- "label": "transformOutput",
- "description": [
- "\nTransforms the output of exception items to compensate for technical debt or UI concerns such as\nReactJS preferences for having ids within arrays if the data is not modeled that way.\n\nIf you add a new transform of the output called \"myNewTransform\" do it\nin the form of:\nflow(removeIdFromExceptionItemsEntries, myNewTransform)(exceptionItem)\n"
- ],
- "signature": [
- "(exceptionItem: { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"text\" | \"keyword\" | \"long\" | \"double\" | \"ip\" | \"date_nanos\" | \"geo_point\" | \"geo_shape\" | \"binary\" | \"short\" | \"date_range\" | \"ip_range\" | \"shape\" | \"integer\" | \"byte\" | \"float\" | \"half_float\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"text\" | \"keyword\" | \"long\" | \"double\" | \"ip\" | \"date_nanos\" | \"geo_point\" | \"geo_shape\" | \"binary\" | \"short\" | \"date_range\" | \"ip_range\" | \"shape\" | \"integer\" | \"byte\" | \"float\" | \"half_float\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; })) => { _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"text\" | \"keyword\" | \"long\" | \"double\" | \"ip\" | \"date_nanos\" | \"geo_point\" | \"geo_shape\" | \"binary\" | \"short\" | \"date_range\" | \"ip_range\" | \"shape\" | \"integer\" | \"byte\" | \"float\" | \"half_float\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"text\" | \"keyword\" | \"long\" | \"double\" | \"ip\" | \"date_nanos\" | \"geo_point\" | \"geo_shape\" | \"binary\" | \"short\" | \"date_range\" | \"ip_range\" | \"shape\" | \"integer\" | \"byte\" | \"float\" | \"half_float\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; })"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/transforms.ts",
- "lineNumber": 35
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.transformOutput.$1",
- "type": "CompoundType",
- "tags": [],
- "label": "exceptionItem",
- "description": [],
- "signature": [
- "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"text\" | \"keyword\" | \"long\" | \"double\" | \"ip\" | \"date_nanos\" | \"geo_point\" | \"geo_shape\" | \"binary\" | \"short\" | \"date_range\" | \"ip_range\" | \"shape\" | \"integer\" | \"byte\" | \"float\" | \"half_float\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"text\" | \"keyword\" | \"long\" | \"double\" | \"ip\" | \"date_nanos\" | \"geo_point\" | \"geo_shape\" | \"binary\" | \"short\" | \"date_range\" | \"ip_range\" | \"shape\" | \"integer\" | \"byte\" | \"float\" | \"half_float\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; })[]; name: string; type: \"simple\"; } & { _version?: string | undefined; comments?: ({ comment: string; } & { id?: string | undefined; })[] | undefined; id?: string | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; })"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/transforms.ts",
- "lineNumber": 36
- },
- "deprecated": false,
- "isRequired": true
- }
- ],
- "returnComment": [
- "The exceptionItem transformed from the output"
- ],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.useApi",
- "type": "Function",
- "tags": [],
- "label": "useApi",
- "description": [],
- "signature": [
- "(http: ",
- {
- "pluginId": "core",
- "scope": "public",
- "docId": "kibCoreHttpPluginApi",
- "section": "def-public.HttpSetup",
- "text": "HttpSetup"
- },
- ") => ",
- "ExceptionsApi"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/hooks/use_api.ts",
- "lineNumber": 41
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.useApi.$1",
- "type": "Object",
- "tags": [],
- "label": "http",
- "description": [],
- "signature": [
- {
- "pluginId": "core",
- "scope": "public",
- "docId": "kibCoreHttpPluginApi",
- "section": "def-public.HttpSetup",
- "text": "HttpSetup"
- }
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/hooks/use_api.ts",
- "lineNumber": 41
- },
- "deprecated": false,
- "isRequired": true
- }
- ],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.useAsync",
- "type": "Function",
- "tags": [],
- "label": "useAsync",
- "description": [
- "\n"
- ],
- "signature": [
- "(fn: (...args: Args) => Promise) => ",
- "Async",
- ""
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/common/hooks/use_async.ts",
- "lineNumber": 25
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.useAsync.$1",
- "type": "Function",
- "tags": [],
- "label": "fn",
- "description": [],
- "signature": [
- "(...args: Args) => Promise"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/common/hooks/use_async.ts",
- "lineNumber": 26
- },
- "deprecated": false,
- "isRequired": true
- }
- ],
- "returnComment": [
- "An {@link AsyncTask} containing the underlying task's state along with a start callback"
- ],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.useCreateListIndex",
- "type": "Function",
- "tags": [],
- "label": "useCreateListIndex",
- "description": [],
- "signature": [
- "() => ",
- "Async",
- "<[args: ",
- "OptionalSignalArgs",
- "<",
- "ApiParams",
- ">], { acknowledged: boolean; }>"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/lists/hooks/use_create_list_index.ts",
- "lineNumber": 15
- },
- "deprecated": false,
- "children": [],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.useCursor",
- "type": "Function",
- "tags": [],
- "label": "useCursor",
- "description": [],
- "signature": [
- "({ pageIndex, pageSize }: ",
- "UseCursorProps",
- ") => [string | undefined, SetCursor]"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/common/hooks/use_cursor.ts",
- "lineNumber": 20
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.useCursor.$1",
- "type": "Object",
- "tags": [],
- "label": "{ pageIndex, pageSize }",
- "description": [],
- "signature": [
- "UseCursorProps"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/common/hooks/use_cursor.ts",
- "lineNumber": 20
- },
- "deprecated": false,
- "isRequired": true
- }
- ],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.useDeleteList",
- "type": "Function",
- "tags": [],
- "label": "useDeleteList",
- "description": [],
- "signature": [
- "() => ",
- "Async",
- "<[args: ",
- "OptionalSignalArgs",
- "<",
- "DeleteListParams",
- ">], { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"text\" | \"keyword\" | \"long\" | \"double\" | \"ip\" | \"date_nanos\" | \"geo_point\" | \"geo_shape\" | \"binary\" | \"short\" | \"date_range\" | \"ip_range\" | \"shape\" | \"integer\" | \"byte\" | \"float\" | \"half_float\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\"; updated_at: string; updated_by: string; version: number; }>"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/lists/hooks/use_delete_list.ts",
- "lineNumber": 15
- },
- "deprecated": false,
- "children": [],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.useExceptionListItems",
- "type": "Function",
- "tags": [],
- "label": "useExceptionListItems",
- "description": [
- "\nHook for using to get an ExceptionList and it's ExceptionListItems\n"
- ],
- "signature": [
- "({ http, lists, pagination, filterOptions, showDetectionsListsOnly, showEndpointListsOnly, matchFilters, onError, onSuccess, }: ",
- "UseExceptionListProps",
- ") => ",
- "ReturnExceptionListAndItems"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/hooks/use_exception_list_items.ts",
- "lineNumber": 39
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.useExceptionListItems.$1",
- "type": "Object",
- "tags": [],
- "label": "{\n http,\n lists,\n pagination = {\n page: 1,\n perPage: 20,\n total: 0,\n },\n filterOptions,\n showDetectionsListsOnly,\n showEndpointListsOnly,\n matchFilters,\n onError,\n onSuccess,\n}",
- "description": [],
- "signature": [
- "UseExceptionListProps"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/hooks/use_exception_list_items.ts",
- "lineNumber": 39
- },
- "deprecated": false,
- "isRequired": true
- }
- ],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.useExceptionLists",
- "type": "Function",
- "tags": [],
- "label": "useExceptionLists",
- "description": [
- "\nHook for fetching ExceptionLists\n"
- ],
- "signature": [
- "({ errorMessage, http, pagination, filterOptions, namespaceTypes, notifications, showTrustedApps, }: ",
- "UseExceptionListsProps",
- ") => ",
- "ReturnExceptionLists"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/hooks/use_exception_lists.ts",
- "lineNumber": 30
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.useExceptionLists.$1",
- "type": "Object",
- "tags": [],
- "label": "{\n errorMessage,\n http,\n pagination = {\n page: 1,\n perPage: 20,\n total: 0,\n },\n filterOptions = {},\n namespaceTypes,\n notifications,\n showTrustedApps = false,\n}",
- "description": [],
- "signature": [
- "UseExceptionListsProps"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/hooks/use_exception_lists.ts",
- "lineNumber": 30
- },
- "deprecated": false,
- "isRequired": true
- }
- ],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.useExportList",
- "type": "Function",
- "tags": [],
- "label": "useExportList",
- "description": [],
- "signature": [
- "() => ",
- "Async",
- "<[args: ",
- "OptionalSignalArgs",
- "<",
- "ExportListParams",
- ">], Blob>"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/lists/hooks/use_export_list.ts",
- "lineNumber": 15
- },
- "deprecated": false,
- "children": [],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.useFindLists",
- "type": "Function",
- "tags": [],
- "label": "useFindLists",
- "description": [],
- "signature": [
- "() => ",
- "Async",
- "<[args: ",
- "OptionalSignalArgs",
- "<",
- "FindListsParams",
- ">], { cursor: string; data: { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"text\" | \"keyword\" | \"long\" | \"double\" | \"ip\" | \"date_nanos\" | \"geo_point\" | \"geo_shape\" | \"binary\" | \"short\" | \"date_range\" | \"ip_range\" | \"shape\" | \"integer\" | \"byte\" | \"float\" | \"half_float\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\"; updated_at: string; updated_by: string; version: number; }[]; page: number; per_page: number; total: number; }>"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/lists/hooks/use_find_lists.ts",
- "lineNumber": 15
- },
- "deprecated": false,
- "children": [],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.useImportList",
- "type": "Function",
- "tags": [],
- "label": "useImportList",
- "description": [],
- "signature": [
- "() => ",
- "Async",
- "<[args: ",
- "OptionalSignalArgs",
- "<",
- "ImportListParams",
- ">], { _version: string | undefined; created_at: string; created_by: string; description: string; deserializer: string | undefined; id: string; immutable: boolean; meta: object | undefined; name: string; serializer: string | undefined; tie_breaker_id: string; type: \"boolean\" | \"date\" | \"text\" | \"keyword\" | \"long\" | \"double\" | \"ip\" | \"date_nanos\" | \"geo_point\" | \"geo_shape\" | \"binary\" | \"short\" | \"date_range\" | \"ip_range\" | \"shape\" | \"integer\" | \"byte\" | \"float\" | \"half_float\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\"; updated_at: string; updated_by: string; version: number; }>"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/lists/hooks/use_import_list.ts",
- "lineNumber": 15
- },
- "deprecated": false,
- "children": [],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.useReadListIndex",
- "type": "Function",
- "tags": [],
- "label": "useReadListIndex",
- "description": [],
- "signature": [
- "() => ",
- "Async",
- "<[args: ",
- "OptionalSignalArgs",
- "<",
- "ApiParams",
- ">], { list_index: boolean; list_item_index: boolean; }>"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/lists/hooks/use_read_list_index.ts",
- "lineNumber": 15
- },
- "deprecated": false,
- "children": [],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.useReadListPrivileges",
- "type": "Function",
- "tags": [],
- "label": "useReadListPrivileges",
- "description": [],
- "signature": [
- "() => ",
- "Async",
- "<[args: ",
- "OptionalSignalArgs",
- "<",
- "ApiParams",
- ">], unknown>"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/lists/hooks/use_read_list_privileges.ts",
- "lineNumber": 15
- },
- "deprecated": false,
- "children": [],
- "returnComment": [],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.withOptionalSignal",
- "type": "Function",
- "tags": [],
- "label": "withOptionalSignal",
- "description": [
- "\n"
- ],
- "signature": [
- "(fn: (args: Args) => Result) => (args: ",
- "OptionalSignalArgs",
- ") => Result"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/common/with_optional_signal.ts",
- "lineNumber": 20
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.withOptionalSignal.$1",
- "type": "Function",
- "tags": [],
- "label": "fn",
- "description": [],
- "signature": [
- "(args: Args) => Result"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/common/with_optional_signal.ts",
- "lineNumber": 20
- },
- "deprecated": false,
- "isRequired": true
- }
- ],
- "returnComment": [
- "An async function where the AbortSignal argument is optional"
- ],
- "initialIsOpen": false
- }
- ],
- "interfaces": [
- {
- "parentPluginId": "lists",
- "id": "def-public.ExceptionList",
- "type": "Interface",
- "tags": [],
- "label": "ExceptionList",
- "description": [],
- "signature": [
- {
- "pluginId": "lists",
- "scope": "public",
- "docId": "kibListsPluginApi",
- "section": "def-public.ExceptionList",
- "text": "ExceptionList"
- },
- " extends { _version: string | undefined; created_at: string; created_by: string; description: string; id: string; immutable: boolean; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"endpoint\" | \"detection\" | \"endpoint_events\"; updated_at: string; updated_by: string; version: number; }"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 42
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.ExceptionList.totalItems",
- "type": "number",
- "tags": [],
- "label": "totalItems",
- "description": [],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 43
- },
- "deprecated": false
- }
- ],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.ExceptionListFilter",
- "type": "Interface",
- "tags": [],
- "label": "ExceptionListFilter",
- "description": [],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 126
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.ExceptionListFilter.name",
- "type": "CompoundType",
- "tags": [],
- "label": "name",
- "description": [],
- "signature": [
- "string | null | undefined"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 127
- },
- "deprecated": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.ExceptionListFilter.list_id",
- "type": "CompoundType",
- "tags": [],
- "label": "list_id",
- "description": [],
- "signature": [
- "string | null | undefined"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 128
- },
- "deprecated": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.ExceptionListFilter.created_by",
- "type": "CompoundType",
- "tags": [],
- "label": "created_by",
- "description": [],
- "signature": [
- "string | null | undefined"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 129
- },
- "deprecated": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.ExceptionListFilter.type",
- "type": "CompoundType",
- "tags": [],
- "label": "type",
- "description": [],
- "signature": [
- "string | null | undefined"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 130
- },
- "deprecated": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.ExceptionListFilter.tags",
- "type": "CompoundType",
- "tags": [],
- "label": "tags",
- "description": [],
- "signature": [
- "string | null | undefined"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 131
- },
- "deprecated": false
- }
- ],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.ExceptionListIdentifiers",
- "type": "Interface",
- "tags": [],
- "label": "ExceptionListIdentifiers",
- "description": [],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 63
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.ExceptionListIdentifiers.id",
- "type": "string",
- "tags": [],
- "label": "id",
- "description": [],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 64
- },
- "deprecated": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.ExceptionListIdentifiers.listId",
- "type": "string",
- "tags": [],
- "label": "listId",
- "description": [],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 65
- },
- "deprecated": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.ExceptionListIdentifiers.namespaceType",
- "type": "CompoundType",
- "tags": [],
- "label": "namespaceType",
- "description": [],
- "signature": [
- "\"single\" | \"agnostic\""
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 66
- },
- "deprecated": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.ExceptionListIdentifiers.type",
- "type": "CompoundType",
- "tags": [],
- "label": "type",
- "description": [],
- "signature": [
- "\"endpoint\" | \"detection\" | \"endpoint_events\""
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 67
- },
- "deprecated": false
- }
- ],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.Pagination",
- "type": "Interface",
- "tags": [],
- "label": "Pagination",
- "description": [],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 29
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.Pagination.page",
- "type": "number",
- "tags": [],
- "label": "page",
- "description": [],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 30
- },
- "deprecated": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.Pagination.perPage",
- "type": "number",
- "tags": [],
- "label": "perPage",
- "description": [],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 31
- },
- "deprecated": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.Pagination.total",
- "type": "number",
- "tags": [],
- "label": "total",
- "description": [],
- "signature": [
- "number | undefined"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 32
- },
- "deprecated": false
- }
- ],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.UseExceptionListItemsSuccess",
- "type": "Interface",
- "tags": [],
- "label": "UseExceptionListItemsSuccess",
- "description": [],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 46
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.UseExceptionListItemsSuccess.exceptions",
- "type": "Array",
- "tags": [],
- "label": "exceptions",
- "description": [],
- "signature": [
- "{ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"text\" | \"keyword\" | \"long\" | \"double\" | \"ip\" | \"date_nanos\" | \"geo_point\" | \"geo_shape\" | \"binary\" | \"short\" | \"date_range\" | \"ip_range\" | \"shape\" | \"integer\" | \"byte\" | \"float\" | \"half_float\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; }[]"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 47
- },
- "deprecated": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.UseExceptionListItemsSuccess.pagination",
- "type": "Object",
- "tags": [],
- "label": "pagination",
- "description": [],
- "signature": [
- {
- "pluginId": "lists",
- "scope": "public",
- "docId": "kibListsPluginApi",
- "section": "def-public.Pagination",
- "text": "Pagination"
- }
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 48
- },
- "deprecated": false
- }
- ],
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.UseExceptionListsSuccess",
- "type": "Interface",
- "tags": [],
- "label": "UseExceptionListsSuccess",
- "description": [],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 121
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-public.UseExceptionListsSuccess.exceptions",
- "type": "Array",
- "tags": [],
- "label": "exceptions",
- "description": [],
- "signature": [
- "{ _version: string | undefined; created_at: string; created_by: string; description: string; id: string; immutable: boolean; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"endpoint\" | \"detection\" | \"endpoint_events\"; updated_at: string; updated_by: string; version: number; }[]"
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 122
- },
- "deprecated": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-public.UseExceptionListsSuccess.pagination",
- "type": "Object",
- "tags": [],
- "label": "pagination",
- "description": [],
- "signature": [
- {
- "pluginId": "lists",
- "scope": "public",
- "docId": "kibListsPluginApi",
- "section": "def-public.Pagination",
- "text": "Pagination"
- }
- ],
- "source": {
- "path": "x-pack/plugins/lists/public/exceptions/types.ts",
- "lineNumber": 123
- },
- "deprecated": false
- }
- ],
- "initialIsOpen": false
- }
- ],
+ "functions": [],
+ "interfaces": [],
"enums": [],
"misc": [],
"objects": [
@@ -1338,7 +291,7 @@
],
"source": {
"path": "x-pack/plugins/lists/public/shared_exports.ts",
- "lineNumber": 36
+ "lineNumber": 10
},
"deprecated": false,
"initialIsOpen": false
@@ -1388,7 +341,7 @@
"description": [],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 57
+ "lineNumber": 56
},
"deprecated": false,
"children": [
@@ -1404,7 +357,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 62
+ "lineNumber": 61
},
"deprecated": false,
"children": [
@@ -1420,7 +373,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 62
+ "lineNumber": 61
},
"deprecated": false,
"isRequired": true
@@ -1442,7 +395,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 67
+ "lineNumber": 66
},
"deprecated": false,
"children": [
@@ -1458,7 +411,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 67
+ "lineNumber": 66
},
"deprecated": false,
"isRequired": true
@@ -1480,7 +433,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 76
+ "lineNumber": 75
},
"deprecated": false,
"children": [
@@ -1496,7 +449,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 76
+ "lineNumber": 75
},
"deprecated": false,
"isRequired": true
@@ -1518,7 +471,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 91
+ "lineNumber": 90
},
"deprecated": false,
"children": [],
@@ -1540,7 +493,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 103
+ "lineNumber": 102
},
"deprecated": false,
"children": [],
@@ -1560,7 +513,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 115
+ "lineNumber": 114
},
"deprecated": false,
"children": [],
@@ -1582,7 +535,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 129
+ "lineNumber": 128
},
"deprecated": false,
"children": [
@@ -1598,7 +551,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 129
+ "lineNumber": 128
},
"deprecated": false,
"isRequired": true
@@ -1622,7 +575,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 165
+ "lineNumber": 164
},
"deprecated": false,
"children": [
@@ -1638,7 +591,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 165
+ "lineNumber": 164
},
"deprecated": false,
"isRequired": true
@@ -1662,7 +615,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 201
+ "lineNumber": 200
},
"deprecated": false,
"children": [
@@ -1678,7 +631,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 201
+ "lineNumber": 200
},
"deprecated": false,
"isRequired": true
@@ -1700,7 +653,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 209
+ "lineNumber": 208
},
"deprecated": false,
"children": [
@@ -1716,7 +669,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 209
+ "lineNumber": 208
},
"deprecated": false,
"isRequired": true
@@ -1738,7 +691,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 236
+ "lineNumber": 235
},
"deprecated": false,
"children": [
@@ -1754,7 +707,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 236
+ "lineNumber": 235
},
"deprecated": false,
"isRequired": true
@@ -1776,7 +729,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 267
+ "lineNumber": 266
},
"deprecated": false,
"children": [
@@ -1792,7 +745,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 267
+ "lineNumber": 266
},
"deprecated": false,
"isRequired": true
@@ -1820,7 +773,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 281
+ "lineNumber": 280
},
"deprecated": false,
"children": [
@@ -1842,7 +795,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 281
+ "lineNumber": 280
},
"deprecated": false,
"isRequired": true
@@ -1870,7 +823,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 312
+ "lineNumber": 311
},
"deprecated": false,
"children": [
@@ -1892,7 +845,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 312
+ "lineNumber": 311
},
"deprecated": false,
"isRequired": true
@@ -1914,7 +867,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 345
+ "lineNumber": 344
},
"deprecated": false,
"children": [
@@ -1930,7 +883,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 345
+ "lineNumber": 344
},
"deprecated": false,
"isRequired": true
@@ -1952,7 +905,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 359
+ "lineNumber": 358
},
"deprecated": false,
"children": [
@@ -1968,7 +921,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 359
+ "lineNumber": 358
},
"deprecated": false,
"isRequired": true
@@ -1992,7 +945,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 374
+ "lineNumber": 373
},
"deprecated": false,
"children": [
@@ -2008,7 +961,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 374
+ "lineNumber": 373
},
"deprecated": false,
"isRequired": true
@@ -2030,7 +983,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 387
+ "lineNumber": 386
},
"deprecated": false,
"children": [
@@ -2046,7 +999,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 387
+ "lineNumber": 386
},
"deprecated": false,
"isRequired": true
@@ -2068,7 +1021,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 409
+ "lineNumber": 408
},
"deprecated": false,
"children": [
@@ -2084,7 +1037,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 409
+ "lineNumber": 408
},
"deprecated": false,
"isRequired": true
@@ -2106,7 +1059,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 431
+ "lineNumber": 430
},
"deprecated": false,
"children": [
@@ -2122,7 +1075,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 431
+ "lineNumber": 430
},
"deprecated": false,
"isRequired": true
@@ -2144,7 +1097,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 449
+ "lineNumber": 448
},
"deprecated": false,
"children": [
@@ -2160,7 +1113,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 449
+ "lineNumber": 448
},
"deprecated": false,
"isRequired": true
@@ -2184,7 +1137,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 477
+ "lineNumber": 476
},
"deprecated": false,
"children": [
@@ -2200,7 +1153,7 @@
],
"source": {
"path": "x-pack/plugins/lists/server/services/exception_lists/exception_list_client.ts",
- "lineNumber": 477
+ "lineNumber": 476
},
"deprecated": false,
"isRequired": true
@@ -4234,228 +3187,10 @@
},
"common": {
"classes": [],
- "functions": [
- {
- "parentPluginId": "lists",
- "id": "def-common.buildExceptionFilter",
- "type": "Function",
- "tags": [],
- "label": "buildExceptionFilter",
- "description": [],
- "signature": [
- "({ lists, excludeExceptions, chunkSize, }: { lists: ({ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"text\" | \"keyword\" | \"long\" | \"double\" | \"ip\" | \"date_nanos\" | \"geo_point\" | \"geo_shape\" | \"binary\" | \"short\" | \"date_range\" | \"ip_range\" | \"shape\" | \"integer\" | \"byte\" | \"float\" | \"half_float\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"text\" | \"keyword\" | \"long\" | \"double\" | \"ip\" | \"date_nanos\" | \"geo_point\" | \"geo_shape\" | \"binary\" | \"short\" | \"date_range\" | \"ip_range\" | \"shape\" | \"integer\" | \"byte\" | \"float\" | \"half_float\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }))[]; excludeExceptions: boolean; chunkSize: number; }) => ",
- {
- "pluginId": "data",
- "scope": "common",
- "docId": "kibDataPluginApi",
- "section": "def-common.Filter",
- "text": "Filter"
- },
- " | undefined"
- ],
- "source": {
- "path": "x-pack/plugins/lists/common/exceptions/build_exceptions_filter.ts",
- "lineNumber": 69
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-common.buildExceptionFilter.$1.listsexcludeExceptionschunkSize",
- "type": "Object",
- "tags": [],
- "label": "{\n lists,\n excludeExceptions,\n chunkSize,\n}",
- "description": [],
- "source": {
- "path": "x-pack/plugins/lists/common/exceptions/build_exceptions_filter.ts",
- "lineNumber": 73
- },
- "deprecated": false,
- "children": [
- {
- "parentPluginId": "lists",
- "id": "def-common.buildExceptionFilter.$1.listsexcludeExceptionschunkSize.lists",
- "type": "Array",
- "tags": [],
- "label": "lists",
- "description": [],
- "signature": [
- "({ _version: string | undefined; comments: ({ comment: string; created_at: string; created_by: string; id: string; } & { updated_at?: string | undefined; updated_by?: string | undefined; })[]; created_at: string; created_by: string; description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"text\" | \"keyword\" | \"long\" | \"double\" | \"ip\" | \"date_nanos\" | \"geo_point\" | \"geo_shape\" | \"binary\" | \"short\" | \"date_range\" | \"ip_range\" | \"shape\" | \"integer\" | \"byte\" | \"float\" | \"half_float\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; })[]; id: string; item_id: string; list_id: string; meta: object | undefined; name: string; namespace_type: \"single\" | \"agnostic\"; os_types: (\"windows\" | \"linux\" | \"macos\")[]; tags: string[]; tie_breaker_id: string; type: \"simple\"; updated_at: string; updated_by: string; } | ({ description: string; entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; list: { id: string; type: \"boolean\" | \"date\" | \"text\" | \"keyword\" | \"long\" | \"double\" | \"ip\" | \"date_nanos\" | \"geo_point\" | \"geo_shape\" | \"binary\" | \"short\" | \"date_range\" | \"ip_range\" | \"shape\" | \"integer\" | \"byte\" | \"float\" | \"half_float\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\"; }; operator: \"excluded\" | \"included\"; type: \"list\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; } | { field: string; operator: \"excluded\" | \"included\"; type: \"wildcard\"; value: string; } | { entries: ({ field: string; operator: \"excluded\" | \"included\"; type: \"exists\"; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match\"; value: string; } | { field: string; operator: \"excluded\" | \"included\"; type: \"match_any\"; value: string[]; })[]; field: string; type: \"nested\"; })[]; list_id: string; name: string; type: \"simple\"; } & { comments?: { comment: string; }[] | undefined; item_id?: string | undefined; meta?: object | undefined; namespace_type?: \"single\" | \"agnostic\" | undefined; os_types?: (\"windows\" | \"linux\" | \"macos\")[] | undefined; tags?: string[] | undefined; }))[]"
- ],
- "source": {
- "path": "x-pack/plugins/lists/common/exceptions/build_exceptions_filter.ts",
- "lineNumber": 74
- },
- "deprecated": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-common.buildExceptionFilter.$1.listsexcludeExceptionschunkSize.excludeExceptions",
- "type": "boolean",
- "tags": [],
- "label": "excludeExceptions",
- "description": [],
- "source": {
- "path": "x-pack/plugins/lists/common/exceptions/build_exceptions_filter.ts",
- "lineNumber": 75
- },
- "deprecated": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-common.buildExceptionFilter.$1.listsexcludeExceptionschunkSize.chunkSize",
- "type": "number",
- "tags": [],
- "label": "chunkSize",
- "description": [],
- "source": {
- "path": "x-pack/plugins/lists/common/exceptions/build_exceptions_filter.ts",
- "lineNumber": 76
- },
- "deprecated": false
- }
- ]
- }
- ],
- "returnComment": [],
- "initialIsOpen": false
- }
- ],
+ "functions": [],
"interfaces": [],
"enums": [],
- "misc": [
- {
- "parentPluginId": "lists",
- "id": "def-common.ENDPOINT_EVENT_FILTERS_LIST_DESCRIPTION",
- "type": "string",
- "tags": [],
- "label": "ENDPOINT_EVENT_FILTERS_LIST_DESCRIPTION",
- "description": [
- "Description of event filters agnostic list"
- ],
- "signature": [
- "\"Endpoint Security Event Filters List\""
- ],
- "source": {
- "path": "x-pack/plugins/lists/common/constants.ts",
- "lineNumber": 71
- },
- "deprecated": false,
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-common.ENDPOINT_EVENT_FILTERS_LIST_ID",
- "type": "string",
- "tags": [],
- "label": "ENDPOINT_EVENT_FILTERS_LIST_ID",
- "description": [
- "ID of event filters agnostic list"
- ],
- "signature": [
- "\"endpoint_event_filters\""
- ],
- "source": {
- "path": "x-pack/plugins/lists/common/constants.ts",
- "lineNumber": 65
- },
- "deprecated": false,
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-common.ENDPOINT_EVENT_FILTERS_LIST_NAME",
- "type": "string",
- "tags": [],
- "label": "ENDPOINT_EVENT_FILTERS_LIST_NAME",
- "description": [
- "Name of event filters agnostic list"
- ],
- "signature": [
- "\"Endpoint Security Event Filters List\""
- ],
- "source": {
- "path": "x-pack/plugins/lists/common/constants.ts",
- "lineNumber": 68
- },
- "deprecated": false,
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-common.ENDPOINT_LIST_ID",
- "type": "string",
- "tags": [],
- "label": "ENDPOINT_LIST_ID",
- "description": [
- "\nThis ID is used for _both_ the Saved Object ID and for the list_id\nfor the single global space agnostic endpoint list"
- ],
- "signature": [
- "\"endpoint_list\""
- ],
- "source": {
- "path": "x-pack/plugins/lists/common/constants.ts",
- "lineNumber": 45
- },
- "deprecated": false,
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-common.ENDPOINT_TRUSTED_APPS_LIST_ID",
- "type": "string",
- "tags": [],
- "label": "ENDPOINT_TRUSTED_APPS_LIST_ID",
- "description": [
- "ID of trusted apps agnostic list"
- ],
- "signature": [
- "\"endpoint_trusted_apps\""
- ],
- "source": {
- "path": "x-pack/plugins/lists/common/constants.ts",
- "lineNumber": 56
- },
- "deprecated": false,
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-common.EXCEPTION_LIST_ITEM_URL",
- "type": "string",
- "tags": [],
- "label": "EXCEPTION_LIST_ITEM_URL",
- "description": [],
- "signature": [
- "\"/api/exception_lists/items\""
- ],
- "source": {
- "path": "x-pack/plugins/lists/common/constants.ts",
- "lineNumber": 20
- },
- "deprecated": false,
- "initialIsOpen": false
- },
- {
- "parentPluginId": "lists",
- "id": "def-common.EXCEPTION_LIST_URL",
- "type": "string",
- "tags": [],
- "label": "EXCEPTION_LIST_URL",
- "description": [
- "\nException list routes"
- ],
- "signature": [
- "\"/api/exception_lists\""
- ],
- "source": {
- "path": "x-pack/plugins/lists/common/constants.ts",
- "lineNumber": 19
- },
- "deprecated": false,
- "initialIsOpen": false
- }
- ],
+ "misc": [],
"objects": []
}
}
\ No newline at end of file
diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx
index 1fe986ef4a06b..8ef77a85fb548 100644
--- a/api_docs/lists.mdx
+++ b/api_docs/lists.mdx
@@ -22,15 +22,9 @@ import listsObj from './lists.json';
### Objects
-### Functions
-
-
### Classes
-### Interfaces
-
-
## Server
### Classes
@@ -39,11 +33,3 @@ import listsObj from './lists.json';
### Interfaces
-## Common
-
-### Functions
-
-
-### Consts, variables and types
-
-
diff --git a/api_docs/management.json b/api_docs/management.json
index 2a3bb7e3cb1eb..41801e2f2bafc 100644
--- a/api_docs/management.json
+++ b/api_docs/management.json
@@ -22,7 +22,7 @@
],
"source": {
"path": "src/plugins/management/public/utils/management_app.ts",
- "lineNumber": 19
+ "lineNumber": 18
},
"deprecated": false,
"children": [
@@ -50,7 +50,7 @@
],
"source": {
"path": "src/plugins/management/public/utils/management_app.ts",
- "lineNumber": 20
+ "lineNumber": 19
},
"deprecated": false,
"returnComment": [],
@@ -88,29 +88,23 @@
"description": [],
"source": {
"path": "src/plugins/management/public/utils/management_app.ts",
- "lineNumber": 21
+ "lineNumber": 20
},
"deprecated": false
},
{
"parentPluginId": "management",
- "id": "def-public.ManagementApp.meta",
- "type": "Object",
+ "id": "def-public.ManagementApp.keywords",
+ "type": "Array",
"tags": [],
- "label": "meta",
+ "label": "keywords",
"description": [],
"signature": [
- {
- "pluginId": "core",
- "scope": "public",
- "docId": "kibCoreApplicationPluginApi",
- "section": "def-public.AppMeta",
- "text": "AppMeta"
- }
+ "string[]"
],
"source": {
"path": "src/plugins/management/public/utils/management_app.ts",
- "lineNumber": 22
+ "lineNumber": 21
},
"deprecated": false
},
@@ -126,7 +120,7 @@
],
"source": {
"path": "src/plugins/management/public/utils/management_app.ts",
- "lineNumber": 24
+ "lineNumber": 23
},
"deprecated": false,
"children": [
@@ -148,7 +142,7 @@
],
"source": {
"path": "src/plugins/management/public/utils/management_app.ts",
- "lineNumber": 24
+ "lineNumber": 23
},
"deprecated": false,
"isRequired": true
@@ -260,7 +254,7 @@
"section": "def-public.RegisterManagementAppArgs",
"text": "RegisterManagementAppArgs"
},
- ", \"title\" | \"id\" | \"meta\" | \"order\" | \"mount\" | \"euiIconType\" | \"icon\" | \"tip\">) => ",
+ ", \"title\" | \"id\" | \"order\" | \"mount\" | \"keywords\" | \"euiIconType\" | \"icon\" | \"tip\">) => ",
{
"pluginId": "management",
"scope": "public",
@@ -291,7 +285,7 @@
"section": "def-public.RegisterManagementAppArgs",
"text": "RegisterManagementAppArgs"
},
- ", \"title\" | \"id\" | \"meta\" | \"order\" | \"mount\" | \"euiIconType\" | \"icon\" | \"tip\">"
+ ", \"title\" | \"id\" | \"order\" | \"mount\" | \"keywords\" | \"euiIconType\" | \"icon\" | \"tip\">"
],
"source": {
"path": "src/plugins/management/public/utils/management_section.ts",
@@ -653,7 +647,7 @@
],
"source": {
"path": "src/plugins/management/public/utils/management_app.ts",
- "lineNumber": 13
+ "lineNumber": 12
},
"deprecated": false,
"children": [
@@ -681,7 +675,7 @@
],
"source": {
"path": "src/plugins/management/public/utils/management_app.ts",
- "lineNumber": 14
+ "lineNumber": 13
},
"deprecated": false,
"returnComment": [],
@@ -719,30 +713,23 @@
"description": [],
"source": {
"path": "src/plugins/management/public/utils/management_app.ts",
- "lineNumber": 15
+ "lineNumber": 14
},
"deprecated": false
},
{
"parentPluginId": "management",
- "id": "def-public.RegisterManagementAppArgs.meta",
- "type": "Object",
+ "id": "def-public.RegisterManagementAppArgs.keywords",
+ "type": "Array",
"tags": [],
- "label": "meta",
+ "label": "keywords",
"description": [],
"signature": [
- {
- "pluginId": "core",
- "scope": "public",
- "docId": "kibCoreApplicationPluginApi",
- "section": "def-public.AppMeta",
- "text": "AppMeta"
- },
- " | undefined"
+ "string[] | undefined"
],
"source": {
"path": "src/plugins/management/public/utils/management_app.ts",
- "lineNumber": 16
+ "lineNumber": 15
},
"deprecated": false
}
diff --git a/api_docs/ml.json b/api_docs/ml.json
index 51a5608578026..dee66858b9be9 100644
--- a/api_docs/ml.json
+++ b/api_docs/ml.json
@@ -1320,7 +1320,7 @@
},
" extends Pick<",
"UseDataGridReturnType",
- ", \"status\" | \"errorMessage\" | \"baseline\" | \"pagination\" | \"chartsVisible\" | \"chartsButtonVisible\" | \"ccsWarning\" | \"columnsWithCharts\" | \"invalidSortingColumnns\" | \"noDataMessage\" | \"onChangeItemsPerPage\" | \"onChangePage\" | \"onSort\" | \"setPagination\" | \"setVisibleColumns\" | \"rowCount\" | \"rowCountRelation\" | \"sortingColumns\" | \"tableItems\" | \"toggleChartVisibility\" | \"visibleColumns\" | \"predictionFieldName\" | \"resultsField\">"
+ ", \"status\" | \"errorMessage\" | \"baseline\" | \"chartsVisible\" | \"chartsButtonVisible\" | \"ccsWarning\" | \"columnsWithCharts\" | \"invalidSortingColumnns\" | \"noDataMessage\" | \"onChangeItemsPerPage\" | \"onChangePage\" | \"onSort\" | \"pagination\" | \"setPagination\" | \"setVisibleColumns\" | \"rowCount\" | \"rowCountRelation\" | \"sortingColumns\" | \"tableItems\" | \"toggleChartVisibility\" | \"visibleColumns\" | \"predictionFieldName\" | \"resultsField\">"
],
"source": {
"path": "x-pack/plugins/ml/public/application/components/data_grid/types.ts",
diff --git a/api_docs/saved_objects.json b/api_docs/saved_objects.json
index 566e0e9a14ae9..48579ca8e589e 100644
--- a/api_docs/saved_objects.json
+++ b/api_docs/saved_objects.json
@@ -680,20 +680,6 @@
},
"deprecated": true,
"references": [
- {
- "plugin": "visualizations",
- "link": {
- "path": "src/plugins/visualizations/public/saved_visualizations/find_list_items.ts",
- "lineNumber": 16
- }
- },
- {
- "plugin": "visualizations",
- "link": {
- "path": "src/plugins/visualizations/public/saved_visualizations/find_list_items.ts",
- "lineNumber": 35
- }
- },
{
"plugin": "discover",
"link": {
@@ -722,6 +708,20 @@
"lineNumber": 88
}
},
+ {
+ "plugin": "visualizations",
+ "link": {
+ "path": "src/plugins/visualizations/public/saved_visualizations/find_list_items.ts",
+ "lineNumber": 16
+ }
+ },
+ {
+ "plugin": "visualizations",
+ "link": {
+ "path": "src/plugins/visualizations/public/saved_visualizations/find_list_items.ts",
+ "lineNumber": 35
+ }
+ },
{
"plugin": "visualizations",
"link": {
@@ -2569,31 +2569,31 @@
}
},
{
- "plugin": "visualizations",
+ "plugin": "discover",
"link": {
- "path": "src/plugins/visualizations/public/types.ts",
+ "path": "src/plugins/discover/public/saved_searches/_saved_search.ts",
"lineNumber": 9
}
},
{
- "plugin": "visualizations",
+ "plugin": "discover",
"link": {
- "path": "src/plugins/visualizations/public/types.ts",
- "lineNumber": 41
+ "path": "src/plugins/discover/public/saved_searches/_saved_search.ts",
+ "lineNumber": 61
}
},
{
- "plugin": "discover",
+ "plugin": "visualizations",
"link": {
- "path": "src/plugins/discover/public/saved_searches/_saved_search.ts",
+ "path": "src/plugins/visualizations/public/types.ts",
"lineNumber": 9
}
},
{
- "plugin": "discover",
+ "plugin": "visualizations",
"link": {
- "path": "src/plugins/discover/public/saved_searches/_saved_search.ts",
- "lineNumber": 61
+ "path": "src/plugins/visualizations/public/types.ts",
+ "lineNumber": 41
}
},
{
diff --git a/api_docs/security.json b/api_docs/security.json
index 6cc84bc75f009..7e28ad2a222bb 100644
--- a/api_docs/security.json
+++ b/api_docs/security.json
@@ -1306,13 +1306,6 @@
"lineNumber": 444
}
},
- {
- "plugin": "cases",
- "link": {
- "path": "x-pack/plugins/cases/server/plugin.ts",
- "lineNumber": 89
- }
- },
{
"plugin": "ml",
"link": {
@@ -1321,52 +1314,52 @@
}
},
{
- "plugin": "securitySolution",
+ "plugin": "cases",
"link": {
- "path": "x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/create_signals_migration_route.ts",
- "lineNumber": 48
+ "path": "x-pack/plugins/cases/server/plugin.ts",
+ "lineNumber": 89
}
},
{
- "plugin": "securitySolution",
+ "plugin": "dashboardMode",
"link": {
- "path": "x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/delete_signals_migration_route.ts",
- "lineNumber": 45
+ "path": "x-pack/plugins/dashboard_mode/server/interceptors/dashboard_mode_request_interceptor.ts",
+ "lineNumber": 33
}
},
{
- "plugin": "securitySolution",
+ "plugin": "dataEnhanced",
"link": {
- "path": "x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/finalize_signals_migration_route.ts",
- "lineNumber": 45
+ "path": "x-pack/plugins/data_enhanced/server/search/session/session_service.ts",
+ "lineNumber": 448
}
},
{
- "plugin": "beatsManagement",
+ "plugin": "logstash",
"link": {
- "path": "x-pack/plugins/beats_management/server/lib/adapters/framework/kibana_framework_adapter.ts",
- "lineNumber": 44
+ "path": "x-pack/plugins/logstash/server/routes/pipeline/save.ts",
+ "lineNumber": 41
}
},
{
- "plugin": "dashboardMode",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/dashboard_mode/server/interceptors/dashboard_mode_request_interceptor.ts",
- "lineNumber": 33
+ "path": "x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/create_signals_migration_route.ts",
+ "lineNumber": 48
}
},
{
- "plugin": "dataEnhanced",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/data_enhanced/server/search/session/session_service.ts",
- "lineNumber": 448
+ "path": "x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/delete_signals_migration_route.ts",
+ "lineNumber": 45
}
},
{
- "plugin": "logstash",
+ "plugin": "securitySolution",
"link": {
- "path": "x-pack/plugins/logstash/server/routes/pipeline/save.ts",
- "lineNumber": 41
+ "path": "x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/finalize_signals_migration_route.ts",
+ "lineNumber": 45
}
},
{
diff --git a/api_docs/spaces.json b/api_docs/spaces.json
index aa4e651b9477b..5225e8cebbeb5 100644
--- a/api_docs/spaces.json
+++ b/api_docs/spaces.json
@@ -1213,13 +1213,6 @@
"lineNumber": 271
}
},
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/server/plugin.ts",
- "lineNumber": 194
- }
- },
{
"plugin": "apm",
"link": {
@@ -1248,6 +1241,13 @@
"lineNumber": 153
}
},
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/server/plugin.ts",
+ "lineNumber": 194
+ }
+ },
{
"plugin": "security",
"link": {
@@ -2047,13 +2047,6 @@
"lineNumber": 303
}
},
- {
- "plugin": "securitySolution",
- "link": {
- "path": "x-pack/plugins/security_solution/server/plugin.ts",
- "lineNumber": 194
- }
- },
{
"plugin": "apm",
"link": {
@@ -2088,6 +2081,13 @@
"path": "x-pack/plugins/infra/server/plugin.ts",
"lineNumber": 153
}
+ },
+ {
+ "plugin": "securitySolution",
+ "link": {
+ "path": "x-pack/plugins/security_solution/server/plugin.ts",
+ "lineNumber": 194
+ }
}
]
},
diff --git a/docs/developer/plugin-list.asciidoc b/docs/developer/plugin-list.asciidoc
index 94384024e0935..087626240ff33 100644
--- a/docs/developer/plugin-list.asciidoc
+++ b/docs/developer/plugin-list.asciidoc
@@ -332,11 +332,6 @@ which will load the visualization's editor.
|Allow to add a header banner that will be displayed on every page of the Kibana application
-|{kib-repo}blob/{branch}/x-pack/plugins/beats_management/readme.md[beatsManagement]
-|Notes:
-Failure to have auth enabled in Kibana will make for a broken UI. UI-based errors not yet in place
-
-
|{kib-repo}blob/{branch}/x-pack/plugins/canvas/README.md[canvas]
|"Never look back. The past is done. The future is a blank canvas." ― Suzy Kassem, Rise Up and Salute the Sun
diff --git a/docs/management/managing-beats.asciidoc b/docs/management/managing-beats.asciidoc
deleted file mode 100644
index 232efb60cadd3..0000000000000
--- a/docs/management/managing-beats.asciidoc
+++ /dev/null
@@ -1,108 +0,0 @@
-[[managing-beats]]
-[role="xpack"]
-== {beats} Central Management
-
-include::{asciidoc-dir}/../../shared/discontinued.asciidoc[tag=cm-discontinued]
-
-To use {beats} Central Management, open the main menu, click *Stack Management >
-{beats} Central Management*, then define and
-manage configurations in a central location in {kib} and quickly deploy
-configuration changes to all {beats} running across your enterprise. For more
-about central management, see the related {beats} documentation:
-
-* {filebeat-ref}/configuration-central-management.html[{filebeat} documentation]
-* {metricbeat-ref}/configuration-central-management.html[{metricbeat} documentation]
-
-[NOTE]
-====
-This feature requires an Elastic license that includes {beats} central
-management.
-
-Don't have a license? You can start a 30-day trial. Open the main menu, then
-click *Stack Management > License Management*. At the end of the trial
-period, you can purchase a subscription to keep using central management. For
-more information, see https://www.elastic.co/subscriptions and
-<>.
-====
-
-{kib} makes it easy for you to use central management by walking you through the
-enrollment and configuration process step by step the first time you use the
-Central Management UI.
-
-[float]
-=== Required permissions
-
-You must have the `beats_admin` role assigned to use **{beats} Central Management**
-
-To assign the role, open the menu, then click *Stack Management > Users*.
-
-
-[float]
-=== Enroll {beats}
-
-You need to enroll {beats} to register them in central management and establish
-trust. Enrolled {beats} will have the credentials needed to retrieve
-configurations from {kib}.
-
-[float]
-=== Create configuration tags
-
-A _configuration tag_ is a group of configuration blocks that you can apply to
-one or more {beats}. For example, you can create a tag called `development` to
-group configurations for {beats} running in your development environment.
-
-The first time you walk through the enrollment process, you'll create a
-configuration tag that's applied to the {beats} instance you're enrolling.
-
-After that, under *Configuration tags*, you can create additional tags and
-apply them to any enrolled {beats}, and the {beats} will use the configurations
-defined in the tag.
-
-[float]
-=== Add configuration blocks
-
-Add one or more configuration blocks to the tag. A tag can have configuration
-blocks for different types of {beats}. When the enrolled {beats} run, they will
-use the configuration blocks that are valid for their type.
-
-Central management supports configuration settings for:
-
-* {filebeat} modules
-* {metricbeat} modules
-* {filebeat} inputs
-* {filebeat} and {metricbeat} outputs
-
-NOTE: Central management supports the following outputs only: {es}, {ls}, Kafka,
-and Redis. Other output types are not supported for {beats} that are enrolled in
-central management.
-
-Use the Central Management UI to define and manage settings for supported
-configuration blocks. You cannot define those settings in local {beats}
-configuration files. For configuration blocks that are not supported by central
-management, configure the settings in the local configuration file after
-enrolling the Beat in central management.
-
-[float]
-=== Manage enrolled {beats}
-
-Under *Enrolled {beats}*, you can view the list of enrolled {beats} to see
-details, including the type, applied tags, configuration status, and the last
-configuration update. Click the *Beat name* or *Type* column heading to sort the
-list. To filter the list, enter a search string. If there are errors in a
-configuration, you’ll see an Error status in the Central Management UI and need
-to look at {beats} logs to troubleshoot the problem.
-
-You can add or remove tags, and the configuration changes are automatically
-deployed to all {beats} that have the tag. Avoid applying tags with conflicting
-configurations. Because the configurations for all assigned tags are merged,
-conflicting configurations result in errors.
-
-You can unenroll {beats} to remove them from central management.
-
-[float]
-=== Manage tags
-
-Under *Configuration tags*, you can select tags and delete them, or you can
-drill down into a tag to add, modify, or remove configuration blocks from the
-tag. When you change the configuration blocks or remove tags, the configuration
-changes are automatically deployed to all {beats} that have the tag.
diff --git a/docs/user/management.asciidoc b/docs/user/management.asciidoc
index 397ab1717183b..c5fabb15dc4de 100644
--- a/docs/user/management.asciidoc
+++ b/docs/user/management.asciidoc
@@ -24,10 +24,6 @@ and enrichments on your data.
| {logstash-ref}/logstash-centralized-pipeline-management.html[Logstash Pipelines]
| Create, edit, and delete your Logstash pipeline configurations.
-| <>
-| Manage your Beats configurations in a central location and
-quickly deploy configuration changes to all Beats running across your enterprise.
-
|===
@@ -182,8 +178,6 @@ next major version of {es}, and then reindex, if needed.
include::{kib-repo-dir}/management/advanced-options.asciidoc[]
-include::{kib-repo-dir}/management/managing-beats.asciidoc[]
-
include::{kib-repo-dir}/management/action-types.asciidoc[]
include::{kib-repo-dir}/management/managing-licenses.asciidoc[]
diff --git a/packages/kbn-optimizer/limits.yml b/packages/kbn-optimizer/limits.yml
index 2e76c26dd7b38..c28fd83591960 100644
--- a/packages/kbn-optimizer/limits.yml
+++ b/packages/kbn-optimizer/limits.yml
@@ -3,7 +3,6 @@ pageLoadAssetSize:
alerting: 106936
apm: 64385
apmOss: 18996
- beatsManagement: 188135
bfetch: 41874
canvas: 1066647
charts: 195358
diff --git a/tsconfig.json b/tsconfig.json
index ceb03107076c2..37fc9ee05a29b 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -73,7 +73,6 @@
{ "path": "./x-pack/plugins/actions/tsconfig.json" },
{ "path": "./x-pack/plugins/alerting/tsconfig.json" },
{ "path": "./x-pack/plugins/apm/tsconfig.json" },
- { "path": "./x-pack/plugins/beats_management/tsconfig.json" },
{ "path": "./x-pack/plugins/canvas/tsconfig.json" },
{ "path": "./x-pack/plugins/cases/tsconfig.json" },
{ "path": "./x-pack/plugins/cloud/tsconfig.json" },
diff --git a/tsconfig.refs.json b/tsconfig.refs.json
index 7343165e4a4ad..1b8a76d601e38 100644
--- a/tsconfig.refs.json
+++ b/tsconfig.refs.json
@@ -58,7 +58,6 @@
{ "path": "./x-pack/plugins/actions/tsconfig.json" },
{ "path": "./x-pack/plugins/alerting/tsconfig.json" },
{ "path": "./x-pack/plugins/apm/tsconfig.json" },
- { "path": "./x-pack/plugins/beats_management/tsconfig.json" },
{ "path": "./x-pack/plugins/canvas/tsconfig.json" },
{ "path": "./x-pack/plugins/cases/tsconfig.json" },
{ "path": "./x-pack/plugins/cloud/tsconfig.json" },
diff --git a/x-pack/.i18nrc.json b/x-pack/.i18nrc.json
index 2db2f31ae09c3..b2c3a36ae3414 100644
--- a/x-pack/.i18nrc.json
+++ b/x-pack/.i18nrc.json
@@ -7,7 +7,6 @@
"xpack.eventLog": "plugins/event_log",
"xpack.stackAlerts": "plugins/stack_alerts",
"xpack.apm": "plugins/apm",
- "xpack.beatsManagement": "plugins/beats_management",
"xpack.canvas": "plugins/canvas",
"xpack.cases": "plugins/cases",
"xpack.cloud": "plugins/cloud",
diff --git a/x-pack/plugins/beats_management/common/config_schemas.ts b/x-pack/plugins/beats_management/common/config_schemas.ts
deleted file mode 100644
index 95330655a7796..0000000000000
--- a/x-pack/plugins/beats_management/common/config_schemas.ts
+++ /dev/null
@@ -1,384 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-// Note: importing this is a temp thing. This file will be replaced with JSON from Beats/ES at some point
-import { ConfigBlockSchema } from './domain_types';
-
-export const configBlockSchemas: ConfigBlockSchema[] = [
- {
- id: 'filebeat.inputs',
- name: 'Filebeat Input',
- version: 6.7,
- allowOtherConfigs: true,
- configs: [
- {
- id: 'paths',
- ui: {
- label: 'Paths',
- labelId: 'filebeatInputConfig.paths.ui.label',
- type: 'multi-input',
- helpText: 'filebeatInputConfig.paths.ui.helpText',
- helpTextId: 'filebeatInputConfig.paths.ui.helpText',
- placeholder: `first/path/to/file.json second/path/to/otherfile.json`,
- },
- validation: 'isPaths',
- error: 'filebeatInputConfig.paths.error',
- errorId: 'filebeatInputConfig.paths.error',
- required: true,
- },
- ],
- },
- {
- id: 'filebeat.modules',
- name: 'Filebeat Modules',
- version: 6.7,
- allowOtherConfigs: true,
- configs: [
- {
- id: '_sub_type',
- ui: {
- label: 'filebeatModuleConfig.module.ui.label',
- labelId: 'filebeatModuleConfig.module.ui.label',
- type: 'select',
- },
- options: [
- {
- value: 'apache2',
- text: 'apache2',
- },
- {
- value: 'auditd',
- text: 'auditd',
- },
- {
- value: 'elasticsearch',
- text: 'elasticsearch',
- },
- {
- value: 'haproxy',
- text: 'haproxy',
- },
- {
- value: 'icinga',
- text: 'icinga',
- },
- {
- value: 'iis',
- text: 'iis',
- },
- {
- value: 'kafka',
- text: 'kafka',
- },
- {
- value: 'kibana',
- text: 'kibana',
- },
- {
- value: 'logstash',
- text: 'logstash',
- },
- {
- value: 'mongodb',
- text: 'mongodb',
- },
- {
- value: 'mysql',
- text: 'mysql',
- },
- {
- value: 'nginx',
- text: 'nginx',
- },
- {
- value: 'osquery',
- text: 'osquery',
- },
- {
- value: 'postgresql',
- text: 'postgresql',
- },
- {
- value: 'redis',
- text: 'redis',
- },
- {
- value: 'system',
- text: 'system',
- },
- {
- value: 'traefik',
- text: 'traefik',
- },
- ],
- error: 'filebeatModuleConfig.module.error',
- errorId: 'filebeatModuleConfig.module.error',
- required: true,
- },
- ],
- },
- {
- id: 'metricbeat.modules',
- name: 'Metricbeat Modules',
- version: 6.7,
- allowOtherConfigs: true,
- configs: [
- {
- id: '_sub_type',
- ui: {
- label: 'metricbeatModuleConfig.module.ui.label',
- labelId: 'metricbeatModuleConfig.module.ui.label',
- type: 'select',
- },
- options: [
- {
- value: 'aerospike',
- text: 'aerospike',
- },
- {
- value: 'apache',
- text: 'apache',
- },
- {
- value: 'ceph',
- text: 'ceph',
- },
- {
- value: 'couchbase',
- text: 'couchbase',
- },
- {
- value: 'docker',
- text: 'docker',
- },
- {
- value: 'dropwizard',
- text: 'dropwizard',
- },
- {
- value: 'elasticsearch',
- text: 'elasticsearch',
- },
- {
- value: 'envoyproxy',
- text: 'envoyproxy',
- },
- {
- value: 'etcd',
- text: 'etcd',
- },
- {
- value: 'golang',
- text: 'golang',
- },
- {
- value: 'graphite',
- text: 'graphite',
- },
- {
- value: 'haproxy',
- text: 'haproxy',
- },
- {
- value: 'http',
- text: 'http',
- },
- {
- value: 'jolokia',
- text: 'jolokia',
- },
- {
- value: 'kafka',
- text: 'kafka',
- },
- {
- value: 'kibana',
- text: 'kibana',
- },
- {
- value: 'kubernetes',
- text: 'kubernetes',
- },
- {
- value: 'kvm',
- text: 'kvm',
- },
- {
- value: 'logstash',
- text: 'logstash',
- },
- {
- value: 'memcached',
- text: 'memcached',
- },
- {
- value: 'mongodb',
- text: 'mongodb',
- },
- {
- value: 'munin',
- text: 'munin',
- },
- {
- value: 'mysql',
- text: 'mysql',
- },
- {
- value: 'nginx',
- text: 'nginx',
- },
- {
- value: 'php_fpm',
- text: 'php_fpm',
- },
- {
- value: 'postgresql',
- text: 'postgresql',
- },
- {
- value: 'prometheus',
- text: 'prometheus',
- },
- {
- value: 'rabbitmq',
- text: 'rabbitmq',
- },
- {
- value: 'redis',
- text: 'redis',
- },
- {
- value: 'system',
- text: 'system',
- },
- {
- value: 'traefik',
- text: 'traefik',
- },
- {
- value: 'uwsgi',
- text: 'uwsgi',
- },
- {
- value: 'vsphere',
- text: 'vsphere',
- },
- {
- value: 'windows',
- text: 'windows',
- },
- {
- value: 'zookeeper',
- text: 'zookeeper',
- },
- ],
- error: 'metricbeatModuleConfig.module.error',
- errorId: 'metricbeatModuleConfig.module.error',
- required: true,
- },
- {
- id: 'hosts',
- ui: {
- label: 'metricbeatModuleConfig.hosts.ui.label',
- labelId: 'metricbeatModuleConfig.hosts.ui.label',
- type: 'multi-input',
- helpText: 'metricbeatModuleConfig.hosts.ui.helpText',
- helpTextId: 'metricbeatModuleConfig.hosts.ui.helpText',
- placeholder: `somehost.local otherhost.local`,
- },
- validation: 'isHosts',
- error: 'metricbeatModuleConfig.hosts.error',
- errorId: 'metricbeatModuleConfig.hosts.error',
- required: false,
- },
- {
- id: 'period',
- ui: {
- label: 'metricbeatModuleConfig.period.ui.label',
- labelId: 'metricbeatModuleConfig.period.ui.label',
- type: 'input',
- },
- defaultValue: '10s',
- validation: 'isPeriod',
- error: 'metricbeatModuleConfig.period.error',
- errorId: 'metricbeatModuleConfig.period.error',
- required: true,
- },
- ],
- },
- {
- id: 'output',
- name: 'Outputs',
- allowOtherConfigs: true,
- version: 6.7,
- configs: [
- {
- id: '_sub_type',
- ui: {
- label: 'outputConfig.output.ui.label',
- labelId: 'outputConfig.output.ui.label',
- type: 'select',
- },
- options: [
- {
- value: 'elasticsearch',
- text: 'Elasticsearch',
- },
- {
- value: 'logstash',
- text: 'Logstash',
- },
- {
- value: 'kafka',
- text: 'Kafka',
- },
- {
- value: 'redis',
- text: 'Redis',
- },
- ],
- error: 'outputConfig.output.error',
- errorId: 'outputConfig.output.error',
- required: true,
- },
- {
- id: 'hosts',
- ui: {
- label: 'outputConfig.hosts.ui.label',
- labelId: 'outputConfig.hosts.ui.label',
- type: 'multi-input',
- },
- validation: 'isHosts',
- error: 'outputConfig.hosts.error',
- errorId: 'outputConfig.hosts.error',
- parseValidResult: (v) => v.split('\n'),
- },
- {
- id: 'username',
- ui: {
- label: 'outputConfig.username.ui.label',
- labelId: 'outputConfig.username.ui.label',
- type: 'input',
- },
- validation: 'isString',
- error: 'outputConfig.username.error',
- errorId: 'outputConfig.username.error',
- },
- {
- id: 'password',
- ui: {
- label: 'outputConfig.password.ui.label',
- labelId: 'outputConfig.password.ui.label',
- type: 'password',
- },
- validation: 'isString',
- error: 'outputConfig.password.error',
- errorId: 'outputConfig.password.error',
- },
- ],
- },
-];
diff --git a/x-pack/plugins/beats_management/common/config_schemas_translations_map.ts b/x-pack/plugins/beats_management/common/config_schemas_translations_map.ts
deleted file mode 100644
index ca2d48998ee06..0000000000000
--- a/x-pack/plugins/beats_management/common/config_schemas_translations_map.ts
+++ /dev/null
@@ -1,243 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { i18n } from '@kbn/i18n';
-import { ConfigBlockSchema } from './domain_types';
-
-const supportedConfigLabelsMap = new Map([
- [
- 'filebeatInputConfig.paths.ui.label',
- i18n.translate('xpack.beatsManagement.filebeatInputConfig.pathsLabel', {
- defaultMessage: 'Paths',
- }),
- ],
- [
- 'filebeatInputConfig.paths.ui.helpText',
- i18n.translate('xpack.beatsManagement.filebeatInputConfig.pathsDescription', {
- defaultMessage: 'Put each of the paths on a separate line',
- }),
- ],
- [
- 'filebeatInputConfig.paths.error',
- i18n.translate('xpack.beatsManagement.filebeatInputConfig.pathsErrorMessage', {
- defaultMessage: 'One file path per line',
- }),
- ],
- [
- 'filebeatInputConfig.other.ui.label',
- i18n.translate('xpack.beatsManagement.filebeatInputConfig.otherConfigLabel', {
- defaultMessage: 'Other Config',
- }),
- ],
- [
- 'filebeatInputConfig.other.ui.helpText',
- i18n.translate('xpack.beatsManagement.filebeatInputConfig.otherConfigDescription', {
- defaultMessage: 'Use YAML format to specify other settings for the Filebeat Input',
- }),
- ],
- [
- 'filebeatInputConfig.other.error',
- i18n.translate('xpack.beatsManagement.filebeatInputConfig.otherConfigErrorMessage', {
- defaultMessage: 'Use valid YAML format',
- }),
- ],
- [
- 'filebeatModuleConfig.module.ui.label',
- i18n.translate('xpack.beatsManagement.filebeatModuleConfig.moduleLabel', {
- defaultMessage: 'Module',
- }),
- ],
- [
- 'filebeatModuleConfig.module.error',
- i18n.translate('xpack.beatsManagement.filebeatModuleConfig.moduleErrorMessage', {
- defaultMessage: 'Please select a module',
- }),
- ],
- [
- 'filebeatModuleConfig.other.ui.label',
- i18n.translate('xpack.beatsManagement.filebeatModuleConfig.otherConfigLabel', {
- defaultMessage: 'Other Config',
- }),
- ],
- [
- 'filebeatModuleConfig.other.ui.helpText',
- i18n.translate('xpack.beatsManagement.filebeatModuleConfig.moduleDescription', {
- defaultMessage: 'Use YAML format to specify other settings for the Filebeat Module',
- }),
- ],
- [
- 'filebeatModuleConfig.other.error',
- i18n.translate('xpack.beatsManagement.filebeatModuleConfig.otherConfigErrorMessage', {
- defaultMessage: 'Use valid YAML format',
- }),
- ],
-
- [
- 'metricbeatModuleConfig.module.ui.label',
- i18n.translate('xpack.beatsManagement.metricbeatModuleConfig.moduleLabel', {
- defaultMessage: 'Module',
- }),
- ],
- [
- 'metricbeatModuleConfig.module.error',
- i18n.translate('xpack.beatsManagement.metricbeatModuleConfig.moduleErrorMessage', {
- defaultMessage: 'Please select a module',
- }),
- ],
- [
- 'metricbeatModuleConfig.hosts.ui.label',
- i18n.translate('xpack.beatsManagement.metricbeatModuleConfig.hostsLabel', {
- defaultMessage: 'Hosts',
- }),
- ],
- [
- 'metricbeatModuleConfig.hosts.ui.helpText',
- i18n.translate('xpack.beatsManagement.metricbeatModuleConfig.hostsDescription', {
- defaultMessage: 'Put each of the paths on a seperate line',
- }),
- ],
- [
- 'metricbeatModuleConfig.hosts.error',
- i18n.translate('xpack.beatsManagement.metricbeatModuleConfig.hostsErrorMessage', {
- defaultMessage: 'One file host per line',
- }),
- ],
- [
- 'metricbeatModuleConfig.period.ui.label',
- i18n.translate('xpack.beatsManagement.metricbeatModuleConfig.periodLabel', {
- defaultMessage: 'Period',
- }),
- ],
- [
- 'metricbeatModuleConfig.period.error',
- i18n.translate('xpack.beatsManagement.metricbeatModuleConfig.periodErrorMessage', {
- defaultMessage: 'Invalid Period, must be formatted as `10s` for 10 seconds',
- }),
- ],
- [
- 'metricbeatModuleConfig.other.ui.label',
- i18n.translate('xpack.beatsManagement.metricbeatModuleConfig.otherConfigLabel', {
- defaultMessage: 'Other Config',
- }),
- ],
- [
- 'metricbeatModuleConfig.other.ui.helpText',
- i18n.translate('xpack.beatsManagement.metricbeatModuleConfig.otherConfigDescription', {
- defaultMessage: 'Use YAML format to specify other settings for the Metricbeat Module',
- }),
- ],
- [
- 'metricbeatModuleConfig.other.error',
- i18n.translate('xpack.beatsManagement.metricbeatModuleConfig.otherConfigErrorMessage', {
- defaultMessage: 'Use valid YAML format',
- }),
- ],
-
- [
- 'outputConfig.output.ui.label',
- i18n.translate('xpack.beatsManagement.outputConfig.outputTypeLabel', {
- defaultMessage: 'Output Type',
- }),
- ],
- [
- 'outputConfig.output.error',
- i18n.translate('xpack.beatsManagement.outputConfig.outputTypeErrorMessage', {
- defaultMessage: 'Please select an output type',
- }),
- ],
- [
- 'outputConfig.hosts.ui.label',
- i18n.translate('xpack.beatsManagement.outputConfig.hostsLabel', {
- defaultMessage: 'Hosts',
- }),
- ],
- [
- 'outputConfig.hosts.error',
- i18n.translate('xpack.beatsManagement.outputConfig.hostsErrorMessage', {
- defaultMessage: 'One file host per line',
- }),
- ],
- [
- 'outputConfig.username.ui.label',
- i18n.translate('xpack.beatsManagement.outputConfig.usernameLabel', {
- defaultMessage: 'Username',
- }),
- ],
- [
- 'outputConfig.username.error',
- i18n.translate('xpack.beatsManagement.outputConfig.usernameErrorMessage', {
- defaultMessage: 'Unprocessable username',
- }),
- ],
- [
- 'outputConfig.password.ui.label',
- i18n.translate('xpack.beatsManagement.outputConfig.passwordLabel', {
- defaultMessage: 'Password',
- }),
- ],
- [
- 'outputConfig.password.error',
- i18n.translate('xpack.beatsManagement.outputConfig.passwordErrorMessage', {
- defaultMessage: 'Unprocessable password',
- }),
- ],
-
- [
- 'supportedConfigs.filebeat.input.text',
- i18n.translate('xpack.beatsManagement.tagConfig.filebeatInputLabel', {
- defaultMessage: 'Filebeat Input',
- }),
- ],
- [
- 'supportedConfigs.filebeat.modules.text',
- i18n.translate('xpack.beatsManagement.tagConfig.filebeatModuleLabel', {
- defaultMessage: 'Filebeat Module',
- }),
- ],
- [
- 'supportedConfigs.metricbeatModule.text',
- i18n.translate('xpack.beatsManagement.tagConfig.metricbeatModuleLabel', {
- defaultMessage: 'Metricbeat Module',
- }),
- ],
- [
- 'supportedConfigs.output.text',
- i18n.translate('xpack.beatsManagement.tagConfig.outputLabel', {
- defaultMessage: 'Output',
- }),
- ],
-]);
-
-export let translatedConfigs: ConfigBlockSchema[];
-export const translateConfigSchema = (schemas: ConfigBlockSchema[]) => {
- if (translatedConfigs) {
- return translatedConfigs;
- }
-
- translatedConfigs = schemas.map((schema) => {
- schema.name = supportedConfigLabelsMap.get(`supportedConfigs.${schema.id}.text`) || schema.name;
-
- schema.configs = schema.configs.map((configBlock) => {
- if (configBlock.ui.label) {
- configBlock.ui.label =
- supportedConfigLabelsMap.get(configBlock.ui.labelId || '') || configBlock.ui.label;
- }
- if (configBlock.ui.helpText) {
- configBlock.ui.helpText =
- supportedConfigLabelsMap.get(configBlock.ui.helpTextId || '') || configBlock.ui.helpText;
- }
- if (configBlock.error) {
- configBlock.error =
- supportedConfigLabelsMap.get(configBlock.errorId || '') || configBlock.error;
- }
- return configBlock;
- });
- return schema;
- });
-
- return translatedConfigs;
-};
diff --git a/x-pack/plugins/beats_management/common/constants/configuration_blocks.ts b/x-pack/plugins/beats_management/common/constants/configuration_blocks.ts
deleted file mode 100644
index 7f0a1442a374e..0000000000000
--- a/x-pack/plugins/beats_management/common/constants/configuration_blocks.ts
+++ /dev/null
@@ -1,8 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-export const UNIQUENESS_ENFORCING_TYPES = ['output'];
diff --git a/x-pack/plugins/beats_management/common/constants/index.ts b/x-pack/plugins/beats_management/common/constants/index.ts
deleted file mode 100644
index ac4f89b639c22..0000000000000
--- a/x-pack/plugins/beats_management/common/constants/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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-export { UNIQUENESS_ENFORCING_TYPES } from './configuration_blocks';
-export { INDEX_NAMES } from './index_names';
-export { PLUGIN, MANAGEMENT_SECTION } from './plugin';
-export { LICENSES, REQUIRED_LICENSES, REQUIRED_ROLES } from './security';
-export { TABLE_CONFIG } from './table';
-export const BASE_PATH = '/management/ingest/beats_management';
diff --git a/x-pack/plugins/beats_management/common/constants/index_names.ts b/x-pack/plugins/beats_management/common/constants/index_names.ts
deleted file mode 100644
index f0a00c5ca2891..0000000000000
--- a/x-pack/plugins/beats_management/common/constants/index_names.ts
+++ /dev/null
@@ -1,16 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-export const INDEX_NAMES = {
- BEATS: '.management-beats',
- EVENTS: '.management-beats-events-*',
- EVENTS_ALIAS: '.management-beats-events',
-};
-
-export const POLICY_NAMES = {
- EVENTS: '.beats-management-events-retention',
-};
diff --git a/x-pack/plugins/beats_management/common/constants/plugin.ts b/x-pack/plugins/beats_management/common/constants/plugin.ts
deleted file mode 100644
index 912bc75b98f60..0000000000000
--- a/x-pack/plugins/beats_management/common/constants/plugin.ts
+++ /dev/null
@@ -1,12 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-export const PLUGIN = {
- ID: 'beats_management',
-};
-export const CONFIG_PREFIX = 'xpack.beats';
-export const MANAGEMENT_SECTION = 'beats_management';
diff --git a/x-pack/plugins/beats_management/common/constants/security.ts b/x-pack/plugins/beats_management/common/constants/security.ts
deleted file mode 100644
index af4ef129f54b4..0000000000000
--- a/x-pack/plugins/beats_management/common/constants/security.ts
+++ /dev/null
@@ -1,18 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-export const REQUIRED_ROLES = ['beats_admin'];
-export const REQUIRED_LICENSES = ['standard', 'gold', 'trial', 'platinum', 'enterprise'];
-export const LICENSES = ['oss', 'basic', 'standard', 'gold', 'trial', 'platinum', 'enterprise'];
-export type LicenseType =
- | 'oss'
- | 'basic'
- | 'trial'
- | 'standard'
- | 'gold'
- | 'platinum'
- | 'enterprise';
diff --git a/x-pack/plugins/beats_management/common/constants/table.ts b/x-pack/plugins/beats_management/common/constants/table.ts
deleted file mode 100644
index 54751c29cd35a..0000000000000
--- a/x-pack/plugins/beats_management/common/constants/table.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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-export const TABLE_CONFIG = {
- INITIAL_ROW_SIZE: 5,
- PAGE_SIZE_OPTIONS: [3, 5, 10, 20],
- TRUNCATE_TAG_LENGTH: 33,
- TRUNCATE_TAG_LENGTH_SMALL: 20,
-};
diff --git a/x-pack/plugins/beats_management/common/domain_types.ts b/x-pack/plugins/beats_management/common/domain_types.ts
deleted file mode 100644
index f7efb77f0dc39..0000000000000
--- a/x-pack/plugins/beats_management/common/domain_types.ts
+++ /dev/null
@@ -1,136 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import * as t from 'io-ts';
-import { configBlockSchemas } from './config_schemas';
-import { DateFromString } from './io_ts_types';
-
-// Here we create the runtime check for a generic, unknown beat config type.
-// We can also pass in optional params to create spacific runtime checks that
-// can be used to validate blocs on the API and UI
-export const createConfigurationBlockInterface = (
- configType: t.LiteralType | t.KeyofC> = t.keyof(
- Object.fromEntries(configBlockSchemas.map((s) => [s.id, null])) as Record
- ),
- beatConfigInterface: t.Mixed = t.Dictionary
-) =>
- t.interface(
- {
- id: t.union([t.undefined, t.string]),
- type: configType,
- description: t.union([t.undefined, t.string]),
- tag: t.string,
- config: beatConfigInterface,
- last_updated: t.union([t.undefined, t.number]),
- },
- 'ConfigBlock'
- );
-const BaseConfigurationBlock = createConfigurationBlockInterface();
-export interface ConfigurationBlock
- extends Pick<
- t.TypeOf,
- Exclude, 'id'>
- > {
- id: string;
-}
-
-export interface CMBeat {
- id: string;
- status?: BeatEvent;
- enrollment_token: string;
- active: boolean;
- access_token?: string;
- verified_on?: string;
- type: string;
- version?: string;
- host_ip: string;
- host_name: string;
- ephemeral_id?: string;
- last_checkin?: Date;
- event_rate?: string;
- local_configuration_yml?: string;
- tags: string[];
- central_configuration_yml?: string;
- metadata?: {};
- name?: string;
- last_updated: number;
-}
-
-export interface ConfigBlockSchema {
- id: string;
- name: string;
- version: number;
- allowOtherConfigs?: boolean;
- configs: BeatConfigSchema[];
-}
-
-export interface BeatConfigSchema {
- id: string;
- ui: {
- label: string;
- labelId?: string;
- type: 'input' | 'multi-input' | 'select' | 'code' | 'password';
- helpText?: string;
- helpTextId?: string;
- placeholder?: string;
- };
- options?: Array<{ value: string; text: string }>;
- validation?: 'isHosts' | 'isString' | 'isPeriod' | 'isPath' | 'isPaths' | 'isYaml';
- error: string;
- errorId: string;
- defaultValue?: string;
- required?: boolean;
- parseValidResult?: (value: any) => any;
-}
-
-export const RuntimeBeatTag = t.interface(
- {
- id: t.union([t.undefined, t.string]),
- name: t.string,
- color: t.string,
- hasConfigurationBlocksTypes: t.array(t.string),
- },
- 'CMBeat'
-);
-export interface BeatTag
- extends Pick<
- t.TypeOf,
- Exclude, 'id'>
- > {
- id: string;
- // Used by the UI and api when a tag exists but is an invalid option
- disabled?: boolean;
-}
-
-export const RuntimeBeatEvent = t.interface(
- {
- type: t.union([t.literal('STATE'), t.literal('ERROR')]),
- beat: t.union([t.undefined, t.string]),
- timestamp: DateFromString,
- event: t.type({
- type: t.union([
- t.literal('RUNNING'),
- t.literal('STARTING'),
- t.literal('IN_PROGRESS'),
- t.literal('CONFIG'),
- t.literal('FAILED'),
- t.literal('STOPPED'),
- ]),
- message: t.string,
- uuid: t.union([t.undefined, t.string]),
- }),
- },
- 'BeatEvent'
-);
-export interface BeatEvent
- extends Pick<
- t.TypeOf,
- Exclude, 'timestamp'>
- > {
- beat: string;
- timestamp: Date;
-}
diff --git a/x-pack/plugins/beats_management/common/index.ts b/x-pack/plugins/beats_management/common/index.ts
deleted file mode 100644
index a7dde2298054f..0000000000000
--- a/x-pack/plugins/beats_management/common/index.ts
+++ /dev/null
@@ -1,23 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { schema, TypeOf } from '@kbn/config-schema';
-
-const DEFAULT_ENROLLMENT_TOKENS_TTL_S = 10 * 60; // 10 minutes
-
-export const beatsManagementConfigSchema = schema.object({
- enabled: schema.boolean({ defaultValue: true }),
- defaultUserRoles: schema.arrayOf(schema.string(), { defaultValue: ['superuser'] }),
- encryptionKey: schema.string({ defaultValue: 'xpack_beats_default_encryptionKey' }),
- enrollmentTokensTtlInSeconds: schema.number({
- min: 1,
- max: 10 * 60 * 14, // No more then 2 weeks for security reasons,
- defaultValue: DEFAULT_ENROLLMENT_TOKENS_TTL_S,
- }),
-});
-
-export type BeatsManagementConfigType = TypeOf;
diff --git a/x-pack/plugins/beats_management/common/io_ts_types.ts b/x-pack/plugins/beats_management/common/io_ts_types.ts
deleted file mode 100644
index b1abd3d8b6b3b..0000000000000
--- a/x-pack/plugins/beats_management/common/io_ts_types.ts
+++ /dev/null
@@ -1,34 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import * as t from 'io-ts';
-import { isRight } from 'fp-ts/lib/Either';
-
-class DateFromStringType extends t.Type {
- public readonly _tag: 'DateFromISOStringType' = 'DateFromISOStringType';
- constructor() {
- super(
- 'DateFromString',
- (u): u is Date => u instanceof Date,
- (u, c) => {
- const validation = t.string.validate(u, c);
- if (!isRight(validation)) {
- return validation as any;
- } else {
- const s = validation.right;
- const d = new Date(s);
- return isNaN(d.getTime()) ? t.failure(s, c) : t.success(d);
- }
- },
- (a) => a.toISOString()
- );
- }
-}
-// eslint-disable-next-line
-export interface DateFromString extends DateFromStringType {}
-
-export const DateFromString: DateFromString = new DateFromStringType();
diff --git a/x-pack/plugins/beats_management/common/return_types.ts b/x-pack/plugins/beats_management/common/return_types.ts
deleted file mode 100644
index c498038d6a21d..0000000000000
--- a/x-pack/plugins/beats_management/common/return_types.ts
+++ /dev/null
@@ -1,106 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-export interface BaseReturnType {
- error?: {
- message: string;
- code?: number;
- };
- success: boolean;
-}
-
-export interface ReturnTypeCreate extends BaseReturnType {
- item: T;
- action: 'created';
-}
-
-export interface ReturnTypeUpdate extends BaseReturnType {
- item: T;
- action: 'updated';
-}
-
-export interface ReturnTypeBulkCreate extends BaseReturnType {
- results: Array<{
- item: T;
- success: boolean;
- action: 'created';
- error?: {
- message: string;
- code?: number;
- };
- }>;
-}
-
-export interface ReturnTypeBulkDelete extends BaseReturnType {
- results: Array<{
- success: boolean;
- action: 'deleted';
- error?: {
- message: string;
- code?: number;
- };
- }>;
-}
-
-// upsert
-export interface ReturnTypeUpsert extends BaseReturnType {
- item: T;
- action: 'created' | 'updated';
-}
-
-// upsert bulk
-export interface ReturnTypeBulkUpsert extends BaseReturnType {
- results: Array<{
- success: boolean;
- action: 'created' | 'updated';
- error?: {
- message: string;
- code?: number;
- };
- }>;
-}
-
-// list
-export interface ReturnTypeList extends BaseReturnType {
- list: T[];
- page: number;
- total: number;
-}
-
-// get
-export interface ReturnTypeGet extends BaseReturnType {
- item: T;
-}
-
-export interface ReturnTypeBulkGet extends BaseReturnType {
- items: T[];
-}
-
-// e.g.
-// {
-// result: {
-// username: { valid: true },
-// password: { valid: false, error: 'something' },
-// hosts: [
-// { valid: false }, { valid: true },
-// ]
-// }
-// }
-
-// bulk action -- e.g. assign tags to beats
-export interface ReturnTypeBulkAction extends BaseReturnType {
- results?: Array<{
- success: boolean;
- result?: {
- [key: string]: any;
- };
- error?: {
- message: string;
- code?: number;
- };
- }>;
-}
diff --git a/x-pack/plugins/beats_management/jest.config.js b/x-pack/plugins/beats_management/jest.config.js
deleted file mode 100644
index be07035045003..0000000000000
--- a/x-pack/plugins/beats_management/jest.config.js
+++ /dev/null
@@ -1,12 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-module.exports = {
- preset: '@kbn/test',
- rootDir: '../../..',
- roots: ['/x-pack/plugins/beats_management'],
-};
diff --git a/x-pack/plugins/beats_management/kibana.json b/x-pack/plugins/beats_management/kibana.json
deleted file mode 100644
index c1070eedf07a6..0000000000000
--- a/x-pack/plugins/beats_management/kibana.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "id": "beatsManagement",
- "configPath": ["xpack", "beats_management"],
- "ui": true,
- "server": true,
- "version": "kibana",
- "requiredPlugins": [
- "data",
- "licensing",
- "management",
- "features"
- ],
- "optionalPlugins": [
- "security"
- ]
-}
diff --git a/x-pack/plugins/beats_management/public/application.tsx b/x-pack/plugins/beats_management/public/application.tsx
deleted file mode 100644
index 5a9b0a768856e..0000000000000
--- a/x-pack/plugins/beats_management/public/application.tsx
+++ /dev/null
@@ -1,89 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import * as euiVars from '@elastic/eui/dist/eui_theme_light.json';
-import { i18n } from '@kbn/i18n';
-import { FormattedMessage } from '@kbn/i18n/react';
-import React from 'react';
-import ReactDOM from 'react-dom';
-import { Router } from 'react-router-dom';
-import { ThemeProvider } from 'styled-components';
-import { Provider as UnstatedProvider, Subscribe } from 'unstated';
-import { EuiCallOut, EuiLink, EuiSpacer } from '@elastic/eui';
-import { Background } from './components/layouts/background';
-import { BreadcrumbProvider } from './components/navigation/breadcrumb';
-import { Breadcrumb } from './components/navigation/breadcrumb/breadcrumb';
-import { BeatsContainer } from './containers/beats';
-import { TagsContainer } from './containers/tags';
-import { FrontendLibs } from './lib/types';
-import { AppRouter } from './router';
-import { services } from './kbn_services';
-import { ManagementAppMountParams } from '../../../../src/plugins/management/public';
-
-export const renderApp = ({ element, history }: ManagementAppMountParams, libs: FrontendLibs) => {
- ReactDOM.render(
-
-
-
-
-
-
- {(beats: BeatsContainer, tags: TagsContainer) => (
-
-
-
-
-
-
-
- ),
- }}
- />
-
-
-
-
-
- )}
-
-
-
-
-
- ,
- element
- );
-
- return () => {
- ReactDOM.unmountComponentAtNode(element);
- };
-};
diff --git a/x-pack/plugins/beats_management/public/bootstrap.tsx b/x-pack/plugins/beats_management/public/bootstrap.tsx
deleted file mode 100644
index b5bdd39fa0817..0000000000000
--- a/x-pack/plugins/beats_management/public/bootstrap.tsx
+++ /dev/null
@@ -1,69 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { FrontendLibs } from './lib/types';
-import { compose } from './lib/compose/kibana';
-
-import { setServices } from './kbn_services';
-import { ManagementSetup } from '../../../../src/plugins/management/public';
-import { SecurityPluginSetup } from '../../security/public';
-import { CoreSetup } from '../../../../src/core/public';
-import { DataPublicPluginStart } from '../../../../src/plugins/data/public';
-import { LicensingPluginSetup } from '../../licensing/public';
-import { BeatsManagementConfigType } from '../common';
-import { MANAGEMENT_SECTION } from '../common/constants';
-
-async function startApp(libs: FrontendLibs, core: CoreSetup) {
- const startServices = await core.getStartServices();
-
- if (startServices[0].http.anonymousPaths.isAnonymous(window.location.pathname)) {
- return;
- }
- // Can't run until the `start` lifecycle, so we wait for start services to resolve above before calling this.
- await libs.framework.waitUntilFrameworkReady();
-
- const capabilities = startServices[0].application.capabilities;
- const hasBeatsCapability = capabilities.management.ingest?.[MANAGEMENT_SECTION] ?? false;
-
- if (libs.framework.licenseIsAtLeast('standard') && hasBeatsCapability) {
- const mount = async (params: any) => {
- const [coreStart, pluginsStart] = await core.getStartServices();
- setServices(coreStart, pluginsStart, params);
- const { renderApp } = await import('./application');
- return renderApp(params, libs);
- };
-
- libs.framework.registerManagementUI(mount);
- }
-}
-
-interface SetupDeps {
- management: ManagementSetup;
- licensing: LicensingPluginSetup;
- security?: SecurityPluginSetup;
-}
-
-interface StartDeps {
- data: DataPublicPluginStart;
-}
-
-export const bootstrap = (
- core: CoreSetup,
- plugins: SetupDeps,
- config: BeatsManagementConfigType,
- version: string
-) => {
- startApp(
- compose({
- core,
- config,
- version,
- ...plugins,
- }),
- core
- );
-};
diff --git a/x-pack/plugins/beats_management/public/components/autocomplete_field/index.tsx b/x-pack/plugins/beats_management/public/components/autocomplete_field/index.tsx
deleted file mode 100644
index 320296274e262..0000000000000
--- a/x-pack/plugins/beats_management/public/components/autocomplete_field/index.tsx
+++ /dev/null
@@ -1,290 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import {
- EuiFieldSearch,
- EuiFieldSearchProps,
- EuiOutsideClickDetector,
- EuiPanel,
-} from '@elastic/eui';
-import React from 'react';
-import styled from 'styled-components';
-
-import { QuerySuggestion } from '../../../../../../src/plugins/data/public';
-
-import { composeStateUpdaters } from '../../utils/typed_react';
-import { SuggestionItem } from './suggestion_item';
-
-interface AutocompleteFieldProps {
- isLoadingSuggestions: boolean;
- isValid: boolean;
- loadSuggestions: (value: string, cursorPosition: number, maxCount?: number) => void;
- onSubmit?: (value: string) => void;
- onChange?: (value: string) => void;
- placeholder?: string;
- suggestions: QuerySuggestion[];
- value: string;
-}
-
-interface AutocompleteFieldState {
- areSuggestionsVisible: boolean;
- selectedIndex: number | null;
-}
-
-export class AutocompleteField extends React.Component<
- AutocompleteFieldProps,
- AutocompleteFieldState
-> {
- public readonly state: AutocompleteFieldState = {
- areSuggestionsVisible: false,
- selectedIndex: null,
- };
-
- private inputElement: HTMLInputElement | null = null;
-
- public render() {
- const { suggestions, isLoadingSuggestions, isValid, placeholder, value } = this.props;
- const { areSuggestionsVisible, selectedIndex } = this.state;
-
- return (
-
-
-
- {areSuggestionsVisible && !isLoadingSuggestions && suggestions.length > 0 ? (
-
- {suggestions.map((suggestion, suggestionIndex) => (
-
- ))}
-
- ) : null}
-
-
- );
- }
-
- public componentDidUpdate(prevProps: AutocompleteFieldProps, prevState: AutocompleteFieldState) {
- const hasNewSuggestions = prevProps.suggestions !== this.props.suggestions;
- const hasNewValue = prevProps.value !== this.props.value;
-
- if (hasNewValue) {
- this.updateSuggestions();
- }
-
- if (hasNewSuggestions) {
- this.showSuggestions();
- }
- }
-
- private handleChangeInputRef = (element: HTMLInputElement | null) => {
- this.inputElement = element;
- };
-
- private handleChange = (evt: React.ChangeEvent) => {
- this.changeValue(evt.currentTarget.value);
- };
-
- private handleKeyDown = (evt: React.KeyboardEvent) => {
- const { suggestions } = this.props;
-
- switch (evt.key) {
- case 'ArrowUp':
- evt.preventDefault();
- if (suggestions.length > 0) {
- this.setState(
- composeStateUpdaters(withSuggestionsVisible, withPreviousSuggestionSelected)
- );
- }
- break;
- case 'ArrowDown':
- evt.preventDefault();
- if (suggestions.length > 0) {
- this.setState(composeStateUpdaters(withSuggestionsVisible, withNextSuggestionSelected));
- } else {
- this.updateSuggestions();
- }
- break;
- case 'Enter':
- evt.preventDefault();
- if (this.state.selectedIndex !== null) {
- this.applySelectedSuggestion();
- } else {
- this.submit();
- }
- break;
- case 'Escape':
- evt.preventDefault();
- this.setState(withSuggestionsHidden);
- break;
- }
- };
-
- private handleKeyUp = (evt: React.KeyboardEvent) => {
- switch (evt.key) {
- case 'ArrowLeft':
- case 'ArrowRight':
- case 'Home':
- case 'End':
- this.updateSuggestions();
- break;
- }
- };
-
- private selectSuggestionAt = (index: number) => () => {
- this.setState(withSuggestionAtIndexSelected(index));
- };
-
- private applySelectedSuggestion = () => {
- if (this.state.selectedIndex !== null) {
- this.applySuggestionAt(this.state.selectedIndex)();
- }
- };
-
- private applySuggestionAt = (index: number) => () => {
- const { value, suggestions } = this.props;
- const selectedSuggestion = suggestions[index];
-
- if (!selectedSuggestion) {
- return;
- }
-
- const newValue =
- value.substr(0, selectedSuggestion.start) +
- selectedSuggestion.text +
- value.substr(selectedSuggestion.end);
-
- this.setState(withSuggestionsHidden);
- this.changeValue(newValue);
- this.focusInputElement();
- };
-
- private changeValue = (value: string) => {
- const { onChange } = this.props;
- if (onChange) {
- onChange(value);
- }
- };
-
- private focusInputElement = () => {
- if (this.inputElement) {
- this.inputElement.focus();
- }
- };
-
- private showSuggestions = () => {
- this.setState(withSuggestionsVisible);
- };
-
- private hideSuggestions = () => {
- this.setState(withSuggestionsHidden);
- };
-
- private submit = () => {
- const { isValid, onSubmit, value } = this.props;
-
- if (isValid && onSubmit) {
- onSubmit(value);
- }
-
- this.setState(withSuggestionsHidden);
- };
-
- private updateSuggestions = (value?: string) => {
- const inputCursorPosition = this.inputElement ? this.inputElement.selectionStart || 0 : 0;
- this.props.loadSuggestions(value || this.props.value, inputCursorPosition, 10);
- };
-}
-
-const withPreviousSuggestionSelected = (
- state: AutocompleteFieldState,
- props: AutocompleteFieldProps
-): AutocompleteFieldState => ({
- ...state,
- selectedIndex:
- props.suggestions.length === 0
- ? null
- : state.selectedIndex !== null
- ? (state.selectedIndex + props.suggestions.length - 1) % props.suggestions.length
- : Math.max(props.suggestions.length - 1, 0),
-});
-
-const withNextSuggestionSelected = (
- state: AutocompleteFieldState,
- props: AutocompleteFieldProps
-): AutocompleteFieldState => ({
- ...state,
- selectedIndex:
- props.suggestions.length === 0
- ? null
- : state.selectedIndex !== null
- ? (state.selectedIndex + 1) % props.suggestions.length
- : 0,
-});
-
-const withSuggestionAtIndexSelected = (suggestionIndex: number) => (
- state: AutocompleteFieldState,
- props: AutocompleteFieldProps
-): AutocompleteFieldState => ({
- ...state,
- selectedIndex:
- props.suggestions.length === 0
- ? null
- : suggestionIndex >= 0 && suggestionIndex < props.suggestions.length
- ? suggestionIndex
- : 0,
-});
-
-const withSuggestionsVisible = (state: AutocompleteFieldState) => ({
- ...state,
- areSuggestionsVisible: true,
-});
-
-const withSuggestionsHidden = (state: AutocompleteFieldState) => ({
- ...state,
- areSuggestionsVisible: false,
- selectedIndex: null,
-});
-
-const FixedEuiFieldSearch: React.FC<
- React.InputHTMLAttributes &
- EuiFieldSearchProps & {
- inputRef?: (element: HTMLInputElement | null) => void;
- onSearch: (value: string) => void;
- }
-> = EuiFieldSearch as any;
-
-const AutocompleteContainer = styled.div`
- position: relative;
-`;
-
-const SuggestionsPanel = styled(EuiPanel).attrs(() => ({
- paddingSize: 'none',
- hasShadow: true,
-}))`
- position: absolute;
- width: 100%;
- margin-top: 2px;
- overflow: hidden;
- z-index: 1000;
-`;
diff --git a/x-pack/plugins/beats_management/public/components/autocomplete_field/suggestion_item.tsx b/x-pack/plugins/beats_management/public/components/autocomplete_field/suggestion_item.tsx
deleted file mode 100644
index b870982d63d22..0000000000000
--- a/x-pack/plugins/beats_management/public/components/autocomplete_field/suggestion_item.tsx
+++ /dev/null
@@ -1,119 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { EuiIcon } from '@elastic/eui';
-import { tint } from 'polished';
-import React from 'react';
-import styled from 'styled-components';
-
-import { QuerySuggestion } from '../../../../../../src/plugins/data/public';
-
-interface SuggestionItemProps {
- isSelected?: boolean;
- onClick?: React.MouseEventHandler;
- onMouseEnter?: React.MouseEventHandler;
- suggestion: QuerySuggestion;
-}
-
-export const SuggestionItem: React.FC = (props) => {
- const { isSelected, onClick, onMouseEnter, suggestion } = props;
-
- return (
-
-
-
-
- {suggestion.text}
- {suggestion.description}
-
- );
-};
-
-SuggestionItem.defaultProps = {
- isSelected: false,
-};
-
-const SuggestionItemContainer = styled.div<{
- isSelected?: boolean;
-}>`
- display: flex;
- flex-direction: row;
- font-size: ${(props) => props.theme.eui.default.euiFontSizeS};
- height: ${(props) => props.theme.eui.default.euiSizeXl};
- white-space: nowrap;
- background-color: ${(props) =>
- props.isSelected ? props.theme.eui.default.euiColorLightestShade : 'transparent'};
-`;
-
-const SuggestionItemField = styled.div`
- align-items: center;
- cursor: pointer;
- display: flex;
- flex-direction: row;
- height: ${(props) => props.theme.eui.default.euiSizeXl};
- padding: ${(props) => props.theme.eui.default.euiSizeXs};
-`;
-
-const SuggestionItemIconField = styled(SuggestionItemField)<{ suggestionType: string }>`
- background-color: ${(props) => {
- return tint(0.1, getEuiIconColor(props.theme, props.suggestionType));
- }};
- color: ${(props) => {
- return getEuiIconColor(props.theme, props.suggestionType);
- }};
- flex: 0 0 auto;
- justify-content: center;
- width: ${(props) => props.theme.eui.default.euiSizeXl};
-`;
-
-const SuggestionItemTextField = styled(SuggestionItemField)`
- flex: 2 0 0;
- font-family: ${(props) => props.theme.eui.default.euiCodeFontFamily};
-`;
-
-const SuggestionItemDescriptionField = styled(SuggestionItemField)`
- flex: 3 0 0;
- p {
- display: inline;
- span {
- font-family: ${(props) => props.theme.eui.default.euiCodeFontFamily};
- }
- }
-`;
-
-const getEuiIconType = (suggestionType: string) => {
- switch (suggestionType) {
- case 'field':
- return 'kqlField';
- case 'value':
- return 'kqlValue';
- case 'recentSearch':
- return 'search';
- case 'conjunction':
- return 'kqlSelector';
- case 'operator':
- return 'kqlOperand';
- default:
- return 'empty';
- }
-};
-
-const getEuiIconColor = (theme: any, suggestionType: string): string => {
- switch (suggestionType) {
- case 'field':
- return theme.eui.default.euiColorVis7;
- case 'value':
- return theme.eui.default.euiColorVis0;
- case 'operator':
- return theme.eui.default.euiColorVis1;
- case 'conjunction':
- return theme.eui.default.euiColorVis2;
- case 'recentSearch':
- default:
- return theme.eui.default.euiColorMediumShade;
- }
-};
diff --git a/x-pack/plugins/beats_management/public/components/config_list.tsx b/x-pack/plugins/beats_management/public/components/config_list.tsx
deleted file mode 100644
index 44a581a866735..0000000000000
--- a/x-pack/plugins/beats_management/public/components/config_list.tsx
+++ /dev/null
@@ -1,117 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-// @ts-ignore
-import { EuiBasicTable, EuiLink } from '@elastic/eui';
-import { InjectedIntl, injectI18n } from '@kbn/i18n/react';
-import React from 'react';
-import { configBlockSchemas } from '../../common/config_schemas';
-import { translateConfigSchema } from '../../common/config_schemas_translations_map';
-import { ConfigurationBlock } from '../../common/domain_types';
-
-interface ComponentProps {
- configs: {
- error?: string | undefined;
- list: ConfigurationBlock[];
- page: number;
- total: number;
- };
- onConfigClick: (action: 'edit' | 'delete', config: ConfigurationBlock) => any;
- onTableChange: (index: number, size: number) => void;
- intl: InjectedIntl;
-}
-const pagination = {
- pageSize: 5,
- hidePerPageOptions: true,
-};
-
-const ConfigListUi: React.FC = (props) => (
- {
- if (props.onTableChange) {
- props.onTableChange(table.page.index, table.page.size);
- }
- }}
- columns={[
- {
- field: 'type',
- name: props.intl.formatMessage({
- id: 'xpack.beatsManagement.tagTable.typeColumnName',
- defaultMessage: 'Type',
- }),
- truncateText: false,
- render: (type: string, config: ConfigurationBlock) => {
- const translatedConfig = translateConfigSchema(configBlockSchemas).find(
- (sc) => sc.id === type
- );
-
- return (
- props.onConfigClick('edit', config)}>
- {translatedConfig ? translatedConfig.name : type}
-
- );
- },
- },
- {
- field: 'module',
- name: props.intl.formatMessage({
- id: 'xpack.beatsManagement.tagTable.moduleColumnName',
- defaultMessage: 'Module',
- }),
- truncateText: false,
- render: (value: string, config: ConfigurationBlock) => {
- return (
- config.config._sub_type ||
- props.intl.formatMessage({
- id: 'xpack.beatsManagement.tagTable.moduleColumn.notAvailibaleLabel',
- defaultMessage: 'N/A',
- })
- );
- },
- },
- {
- field: 'description',
- name: props.intl.formatMessage({
- id: 'xpack.beatsManagement.tagTable.descriptionColumnName',
- defaultMessage: 'Description',
- }),
- },
- {
- name: props.intl.formatMessage({
- id: 'xpack.beatsManagement.tagTable.actionsColumnName',
- defaultMessage: 'Actions',
- }),
- actions: [
- {
- name: props.intl.formatMessage({
- id: 'xpack.beatsManagement.tagTable.actions.removeButtonAriaLabel',
- defaultMessage: 'Remove',
- }),
- description: props.intl.formatMessage({
- id: 'xpack.beatsManagement.tagTable.actions.removeTooltip',
- defaultMessage: 'Remove this config from tag',
- }),
- type: 'icon',
- icon: 'trash',
- onClick: (item: ConfigurationBlock) => props.onConfigClick('delete', item),
- },
- ],
- },
- ]}
- />
-);
-
-export const ConfigList = injectI18n(ConfigListUi);
diff --git a/x-pack/plugins/beats_management/public/components/enroll_beats.tsx b/x-pack/plugins/beats_management/public/components/enroll_beats.tsx
deleted file mode 100644
index 4c85509f13256..0000000000000
--- a/x-pack/plugins/beats_management/public/components/enroll_beats.tsx
+++ /dev/null
@@ -1,292 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import {
- EuiBasicTable,
- EuiButton,
- EuiCodeBlock,
- EuiCopy,
- EuiFlexGroup,
- EuiFlexItem,
- EuiLoadingSpinner,
- EuiModalBody,
- // @ts-ignore
- EuiSelect,
- EuiSpacer,
- EuiTitle,
-} from '@elastic/eui';
-import { FormattedMessage } from '@kbn/i18n/react';
-import { upperFirst } from 'lodash';
-import React from 'react';
-import { CMBeat } from '../../common/domain_types';
-
-interface ComponentProps {
- /** Such as kibanas basePath, for use to generate command */
- frameworkBasePath?: string;
- enrollmentToken?: string;
- getBeatWithToken(token: string): Promise;
- createEnrollmentToken(): Promise;
- onBeatEnrolled(enrolledBeat: CMBeat): void;
-}
-
-interface ComponentState {
- enrolledBeat: CMBeat | null;
- hasPolledForBeat: boolean;
- command: string;
- beatType: string;
-}
-
-export class EnrollBeat extends React.Component {
- private pinging = false;
- constructor(props: ComponentProps) {
- super(props);
-
- this.state = {
- enrolledBeat: null,
- hasPolledForBeat: false,
- command: 'sudo {{beatType}}',
- beatType: 'filebeat',
- };
- }
- public pingForBeatWithToken = async (token: string): Promise => {
- try {
- const beats = await this.props.getBeatWithToken(token);
-
- if (!beats) {
- throw new Error('no beats');
- }
- return beats;
- } catch (err) {
- if (this.pinging) {
- const timeout = (ms: number) => new Promise((res) => setTimeout(res, ms));
- await timeout(5000);
- return await this.pingForBeatWithToken(token);
- }
- }
- };
- public async componentDidMount() {
- if (!this.props.enrollmentToken) {
- await this.props.createEnrollmentToken();
- }
- }
- public waitForTokenToEnrollBeat = async () => {
- if (this.pinging || !this.props.enrollmentToken) {
- return;
- }
- this.pinging = true;
- const enrolledBeat = (await this.pingForBeatWithToken(this.props.enrollmentToken)) as CMBeat;
-
- this.setState({
- enrolledBeat,
- });
- this.props.onBeatEnrolled(enrolledBeat);
- this.pinging = false;
- };
- public render() {
- if (!this.props.enrollmentToken && !this.state.enrolledBeat) {
- return null;
- }
- if (this.props.enrollmentToken && !this.state.enrolledBeat) {
- this.waitForTokenToEnrollBeat();
- }
- const cmdText = `${this.state.command
- .replace('{{beatType}}', this.state.beatType)
- .replace('{{beatTypeInCaps}}', upperFirst(this.state.beatType))} enroll ${
- window.location.protocol
- }//${window.location.host}${this.props.frameworkBasePath} ${this.props.enrollmentToken}`;
-
- return (
-
- {!this.state.enrolledBeat && (
-
-
-
-
-
-
-
-
-
-
-
-
- this.setState({ beatType: e.target.value })}
- fullWidth={true}
- />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{beatType}}.exe`,
- text: 'Windows',
- },
- {
- value: `./{{beatType}}`,
- text: 'MacOS',
- },
- ]}
- onChange={(e: any) => this.setState({ command: e.target.value })}
- fullWidth={true}
- />
-
-
-
-
- {this.state.command && (
-
-
-
-
-
-
-
-
-
-
-
-
- {(copy: any) => (
-
-
-
- )}
-
-
-
-
-
-
- {`$ ${cmdText}`}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- )}
-
- )}
- {this.state.enrolledBeat && (
-
-
-
-
-
-
- ),
- sortable: false,
- },
- {
- field: 'version',
- name: (
-
- ),
- sortable: false,
- },
- {
- field: 'host_name',
- name: (
-
- ),
- sortable: false,
- },
- ]}
- />
-
-
-
- )}
-
- );
- }
-}
diff --git a/x-pack/plugins/beats_management/public/components/inputs/code_editor.tsx b/x-pack/plugins/beats_management/public/components/inputs/code_editor.tsx
deleted file mode 100644
index 9116725bfe06a..0000000000000
--- a/x-pack/plugins/beats_management/public/components/inputs/code_editor.tsx
+++ /dev/null
@@ -1,114 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-// @ts-ignore
-import { CommonProps, EuiCodeEditor, EuiCodeEditorProps, EuiFormRow } from '@elastic/eui';
-// @ts-ignore
-import { FormsyInputProps, withFormsy } from 'formsy-react';
-import React, { Component, InputHTMLAttributes } from 'react';
-
-interface ComponentProps extends FormsyInputProps, CommonProps, EuiCodeEditorProps {
- instantValidation: boolean;
- label: string;
- isReadOnly: boolean;
- mode: 'javascript' | 'yaml';
- errorText: string;
- fullWidth: boolean;
- helpText: React.ReactElement;
- compressed: boolean;
- onChange(value: string): void;
- onBlur(): void;
-}
-
-interface ComponentState {
- allowError: boolean;
-}
-
-class CodeEditor extends Component<
- InputHTMLAttributes & ComponentProps,
- ComponentState
-> {
- public static defaultProps = {
- passRequiredToField: true,
- };
-
- public state = { allowError: false };
-
- public componentDidMount() {
- const { defaultValue, setValue } = this.props;
- setValue(defaultValue || '');
- }
-
- public UNSAFE_componentWillReceiveProps(nextProps: ComponentProps) {
- if (nextProps.isFormSubmitted()) {
- this.showError();
- }
- }
-
- public handleChange = (value: string) => {
- this.props.setValue(value);
- if (this.props.onChange) {
- this.props.onChange(value);
- }
- if (this.props.instantValidation) {
- this.showError();
- }
- };
-
- public handleBlur = () => {
- this.showError();
- if (this.props.onBlur) {
- this.props.onBlur();
- }
- };
-
- public showError = () => this.setState({ allowError: true });
-
- public render() {
- const {
- name,
- id,
- label,
- isReadOnly,
- isValid,
- getValue,
- isPristine,
- getErrorMessage,
- mode,
- fullWidth,
- className,
- helpText,
- } = this.props;
-
- const { allowError } = this.state;
- const error = !isPristine() && !isValid() && allowError;
-
- return (
-
-
-
- );
- }
-}
-
-export const FormsyEuiCodeEditor = withFormsy(CodeEditor);
diff --git a/x-pack/plugins/beats_management/public/components/inputs/index.ts b/x-pack/plugins/beats_management/public/components/inputs/index.ts
deleted file mode 100644
index 58f5ba4c81f71..0000000000000
--- a/x-pack/plugins/beats_management/public/components/inputs/index.ts
+++ /dev/null
@@ -1,12 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-export { FormsyEuiCodeEditor } from './code_editor';
-export { FormsyEuiFieldText } from './input';
-export { FormsyEuiPasswordText } from './password_input';
-export { FormsyEuiMultiFieldText } from './multi_input';
-export { FormsyEuiSelect } from './select';
diff --git a/x-pack/plugins/beats_management/public/components/inputs/input.tsx b/x-pack/plugins/beats_management/public/components/inputs/input.tsx
deleted file mode 100644
index 3fb18e1b218b4..0000000000000
--- a/x-pack/plugins/beats_management/public/components/inputs/input.tsx
+++ /dev/null
@@ -1,120 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { EuiFieldText, EuiFormRow } from '@elastic/eui';
-import { CommonProps } from '@elastic/eui/src/components/common';
-import { FormsyInputProps, withFormsy } from 'formsy-react';
-import React, { Component, InputHTMLAttributes } from 'react';
-
-interface ComponentProps
- extends FormsyInputProps,
- CommonProps,
- Omit, 'onChange' | 'onBlur'> {
- instantValidation?: boolean;
- label: string;
- errorText: string;
- fullWidth: boolean;
- helpText: React.ReactElement;
- compressed: boolean;
- onChange?(e: React.ChangeEvent, value: any): void;
- onBlur?(e: React.ChangeEvent, value: any): void;
-}
-
-interface ComponentState {
- allowError: boolean;
-}
-
-class FieldText extends Component<
- InputHTMLAttributes & ComponentProps,
- ComponentState
-> {
- public static defaultProps = {
- passRequiredToField: true,
- };
-
- public state = { allowError: false };
-
- public componentDidMount() {
- const { defaultValue, setValue } = this.props;
- if (defaultValue) {
- setValue(defaultValue);
- }
- }
-
- public UNSAFE_componentWillReceiveProps(nextProps: ComponentProps) {
- if (nextProps.isFormSubmitted()) {
- this.showError();
- }
- }
-
- public handleChange = (e: React.ChangeEvent) => {
- const { value } = e.currentTarget;
- this.props.setValue(value);
- if (this.props.onChange) {
- this.props.onChange(e, e.currentTarget.value);
- }
- if (this.props.instantValidation) {
- this.showError();
- }
- };
-
- public handleBlur = (e: React.ChangeEvent) => {
- this.showError();
- if (this.props.onBlur) {
- this.props.onBlur(e, e.currentTarget.value);
- }
- };
-
- public showError = () => this.setState({ allowError: true });
-
- public render() {
- const {
- name,
- id,
- required,
- label,
- getValue,
- isValid,
- isPristine,
- getErrorMessage,
- fullWidth,
- className,
- disabled,
- helpText,
- placeholder,
- } = this.props;
-
- const { allowError } = this.state;
- const error = !isPristine() && !isValid() && allowError;
-
- return (
-
-
-
- );
- }
-}
-
-export const FormsyEuiFieldText = withFormsy(FieldText);
diff --git a/x-pack/plugins/beats_management/public/components/inputs/multi_input.tsx b/x-pack/plugins/beats_management/public/components/inputs/multi_input.tsx
deleted file mode 100644
index ffc208f6f94fd..0000000000000
--- a/x-pack/plugins/beats_management/public/components/inputs/multi_input.tsx
+++ /dev/null
@@ -1,122 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { EuiFormRow, EuiTextArea, EuiTextAreaProps } from '@elastic/eui';
-import { CommonProps } from '@elastic/eui/src/components/common';
-// @ts-ignore
-import { FormsyInputProps, withFormsy } from 'formsy-react';
-import React, { Component, InputHTMLAttributes } from 'react';
-
-interface ComponentProps
- extends FormsyInputProps,
- CommonProps,
- Omit {
- instantValidation: boolean;
- label: string;
- errorText: string;
- fullWidth: boolean;
- helpText: React.ReactElement;
- compressed: boolean;
- onChange(e: React.ChangeEvent, value: any): void;
- onBlur(e: React.ChangeEvent, value: any): void;
-}
-
-interface ComponentState {
- allowError: boolean;
-}
-
-class MultiFieldText extends Component<
- InputHTMLAttributes & ComponentProps,
- ComponentState
-> {
- public static defaultProps = {
- passRequiredToField: true,
- };
-
- public state = { allowError: false };
-
- public componentDidMount() {
- const { defaultValue, setValue } = this.props;
-
- if (defaultValue) {
- setValue(defaultValue);
- }
- }
-
- public UNSAFE_componentWillReceiveProps(nextProps: ComponentProps) {
- if (nextProps.isFormSubmitted()) {
- this.showError();
- }
- }
-
- public handleChange = (e: React.ChangeEvent) => {
- const value = e.currentTarget.value.split('\n');
- this.props.setValue(value);
- if (this.props.onChange) {
- this.props.onChange(e, value);
- }
- if (this.props.instantValidation) {
- this.showError();
- }
- };
-
- public handleBlur = (e: React.ChangeEvent) => {
- this.showError();
- if (this.props.onBlur) {
- this.props.onBlur(e, e.currentTarget.value);
- }
- };
-
- public showError = () => this.setState({ allowError: true });
-
- public render() {
- const {
- name,
- id,
- required,
- label,
- getValue,
- isValid,
- isPristine,
- getErrorMessage,
- fullWidth,
- className,
- disabled,
- helpText,
- placeholder,
- } = this.props;
-
- const { allowError } = this.state;
- const error = !isPristine() && !isValid() && allowError;
-
- return (
-
-
-
- );
- }
-}
-
-export const FormsyEuiMultiFieldText = withFormsy(MultiFieldText);
diff --git a/x-pack/plugins/beats_management/public/components/inputs/password_input.tsx b/x-pack/plugins/beats_management/public/components/inputs/password_input.tsx
deleted file mode 100644
index 7d4b0c369c19a..0000000000000
--- a/x-pack/plugins/beats_management/public/components/inputs/password_input.tsx
+++ /dev/null
@@ -1,114 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { CommonProps, EuiFieldPassword, EuiFieldPasswordProps, EuiFormRow } from '@elastic/eui';
-import { FormsyInputProps, withFormsy } from 'formsy-react';
-import React, { Component, InputHTMLAttributes } from 'react';
-
-interface ComponentProps
- extends FormsyInputProps,
- CommonProps,
- Omit {
- instantValidation?: boolean;
- label: string;
- errorText: string;
- fullWidth: boolean;
- helpText: React.ReactElement;
- compressed: boolean;
- onChange?(e: React.ChangeEvent, value: any): void;
- onBlur?(e: React.ChangeEvent, value: any): void;
-}
-
-interface ComponentState {
- allowError: boolean;
-}
-
-class FieldPassword extends Component<
- InputHTMLAttributes & ComponentProps,
- ComponentState
-> {
- constructor(props: any) {
- super(props);
-
- this.state = {
- allowError: false,
- };
- }
-
- public componentDidMount() {
- const { defaultValue, setValue } = this.props;
- if (defaultValue) {
- setValue(defaultValue);
- }
- }
-
- public handleChange = (e: React.ChangeEvent) => {
- const { value } = e.currentTarget;
- this.props.setValue(value);
- if (this.props.onChange) {
- this.props.onChange(e, value);
- }
- if (this.props.instantValidation) {
- this.showError();
- }
- };
-
- public handleBlur = (e: React.ChangeEvent) => {
- this.showError();
- if (this.props.onBlur) {
- this.props.onBlur(e, e.currentTarget.value);
- }
- };
-
- public showError = () => this.setState({ allowError: true });
-
- public render() {
- const {
- name,
- id,
- required,
- label,
- getValue,
- isValid,
- isPristine,
- getErrorMessage,
- fullWidth,
- className,
- disabled,
- helpText,
- onBlur,
- } = this.props;
-
- const { allowError } = this.state;
- const error = !isPristine() && !isValid() && allowError;
-
- return (
-
-
-
- );
- }
-}
-
-export const FormsyEuiPasswordText = withFormsy(FieldPassword);
diff --git a/x-pack/plugins/beats_management/public/components/inputs/select.tsx b/x-pack/plugins/beats_management/public/components/inputs/select.tsx
deleted file mode 100644
index edd1a7fee90c5..0000000000000
--- a/x-pack/plugins/beats_management/public/components/inputs/select.tsx
+++ /dev/null
@@ -1,125 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import {
- EuiFormRow,
- // @ts-ignore
- EuiSelect,
-} from '@elastic/eui';
-import { CommonProps } from '@elastic/eui/src/components/common';
-// @ts-ignore
-import { FormsyInputProps, withFormsy } from 'formsy-react';
-import React, { Component, InputHTMLAttributes } from 'react';
-
-const FixedSelect = EuiSelect as React.FC;
-
-interface ComponentProps extends FormsyInputProps, CommonProps {
- instantValidation: boolean;
- options: Array<{ value: string; text: string }>;
- label: string;
- errorText: string;
- fullWidth: boolean;
- helpText: React.ReactElement;
- compressed: boolean;
- onChange(e: React.ChangeEvent, value: any): void;
- onBlur(e: React.ChangeEvent, value: any): void;
-}
-
-interface ComponentState {
- allowError: boolean;
-}
-
-class FieldSelect extends Component<
- InputHTMLAttributes & ComponentProps,
- ComponentState
-> {
- public static defaultProps = {
- passRequiredToField: true,
- };
-
- public state = { allowError: false };
-
- public componentDidMount() {
- const { defaultValue, setValue } = this.props;
- if (defaultValue) {
- setValue(defaultValue);
- }
- }
-
- public UNSAFE_componentWillReceiveProps(nextProps: ComponentProps) {
- if (nextProps.isFormSubmitted()) {
- this.showError();
- }
- }
-
- public handleChange = (e: React.ChangeEvent) => {
- const { value } = e.currentTarget;
-
- this.props.setValue(value);
- if (this.props.onChange) {
- this.props.onChange(e, e.currentTarget.value);
- }
- if (this.props.instantValidation) {
- this.showError();
- }
- };
-
- public handleBlur = (e: React.ChangeEvent) => {
- this.showError();
- if (this.props.onBlur) {
- this.props.onBlur(e, e.currentTarget.value);
- }
- };
-
- public showError = () => this.setState({ allowError: true });
-
- public render() {
- const {
- id,
- required,
- label,
- options,
- getValue,
- isValid,
- isPristine,
- getErrorMessage,
- fullWidth,
- className,
- disabled,
- helpText,
- } = this.props;
-
- const { allowError } = this.state;
- const error = !isPristine() && !isValid() && allowError;
-
- return (
-
-
-
- );
- }
-}
-
-export const FormsyEuiSelect = withFormsy(FieldSelect);
diff --git a/x-pack/plugins/beats_management/public/components/layouts/background.tsx b/x-pack/plugins/beats_management/public/components/layouts/background.tsx
deleted file mode 100644
index ff060cb5869fa..0000000000000
--- a/x-pack/plugins/beats_management/public/components/layouts/background.tsx
+++ /dev/null
@@ -1,12 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import styled from 'styled-components';
-
-export const Background = styled.div`
- flex-grow: 1;
-`;
diff --git a/x-pack/plugins/beats_management/public/components/layouts/no_data.tsx b/x-pack/plugins/beats_management/public/components/layouts/no_data.tsx
deleted file mode 100644
index e61c3db2ebd13..0000000000000
--- a/x-pack/plugins/beats_management/public/components/layouts/no_data.tsx
+++ /dev/null
@@ -1,31 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { EuiEmptyPrompt, EuiFlexGroup, EuiFlexItem, EuiPageContent } from '@elastic/eui';
-import React from 'react';
-import { withRouter, RouteComponentProps } from 'react-router-dom';
-
-interface LayoutProps extends RouteComponentProps {
- children: React.ReactNode;
- title: string | React.ReactNode;
- actionSection?: React.ReactNode;
-}
-
-export const NoDataLayout = withRouter(({ actionSection, title, children }: LayoutProps) => (
-
-
-
- {title}}
- body={children}
- actions={actionSection}
- />
-
-
-
-));
diff --git a/x-pack/plugins/beats_management/public/components/layouts/primary.tsx b/x-pack/plugins/beats_management/public/components/layouts/primary.tsx
deleted file mode 100644
index 0a1c0bb028c77..0000000000000
--- a/x-pack/plugins/beats_management/public/components/layouts/primary.tsx
+++ /dev/null
@@ -1,84 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import {
- EuiHeader,
- EuiHeaderBreadcrumbs,
- EuiHeaderSection,
- EuiPage,
- EuiPageBody,
- EuiPageContent,
- EuiPageContentBody,
- EuiPageHeader,
- EuiPageHeaderSection,
- EuiTitle,
-} from '@elastic/eui';
-import React, { Component, ReactNode } from 'react';
-import styled from 'styled-components';
-import { BreadcrumbConsumer } from '../navigation/breadcrumb';
-
-type RenderCallback = (component: () => JSX.Element) => void;
-interface PrimaryLayoutProps {
- title: string | React.ReactNode;
- actionSection?: React.ReactNode;
- hideBreadcrumbs?: boolean;
-}
-export class PrimaryLayout extends Component {
- private actionSection: (() => JSX.Element) | null = null;
- constructor(props: PrimaryLayoutProps) {
- super(props);
- }
-
- public render() {
- const children: (callback: RenderCallback) => void | ReactNode = this.props.children as any;
- return (
-
- {!this.props.hideBreadcrumbs && (
-
- {({ breadcrumbs }) => (
-
-
-
-
-
- )}
-
- )}
-
-
-
-
-
- {this.props.title}
-
-
-
- {(this.actionSection && this.actionSection()) || this.props.actionSection}
-
-
-
-
- {(children && typeof children === 'function'
- ? children(this.renderAction)
- : children) || }
-
-
-
-
-
- );
- }
-
- private renderAction = (component: () => JSX.Element) => {
- this.actionSection = component;
- this.forceUpdate();
- };
-}
-
-const HeaderWrapper = styled(EuiHeader)`
- height: 29px;
-`;
diff --git a/x-pack/plugins/beats_management/public/components/layouts/walkthrough.tsx b/x-pack/plugins/beats_management/public/components/layouts/walkthrough.tsx
deleted file mode 100644
index 4d0fb9126d5b5..0000000000000
--- a/x-pack/plugins/beats_management/public/components/layouts/walkthrough.tsx
+++ /dev/null
@@ -1,49 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import React from 'react';
-
-import { EuiPageContent, EuiPageContentBody, EuiStepsHorizontal, EuiTitle } from '@elastic/eui';
-
-interface LayoutProps {
- title: string;
- goTo: (path: string) => any;
- walkthroughSteps: Array<{
- id: string;
- name: string;
- }>;
- activePath: string;
-}
-
-export const WalkthroughLayout: React.FC = ({
- walkthroughSteps,
- title,
- activePath,
- goTo,
- children,
-}) => {
- const indexOfCurrent = walkthroughSteps.findIndex((step) => activePath === step.id);
- return (
-
-
- {title}
-
-
-
- ({
- title: step.name,
- isComplete: i <= indexOfCurrent,
- onClick: () => goTo(step.id),
- }))}
- />
-
-
- {children}
-
- );
-};
diff --git a/x-pack/plugins/beats_management/public/components/loading.tsx b/x-pack/plugins/beats_management/public/components/loading.tsx
deleted file mode 100644
index fabbee359946c..0000000000000
--- a/x-pack/plugins/beats_management/public/components/loading.tsx
+++ /dev/null
@@ -1,17 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { EuiFlexGroup, EuiFlexItem, EuiLoadingSpinner } from '@elastic/eui';
-import * as React from 'react';
-
-export const Loading: React.FC<{}> = () => (
-
-
-
-
-
-);
diff --git a/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/breadcrumb.tsx b/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/breadcrumb.tsx
deleted file mode 100644
index 7af0270822422..0000000000000
--- a/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/breadcrumb.tsx
+++ /dev/null
@@ -1,64 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import React, { Component } from 'react';
-import { RouteProps } from 'react-router-dom';
-import { BASE_PATH } from '../../../../common/constants';
-import { BreadcrumbConsumer } from './consumer';
-import { Breadcrumb as BreadcrumbData, BreadcrumbContext } from './types';
-
-interface BreadcrumbManagerProps extends RouteProps {
- text: string;
- href?: string;
- parents?: BreadcrumbData[];
- context: BreadcrumbContext;
-}
-
-class BreadcrumbManager extends Component {
- public componentWillUnmount() {
- const { text, href, context } = this.props;
-
- context.removeCrumb({
- text,
- href,
- });
- }
-
- public componentDidMount() {
- const { text, href, parents, context } = this.props;
- context.addCrumb(
- {
- text,
- href,
- },
- parents
- );
- }
-
- public render() {
- return ;
- }
-}
-
-interface BreadcrumbProps extends RouteProps {
- title: string;
- path?: string;
- parentBreadcrumbs?: BreadcrumbData[];
-}
-
-export const Breadcrumb: React.FC = ({ title, path, parentBreadcrumbs }) => (
-
- {(context) => (
-
- )}
-
-);
diff --git a/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/consumer.tsx b/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/consumer.tsx
deleted file mode 100644
index 3062095a06383..0000000000000
--- a/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/consumer.tsx
+++ /dev/null
@@ -1,8 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-export { Consumer as BreadcrumbConsumer } from './context';
diff --git a/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/context.tsx b/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/context.tsx
deleted file mode 100644
index 3d11194bc3fb9..0000000000000
--- a/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/context.tsx
+++ /dev/null
@@ -1,19 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import React from 'react';
-
-import { Breadcrumb, BreadcrumbContext } from './types';
-
-/* istanbul ignore next */
-const defaultContext: BreadcrumbContext = {
- breadcrumbs: [],
- addCrumb: (crumb: Breadcrumb) => null,
- removeCrumb: (crumb: Breadcrumb) => null,
-};
-
-export const { Provider, Consumer } = React.createContext(defaultContext);
diff --git a/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/index.ts b/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/index.ts
deleted file mode 100644
index e4839a75c39e0..0000000000000
--- a/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/index.ts
+++ /dev/null
@@ -1,10 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-export { BreadcrumbProvider } from './provider';
-export { BreadcrumbConsumer } from './consumer';
-export { Breadcrumb } from './breadcrumb';
diff --git a/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/provider.tsx b/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/provider.tsx
deleted file mode 100644
index 20919a52b658e..0000000000000
--- a/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/provider.tsx
+++ /dev/null
@@ -1,73 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import React, { Component, ReactElement } from 'react';
-import { Provider } from './context';
-import { Breadcrumb } from './types';
-import { services } from '../../../kbn_services';
-
-interface ComponentProps {
- useGlobalBreadcrumbs: boolean;
- children: ReactElement | Array>;
-}
-
-interface ComponentState {
- breadcrumbs: Array<{
- href?: string;
- breadcrumb: Breadcrumb;
- parents?: Breadcrumb[];
- }>;
-}
-
-export class BreadcrumbProvider extends Component {
- public state = {
- breadcrumbs: [] as ComponentState['breadcrumbs'],
- };
-
- public addCrumb = (breadcrumb: Breadcrumb, parents?: Breadcrumb[]) => {
- this.setState(({ breadcrumbs: prevCrumbs }) => ({
- breadcrumbs: [
- ...prevCrumbs,
- {
- href: breadcrumb.href,
- breadcrumb,
- parents,
- },
- ],
- }));
- };
-
- public removeCrumb = (crumbToRemove: Breadcrumb) => {
- this.setState(({ breadcrumbs: prevCrumbs }) => {
- const breadcrumbs = prevCrumbs.filter((prevCrumb) => {
- const { href } = prevCrumb;
- return !(crumbToRemove.href === href);
- });
- return { breadcrumbs };
- });
- };
-
- public render() {
- const { breadcrumbs } = this.state;
-
- const context = {
- breadcrumbs: breadcrumbs.reduce((crumbs, crumbStorageItem) => {
- if (crumbStorageItem.parents) {
- crumbs = crumbs.concat(crumbStorageItem.parents);
- }
- crumbs.push(crumbStorageItem.breadcrumb);
- return crumbs;
- }, [] as Breadcrumb[]),
- addCrumb: this.addCrumb,
- removeCrumb: this.removeCrumb,
- };
- if (this.props.useGlobalBreadcrumbs) {
- services.setBreadcrumbs(context.breadcrumbs);
- }
- return {this.props.children} ;
- }
-}
diff --git a/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/types.d.ts b/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/types.d.ts
deleted file mode 100644
index 33a947d649c46..0000000000000
--- a/x-pack/plugins/beats_management/public/components/navigation/breadcrumb/types.d.ts
+++ /dev/null
@@ -1,16 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-export interface BreadcrumbContext {
- breadcrumbs: Breadcrumb[];
- addCrumb: (crumb: Breadcrumb, parents?: Breadcrumb[]) => void;
- removeCrumb: (crumb: Breadcrumb) => void;
-}
-export interface Breadcrumb {
- text: string;
- href?: string;
-}
diff --git a/x-pack/plugins/beats_management/public/components/navigation/child_routes.tsx b/x-pack/plugins/beats_management/public/components/navigation/child_routes.tsx
deleted file mode 100644
index 9e4eaa98c41e9..0000000000000
--- a/x-pack/plugins/beats_management/public/components/navigation/child_routes.tsx
+++ /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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import React, { FC } from 'react';
-import { Route, Switch } from 'react-router-dom';
-
-export interface RouteConfig {
- path: string;
- component: React.ComponentType;
- routes?: RouteConfig[];
-}
-
-export const ChildRoutes: FC<{
- routes?: RouteConfig[];
- useSwitch?: boolean;
- [other: string]: any;
-}> = ({ routes, useSwitch = true, ...rest }) => {
- if (!routes) {
- return null;
- }
- const Parent = useSwitch ? Switch : React.Fragment;
- return (
-
- {routes.map((route) => (
- {
- const Component = route.component;
- return ;
- }}
- />
- ))}
-
- );
-};
diff --git a/x-pack/plugins/beats_management/public/components/navigation/connected_link.tsx b/x-pack/plugins/beats_management/public/components/navigation/connected_link.tsx
deleted file mode 100644
index 3eb00c8714868..0000000000000
--- a/x-pack/plugins/beats_management/public/components/navigation/connected_link.tsx
+++ /dev/null
@@ -1,46 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { get } from 'lodash';
-import React from 'react';
-
-import { EuiLink } from '@elastic/eui';
-import { Link, withRouter, RouteComponentProps } from 'react-router-dom';
-
-interface ConnectedLinkComponent extends RouteComponentProps {
- location: any;
- path: string;
- disabled: boolean;
- query: any;
- [key: string]: any;
-}
-
-export const ConnectedLinkComponent = ({
- location,
- path,
- query,
- disabled,
- children,
- ...props
-}: ConnectedLinkComponent) => {
- if (disabled) {
- return ;
- }
-
- // Shorthand for pathname
- const pathname = path || get(props.to, 'pathname') || location.pathname;
-
- return (
-
- );
-};
-
-export const ConnectedLink = withRouter(ConnectedLinkComponent);
diff --git a/x-pack/plugins/beats_management/public/components/table/action_schema.ts b/x-pack/plugins/beats_management/public/components/table/action_schema.ts
deleted file mode 100644
index 254188e764590..0000000000000
--- a/x-pack/plugins/beats_management/public/components/table/action_schema.ts
+++ /dev/null
@@ -1,101 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { i18n } from '@kbn/i18n';
-import { AssignmentActionType } from './table';
-
-export enum ActionComponentType {
- Action,
- Popover,
- SelectionCount,
- TagBadgeList,
-}
-export interface ControlSchema {
- id?: number;
- name: string;
- danger?: boolean;
- type: ActionComponentType;
- action?: AssignmentActionType;
- actionDataKey?: string;
- showWarning?: boolean;
- warningHeading?: string;
- warningMessage?: string;
- lazyLoad?: boolean;
- grow?: boolean;
-}
-
-export const beatsListActions: ControlSchema[] = [
- {
- grow: false,
- name: i18n.translate('xpack.beatsManagement.beatsListAssignmentOptions.unenrollButtonLabel', {
- defaultMessage: 'Unenroll selected',
- }),
- showWarning: true,
- type: ActionComponentType.Action,
- warningHeading: i18n.translate(
- 'xpack.beatsManagement.beatsListAssignmentOptions.unenrollBeatsWarninigTitle',
- { defaultMessage: 'Unenroll selected beats?' }
- ),
- warningMessage: i18n.translate(
- 'xpack.beatsManagement.beatsListAssignmentOptions.unenrollBeatsWarninigMessage',
- { defaultMessage: 'The selected Beats will no longer use central management' }
- ),
- action: AssignmentActionType.Delete,
- danger: true,
- },
- {
- name: i18n.translate('xpack.beatsManagement.beatsListAssignmentOptions.setTagsButtonLabel', {
- defaultMessage: 'Set tags',
- }),
- grow: false,
- type: ActionComponentType.TagBadgeList,
- actionDataKey: 'tags',
- lazyLoad: true,
- },
-];
-
-export const tagListActions: ControlSchema[] = [
- {
- danger: true,
- grow: false,
- name: i18n.translate('xpack.beatsManagement.tagListAssignmentOptions.removeTagsButtonLabel', {
- defaultMessage: 'Remove selected',
- }),
- type: ActionComponentType.Action,
- showWarning: true,
- warningHeading: i18n.translate(
- 'xpack.beatsManagement.tagListAssignmentOptions.removeTagsWarninigTitle',
- { defaultMessage: 'Remove tag(s)' }
- ),
- warningMessage: i18n.translate(
- 'xpack.beatsManagement.tagListAssignmentOptions.removeTagWarninigMessage',
- { defaultMessage: 'Remove the tag?' }
- ),
- action: AssignmentActionType.Delete,
- },
-];
-
-export const tagConfigActions: ControlSchema[] = [
- {
- danger: true,
- grow: false,
- name: i18n.translate('xpack.beatsManagement.tagConfigAssignmentOptions.removeTagsButtonLabel', {
- defaultMessage: 'Remove tag(s)',
- }),
- type: ActionComponentType.Action,
- showWarning: true,
- warningHeading: i18n.translate(
- 'xpack.beatsManagement.tagConfigAssignmentOptions.removeTagsWarninigTitle',
- { defaultMessage: 'Remove tag(s)' }
- ),
- warningMessage: i18n.translate(
- 'xpack.beatsManagement.tagConfigAssignmentOptions.removeTagsWarninigMessage',
- { defaultMessage: 'Remove the tag from the selected beat(s)?' }
- ),
- action: AssignmentActionType.Delete,
- },
-];
diff --git a/x-pack/plugins/beats_management/public/components/table/controls/action_control.tsx b/x-pack/plugins/beats_management/public/components/table/controls/action_control.tsx
deleted file mode 100644
index 5badef9a71fe1..0000000000000
--- a/x-pack/plugins/beats_management/public/components/table/controls/action_control.tsx
+++ /dev/null
@@ -1,97 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { EuiButton, EuiConfirmModal } from '@elastic/eui';
-import { FormattedMessage } from '@kbn/i18n/react';
-import React from 'react';
-import { AssignmentActionType } from '../table';
-
-interface ActionControlProps {
- action: AssignmentActionType;
- disabled: boolean;
- danger?: boolean;
- name: string;
- showWarning?: boolean;
- warningHeading?: string;
- warningMessage?: string;
- actionHandler(action: AssignmentActionType, payload?: any): void;
-}
-
-interface ActionControlState {
- showModal: boolean;
-}
-
-export class ActionControl extends React.PureComponent {
- constructor(props: ActionControlProps) {
- super(props);
-
- this.state = {
- showModal: false,
- };
- }
-
- public render() {
- const {
- action,
- actionHandler,
- danger,
- name,
- showWarning,
- warningHeading,
- warningMessage,
- } = this.props;
-
- return (
-
- this.setState({ showModal: true }) : () => actionHandler(action)
- }
- >
- {name}
-
- {this.state.showModal && (
-
- }
- confirmButtonText={
-
- }
- onConfirm={() => {
- actionHandler(action);
- this.setState({ showModal: false });
- }}
- onCancel={() => this.setState({ showModal: false })}
- title={
- warningHeading ? (
- warningHeading
- ) : (
-
- )
- }
- >
- {warningMessage}
-
- )}
-
- );
- }
-}
diff --git a/x-pack/plugins/beats_management/public/components/table/controls/index.ts b/x-pack/plugins/beats_management/public/components/table/controls/index.ts
deleted file mode 100644
index 72cbc7fcb23fd..0000000000000
--- a/x-pack/plugins/beats_management/public/components/table/controls/index.ts
+++ /dev/null
@@ -1,8 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-export { OptionControl } from './option_control';
diff --git a/x-pack/plugins/beats_management/public/components/table/controls/option_control.tsx b/x-pack/plugins/beats_management/public/components/table/controls/option_control.tsx
deleted file mode 100644
index f07c84f584d91..0000000000000
--- a/x-pack/plugins/beats_management/public/components/table/controls/option_control.tsx
+++ /dev/null
@@ -1,58 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import React from 'react';
-import { ActionComponentType, ControlSchema } from '../action_schema';
-import { AssignmentActionType } from '../table';
-import { ActionControl } from './action_control';
-import { TagBadgeList } from './tag_badge_list';
-
-interface ComponentProps extends ControlSchema {
- actionData?: {
- [key: string]: any;
- };
- disabled: boolean;
- actionHandler(action: AssignmentActionType, payload?: any): void;
-}
-
-export const OptionControl: React.FC = (props: ComponentProps) => {
- switch (props.type) {
- case ActionComponentType.Action:
- if (!props.action) {
- throw Error('Action cannot be undefined');
- }
- return (
-
- );
- case ActionComponentType.TagBadgeList:
- if (!props.actionDataKey) {
- throw Error('actionDataKey cannot be undefined');
- }
- if (!props.actionData) {
- throw Error('actionData cannot be undefined');
- }
- return (
-
- );
- }
- return Invalid config
;
-};
diff --git a/x-pack/plugins/beats_management/public/components/table/controls/tag_badge_list.tsx b/x-pack/plugins/beats_management/public/components/table/controls/tag_badge_list.tsx
deleted file mode 100644
index 15cc3f3fce577..0000000000000
--- a/x-pack/plugins/beats_management/public/components/table/controls/tag_badge_list.tsx
+++ /dev/null
@@ -1,110 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import {
- EuiButton,
- EuiContextMenuPanel,
- EuiFlexGroup,
- EuiFlexItem,
- EuiLoadingSpinner,
- EuiPopover,
-} from '@elastic/eui';
-import React from 'react';
-import { TABLE_CONFIG } from '../../../../common/constants/table';
-import { TagBadge } from '../../tag/tag_badge';
-import { AssignmentActionType } from '../index';
-
-interface TagBadgeListProps {
- items: object[];
- disabled: boolean;
- name: string;
- action?: AssignmentActionType;
- actionHandler(action: AssignmentActionType, payload?: any): void;
-}
-
-interface ComponentState {
- isPopoverOpen: boolean;
- items: object[];
-}
-
-export class TagBadgeList extends React.Component {
- constructor(props: TagBadgeListProps) {
- super(props);
-
- this.state = {
- isPopoverOpen: false,
- items: [],
- };
- }
-
- public render() {
- const button = (
-
- {this.props.name}
-
- );
-
- return (
-
-
-
- {!this.props.items && }
- {this.props.items && this.props.items.length === 0 && (
-
-
- No options avaliable
-
-
- )}
- {this.props.items &&
- this.props.items.map((tag: any) => (
-
-
-
-
- this.props.actionHandler(AssignmentActionType.Assign, tag.id)
- }
- onClickAriaLabel={tag.id}
- tag={tag}
- />
-
-
-
- ))}
-
-
-
- );
- }
- private onButtonClick = async () => {
- this.props.actionHandler(AssignmentActionType.Reload);
- this.setState((prevState) => ({
- isPopoverOpen: !prevState.isPopoverOpen,
- }));
- };
-
- private closePopover = () => {
- this.setState({
- isPopoverOpen: false,
- });
- };
-}
diff --git a/x-pack/plugins/beats_management/public/components/table/index.ts b/x-pack/plugins/beats_management/public/components/table/index.ts
deleted file mode 100644
index bc6590c2e5c21..0000000000000
--- a/x-pack/plugins/beats_management/public/components/table/index.ts
+++ /dev/null
@@ -1,16 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-export { beatsListActions, tagConfigActions } from './action_schema';
-export { AssignmentActionType, KueryBarProps, Table } from './table';
-export {
- ActionDefinition,
- BeatDetailTagsTable,
- BeatsTableType,
- FilterDefinition,
- TagsTableType,
-} from './table_type_configs';
diff --git a/x-pack/plugins/beats_management/public/components/table/table.tsx b/x-pack/plugins/beats_management/public/components/table/table.tsx
deleted file mode 100644
index f22799c8b55b7..0000000000000
--- a/x-pack/plugins/beats_management/public/components/table/table.tsx
+++ /dev/null
@@ -1,160 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { EuiBasicTable, EuiFlexGroup, EuiFlexItem, EuiSpacer } from '@elastic/eui';
-import { i18n } from '@kbn/i18n';
-import React from 'react';
-import styled from 'styled-components';
-import { QuerySuggestion } from '../../../../../../src/plugins/data/public';
-import { TABLE_CONFIG } from '../../../common/constants';
-import { AutocompleteField } from '../autocomplete_field/index';
-import { ControlSchema } from './action_schema';
-import { OptionControl } from './controls/option_control';
-import { TableType } from './table_type_configs';
-
-export enum AssignmentActionType {
- Add,
- Assign,
- Delete,
- Edit,
- Reload,
- Search,
-}
-
-export interface KueryBarProps {
- filterQueryDraft: string;
- isLoadingSuggestions: boolean;
- isValid: boolean;
- loadSuggestions: (value: string, cursorPosition: number, maxCount?: number) => void;
- onChange?: (value: string) => void;
- onSubmit?: (value: string) => void;
- suggestions: QuerySuggestion[];
- value: string;
-}
-
-interface TableProps {
- actions?: ControlSchema[];
- actionData?: {
- [key: string]: any;
- };
- hideTableControls?: boolean;
- kueryBarProps?: KueryBarProps;
- items: any[];
- onTableChange?: (index: number, size: number) => void;
- type: TableType;
- actionHandler?(action: AssignmentActionType, payload?: any): void;
-}
-
-interface TableState {
- selection: any[];
- pageIndex: number;
-}
-
-const TableContainer = styled.div`
- padding: 16px;
-`;
-
-export class Table extends React.Component {
- constructor(props: any) {
- super(props);
-
- this.state = {
- selection: [],
- pageIndex: 0,
- };
- }
-
- public resetSelection = () => {
- this.setSelection([]);
- };
-
- public setSelection = (selection: any[]) => {
- this.setState({
- selection,
- });
- };
-
- public actionHandler = (action: AssignmentActionType, payload?: any): void => {
- if (this.props.actionHandler) {
- this.props.actionHandler(action, payload);
- }
- };
-
- public render() {
- const { actionData, actions, hideTableControls, items, kueryBarProps, type } = this.props;
-
- const pagination = {
- pageIndex: this.state.pageIndex,
- pageSize: TABLE_CONFIG.INITIAL_ROW_SIZE,
- pageSizeOptions: TABLE_CONFIG.PAGE_SIZE_OPTIONS,
- };
-
- const selectionOptions = hideTableControls
- ? undefined
- : {
- onSelectionChange: this.setSelection,
- selectable: () => true,
- selectableMessage: () =>
- i18n.translate('xpack.beatsManagement.table.selectThisBeatTooltip', {
- defaultMessage: 'Select this beat',
- }),
- selection: this.state.selection,
- };
-
- return (
-
-
- {actions &&
- actions.map((action) => (
-
-
-
- ))}
-
- {kueryBarProps && (
-
-
-
- )}
-
-
-
-
-
- );
- }
-
- private onTableChange = ({ page }: { page: { index: number; size: number } }) => {
- if (this.props.onTableChange) {
- this.props.onTableChange(page.index, page.size);
- }
- this.setState({
- pageIndex: page.index,
- });
- };
-}
diff --git a/x-pack/plugins/beats_management/public/components/table/table_type_configs.tsx b/x-pack/plugins/beats_management/public/components/table/table_type_configs.tsx
deleted file mode 100644
index 56cf99b01e8d9..0000000000000
--- a/x-pack/plugins/beats_management/public/components/table/table_type_configs.tsx
+++ /dev/null
@@ -1,345 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { EuiFlexGroup, EuiFlexItem, EuiHealth, EuiToolTip, IconColor } from '@elastic/eui';
-import { i18n } from '@kbn/i18n';
-import { sortBy, uniqBy } from 'lodash';
-import moment from 'moment';
-import React from 'react';
-import { BeatTag, CMBeat } from '../../../common/domain_types';
-import { ConnectedLink } from '../navigation/connected_link';
-import { TagBadge } from '../tag';
-
-export interface ColumnDefinition {
- align?: 'left' | 'right' | 'center' | undefined;
- field: string;
- name: string;
- sortable?: boolean;
- width?: string;
- render?(value: any, object?: any): any;
-}
-
-export interface ActionDefinition {
- action: string;
- danger?: boolean;
- icon?: any;
- name: string;
-}
-
-interface FilterOption {
- value: string;
-}
-
-export interface FilterDefinition {
- field: string;
- name: string;
- options?: FilterOption[];
- type: string;
-}
-
-export interface ControlDefinitions {
- actions: ActionDefinition[];
- filters: FilterDefinition[];
- primaryActions?: ActionDefinition[];
-}
-
-export interface TableType {
- itemType: 'Beats' | 'Tags';
- columnDefinitions: ColumnDefinition[];
- controlDefinitions(items: any[]): ControlDefinitions;
-}
-
-const dynamicStatuses = {
- STARTING: {
- color: 'success',
- status: i18n.translate('xpack.beatsManagement.beatsTable.startingStatusLabel', {
- defaultMessage: 'Starting',
- }),
- details: i18n.translate('xpack.beatsManagement.beatsTable.configStatus.startingTooltip', {
- defaultMessage: 'This Beat is starting.',
- }),
- },
- IN_PROGRESS: {
- color: 'warning',
- status: i18n.translate('xpack.beatsManagement.beatsTable.updatingStatusLabel', {
- defaultMessage: 'Updating',
- }),
- details: i18n.translate('xpack.beatsManagement.beatsTable.configStatus.progressTooltip', {
- defaultMessage: 'This Beat is currently reloading config from CM.',
- }),
- },
- RUNNING: {
- color: 'success',
- status: i18n.translate('xpack.beatsManagement.beatsTable.runningStatusLabel', {
- defaultMessage: 'Running',
- }),
- details: i18n.translate('xpack.beatsManagement.beatsTable.configStatus.runningTooltip', {
- defaultMessage: 'This Beat is running without issues.',
- }),
- },
- CONFIG: {
- color: 'danger',
- status: i18n.translate('xpack.beatsManagement.beatsTable.configErrorStatusLabel', {
- defaultMessage: 'Config error',
- }),
- },
- FAILED: {
- color: 'danger',
- status: i18n.translate('xpack.beatsManagement.beatsTable.failedStatusLabel', {
- defaultMessage: 'Error',
- }),
- details: i18n.translate('xpack.beatsManagement.beatsTable.configStatus.errorTooltip', {
- defaultMessage: 'There is an error on this beat, please check the logs for this host.',
- }),
- },
- STOPPED: {
- color: 'danger',
- status: i18n.translate('xpack.beatsManagement.beatsTable.stoppedStatusLabel', {
- defaultMessage: 'stopped',
- }),
- details: i18n.translate('xpack.beatsManagement.beatsTable.configStatus.errorTooltip', {
- defaultMessage: 'There is an error on this beat, please check the logs for this host.',
- }),
- },
-};
-
-export const BeatsTableType: TableType = {
- itemType: 'Beats',
- columnDefinitions: [
- {
- field: 'name',
- name: i18n.translate('xpack.beatsManagement.beatsTable.beatNameTitle', {
- defaultMessage: 'Beat name',
- }),
- render: (name: string, beat: CMBeat) => (
- {name}
- ),
- sortable: true,
- },
- {
- field: 'type',
- name: i18n.translate('xpack.beatsManagement.beatsTable.typeTitle', {
- defaultMessage: 'Type',
- }),
- sortable: true,
- },
- {
- field: 'full_tags',
- name: i18n.translate('xpack.beatsManagement.beatsTable.tagsTitle', {
- defaultMessage: 'Tags',
- }),
- render: (value: string, beat: CMBeat & { tags: BeatTag[] }) => (
-
- {(sortBy(beat.tags, 'id') || []).map((tag) => (
-
-
-
-
-
- ))}
-
- ),
- sortable: false,
- },
- {
- field: 'config_status',
- name: i18n.translate('xpack.beatsManagement.beatsTable.configStatusTitle', {
- defaultMessage: 'Config Status',
- }),
- render: (value: string, beat: CMBeat) => {
- let color: IconColor = 'success';
- let statusText = i18n.translate('xpack.beatsManagement.beatsTable.configStatus.okLabel', {
- defaultMessage: 'OK',
- });
- let tooltipText = i18n.translate(
- 'xpack.beatsManagement.beatsTable.configStatus.okTooltip',
- {
- defaultMessage: 'Beat successfully applied latest config',
- }
- );
-
- if (beat.status && moment().diff(beat.last_checkin, 'minutes') < 10) {
- color = dynamicStatuses[beat.status.event.type].color;
- statusText = dynamicStatuses[beat.status.event.type].status;
- tooltipText =
- (dynamicStatuses[beat.status.event.type] as any).details || beat.status.event.message;
- } else if (!beat.status && moment().diff(beat.last_checkin, 'minutes') >= 10) {
- color = 'danger';
- statusText = i18n.translate(
- 'xpack.beatsManagement.beatsTable.configStatus.offlineLabel',
- {
- defaultMessage: 'Offline',
- }
- );
- tooltipText = i18n.translate(
- 'xpack.beatsManagement.beatsTable.configStatus.noConnectionTooltip',
- {
- defaultMessage: 'This Beat has not connected to kibana in over 10min',
- }
- );
- } else if (beat.status && moment().diff(beat.last_checkin, 'minutes') >= 10) {
- color = 'subdued';
-
- tooltipText = i18n.translate(
- 'xpack.beatsManagement.beatsTable.configStatus.notStartedTooltip',
- {
- defaultMessage: 'This Beat has not yet been started.',
- }
- );
- statusText = i18n.translate(
- 'xpack.beatsManagement.beatsTable.configStatus.notStartedLabel',
- {
- defaultMessage: 'Not started',
- }
- );
- } else {
- color = 'subdued';
- statusText = i18n.translate(
- 'xpack.beatsManagement.beatsTable.configStatus.offlineLabel',
- {
- defaultMessage: 'Offline',
- }
- );
- }
-
- return (
-
-
- {statusText}
-
-
- );
- },
- sortable: false,
- },
- // {
- // field: 'full_tags',
- // name: i18n.translate('xpack.beatsManagement.beatsTable.lastConfigUpdateTitle', {
- // defaultMessage: 'Last config update',
- // }),
- // render: (tags?: BeatTag[]) =>
- // tags && tags.length ? (
- //
- // {moment(first(orderBy(tags, ['last_updated'], ['desc'])).last_updated).fromNow()}
- //
- // ) : null,
- // sortable: true,
- // },
- ],
- controlDefinitions: (data: any[]) => ({
- actions: [
- {
- name: i18n.translate('xpack.beatsManagement.beatsTable.disenrollSelectedLabel', {
- defaultMessage: 'Unenroll Selected',
- }),
- action: 'delete',
- danger: true,
- },
- ],
- filters: [
- {
- type: 'field_value_selection',
- field: 'type',
- name: i18n.translate('xpack.beatsManagement.beatsTable.typeLabel', {
- defaultMessage: 'Type',
- }),
- options: uniqBy(
- data.map(({ type }: { type: any }) => ({ value: type })),
- 'value'
- ),
- },
- ],
- }),
-};
-
-export const TagsTableType: TableType = {
- itemType: 'Tags',
- columnDefinitions: [
- {
- field: 'id',
- name: i18n.translate('xpack.beatsManagement.tagsTable.tagNameTitle', {
- defaultMessage: 'Tag name',
- }),
- render: (id: string, tag: BeatTag) => (
-
-
-
- ),
- sortable: true,
- width: '45%',
- },
- {
- align: 'right',
- field: 'last_updated',
- name: i18n.translate('xpack.beatsManagement.tagsTable.lastUpdateTitle', {
- defaultMessage: 'Last update',
- }),
- render: (lastUpdate: Date) => {moment(lastUpdate).fromNow()}
,
- sortable: true,
- },
- ],
- controlDefinitions: (data: any) => ({
- actions: [
- {
- name: i18n.translate('xpack.beatsManagement.tagsTable.removeSelectedLabel', {
- defaultMessage: 'Remove Selected',
- }),
- action: 'delete',
- danger: true,
- },
- ],
- filters: [],
- }),
-};
-
-export const BeatDetailTagsTable: TableType = {
- itemType: 'Tags',
- columnDefinitions: [
- {
- field: 'id',
- name: i18n.translate('xpack.beatsManagement.beatTagsTable.tagNameTitle', {
- defaultMessage: 'Tag name',
- }),
- render: (id: string, tag: BeatTag) => (
-
-
-
- ),
- sortable: true,
- width: '55%',
- },
- {
- align: 'right',
- field: 'last_updated',
- name: i18n.translate('xpack.beatsManagement.beatTagsTable.lastUpdateTitle', {
- defaultMessage: 'Last update',
- }),
- render: (lastUpdate: string) => {moment(lastUpdate).fromNow()} ,
- sortable: true,
- },
- ],
- controlDefinitions: (data: any) => ({
- actions: [],
- filters: [],
- primaryActions: [
- {
- name: i18n.translate('xpack.beatsManagement.beatTagsTable.addTagLabel', {
- defaultMessage: 'Add Tag',
- }),
- action: 'add',
- danger: false,
- },
- {
- name: i18n.translate('xpack.beatsManagement.beatTagsTable.removeSelectedLabel', {
- defaultMessage: 'Remove Selected',
- }),
- action: 'remove',
- danger: true,
- },
- ],
- }),
-};
diff --git a/x-pack/plugins/beats_management/public/components/tag/config_view/config_form.tsx b/x-pack/plugins/beats_management/public/components/tag/config_view/config_form.tsx
deleted file mode 100644
index a3512a395570f..0000000000000
--- a/x-pack/plugins/beats_management/public/components/tag/config_view/config_form.tsx
+++ /dev/null
@@ -1,216 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-// @ts-ignore
-import { i18n } from '@kbn/i18n';
-import Formsy from 'formsy-react';
-import { get } from 'lodash';
-import React from 'react';
-import { ConfigBlockSchema, ConfigurationBlock } from '../../../../common/domain_types';
-import {
- FormsyEuiCodeEditor,
- FormsyEuiFieldText,
- FormsyEuiMultiFieldText,
- FormsyEuiPasswordText,
- FormsyEuiSelect,
-} from '../../inputs';
-
-interface ComponentProps {
- values: ConfigurationBlock;
- schema: ConfigBlockSchema;
- id: string;
- onSubmit?: (modal: any) => any;
- canSubmit(canIt: boolean): any;
-}
-
-interface ComponentState {
- canSubmit: boolean;
-}
-
-class ConfigFormUi extends React.Component {
- private form = React.createRef();
- constructor(props: ComponentProps) {
- super(props);
-
- this.state = {
- canSubmit: false,
- };
- }
-
- public enableButton = () => {
- this.setState({
- canSubmit: true,
- });
- this.props.canSubmit(true);
- };
- public disableButton = () => {
- this.setState({
- canSubmit: false,
- });
- this.props.canSubmit(false);
- };
- public submit = () => {
- if (this.form.current && this.props.onSubmit) {
- this.form.current.click();
- }
- };
- public onValidSubmit = (model: ModelType) => {
- if (!this.props.onSubmit) {
- return;
- }
-
- this.props.onSubmit(model);
- };
- public render() {
- return (
-
-
-
- {this.props.schema.configs.map((schema) => {
- switch (schema.ui.type) {
- case 'input':
- return (
-
- );
- case 'password':
- return (
-
- );
- case 'multi-input':
- return (
-
- );
- case 'select':
- return (
-
- );
- case 'code':
- return (
-
- );
- }
- })}
- {this.props.schema && (
-
- )}
- {this.props.onSubmit && (
-
- )}
-
-
- );
- }
-}
-export const ConfigForm = ConfigFormUi;
diff --git a/x-pack/plugins/beats_management/public/components/tag/config_view/index.tsx b/x-pack/plugins/beats_management/public/components/tag/config_view/index.tsx
deleted file mode 100644
index 601d517e95e9e..0000000000000
--- a/x-pack/plugins/beats_management/public/components/tag/config_view/index.tsx
+++ /dev/null
@@ -1,189 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import {
- EuiButton,
- EuiButtonEmpty,
- EuiFieldText,
- EuiFlexGroup,
- EuiFlexItem,
- EuiFlyout,
- EuiFlyoutBody,
- EuiFlyoutFooter,
- EuiFlyoutHeader,
- EuiFormRow,
- EuiHorizontalRule,
- EuiSelect,
- EuiSpacer,
- EuiTitle,
-} from '@elastic/eui';
-import { i18n } from '@kbn/i18n';
-import React from 'react';
-import { configBlockSchemas } from '../../../../common/config_schemas';
-import { translateConfigSchema } from '../../../../common/config_schemas_translations_map';
-import { ConfigurationBlock } from '../../../../common/domain_types';
-import { ConfigForm } from './config_form';
-
-interface ComponentProps {
- configBlock?: ConfigurationBlock;
- onClose(): any;
- onSave?(config: ConfigurationBlock): any;
-}
-
-interface ComponentState {
- valid: boolean;
- configBlock: ConfigurationBlock;
-}
-
-class ConfigViewUi extends React.Component {
- private form = React.createRef();
- private editMode: boolean;
- private schema = translateConfigSchema(configBlockSchemas);
- constructor(props: any) {
- super(props);
- this.editMode = props.configBlock !== undefined;
-
- this.state = {
- valid: false,
- configBlock: props.configBlock || {
- type: this.schema[0].id,
- },
- };
- }
- public onValueChange = (field: string) => (e: any) => {
- const value = e.currentTarget ? e.currentTarget.value : e;
- this.setState((state: any) => ({
- configBlock: {
- ...state.configBlock,
- [field]: value,
- },
- }));
- };
- public render() {
- const thisConfigSchema = this.schema.find((s) => this.state.configBlock.type === s.id);
-
- if (!thisConfigSchema) {
- return i18n.translate('xpack.beatsManagement.tagConfig.invalidSchema', {
- defaultMessage:
- 'Error: This config is invalid, it is not supported by Beats and should be removed',
- });
- }
- return (
-
-
-
-
- {this.editMode
- ? this.props.onSave
- ? i18n.translate('xpack.beatsManagement.tagConfig.editConfigurationTitle', {
- defaultMessage: 'Edit configuration block',
- })
- : i18n.translate('xpack.beatsManagement.tagConfig.viewConfigurationTitle"', {
- defaultMessage: 'View configuration block',
- })
- : i18n.translate('xpack.beatsManagement.tagConfig.addConfigurationTitle"', {
- defaultMessage: 'Add configuration block',
- })}
-
-
-
-
-
- ({ value: s.id, text: s.name }))}
- value={this.state.configBlock.type}
- disabled={this.editMode}
- onChange={this.onValueChange('type')}
- />
-
-
-
-
-
-
- {i18n.translate('xpack.beatsManagement.tagConfig.configurationTypeText', {
- defaultMessage: '{configType} configuration',
- values: {
- configType: thisConfigSchema ? thisConfigSchema.name : 'Unknown',
- },
- })}
-
-
-
- {
- if (this.props.onSave) {
- this.props.onSave({
- ...this.state.configBlock,
- config: data,
- });
- }
- this.props.onClose();
- }
- : undefined
- }
- canSubmit={(canIt) => this.setState({ valid: canIt })}
- ref={this.form}
- values={this.state.configBlock}
- id={thisConfigSchema ? thisConfigSchema.name : 'Undefined'}
- schema={thisConfigSchema}
- />
-
-
-
-
-
- {i18n.translate('xpack.beatsManagement.tagConfig.closeButtonLabel', {
- defaultMessage: 'Close',
- })}
-
-
- {this.props.onSave && (
-
- {
- if (this.form.current) {
- this.form.current.submit();
- }
- }}
- >
- {i18n.translate('xpack.beatsManagement.tagConfig.saveButtonLabel', {
- defaultMessage: 'Save',
- })}
-
-
- )}
-
-
-
- );
- }
-}
-
-export const ConfigView = ConfigViewUi;
diff --git a/x-pack/plugins/beats_management/public/components/tag/index.ts b/x-pack/plugins/beats_management/public/components/tag/index.ts
deleted file mode 100644
index 9bf533537a3b5..0000000000000
--- a/x-pack/plugins/beats_management/public/components/tag/index.ts
+++ /dev/null
@@ -1,9 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-export { TagBadge } from './tag_badge';
-export { TagEdit } from './tag_edit';
diff --git a/x-pack/plugins/beats_management/public/components/tag/tag_badge.tsx b/x-pack/plugins/beats_management/public/components/tag/tag_badge.tsx
deleted file mode 100644
index 0940b9c4fbdf9..0000000000000
--- a/x-pack/plugins/beats_management/public/components/tag/tag_badge.tsx
+++ /dev/null
@@ -1,48 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { EuiBadge, EuiBadgeProps } from '@elastic/eui';
-import React from 'react';
-import { TABLE_CONFIG } from '../../../common/constants';
-
-type TagBadgeProps = EuiBadgeProps & {
- maxIdRenderSize?: number;
- tag: { name: string; color: string; disabled?: boolean; id: string };
-};
-
-export const TagBadge = (props: TagBadgeProps) => {
- const { iconType, onClick, onClickAriaLabel, tag } = props;
- const maxIdRenderSize = props.maxIdRenderSize || TABLE_CONFIG.TRUNCATE_TAG_LENGTH;
- const idToRender = `${tag.name.substring(0, maxIdRenderSize)}${
- tag.name.length > maxIdRenderSize ? '...' : ''
- }`;
-
- if (tag.disabled) {
- return (
-
- {idToRender}
-
- );
- } else if (onClick && onClickAriaLabel) {
- return (
- }
- onClickAriaLabel={onClickAriaLabel}
- >
- {idToRender}
-
- );
- } else {
- return (
-
- {idToRender}
-
- );
- }
-};
diff --git a/x-pack/plugins/beats_management/public/components/tag/tag_edit.tsx b/x-pack/plugins/beats_management/public/components/tag/tag_edit.tsx
deleted file mode 100644
index bbf5a8407905e..0000000000000
--- a/x-pack/plugins/beats_management/public/components/tag/tag_edit.tsx
+++ /dev/null
@@ -1,238 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import {
- EuiButton,
- // @ts-ignore
- EuiColorPicker,
- EuiFieldText,
- EuiFlexGroup,
- EuiFlexItem,
- // @ts-ignore
- EuiForm,
- EuiFormRow,
- EuiHorizontalRule,
- EuiSpacer,
- EuiText,
- EuiTitle,
-} from '@elastic/eui';
-import { i18n } from '@kbn/i18n';
-import { FormattedMessage } from '@kbn/i18n/react';
-import 'brace/mode/yaml';
-import 'brace/theme/github';
-import React from 'react';
-import { BeatTag, CMBeat, ConfigurationBlock } from '../../../common/domain_types';
-import { ConfigList } from '../config_list';
-import { AssignmentActionType, BeatsTableType, Table, tagConfigActions } from '../table';
-import { ConfigView } from './config_view';
-import { TagBadge } from './tag_badge';
-
-interface TagEditProps {
- tag: BeatTag;
- configuration_blocks: {
- error?: string | undefined;
- list: ConfigurationBlock[];
- page: number;
- total: number;
- };
- onConfigListChange: (index: number, size: number) => void;
- onDetachBeat?: (beatIds: string[]) => void;
- onTagChange: (field: keyof BeatTag, value: string) => any;
- onConfigAddOrEdit: (block: ConfigurationBlock) => any;
- onConfigRemoved: (block: ConfigurationBlock) => any;
- attachedBeats?: CMBeat[];
-}
-
-interface TagEditState {
- showFlyout: boolean;
- tableRef: any;
- selectedConfig?: ConfigurationBlock;
-}
-
-export class TagEdit extends React.PureComponent {
- constructor(props: TagEditProps) {
- super(props);
-
- this.state = {
- showFlyout: false,
- tableRef: React.createRef(),
- };
- }
-
- public render() {
- // eslint-disable-next-line @typescript-eslint/naming-convention
- const { tag, attachedBeats, configuration_blocks } = this.props;
-
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }
- isInvalid={!!this.getNameError(tag.name)}
- error={this.getNameError(tag.name) || undefined}
- >
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {
- if (action === 'delete') {
- this.props.onConfigRemoved(block);
- } else {
- this.setState({
- showFlyout: true,
- selectedConfig: block,
- });
- }
- }}
- />
-
- {
- this.setState({ showFlyout: true });
- }}
- >
-
-
-
-
-
-
- {attachedBeats && (
-
- )}
- {this.state.showFlyout && (
-
this.setState({ showFlyout: false, selectedConfig: undefined })}
- onSave={(config: ConfigurationBlock) => {
- this.setState({ showFlyout: false, selectedConfig: undefined });
- this.props.onConfigAddOrEdit(config);
- }}
- />
- )}
-
- );
- }
-
- private getNameError = (name: string) => {
- if (name && name !== '' && name.search(/^[a-zA-Z0-9-]+$/) === -1) {
- return i18n.translate('xpack.beatsManagement.tag.tagName.validationErrorMessage', {
- defaultMessage: 'Tag name must consist of letters, numbers, and dashes only',
- });
- } else {
- return false;
- }
- };
-
- private handleAssignmentActions = (action: AssignmentActionType) => {
- switch (action) {
- case AssignmentActionType.Delete:
- const { selection } = this.state.tableRef.current.state;
- if (this.props.onDetachBeat) {
- this.props.onDetachBeat(selection.map((beat: any) => beat.id));
- }
- }
- };
-
- private updateTag = (key: keyof BeatTag, value?: any) =>
- value !== undefined
- ? this.props.onTagChange(key, value)
- : (e: any) => this.props.onTagChange(key, e.target ? e.target.value : e);
-}
diff --git a/x-pack/plugins/beats_management/public/containers/beats.ts b/x-pack/plugins/beats_management/public/containers/beats.ts
deleted file mode 100644
index 73f77c08282e1..0000000000000
--- a/x-pack/plugins/beats_management/public/containers/beats.ts
+++ /dev/null
@@ -1,104 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { Container } from 'unstated';
-import { CMBeat } from '../../common/domain_types';
-// eslint-disable-next-line @kbn/eslint/no-restricted-paths
-import type { BeatsTagAssignment } from '../../server/lib/adapters/beats/adapter_types';
-import { FrontendLibs } from './../lib/types';
-
-interface ContainerState {
- list: CMBeat[];
-}
-
-export class BeatsContainer extends Container {
- private query?: string;
- constructor(private readonly libs: FrontendLibs) {
- super();
- this.state = {
- list: [],
- };
- }
-
- public getBeatWithToken = async (token: string) => {
- const beat = await this.libs.beats.getBeatWithToken(token);
-
- if (beat) {
- this.setState({
- list: [beat as CMBeat, ...this.state.list],
- });
- return beat as CMBeat;
- }
- return null;
- };
-
- public reload = async (kuery?: string) => {
- if (kuery) {
- this.query = kuery;
- } else {
- this.query = undefined;
- }
- const beats = await this.libs.beats.getAll(this.query);
-
- this.setState({
- list: beats,
- });
- };
-
- public deactivate = async (beats: CMBeat[]) => {
- for (const beat of beats) {
- await this.libs.beats.update(beat.id, { active: false });
- }
-
- // because the compile code above has a very minor race condition, we wait,
- // the max race condition time is really 10ms but doing 100 to be safe
- setTimeout(async () => {
- await this.reload(this.query);
- }, 100);
- };
-
- public toggleTagAssignment = async (tagId: string, beats: CMBeat[]) => {
- if (beats.some((beat) => beat.tags !== undefined && beat.tags.some((id) => id === tagId))) {
- await this.removeTagsFromBeats(beats, tagId);
- return 'removed';
- }
- await this.assignTagsToBeats(beats, tagId);
- return 'added';
- };
-
- public removeTagsFromBeats = async (beats: CMBeat[] | string[], tagId: string) => {
- if (!beats.length) {
- return false;
- }
- const assignments = createBeatTagAssignments(beats, tagId);
- await this.libs.beats.removeTagsFromBeats(assignments);
- // ES responds incorrectly when we call too soon
- setTimeout(async () => {
- await this.reload(this.query);
- }, 150);
- };
-
- public assignTagsToBeats = async (beats: CMBeat[] | string[], tagId: string) => {
- if (!beats.length) {
- return false;
- }
- const assignments = createBeatTagAssignments(beats, tagId);
- await this.libs.beats.assignTagsToBeats(assignments);
- // ES responds incorrectly when we call too soon
- setTimeout(async () => {
- await this.reload(this.query);
- }, 150);
- };
-}
-
-function createBeatTagAssignments(beats: CMBeat[] | string[], tagId: string): BeatsTagAssignment[] {
- if (typeof beats[0] === 'string') {
- return (beats as string[]).map((id) => ({ beatId: id, tag: tagId }));
- } else {
- return (beats as CMBeat[]).map(({ id }) => ({ beatId: id, tag: tagId }));
- }
-}
diff --git a/x-pack/plugins/beats_management/public/containers/tags.ts b/x-pack/plugins/beats_management/public/containers/tags.ts
deleted file mode 100644
index f7b4996fc750d..0000000000000
--- a/x-pack/plugins/beats_management/public/containers/tags.ts
+++ /dev/null
@@ -1,54 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { Container } from 'unstated';
-import { BeatTag } from '../../common/domain_types';
-import { FrontendLibs } from '../lib/types';
-
-interface ContainerState {
- list: BeatTag[];
-}
-
-export class TagsContainer extends Container {
- private query?: string;
- constructor(private readonly libs: FrontendLibs) {
- super();
- this.state = {
- list: [],
- };
- }
- public reload = async (kuery?: string) => {
- if (kuery) {
- this.query = kuery;
- } else {
- this.query = undefined;
- }
-
- const tags = await this.libs.tags.getAll(this.query);
-
- this.setState({
- list: tags,
- });
- };
-
- public delete = async (tags: BeatTag[]) => {
- const tagIds = tags.map((tag: BeatTag) => tag.id);
- const success = await this.libs.tags.delete(tagIds);
- if (success) {
- this.setState({
- list: this.state.list.filter((tag) => tagIds.includes(tag.id)),
- });
- }
- return success;
- };
-
- public upsertTag = async (tag: BeatTag) => {
- const beatTag = await this.libs.tags.upsertTag(tag);
- await this.reload();
- return beatTag !== null;
- };
-}
diff --git a/x-pack/plugins/beats_management/public/containers/with_kuery_autocompletion.tsx b/x-pack/plugins/beats_management/public/containers/with_kuery_autocompletion.tsx
deleted file mode 100644
index 5bd3a4194d4f7..0000000000000
--- a/x-pack/plugins/beats_management/public/containers/with_kuery_autocompletion.tsx
+++ /dev/null
@@ -1,89 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import React from 'react';
-
-import { QuerySuggestion } from '../../../../../src/plugins/data/public';
-
-import { FrontendLibs } from '../lib/types';
-import { RendererFunction } from '../utils/typed_react';
-
-interface WithKueryAutocompletionLifecycleProps {
- libs: FrontendLibs;
- fieldPrefix?: string;
- children: RendererFunction<{
- isLoadingSuggestions: boolean;
- loadSuggestions: (expression: string, cursorPosition: number, maxSuggestions?: number) => void;
- suggestions: QuerySuggestion[];
- }>;
-}
-
-interface WithKueryAutocompletionLifecycleState {
- // lacking cancellation support in the autocompletion api,
- // this is used to keep older, slower requests from clobbering newer ones
- currentRequest: {
- expression: string;
- cursorPosition: number;
- } | null;
- suggestions: QuerySuggestion[];
-}
-
-export class WithKueryAutocompletion extends React.Component<
- WithKueryAutocompletionLifecycleProps,
- WithKueryAutocompletionLifecycleState
-> {
- public readonly state: WithKueryAutocompletionLifecycleState = {
- currentRequest: null,
- suggestions: [],
- };
-
- public render() {
- const { currentRequest, suggestions } = this.state;
-
- return this.props.children({
- isLoadingSuggestions: currentRequest !== null,
- loadSuggestions: this.loadSuggestions,
- suggestions,
- });
- }
-
- private loadSuggestions = async (
- expression: string,
- cursorPosition: number,
- maxSuggestions?: number
- ) => {
- this.setState({
- currentRequest: {
- expression,
- cursorPosition,
- },
- suggestions: [],
- });
- let suggestions: any[] = [];
- try {
- suggestions = await this.props.libs.elasticsearch.getSuggestions(
- expression,
- cursorPosition,
- this.props.fieldPrefix
- );
- } catch (e) {
- suggestions = [];
- }
-
- this.setState((state) =>
- state.currentRequest &&
- state.currentRequest.expression !== expression &&
- state.currentRequest.cursorPosition !== cursorPosition
- ? state // ignore this result, since a newer request is in flight
- : {
- ...state,
- currentRequest: null,
- suggestions: maxSuggestions ? suggestions.slice(0, maxSuggestions) : suggestions,
- }
- );
- };
-}
diff --git a/x-pack/plugins/beats_management/public/containers/with_url_state.tsx b/x-pack/plugins/beats_management/public/containers/with_url_state.tsx
deleted file mode 100644
index a72a60bf04a18..0000000000000
--- a/x-pack/plugins/beats_management/public/containers/with_url_state.tsx
+++ /dev/null
@@ -1,101 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { parse, stringify } from 'query-string';
-import React from 'react';
-import { withRouter, RouteComponentProps } from 'react-router-dom';
-import { FlatObject } from '../frontend_types';
-import { RendererFunction } from '../utils/typed_react';
-
-type StateCallback = (previousState: T) => T;
-
-export interface URLStateProps {
- goTo: (path: string) => void;
- setUrlState: (
- newState:
- | Partial>
- | StateCallback
- | Promise>
- ) => void;
- urlState: URLState;
-}
-interface ComponentProps extends RouteComponentProps {
- children: RendererFunction>;
-}
-
-export class WithURLStateComponent extends React.Component<
- ComponentProps
-> {
- private get URLState(): URLState {
- // slice because parse does not account for the initial ? in the search string
- return parse(decodeURIComponent(this.props.history.location.search).substring(1), {
- sort: false,
- }) as URLState;
- }
-
- private historyListener: (() => void) | null = null;
-
- public componentWillUnmount() {
- if (this.historyListener) {
- this.historyListener();
- }
- }
- public render() {
- return this.props.children({
- goTo: this.goTo,
- setUrlState: this.setURLState,
- urlState: this.URLState || {},
- });
- }
-
- private setURLState = async (
- state:
- | Partial>
- | StateCallback
- | Promise>
- ) => {
- let newState;
- const pastState = this.URLState;
- if (typeof state === 'function') {
- newState = await state(pastState);
- } else {
- newState = state;
- }
-
- const search: string = stringify(
- {
- ...pastState,
- ...newState,
- },
- { sort: false }
- );
-
- const newLocation = {
- ...this.props.history.location,
- search,
- };
-
- this.props.history.replace(newLocation);
- this.forceUpdate();
- };
-
- private goTo = (path: string) => {
- this.props.history.push({
- pathname: path,
- search: this.props.history.location.search,
- });
- };
-}
-export const WithURLState = withRouter(WithURLStateComponent);
-
-export function withUrlState(UnwrappedComponent: React.ComponentType) {
- return (origProps: OP) => (
-
- {(URLProps: URLStateProps) => }
-
- );
-}
diff --git a/x-pack/plugins/beats_management/public/frontend_types.d.ts b/x-pack/plugins/beats_management/public/frontend_types.d.ts
deleted file mode 100644
index 2fa6da067d2b0..0000000000000
--- a/x-pack/plugins/beats_management/public/frontend_types.d.ts
+++ /dev/null
@@ -1,36 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { RouteComponentProps } from 'react-router-dom';
-import { BeatsContainer } from './containers/beats';
-import { TagsContainer } from './containers/tags';
-import { URLStateProps } from './containers/with_url_state';
-import { FrontendLibs } from './lib/types';
-
-export type FlatObject = { [Key in keyof T]: string };
-
-export interface AppURLState {
- beatsKBar?: string;
- tagsKBar?: string;
- enrollmentToken?: string;
- createdTag?: string;
-}
-
-export interface RouteConfig {
- path: string;
- component: React.ComponentType;
- routes?: RouteConfig[];
-}
-
-export interface AppPageProps extends URLStateProps, RouteComponentProps {
- libs: FrontendLibs;
- containers: {
- beats: BeatsContainer;
- tags: TagsContainer;
- };
- routes?: RouteConfig[];
-}
diff --git a/x-pack/plugins/beats_management/public/index.ts b/x-pack/plugins/beats_management/public/index.ts
deleted file mode 100644
index da124a3c50da1..0000000000000
--- a/x-pack/plugins/beats_management/public/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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { CoreSetup, Plugin, PluginInitializerContext } from '../../../../src/core/public';
-
-import { ManagementSetup } from '../../../../src/plugins/management/public';
-import { SecurityPluginSetup } from '../../security/public';
-import { DataPublicPluginStart } from '../../../../src/plugins/data/public';
-import { LicensingPluginSetup } from '../../licensing/public';
-
-import { bootstrap } from './bootstrap';
-import { BeatsManagementConfigType } from '../common';
-
-interface SetupDeps {
- management: ManagementSetup;
- licensing: LicensingPluginSetup;
- security?: SecurityPluginSetup;
-}
-
-interface StartDeps {
- data: DataPublicPluginStart;
-}
-
-class BeatsManagementPlugin implements Plugin {
- constructor(private readonly initContext: PluginInitializerContext) {}
-
- public setup(core: CoreSetup, plugins: SetupDeps) {
- const config = this.initContext.config.get();
- bootstrap(core, plugins, config, this.initContext.env.packageInfo.version);
- }
-
- public start() {}
- public stop() {}
-}
-
-export const plugin = (init: PluginInitializerContext) => new BeatsManagementPlugin(init);
diff --git a/x-pack/plugins/beats_management/public/kbn_services.ts b/x-pack/plugins/beats_management/public/kbn_services.ts
deleted file mode 100644
index 7c7ddef0dabc4..0000000000000
--- a/x-pack/plugins/beats_management/public/kbn_services.ts
+++ /dev/null
@@ -1,26 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { CoreStart } from '../../../../src/core/public';
-import { DataPublicPluginStart } from '../../../../src/plugins/data/public';
-import { ManagementAppMountParams } from '../../../../src/plugins/management/public';
-
-export const services = {
- I18nContext: (null as any) as CoreStart['i18n']['Context'],
- setBreadcrumbs: (null as any) as ManagementAppMountParams['setBreadcrumbs'],
- dataStart: (null as any) as DataPublicPluginStart,
-};
-
-export const setServices = (
- core: CoreStart,
- plugins: { data: DataPublicPluginStart },
- params: ManagementAppMountParams
-) => {
- services.I18nContext = core.i18n.Context;
- services.setBreadcrumbs = params.setBreadcrumbs;
- services.dataStart = plugins.data;
-};
diff --git a/x-pack/plugins/beats_management/public/lib/adapters/beats/adapter_types.ts b/x-pack/plugins/beats_management/public/lib/adapters/beats/adapter_types.ts
deleted file mode 100644
index da61655e2c856..0000000000000
--- a/x-pack/plugins/beats_management/public/lib/adapters/beats/adapter_types.ts
+++ /dev/null
@@ -1,38 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { CMBeat } from '../../../../common/domain_types';
-import { ReturnTypeBulkAction } from '../../../../common/return_types';
-
-export interface CMBeatsAdapter {
- get(id: string): Promise;
- update(id: string, beatData: Partial): Promise;
- getBeatsWithTag(tagId: string): Promise;
- getAll(ESQuery?: any): Promise;
- removeTagsFromBeats(removals: BeatsTagAssignment[]): Promise;
- assignTagsToBeats(assignments: BeatsTagAssignment[]): Promise;
- getBeatWithToken(enrollmentToken: string): Promise;
-}
-
-export interface BeatsTagAssignment {
- beatId: string;
- tag: string;
- idxInRequest?: number;
-}
-
-interface BeatsReturnedTagAssignment {
- status: number | null;
- result?: string;
-}
-
-export interface CMAssignmentReturn {
- assignments: BeatsReturnedTagAssignment[];
-}
-
-export interface BeatsRemovalReturn {
- removals: BeatsReturnedTagAssignment[];
-}
diff --git a/x-pack/plugins/beats_management/public/lib/adapters/beats/memory_beats_adapter.ts b/x-pack/plugins/beats_management/public/lib/adapters/beats/memory_beats_adapter.ts
deleted file mode 100644
index 172635fb14f9a..0000000000000
--- a/x-pack/plugins/beats_management/public/lib/adapters/beats/memory_beats_adapter.ts
+++ /dev/null
@@ -1,109 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { omit } from 'lodash';
-import { CMBeat } from '../../../../common/domain_types';
-import { ReturnTypeBulkAction } from '../../../../common/return_types';
-import { BeatsTagAssignment, CMBeatsAdapter } from './adapter_types';
-
-export class MemoryBeatsAdapter implements CMBeatsAdapter {
- private beatsDB: CMBeat[];
-
- constructor(beatsDB: CMBeat[]) {
- this.beatsDB = beatsDB;
- }
-
- public async get(id: string) {
- return this.beatsDB.find((beat) => beat.id === id) || null;
- }
-
- public async update(id: string, beatData: Partial): Promise {
- const index = this.beatsDB.findIndex((beat) => beat.id === id);
-
- if (index === -1) {
- return false;
- }
-
- this.beatsDB[index] = { ...this.beatsDB[index], ...beatData };
- return true;
- }
-
- public async getAll() {
- return this.beatsDB.map((beat: any) => omit(beat, ['access_token'])) as CMBeat[];
- }
- public async getBeatsWithTag(tagId: string): Promise {
- return this.beatsDB.map((beat: any) => omit(beat, ['access_token'])) as CMBeat[];
- }
-
- public async getBeatWithToken(enrollmentToken: string): Promise {
- return this.beatsDB.map((beat: any) => omit(beat, ['access_token']))[0] as CMBeat | null;
- }
- public async removeTagsFromBeats(
- removals: BeatsTagAssignment[]
- ): Promise {
- const beatIds = removals.map((r) => r.beatId);
-
- const response = this.beatsDB
- .filter((beat) => beatIds.includes(beat.id))
- .map((beat) => {
- const tagData = removals.find((r) => r.beatId === beat.id);
- if (tagData) {
- if (beat.tags) {
- beat.tags = beat.tags.filter((tag) => tag !== tagData.tag);
- }
- }
- const removalsForBeat = removals.filter((r) => r.beatId === beat.id);
- if (removalsForBeat.length) {
- removalsForBeat.forEach((assignment: BeatsTagAssignment) => {
- if (beat.tags) {
- beat.tags = beat.tags.filter((tag) => tag !== assignment.tag);
- }
- });
- }
- return beat;
- });
-
- return response.map((item: CMBeat, resultIdx: number) => ({
- idxInRequest: removals[resultIdx].idxInRequest,
- result: 'updated',
- status: 200,
- })) as any;
- }
-
- public async assignTagsToBeats(
- assignments: BeatsTagAssignment[]
- ): Promise {
- const beatIds = assignments.map((r) => r.beatId);
-
- this.beatsDB
- .filter((beat) => beatIds.includes(beat.id))
- .map((beat) => {
- // get tags that need to be assigned to this beat
- const tags = assignments
- .filter((a) => a.beatId === beat.id)
- .map((t: BeatsTagAssignment) => t.tag);
-
- if (tags.length > 0) {
- if (!beat.tags) {
- beat.tags = [];
- }
- const nonExistingTags = tags.filter((t: string) => beat.tags && !beat.tags.includes(t));
-
- if (nonExistingTags.length > 0) {
- beat.tags = beat.tags.concat(nonExistingTags);
- }
- }
- return beat;
- });
-
- return assignments.map((item: BeatsTagAssignment, resultIdx: number) => ({
- idxInRequest: assignments[resultIdx].idxInRequest,
- result: 'updated',
- status: 200,
- }));
- }
-}
diff --git a/x-pack/plugins/beats_management/public/lib/adapters/beats/rest_beats_adapter.ts b/x-pack/plugins/beats_management/public/lib/adapters/beats/rest_beats_adapter.ts
deleted file mode 100644
index 489eb4d721cd3..0000000000000
--- a/x-pack/plugins/beats_management/public/lib/adapters/beats/rest_beats_adapter.ts
+++ /dev/null
@@ -1,80 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { CMBeat } from '../../../../common/domain_types';
-import {
- ReturnTypeBulkAction,
- ReturnTypeGet,
- ReturnTypeList,
- ReturnTypeUpdate,
-} from '../../../../common/return_types';
-import { RestAPIAdapter } from '../rest_api/adapter_types';
-import { BeatsTagAssignment, CMBeatsAdapter } from './adapter_types';
-
-export class RestBeatsAdapter implements CMBeatsAdapter {
- constructor(private readonly REST: RestAPIAdapter) {}
-
- public async get(id: string): Promise {
- try {
- return (await this.REST.get>(`/api/beats/agent/${id}`)).item;
- } catch (e) {
- return null;
- }
- }
-
- public async getBeatWithToken(enrollmentToken: string): Promise {
- try {
- return (
- await this.REST.get>(`/api/beats/agent/unknown/${enrollmentToken}`)
- ).item;
- } catch (e) {
- return null;
- }
- }
-
- public async getAll(ESQuery?: string): Promise {
- try {
- return (await this.REST.get>('/api/beats/agents/all', { ESQuery }))
- .list;
- } catch (e) {
- return [];
- }
- }
-
- public async getBeatsWithTag(tagId: string): Promise {
- try {
- return (await this.REST.get>(`/api/beats/agents/tag/${tagId}`)).list;
- } catch (e) {
- return [];
- }
- }
-
- public async update(id: string, beatData: Partial): Promise {
- await this.REST.put>(`/api/beats/agent/${id}`, beatData);
- return true;
- }
-
- public async removeTagsFromBeats(
- removals: BeatsTagAssignment[]
- ): Promise {
- return (
- await this.REST.post(`/api/beats/agents_tags/removals`, {
- removals,
- })
- ).results;
- }
-
- public async assignTagsToBeats(
- assignments: BeatsTagAssignment[]
- ): Promise {
- return (
- await this.REST.post(`/api/beats/agents_tags/assignments`, {
- assignments,
- })
- ).results;
- }
-}
diff --git a/x-pack/plugins/beats_management/public/lib/adapters/configuration_blocks/adapter_types.ts b/x-pack/plugins/beats_management/public/lib/adapters/configuration_blocks/adapter_types.ts
deleted file mode 100644
index 24921f1778b6c..0000000000000
--- a/x-pack/plugins/beats_management/public/lib/adapters/configuration_blocks/adapter_types.ts
+++ /dev/null
@@ -1,15 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { ConfigurationBlock } from '../../../../common/domain_types';
-import { ReturnTypeBulkUpsert, ReturnTypeList } from '../../../../common/return_types';
-
-export interface FrontendConfigBlocksAdapter {
- upsert(blocks: ConfigurationBlock[]): Promise;
- getForTags(tagIds: string[], page: number): Promise>;
- delete(id: string): Promise;
-}
diff --git a/x-pack/plugins/beats_management/public/lib/adapters/configuration_blocks/memory_config_blocks_adapter.ts b/x-pack/plugins/beats_management/public/lib/adapters/configuration_blocks/memory_config_blocks_adapter.ts
deleted file mode 100644
index 6b3549465e171..0000000000000
--- a/x-pack/plugins/beats_management/public/lib/adapters/configuration_blocks/memory_config_blocks_adapter.ts
+++ /dev/null
@@ -1,42 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { ConfigurationBlock } from '../../../../common/domain_types';
-import { ReturnTypeBulkUpsert, ReturnTypeList } from '../../../../common/return_types';
-import { FrontendConfigBlocksAdapter } from './adapter_types';
-
-export class MemoryConfigBlocksAdapter implements FrontendConfigBlocksAdapter {
- constructor(private db: ConfigurationBlock[]) {}
-
- public async upsert(blocks: ConfigurationBlock[]): Promise {
- this.db = this.db.concat(blocks);
- return {
- success: true,
- results: blocks.map(() => ({
- success: true,
- action: 'created',
- })),
- } as ReturnTypeBulkUpsert;
- }
- public async getForTags(tagIds: string[]): Promise> {
- return {
- success: true,
- list: this.db.filter((block) => tagIds.includes(block.tag)),
- page: 0,
- total: this.db.filter((block) => tagIds.includes(block.tag)).length,
- };
- }
- public async delete(id: string): Promise {
- this.db = this.db.reduce((newDB: ConfigurationBlock[], block) => {
- if (block.id !== id) {
- newDB.push(block);
- }
- return newDB;
- }, []);
- return !!this.db.find((block) => block.id === id);
- }
-}
diff --git a/x-pack/plugins/beats_management/public/lib/adapters/configuration_blocks/rest_config_blocks_adapter.ts b/x-pack/plugins/beats_management/public/lib/adapters/configuration_blocks/rest_config_blocks_adapter.ts
deleted file mode 100644
index 295455dfaa48d..0000000000000
--- a/x-pack/plugins/beats_management/public/lib/adapters/configuration_blocks/rest_config_blocks_adapter.ts
+++ /dev/null
@@ -1,36 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { ConfigurationBlock } from '../../../../common/domain_types';
-import {
- ReturnTypeBulkDelete,
- ReturnTypeBulkUpsert,
- ReturnTypeList,
-} from '../../../../common/return_types';
-import { RestAPIAdapter } from '../rest_api/adapter_types';
-import { FrontendConfigBlocksAdapter } from './adapter_types';
-
-export class RestConfigBlocksAdapter implements FrontendConfigBlocksAdapter {
- constructor(private readonly REST: RestAPIAdapter) {}
-
- public async upsert(blocks: ConfigurationBlock[]) {
- const result = await this.REST.put(`/api/beats/configurations`, blocks);
- return result;
- }
- public async getForTags(
- tagIds: string[],
- page: number
- ): Promise> {
- return await this.REST.get>(
- `/api/beats/configurations/${tagIds.join(',')}/${page}`
- );
- }
- public async delete(id: string): Promise {
- return (await this.REST.delete(`/api/beats/configurations/${id}`))
- .success;
- }
-}
diff --git a/x-pack/plugins/beats_management/public/lib/adapters/elasticsearch/adapter_types.ts b/x-pack/plugins/beats_management/public/lib/adapters/elasticsearch/adapter_types.ts
deleted file mode 100644
index b414648a192cb..0000000000000
--- a/x-pack/plugins/beats_management/public/lib/adapters/elasticsearch/adapter_types.ts
+++ /dev/null
@@ -1,14 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { QuerySuggestion } from '../../../../../../../src/plugins/data/public';
-
-export interface ElasticsearchAdapter {
- convertKueryToEsQuery: (kuery: string) => Promise;
- getSuggestions: (kuery: string, selectionStart: any) => Promise;
- isKueryValid(kuery: string): boolean;
-}
diff --git a/x-pack/plugins/beats_management/public/lib/adapters/elasticsearch/memory.ts b/x-pack/plugins/beats_management/public/lib/adapters/elasticsearch/memory.ts
deleted file mode 100644
index e5a24f53d049e..0000000000000
--- a/x-pack/plugins/beats_management/public/lib/adapters/elasticsearch/memory.ts
+++ /dev/null
@@ -1,27 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { QuerySuggestion } from '../../../../../../../src/plugins/data/public';
-import { ElasticsearchAdapter } from './adapter_types';
-
-export class MemoryElasticsearchAdapter implements ElasticsearchAdapter {
- constructor(
- private readonly mockIsKueryValid: (kuery: string) => boolean,
- private readonly mockKueryToEsQuery: (kuery: string) => string,
- private readonly suggestions: QuerySuggestion[]
- ) {}
-
- public isKueryValid(kuery: string): boolean {
- return this.mockIsKueryValid(kuery);
- }
- public async convertKueryToEsQuery(kuery: string): Promise {
- return this.mockKueryToEsQuery(kuery);
- }
- public async getSuggestions(kuery: string, selectionStart: any): Promise {
- return this.suggestions;
- }
-}
diff --git a/x-pack/plugins/beats_management/public/lib/adapters/elasticsearch/rest.ts b/x-pack/plugins/beats_management/public/lib/adapters/elasticsearch/rest.ts
deleted file mode 100644
index 0143fc8b4a364..0000000000000
--- a/x-pack/plugins/beats_management/public/lib/adapters/elasticsearch/rest.ts
+++ /dev/null
@@ -1,66 +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
- * 2.0; you may not use this file except in compliance with the Elastic License
- * 2.0.
- */
-
-import { isEmpty } from 'lodash';
-import { ElasticsearchAdapter } from './adapter_types';
-import { QuerySuggestion, esKuery } from '../../../../../../../src/plugins/data/public';
-import { services } from '../../../kbn_services';
-
-export class RestElasticsearchAdapter implements ElasticsearchAdapter {
- private cachedIndexPattern: any = null;
- constructor(private readonly indexPatternName: string) {}
-
- public isKueryValid(kuery: string): boolean {
- try {
- esKuery.fromKueryExpression(kuery);
- } catch (err) {
- return false;
- }
-
- return true;
- }
- public async convertKueryToEsQuery(kuery: string): Promise