From f4d27b283876405aaa3713f3907ce3c31a467d66 Mon Sep 17 00:00:00 2001 From: Tim Sullivan Date: Mon, 11 May 2020 12:49:19 -0700 Subject: [PATCH 01/12] [Reporting/Test] Add Functional test for download CSV (#65401) * [Reporting/Test] Add Functional test for download CSV * add todo * add fs.existsSync check to find download * debug * handle timeout * validate toast * different way of getting repo_root --- test/functional/services/find.ts | 2 +- .../apps/dashboard/reporting/download_csv.ts | 68 ++++++++++ .../apps/dashboard/reporting/index.ts | 122 +---------------- .../apps/dashboard/reporting/screenshots.ts | 127 ++++++++++++++++++ .../functional/page_objects/reporting_page.ts | 5 +- 5 files changed, 203 insertions(+), 121 deletions(-) create mode 100644 x-pack/test/functional/apps/dashboard/reporting/download_csv.ts create mode 100644 x-pack/test/functional/apps/dashboard/reporting/screenshots.ts diff --git a/test/functional/services/find.ts b/test/functional/services/find.ts index bdcc5ba95e9fb..09fc32115f683 100644 --- a/test/functional/services/find.ts +++ b/test/functional/services/find.ts @@ -198,7 +198,7 @@ export async function FindProvider({ getService }: FtrProviderContext) { if (isDisplayed) { return descendant; } else { - throw new Error('Element is not displayed'); + throw new Error(`Element "${selector}" is not displayed`); } } diff --git a/x-pack/test/functional/apps/dashboard/reporting/download_csv.ts b/x-pack/test/functional/apps/dashboard/reporting/download_csv.ts new file mode 100644 index 0000000000000..b66f9d2baeb36 --- /dev/null +++ b/x-pack/test/functional/apps/dashboard/reporting/download_csv.ts @@ -0,0 +1,68 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { REPO_ROOT } from '@kbn/dev-utils'; +import expect from '@kbn/expect'; +import fs from 'fs'; +import path from 'path'; +import * as Rx from 'rxjs'; +import { filter, first, map, timeout } from 'rxjs/operators'; +import { FtrProviderContext } from '../../../ftr_provider_context'; + +const csvPath = path.resolve(REPO_ROOT, 'target/functional-tests/downloads/Ecommerce Data.csv'); + +export default function({ getService, getPageObjects }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const browser = getService('browser'); + const dashboardPanelActions = getService('dashboardPanelActions'); + const log = getService('log'); + const testSubjects = getService('testSubjects'); + const PageObjects = getPageObjects(['reporting', 'common', 'dashboard']); + + describe('Reporting Download CSV', () => { + before('initialize tests', async () => { + log.debug('ReportingPage:initTests'); + await esArchiver.loadIfNeeded('reporting/ecommerce'); + await esArchiver.loadIfNeeded('reporting/ecommerce_kibana'); + await browser.setWindowSize(1600, 850); + }); + + after('clean up archives and previous file download', async () => { + await esArchiver.unload('reporting/ecommerce'); + await esArchiver.unload('reporting/ecommerce_kibana'); + try { + fs.unlinkSync(csvPath); + } catch (e) { + // nothing to worry + } + }); + + it('Downloads a CSV export of a saved search panel', async function() { + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.loadSavedDashboard('Ecom Dashboard'); + const savedSearchPanel = await testSubjects.find('embeddablePanelHeading-EcommerceData'); + await dashboardPanelActions.toggleContextMenu(savedSearchPanel); + + await testSubjects.existOrFail('embeddablePanelAction-downloadCsvReport'); // wait for the full panel to display or else the test runner could click the wrong option! + await testSubjects.click('embeddablePanelAction-downloadCsvReport'); + await testSubjects.existOrFail('csvDownloadStarted'); // validate toast panel + + // check every 100ms for the file to exist in the download dir + // just wait up to 5 seconds + const success$ = Rx.interval(100).pipe( + map(() => fs.existsSync(csvPath)), + filter(value => value === true), + first(), + timeout(5000) + ); + + const fileExists = await success$.toPromise(); + expect(fileExists).to.be(true); + + // no need to validate download contents, API Integration tests do that some different variations + }); + }); +} diff --git a/x-pack/test/functional/apps/dashboard/reporting/index.ts b/x-pack/test/functional/apps/dashboard/reporting/index.ts index 796e15b4e270f..1dc2a958e3dd5 100644 --- a/x-pack/test/functional/apps/dashboard/reporting/index.ts +++ b/x-pack/test/functional/apps/dashboard/reporting/index.ts @@ -3,125 +3,11 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ - -import expect from '@kbn/expect'; -import fs from 'fs'; -import path from 'path'; -import { promisify } from 'util'; import { FtrProviderContext } from '../../../ftr_provider_context'; -import { checkIfPngsMatch } from './lib/compare_pngs'; - -const writeFileAsync = promisify(fs.writeFile); -const mkdirAsync = promisify(fs.mkdir); - -const REPORTS_FOLDER = path.resolve(__dirname, 'reports'); - -export default function({ getService, getPageObjects }: FtrProviderContext) { - const esArchiver = getService('esArchiver'); - const browser = getService('browser'); - const log = getService('log'); - const config = getService('config'); - const PageObjects = getPageObjects(['reporting', 'common', 'dashboard']); - - describe('Reporting', () => { - before('initialize tests', async () => { - log.debug('ReportingPage:initTests'); - await esArchiver.loadIfNeeded('reporting/ecommerce'); - await esArchiver.loadIfNeeded('reporting/ecommerce_kibana'); - await browser.setWindowSize(1600, 850); - }); - after('clean up archives', async () => { - await esArchiver.unload('reporting/ecommerce'); - await esArchiver.unload('reporting/ecommerce_kibana'); - }); - - describe('Print PDF button', () => { - it('is not available if new', async () => { - await PageObjects.common.navigateToApp('dashboard'); - await PageObjects.dashboard.clickNewDashboard(); - await PageObjects.reporting.openPdfReportingPanel(); - expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be('true'); - }); - - it('becomes available when saved', async () => { - await PageObjects.dashboard.saveDashboard('My PDF Dashboard'); - await PageObjects.reporting.openPdfReportingPanel(); - expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be(null); - }); - }); - - describe('Print Layout', () => { - it('downloads a PDF file', async function() { - // Generating and then comparing reports can take longer than the default 60s timeout because the comparePngs - // function is taking about 15 seconds per comparison in jenkins. - this.timeout(300000); - await PageObjects.common.navigateToApp('dashboard'); - await PageObjects.dashboard.loadSavedDashboard('Ecom Dashboard'); - await PageObjects.reporting.openPdfReportingPanel(); - await PageObjects.reporting.checkUsePrintLayout(); - await PageObjects.reporting.clickGenerateReportButton(); - - const url = await PageObjects.reporting.getReportURL(60000); - const res = await PageObjects.reporting.getResponse(url); - - expect(res.statusCode).to.equal(200); - expect(res.headers['content-type']).to.equal('application/pdf'); - }); - }); - - describe('Print PNG button', () => { - it('is not available if new', async () => { - await PageObjects.common.navigateToApp('dashboard'); - await PageObjects.dashboard.clickNewDashboard(); - await PageObjects.reporting.openPngReportingPanel(); - expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be('true'); - }); - - it('becomes available when saved', async () => { - await PageObjects.dashboard.saveDashboard('My PNG Dash'); - await PageObjects.reporting.openPngReportingPanel(); - expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be(null); - }); - }); - - describe('Preserve Layout', () => { - it('matches baseline report', async function() { - const writeSessionReport = async (name: string, rawPdf: Buffer, reportExt: string) => { - const sessionDirectory = path.resolve(REPORTS_FOLDER, 'session'); - await mkdirAsync(sessionDirectory, { recursive: true }); - const sessionReportPath = path.resolve(sessionDirectory, `${name}.${reportExt}`); - await writeFileAsync(sessionReportPath, rawPdf); - return sessionReportPath; - }; - const getBaselineReportPath = (fileName: string, reportExt: string) => { - const baselineFolder = path.resolve(REPORTS_FOLDER, 'baseline'); - const fullPath = path.resolve(baselineFolder, `${fileName}.${reportExt}`); - log.debug(`getBaselineReportPath (${fullPath})`); - return fullPath; - }; - - this.timeout(300000); - - await PageObjects.common.navigateToApp('dashboard'); - await PageObjects.dashboard.loadSavedDashboard('Ecom Dashboard'); - await PageObjects.reporting.openPngReportingPanel(); - await PageObjects.reporting.forceSharedItemsContainerSize({ width: 1405 }); - await PageObjects.reporting.clickGenerateReportButton(); - await PageObjects.reporting.removeForceSharedItemsContainerSize(); - - const url = await PageObjects.reporting.getReportURL(60000); - const reportData = await PageObjects.reporting.getRawPdfReportData(url); - const reportFileName = 'dashboard_preserve_layout'; - const sessionReportPath = await writeSessionReport(reportFileName, reportData, 'png'); - const percentSimilar = await checkIfPngsMatch( - sessionReportPath, - getBaselineReportPath(reportFileName, 'png'), - config.get('screenshots.directory'), - log - ); - expect(percentSimilar).to.be.lessThan(0.1); - }); - }); +export default function({ loadTestFile }: FtrProviderContext) { + describe('Reporting', function() { + loadTestFile(require.resolve('./screenshots')); + loadTestFile(require.resolve('./download_csv')); }); } diff --git a/x-pack/test/functional/apps/dashboard/reporting/screenshots.ts b/x-pack/test/functional/apps/dashboard/reporting/screenshots.ts new file mode 100644 index 0000000000000..2cc1686b8c7ca --- /dev/null +++ b/x-pack/test/functional/apps/dashboard/reporting/screenshots.ts @@ -0,0 +1,127 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import fs from 'fs'; +import path from 'path'; +import { promisify } from 'util'; +import { FtrProviderContext } from '../../../ftr_provider_context'; +import { checkIfPngsMatch } from './lib/compare_pngs'; + +const writeFileAsync = promisify(fs.writeFile); +const mkdirAsync = promisify(fs.mkdir); + +const REPORTS_FOLDER = path.resolve(__dirname, 'reports'); + +export default function({ getService, getPageObjects }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const browser = getService('browser'); + const log = getService('log'); + const config = getService('config'); + const PageObjects = getPageObjects(['reporting', 'common', 'dashboard']); + + describe('Screenshots', () => { + before('initialize tests', async () => { + log.debug('ReportingPage:initTests'); + await esArchiver.loadIfNeeded('reporting/ecommerce'); + await esArchiver.loadIfNeeded('reporting/ecommerce_kibana'); + await browser.setWindowSize(1600, 850); + }); + after('clean up archives', async () => { + await esArchiver.unload('reporting/ecommerce'); + await esArchiver.unload('reporting/ecommerce_kibana'); + }); + + describe('Print PDF button', () => { + it('is not available if new', async () => { + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.clickNewDashboard(); + await PageObjects.reporting.openPdfReportingPanel(); + expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be('true'); + }); + + it('becomes available when saved', async () => { + await PageObjects.dashboard.saveDashboard('My PDF Dashboard'); + await PageObjects.reporting.openPdfReportingPanel(); + expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be(null); + }); + }); + + describe('Print Layout', () => { + it('downloads a PDF file', async function() { + // Generating and then comparing reports can take longer than the default 60s timeout because the comparePngs + // function is taking about 15 seconds per comparison in jenkins. + this.timeout(300000); + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.loadSavedDashboard('Ecom Dashboard'); + await PageObjects.reporting.openPdfReportingPanel(); + await PageObjects.reporting.checkUsePrintLayout(); + await PageObjects.reporting.clickGenerateReportButton(); + + const url = await PageObjects.reporting.getReportURL(60000); + const res = await PageObjects.reporting.getResponse(url); + + expect(res.statusCode).to.equal(200); + expect(res.headers['content-type']).to.equal('application/pdf'); + }); + }); + + describe('Print PNG button', () => { + it('is not available if new', async () => { + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.clickNewDashboard(); + await PageObjects.reporting.openPngReportingPanel(); + expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be('true'); + }); + + it('becomes available when saved', async () => { + await PageObjects.dashboard.saveDashboard('My PNG Dash'); + await PageObjects.reporting.openPngReportingPanel(); + expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be(null); + }); + }); + + describe('Preserve Layout', () => { + it('matches baseline report', async function() { + const writeSessionReport = async (name: string, rawPdf: Buffer, reportExt: string) => { + const sessionDirectory = path.resolve(REPORTS_FOLDER, 'session'); + await mkdirAsync(sessionDirectory, { recursive: true }); + const sessionReportPath = path.resolve(sessionDirectory, `${name}.${reportExt}`); + await writeFileAsync(sessionReportPath, rawPdf); + return sessionReportPath; + }; + const getBaselineReportPath = (fileName: string, reportExt: string) => { + const baselineFolder = path.resolve(REPORTS_FOLDER, 'baseline'); + const fullPath = path.resolve(baselineFolder, `${fileName}.${reportExt}`); + log.debug(`getBaselineReportPath (${fullPath})`); + return fullPath; + }; + + this.timeout(300000); + + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.loadSavedDashboard('Ecom Dashboard'); + await PageObjects.reporting.openPngReportingPanel(); + await PageObjects.reporting.forceSharedItemsContainerSize({ width: 1405 }); + await PageObjects.reporting.clickGenerateReportButton(); + await PageObjects.reporting.removeForceSharedItemsContainerSize(); + + const url = await PageObjects.reporting.getReportURL(60000); + const reportData = await PageObjects.reporting.getRawPdfReportData(url); + const reportFileName = 'dashboard_preserve_layout'; + const sessionReportPath = await writeSessionReport(reportFileName, reportData, 'png'); + const percentSimilar = await checkIfPngsMatch( + sessionReportPath, + getBaselineReportPath(reportFileName, 'png'), + config.get('screenshots.directory'), + log + ); + + expect(percentSimilar).to.be.lessThan(0.1); + }); + }); + }); +} diff --git a/x-pack/test/functional/page_objects/reporting_page.ts b/x-pack/test/functional/page_objects/reporting_page.ts index 2c20519a8d214..320171f8c89cd 100644 --- a/x-pack/test/functional/page_objects/reporting_page.ts +++ b/x-pack/test/functional/page_objects/reporting_page.ts @@ -9,10 +9,11 @@ import { FtrProviderContext } from 'test/functional/ftr_provider_context'; import { parse } from 'url'; export function ReportingPageProvider({ getService, getPageObjects }: FtrProviderContext) { - const retry = getService('retry'); + const browser = getService('browser'); const log = getService('log'); + const retry = getService('retry'); const testSubjects = getService('testSubjects'); - const browser = getService('browser'); + const PageObjects = getPageObjects(['common', 'security' as any, 'share', 'timePicker']); // FIXME: Security PageObject is not Typescript class ReportingPage { From 207df60d6cb4447dee58e88adb174d93f44debf9 Mon Sep 17 00:00:00 2001 From: Ryland Herrick Date: Mon, 11 May 2020 14:55:12 -0500 Subject: [PATCH 02/12] [SIEM][Detections] Restrict ML rule modification to ML Admins (#65583) * Move common ML types and functions into siem/common These revolve around capabilities/permissions checks which were previously only used on the client. Now that we have need to make similar checks on the server, we can/should move these up to be shared. * Use ML's Capabilities type in lieu of our own There was already some drift between these types preventing our helpers from being used with the ML services; this will prevent further drift. * Add authorization helpers for ML Some of this responsibility will move to ML services in the near future, but for now we still need to restrict SIEM users from performing certain actions. * Use mlAuthz on our import rule route The tests were a little tricky because the use of spyOn/clear was preventing (rather, clearing the mocks from) the use of jest.mock(). I found a workaround with mockRestore(), which was easy to verify because the mock would throw an error if it wasn't removed, and we'd import multiple rules if a default mock was used. The threading through of ML can go away if/when ML adds their services to the request handler context. * Add mlAuthz checks to remaining rule routes * Remove validateLicenseForRuleType This is now unused and redundant with the mlAuthz module. * Fix failing tests These were missed when the helpers were moved to common/, but are also unneeded. * Cleanup: fixing type errors * Clean up some types from ML A recent upstream refactor in ML added top-level exports; this uses them where possible. * Refactor mlAuthz to defer authz validation until validator is called This prevents us from unnecessarily calling ml services if e.g. we're not dealing with an ML rule. This also adds a failing test for the next-to-be-implemented feature: cashing the async validation for subsequent validator calls. * Cache validation promise The purpose of the `buildMlAuthz` function is to store state (request, license, ml). Since `validateMlAuthz` should be idempotent for the duration of this object's lifecycle, we should cache the result the first time we call it; this is effectively memoization since the arguments do not change. * Make our result caching more explicit Extracts a caching helper function. * Add additional unit tests around some edge cases This is the best form of documentation, thanks Frank! * Remove redundant test setup * Empty messages are invalid If we somehow generate an empty message string, the validation should fail as we were attempting to assign _something_ as a failure message. * Fix validity logic valid: message !== null was the opposite of what I wanted; a validation is valid if it has no message (i.e. it's undefined). * Prevent patching of ML rules by non-ML admins This required refactoring patchRules to accept the rule to be patched, so that we can check its attributes before performing the update. * Fix our update_prepackaged_rules route patchRules no longer does the fetch; we need to perform this ourselves. * Fix update_prepackaged_rules tests This notably synchronizes the entirety of the updates, as our tests were failing due to the asynchronous nature of the updates. * Remove id and ruleId from patchRules parameters Instead of fetching the rule within patchRules, we now pass it in. Co-authored-by: Elastic Machine --- .../empty_ml_capabilities.ts | 15 +- .../has_ml_admin_permissions.test.ts | 2 +- .../has_ml_admin_permissions.ts | 12 +- .../has_ml_user_permissions.test.ts | 2 +- .../has_ml_user_permissions.ts | 4 +- .../helpers.test.ts} | 2 +- .../helpers.ts} | 2 +- .../ml/anomaly/use_anomalies_table_data.ts | 2 +- .../components/ml/api/get_ml_capabilities.ts | 7 +- .../permissions/ml_capabilities_provider.tsx | 6 +- .../ml/tables/anomalies_host_table.tsx | 2 +- .../ml/tables/anomalies_network_table.tsx | 2 +- .../siem/public/components/ml/types.ts | 47 +--- .../components/ml_popover/helpers.test.tsx | 4 - .../ml_popover/hooks/use_siem_jobs.tsx | 2 +- .../ml_popover/jobs_table/job_switch.tsx | 2 +- .../components/ml_popover/ml_popover.test.tsx | 4 - .../components/ml_popover/ml_popover.tsx | 2 +- .../page/hosts/host_overview/index.tsx | 2 +- .../page/network/ip_overview/index.tsx | 2 +- .../detection_engine/rules/all/columns.tsx | 2 +- .../detection_engine/rules/all/index.tsx | 2 +- .../description_step/ml_job_description.tsx | 2 +- .../rules/components/ml_job_select/index.tsx | 2 +- .../components/select_rule_type/index.tsx | 2 +- .../components/step_define_rule/index.tsx | 4 +- .../components/step_define_rule/schema.tsx | 2 +- .../detection_engine/rules/create/helpers.ts | 2 +- .../detection_engine/rules/details/index.tsx | 2 +- .../pages/detection_engine/rules/helpers.tsx | 2 +- .../siem/public/pages/hosts/details/index.tsx | 2 +- .../plugins/siem/public/pages/hosts/hosts.tsx | 2 +- .../siem/public/pages/network/index.tsx | 2 +- .../rules/create_rules_bulk_route.test.ts | 20 +- .../routes/rules/create_rules_bulk_route.ts | 10 +- .../routes/rules/create_rules_route.test.ts | 21 +- .../routes/rules/create_rules_route.ts | 16 +- .../routes/rules/import_rules_route.test.ts | 41 ++- .../routes/rules/import_rules_route.ts | 18 +- .../rules/patch_rules_bulk_route.test.ts | 46 ++- .../routes/rules/patch_rules_bulk_route.ts | 26 +- .../routes/rules/patch_rules_route.test.ts | 43 ++- .../routes/rules/patch_rules_route.ts | 32 ++- .../rules/update_rules_bulk_route.test.ts | 22 +- .../routes/rules/update_rules_bulk_route.ts | 15 +- .../routes/rules/update_rules_route.test.ts | 24 +- .../routes/rules/update_rules_route.ts | 17 +- .../schemas/response/check_type_dependents.ts | 2 +- .../lib/detection_engine/routes/utils.test.ts | 34 --- .../lib/detection_engine/routes/utils.ts | 30 -- .../rules/patch_rules.test.ts | 26 +- .../lib/detection_engine/rules/patch_rules.ts | 5 +- .../lib/detection_engine/rules/types.ts | 6 +- .../rules/update_prepacked_rules.test.ts | 17 +- .../rules/update_prepacked_rules.ts | 120 ++++---- .../signals/signal_rule_alert_type.ts | 2 +- .../server/lib/machine_learning/authz.test.ts | 265 ++++++++++++++++++ .../siem/server/lib/machine_learning/authz.ts | 120 ++++++++ .../server/lib/machine_learning/cache.test.ts | 41 +++ .../siem/server/lib/machine_learning/cache.ts | 24 ++ .../siem/server/lib/machine_learning/mocks.ts | 32 +++ .../lib/machine_learning/validation.test.ts | 36 +++ .../server/lib/machine_learning/validation.ts | 33 +++ x-pack/plugins/siem/server/plugin.ts | 3 +- x-pack/plugins/siem/server/routes/index.ts | 17 +- 65 files changed, 935 insertions(+), 380 deletions(-) rename x-pack/plugins/siem/{public/components/ml => common/machine_learning}/empty_ml_capabilities.ts (76%) rename x-pack/plugins/siem/{public/components/ml/permissions => common/machine_learning}/has_ml_admin_permissions.test.ts (96%) rename x-pack/plugins/siem/{public/components/ml/permissions => common/machine_learning}/has_ml_admin_permissions.ts (79%) rename x-pack/plugins/siem/{public/components/ml/permissions => common/machine_learning}/has_ml_user_permissions.test.ts (94%) rename x-pack/plugins/siem/{public/components/ml/permissions => common/machine_learning}/has_ml_user_permissions.ts (81%) rename x-pack/plugins/siem/common/{detection_engine/ml_helpers.test.ts => machine_learning/helpers.test.ts} (96%) rename x-pack/plugins/siem/common/{detection_engine/ml_helpers.ts => machine_learning/helpers.ts} (95%) create mode 100644 x-pack/plugins/siem/server/lib/machine_learning/authz.test.ts create mode 100644 x-pack/plugins/siem/server/lib/machine_learning/authz.ts create mode 100644 x-pack/plugins/siem/server/lib/machine_learning/cache.test.ts create mode 100644 x-pack/plugins/siem/server/lib/machine_learning/cache.ts create mode 100644 x-pack/plugins/siem/server/lib/machine_learning/mocks.ts create mode 100644 x-pack/plugins/siem/server/lib/machine_learning/validation.test.ts create mode 100644 x-pack/plugins/siem/server/lib/machine_learning/validation.ts diff --git a/x-pack/plugins/siem/public/components/ml/empty_ml_capabilities.ts b/x-pack/plugins/siem/common/machine_learning/empty_ml_capabilities.ts similarity index 76% rename from x-pack/plugins/siem/public/components/ml/empty_ml_capabilities.ts rename to x-pack/plugins/siem/common/machine_learning/empty_ml_capabilities.ts index 9c8610ccd628c..0d6a13c108b04 100644 --- a/x-pack/plugins/siem/public/components/ml/empty_ml_capabilities.ts +++ b/x-pack/plugins/siem/common/machine_learning/empty_ml_capabilities.ts @@ -4,10 +4,14 @@ * you may not use this file except in compliance with the Elastic License. */ -import { MlCapabilities } from './types'; +import { MlCapabilitiesResponse } from '../../../ml/common/types/capabilities'; -export const emptyMlCapabilities: MlCapabilities = { +export const emptyMlCapabilities: MlCapabilitiesResponse = { capabilities: { + canAccessML: false, + canGetAnnotations: false, + canCreateAnnotation: false, + canDeleteAnnotation: false, canGetJobs: false, canCreateJob: false, canDeleteJob: false, @@ -26,11 +30,8 @@ export const emptyMlCapabilities: MlCapabilities = { canCreateFilter: false, canDeleteFilter: false, canFindFileStructure: false, - canGetDataFrame: false, - canDeleteDataFrame: false, - canPreviewDataFrame: false, - canCreateDataFrame: false, - canStartStopDataFrame: false, + canCreateDatafeed: false, + canDeleteDatafeed: false, canGetDataFrameAnalytics: false, canDeleteDataFrameAnalytics: false, canCreateDataFrameAnalytics: false, diff --git a/x-pack/plugins/siem/public/components/ml/permissions/has_ml_admin_permissions.test.ts b/x-pack/plugins/siem/common/machine_learning/has_ml_admin_permissions.test.ts similarity index 96% rename from x-pack/plugins/siem/public/components/ml/permissions/has_ml_admin_permissions.test.ts rename to x-pack/plugins/siem/common/machine_learning/has_ml_admin_permissions.test.ts index ee237b42bede9..9824ce1232cbe 100644 --- a/x-pack/plugins/siem/public/components/ml/permissions/has_ml_admin_permissions.test.ts +++ b/x-pack/plugins/siem/common/machine_learning/has_ml_admin_permissions.test.ts @@ -6,7 +6,7 @@ import { hasMlAdminPermissions } from './has_ml_admin_permissions'; import { cloneDeep } from 'lodash/fp'; -import { emptyMlCapabilities } from '../empty_ml_capabilities'; +import { emptyMlCapabilities } from './empty_ml_capabilities'; describe('has_ml_admin_permissions', () => { let mlCapabilities = cloneDeep(emptyMlCapabilities); diff --git a/x-pack/plugins/siem/public/components/ml/permissions/has_ml_admin_permissions.ts b/x-pack/plugins/siem/common/machine_learning/has_ml_admin_permissions.ts similarity index 79% rename from x-pack/plugins/siem/public/components/ml/permissions/has_ml_admin_permissions.ts rename to x-pack/plugins/siem/common/machine_learning/has_ml_admin_permissions.ts index 6fe142cf8e583..106e9aabbc711 100644 --- a/x-pack/plugins/siem/public/components/ml/permissions/has_ml_admin_permissions.ts +++ b/x-pack/plugins/siem/common/machine_learning/has_ml_admin_permissions.ts @@ -4,21 +4,21 @@ * you may not use this file except in compliance with the Elastic License. */ -import { MlCapabilities } from '../types'; +import { MlCapabilitiesResponse } from '../../../ml/common/types/capabilities'; -export const hasMlAdminPermissions = (capabilities: MlCapabilities): boolean => +export const hasMlAdminPermissions = (capabilities: MlCapabilitiesResponse): boolean => getDataFeedPermissions(capabilities) && getJobPermissions(capabilities) && getFilterPermissions(capabilities) && getCalendarPermissions(capabilities); -const getDataFeedPermissions = ({ capabilities }: MlCapabilities): boolean => +const getDataFeedPermissions = ({ capabilities }: MlCapabilitiesResponse): boolean => capabilities.canGetDatafeeds && capabilities.canStartStopDatafeed && capabilities.canUpdateDatafeed && capabilities.canPreviewDatafeed; -const getJobPermissions = ({ capabilities }: MlCapabilities): boolean => +const getJobPermissions = ({ capabilities }: MlCapabilitiesResponse): boolean => capabilities.canCreateJob && capabilities.canGetJobs && capabilities.canUpdateJob && @@ -27,8 +27,8 @@ const getJobPermissions = ({ capabilities }: MlCapabilities): boolean => capabilities.canCloseJob && capabilities.canForecastJob; -const getFilterPermissions = ({ capabilities }: MlCapabilities) => +const getFilterPermissions = ({ capabilities }: MlCapabilitiesResponse) => capabilities.canGetFilters && capabilities.canCreateFilter && capabilities.canDeleteFilter; -const getCalendarPermissions = ({ capabilities }: MlCapabilities) => +const getCalendarPermissions = ({ capabilities }: MlCapabilitiesResponse) => capabilities.canCreateCalendar && capabilities.canGetCalendars && capabilities.canDeleteCalendar; diff --git a/x-pack/plugins/siem/public/components/ml/permissions/has_ml_user_permissions.test.ts b/x-pack/plugins/siem/common/machine_learning/has_ml_user_permissions.test.ts similarity index 94% rename from x-pack/plugins/siem/public/components/ml/permissions/has_ml_user_permissions.test.ts rename to x-pack/plugins/siem/common/machine_learning/has_ml_user_permissions.test.ts index e3804055f2abb..4d58cda81d71c 100644 --- a/x-pack/plugins/siem/public/components/ml/permissions/has_ml_user_permissions.test.ts +++ b/x-pack/plugins/siem/common/machine_learning/has_ml_user_permissions.test.ts @@ -6,7 +6,7 @@ import { cloneDeep } from 'lodash/fp'; import { hasMlUserPermissions } from './has_ml_user_permissions'; -import { emptyMlCapabilities } from '../empty_ml_capabilities'; +import { emptyMlCapabilities } from './empty_ml_capabilities'; describe('has_ml_user_permissions', () => { let mlCapabilities = cloneDeep(emptyMlCapabilities); diff --git a/x-pack/plugins/siem/public/components/ml/permissions/has_ml_user_permissions.ts b/x-pack/plugins/siem/common/machine_learning/has_ml_user_permissions.ts similarity index 81% rename from x-pack/plugins/siem/public/components/ml/permissions/has_ml_user_permissions.ts rename to x-pack/plugins/siem/common/machine_learning/has_ml_user_permissions.ts index 2d55b7d74f93c..dd746e4737bbc 100644 --- a/x-pack/plugins/siem/public/components/ml/permissions/has_ml_user_permissions.ts +++ b/x-pack/plugins/siem/common/machine_learning/has_ml_user_permissions.ts @@ -4,9 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { MlCapabilities } from '../types'; +import { MlCapabilitiesResponse } from '../../../ml/common/types/capabilities'; -export const hasMlUserPermissions = (capabilities: MlCapabilities): boolean => +export const hasMlUserPermissions = (capabilities: MlCapabilitiesResponse): boolean => capabilities.capabilities.canGetJobs && capabilities.capabilities.canGetDatafeeds && capabilities.capabilities.canGetCalendars; diff --git a/x-pack/plugins/siem/common/detection_engine/ml_helpers.test.ts b/x-pack/plugins/siem/common/machine_learning/helpers.test.ts similarity index 96% rename from x-pack/plugins/siem/common/detection_engine/ml_helpers.test.ts rename to x-pack/plugins/siem/common/machine_learning/helpers.test.ts index ba93b2e4b8a0d..ce343f75933dc 100644 --- a/x-pack/plugins/siem/common/detection_engine/ml_helpers.test.ts +++ b/x-pack/plugins/siem/common/machine_learning/helpers.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { isJobStarted, isJobLoading, isJobFailed } from './ml_helpers'; +import { isJobStarted, isJobLoading, isJobFailed } from './helpers'; describe('isJobStarted', () => { test('returns false if only jobState is enabled', () => { diff --git a/x-pack/plugins/siem/common/detection_engine/ml_helpers.ts b/x-pack/plugins/siem/common/machine_learning/helpers.ts similarity index 95% rename from x-pack/plugins/siem/common/detection_engine/ml_helpers.ts rename to x-pack/plugins/siem/common/machine_learning/helpers.ts index e4158d08d448d..fe3eb79a6f610 100644 --- a/x-pack/plugins/siem/common/detection_engine/ml_helpers.ts +++ b/x-pack/plugins/siem/common/machine_learning/helpers.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { RuleType } from './types'; +import { RuleType } from '../detection_engine/types'; // Based on ML Job/Datafeed States from x-pack/legacy/plugins/ml/common/constants/states.js const enabledStates = ['started', 'opened']; diff --git a/x-pack/plugins/siem/public/components/ml/anomaly/use_anomalies_table_data.ts b/x-pack/plugins/siem/public/components/ml/anomaly/use_anomalies_table_data.ts index d64bd3a64e941..67efda67a20a3 100644 --- a/x-pack/plugins/siem/public/components/ml/anomaly/use_anomalies_table_data.ts +++ b/x-pack/plugins/siem/public/components/ml/anomaly/use_anomalies_table_data.ts @@ -9,7 +9,7 @@ import { useState, useEffect } from 'react'; import { DEFAULT_ANOMALY_SCORE } from '../../../../common/constants'; import { anomaliesTableData } from '../api/anomalies_table_data'; import { InfluencerInput, Anomalies, CriteriaFields } from '../types'; -import { hasMlUserPermissions } from '../permissions/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; import { useSiemJobs } from '../../ml_popover/hooks/use_siem_jobs'; import { useMlCapabilities } from '../../ml_popover/hooks/use_ml_capabilities'; import { useStateToaster, errorToToaster } from '../../toasters'; diff --git a/x-pack/plugins/siem/public/components/ml/api/get_ml_capabilities.ts b/x-pack/plugins/siem/public/components/ml/api/get_ml_capabilities.ts index e69abc1a86e0e..e6a792e779b0c 100644 --- a/x-pack/plugins/siem/public/components/ml/api/get_ml_capabilities.ts +++ b/x-pack/plugins/siem/public/components/ml/api/get_ml_capabilities.ts @@ -4,8 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { InfluencerInput, MlCapabilities } from '../types'; +import { MlCapabilitiesResponse } from '../../../../../ml/public'; import { KibanaServices } from '../../../lib/kibana'; +import { InfluencerInput } from '../types'; export interface Body { jobIds: string[]; @@ -20,8 +21,8 @@ export interface Body { maxExamples: number; } -export const getMlCapabilities = async (signal: AbortSignal): Promise => { - return KibanaServices.get().http.fetch('/api/ml/ml_capabilities', { +export const getMlCapabilities = async (signal: AbortSignal): Promise => { + return KibanaServices.get().http.fetch('/api/ml/ml_capabilities', { method: 'GET', asSystemRequest: true, signal, diff --git a/x-pack/plugins/siem/public/components/ml/permissions/ml_capabilities_provider.tsx b/x-pack/plugins/siem/public/components/ml/permissions/ml_capabilities_provider.tsx index eee44abb44204..9326c53b6064d 100644 --- a/x-pack/plugins/siem/public/components/ml/permissions/ml_capabilities_provider.tsx +++ b/x-pack/plugins/siem/public/components/ml/permissions/ml_capabilities_provider.tsx @@ -6,14 +6,14 @@ import React, { useState, useEffect } from 'react'; -import { MlCapabilities } from '../types'; +import { MlCapabilitiesResponse } from '../../../../../ml/public'; +import { emptyMlCapabilities } from '../../../../common/machine_learning/empty_ml_capabilities'; import { getMlCapabilities } from '../api/get_ml_capabilities'; -import { emptyMlCapabilities } from '../empty_ml_capabilities'; import { errorToToaster, useStateToaster } from '../../toasters'; import * as i18n from './translations'; -interface MlCapabilitiesProvider extends MlCapabilities { +interface MlCapabilitiesProvider extends MlCapabilitiesResponse { capabilitiesFetched: boolean; } diff --git a/x-pack/plugins/siem/public/components/ml/tables/anomalies_host_table.tsx b/x-pack/plugins/siem/public/components/ml/tables/anomalies_host_table.tsx index 16bde076ef763..3272042732dff 100644 --- a/x-pack/plugins/siem/public/components/ml/tables/anomalies_host_table.tsx +++ b/x-pack/plugins/siem/public/components/ml/tables/anomalies_host_table.tsx @@ -9,13 +9,13 @@ import React from 'react'; import { useAnomaliesTableData } from '../anomaly/use_anomalies_table_data'; import { HeaderSection } from '../../header_section'; +import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; import * as i18n from './translations'; import { getAnomaliesHostTableColumnsCurated } from './get_anomalies_host_table_columns'; import { convertAnomaliesToHosts } from './convert_anomalies_to_hosts'; import { Loader } from '../../loader'; import { getIntervalFromAnomalies } from '../anomaly/get_interval_from_anomalies'; import { AnomaliesHostTableProps } from '../types'; -import { hasMlUserPermissions } from '../permissions/has_ml_user_permissions'; import { useMlCapabilities } from '../../ml_popover/hooks/use_ml_capabilities'; import { BasicTable } from './basic_table'; import { hostEquality } from './host_equality'; diff --git a/x-pack/plugins/siem/public/components/ml/tables/anomalies_network_table.tsx b/x-pack/plugins/siem/public/components/ml/tables/anomalies_network_table.tsx index bba6355f0b8b9..cc3b1196f8432 100644 --- a/x-pack/plugins/siem/public/components/ml/tables/anomalies_network_table.tsx +++ b/x-pack/plugins/siem/public/components/ml/tables/anomalies_network_table.tsx @@ -8,13 +8,13 @@ import React from 'react'; import { useAnomaliesTableData } from '../anomaly/use_anomalies_table_data'; import { HeaderSection } from '../../header_section'; +import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; import * as i18n from './translations'; import { convertAnomaliesToNetwork } from './convert_anomalies_to_network'; import { Loader } from '../../loader'; import { AnomaliesNetworkTableProps } from '../types'; import { getAnomaliesNetworkTableColumnsCurated } from './get_anomalies_network_table_columns'; import { useMlCapabilities } from '../../ml_popover/hooks/use_ml_capabilities'; -import { hasMlUserPermissions } from '../permissions/has_ml_user_permissions'; import { BasicTable } from './basic_table'; import { networkEquality } from './network_equality'; import { getCriteriaFromNetworkType } from '../criteria/get_criteria_from_network_type'; diff --git a/x-pack/plugins/siem/public/components/ml/types.ts b/x-pack/plugins/siem/public/components/ml/types.ts index 953fb9f761ea8..f70c7d3eb034c 100644 --- a/x-pack/plugins/siem/public/components/ml/types.ts +++ b/x-pack/plugins/siem/public/components/ml/types.ts @@ -4,15 +4,12 @@ * you may not use this file except in compliance with the Elastic License. */ +import { Influencer } from '../../../../ml/public'; + import { HostsType } from '../../store/hosts/model'; import { NetworkType } from '../../store/network/model'; import { FlowTarget } from '../../graphql/types'; -export interface Influencer { - influencer_field_name: string; - influencer_field_values: string[]; -} - export interface Source { job_id: string; result_type: string; @@ -35,11 +32,6 @@ export interface Source { influencers: Influencer[]; } -export interface Influencer { - influencer_field_name: string; - influencer_field_values: string[]; -} - export interface CriteriaFields { fieldName: string; fieldValue: string; @@ -100,41 +92,6 @@ export type AnomaliesNetworkTableProps = HostOrNetworkProps & { flowTarget?: FlowTarget; }; -export interface MlCapabilities { - capabilities: { - canGetJobs: boolean; - canCreateJob: boolean; - canDeleteJob: boolean; - canOpenJob: boolean; - canCloseJob: boolean; - canForecastJob: boolean; - canGetDatafeeds: boolean; - canStartStopDatafeed: boolean; - canUpdateJob: boolean; - canUpdateDatafeed: boolean; - canPreviewDatafeed: boolean; - canGetCalendars: boolean; - canCreateCalendar: boolean; - canDeleteCalendar: boolean; - canGetFilters: boolean; - canCreateFilter: boolean; - canDeleteFilter: boolean; - canFindFileStructure: boolean; - canGetDataFrame: boolean; - canDeleteDataFrame: boolean; - canPreviewDataFrame: boolean; - canCreateDataFrame: boolean; - canStartStopDataFrame: boolean; - canGetDataFrameAnalytics: boolean; - canDeleteDataFrameAnalytics: boolean; - canCreateDataFrameAnalytics: boolean; - canStartStopDataFrameAnalytics: boolean; - }; - isPlatinumOrTrialLicense: boolean; - mlFeatureEnabledInSpace: boolean; - upgradeInProgress: boolean; -} - const sourceOrDestination = ['source.ip', 'destination.ip']; export const isDestinationOrSource = (value: string | null): value is DestinationOrSource => diff --git a/x-pack/plugins/siem/public/components/ml_popover/helpers.test.tsx b/x-pack/plugins/siem/public/components/ml_popover/helpers.test.tsx index 26ebfeb91629b..0b8da6be57e1b 100644 --- a/x-pack/plugins/siem/public/components/ml_popover/helpers.test.tsx +++ b/x-pack/plugins/siem/public/components/ml_popover/helpers.test.tsx @@ -7,10 +7,6 @@ import { mockSiemJobs } from './__mocks__/api'; import { filterJobs, getStablePatternTitles, searchFilter } from './helpers'; -jest.mock('../ml/permissions/has_ml_admin_permissions', () => ({ - hasMlAdminPermissions: () => true, -})); - describe('helpers', () => { describe('filterJobs', () => { test('returns all jobs when no filter is suplied', () => { diff --git a/x-pack/plugins/siem/public/components/ml_popover/hooks/use_siem_jobs.tsx b/x-pack/plugins/siem/public/components/ml_popover/hooks/use_siem_jobs.tsx index 7bcbf4afa10cc..98e74208b3dcc 100644 --- a/x-pack/plugins/siem/public/components/ml_popover/hooks/use_siem_jobs.tsx +++ b/x-pack/plugins/siem/public/components/ml_popover/hooks/use_siem_jobs.tsx @@ -9,7 +9,7 @@ import { useEffect, useState } from 'react'; import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; import { checkRecognizer, getJobsSummary, getModules } from '../api'; import { SiemJob } from '../types'; -import { hasMlUserPermissions } from '../../ml/permissions/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; import { errorToToaster, useStateToaster } from '../../toasters'; import { useUiSetting$ } from '../../../lib/kibana'; diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/job_switch.tsx b/x-pack/plugins/siem/public/components/ml_popover/jobs_table/job_switch.tsx index e7b14f2e80bf2..7de2f0fbfbc54 100644 --- a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/job_switch.tsx +++ b/x-pack/plugins/siem/public/components/ml_popover/jobs_table/job_switch.tsx @@ -11,7 +11,7 @@ import { isJobLoading, isJobFailed, isJobStarted, -} from '../../../../common/detection_engine/ml_helpers'; +} from '../../../../common/machine_learning/helpers'; import { SiemJob } from '../types'; const StaticSwitch = styled(EuiSwitch)` diff --git a/x-pack/plugins/siem/public/components/ml_popover/ml_popover.test.tsx b/x-pack/plugins/siem/public/components/ml_popover/ml_popover.test.tsx index 3c93e1c195cd7..cf4ac87bdb5e7 100644 --- a/x-pack/plugins/siem/public/components/ml_popover/ml_popover.test.tsx +++ b/x-pack/plugins/siem/public/components/ml_popover/ml_popover.test.tsx @@ -11,10 +11,6 @@ import { MlPopover } from './ml_popover'; jest.mock('../../lib/kibana'); -jest.mock('../ml/permissions/has_ml_admin_permissions', () => ({ - hasMlAdminPermissions: () => true, -})); - describe('MlPopover', () => { test('shows upgrade popover on mouse click', () => { const wrapper = mountWithIntl(); diff --git a/x-pack/plugins/siem/public/components/ml_popover/ml_popover.tsx b/x-pack/plugins/siem/public/components/ml_popover/ml_popover.tsx index 6ea5cba4b37e4..e7f7770ee87f8 100644 --- a/x-pack/plugins/siem/public/components/ml_popover/ml_popover.tsx +++ b/x-pack/plugins/siem/public/components/ml_popover/ml_popover.tsx @@ -12,7 +12,7 @@ import styled from 'styled-components'; import { useKibana } from '../../lib/kibana'; import { METRIC_TYPE, TELEMETRY_EVENT, track } from '../../lib/telemetry'; -import { hasMlAdminPermissions } from '../ml/permissions/has_ml_admin_permissions'; +import { hasMlAdminPermissions } from '../../../common/machine_learning/has_ml_admin_permissions'; import { errorToToaster, useStateToaster, ActionToaster } from '../toasters'; import { setupMlJob, startDatafeeds, stopDatafeeds } from './api'; import { filterJobs } from './helpers'; diff --git a/x-pack/plugins/siem/public/components/page/hosts/host_overview/index.tsx b/x-pack/plugins/siem/public/components/page/hosts/host_overview/index.tsx index 4d0e6a737d303..223a16fec77a0 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/host_overview/index.tsx +++ b/x-pack/plugins/siem/public/components/page/hosts/host_overview/index.tsx @@ -19,7 +19,7 @@ import { InspectButton, InspectButtonContainer } from '../../../inspect'; import { HostItem } from '../../../../graphql/types'; import { Loader } from '../../../loader'; import { IPDetailsLink } from '../../../links'; -import { hasMlUserPermissions } from '../../../ml/permissions/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../../../common/machine_learning/has_ml_user_permissions'; import { useMlCapabilities } from '../../../ml_popover/hooks/use_ml_capabilities'; import { AnomalyScores } from '../../../ml/score/anomaly_scores'; import { Anomalies, NarrowDateRange } from '../../../ml/types'; diff --git a/x-pack/plugins/siem/public/components/page/network/ip_overview/index.tsx b/x-pack/plugins/siem/public/components/page/network/ip_overview/index.tsx index 56b59ca97156f..456deaac0fb15 100644 --- a/x-pack/plugins/siem/public/components/page/network/ip_overview/index.tsx +++ b/x-pack/plugins/siem/public/components/page/network/ip_overview/index.tsx @@ -31,7 +31,7 @@ import { Loader } from '../../../loader'; import { Anomalies, NarrowDateRange } from '../../../ml/types'; import { AnomalyScores } from '../../../ml/score/anomaly_scores'; import { useMlCapabilities } from '../../../ml_popover/hooks/use_ml_capabilities'; -import { hasMlUserPermissions } from '../../../ml/permissions/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../../../common/machine_learning/has_ml_user_permissions'; import { InspectButton, InspectButtonContainer } from '../../../inspect'; interface OwnProps { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/columns.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/all/columns.tsx index 8e79f037d82b0..542a004cb3727 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/columns.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/all/columns.tsx @@ -19,7 +19,7 @@ import { FormattedRelative } from '@kbn/i18n/react'; import * as H from 'history'; import React, { Dispatch } from 'react'; -import { isMlRule } from '../../../../../common/detection_engine/ml_helpers'; +import { isMlRule } from '../../../../../common/machine_learning/helpers'; import { Rule, RuleStatus } from '../../../../containers/detection_engine/rules'; import { getEmptyTagValue } from '../../../../components/empty_value'; import { FormattedDate } from '../../../../components/formatted_date'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/index.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/all/index.tsx index 18ca4d42bd018..d9a2fafd144bc 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/index.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/all/index.tsx @@ -48,7 +48,7 @@ import { showRulesTable } from './helpers'; import { allRulesReducer, State } from './reducer'; import { RulesTableFilters } from './rules_table_filters/rules_table_filters'; import { useMlCapabilities } from '../../../../components/ml_popover/hooks/use_ml_capabilities'; -import { hasMlAdminPermissions } from '../../../../components/ml/permissions/has_ml_admin_permissions'; +import { hasMlAdminPermissions } from '../../../../../common/machine_learning/has_ml_admin_permissions'; const SORT_FIELD = 'enabled'; const initialState: State = { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.tsx index 79993c37e549c..33d3dbcba8631 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.tsx @@ -8,7 +8,7 @@ import React from 'react'; import styled from 'styled-components'; import { EuiBadge, EuiIcon, EuiLink, EuiToolTip } from '@elastic/eui'; -import { isJobStarted } from '../../../../../../common/detection_engine/ml_helpers'; +import { isJobStarted } from '../../../../../../common/machine_learning/helpers'; import { useKibana } from '../../../../../lib/kibana'; import { SiemJob } from '../../../../../components/ml_popover/types'; import { ListItems } from './types'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/ml_job_select/index.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/ml_job_select/index.tsx index 4fb9faaea711c..c011c06e86542 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/ml_job_select/index.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/ml_job_select/index.tsx @@ -17,7 +17,7 @@ import { } from '@elastic/eui'; import styled from 'styled-components'; -import { isJobStarted } from '../../../../../../common/detection_engine/ml_helpers'; +import { isJobStarted } from '../../../../../../common/machine_learning/helpers'; import { FieldHook, getFieldValidityAndErrorMessage } from '../../../../../shared_imports'; import { useSiemJobs } from '../../../../../components/ml_popover/hooks/use_siem_jobs'; import { useKibana } from '../../../../../lib/kibana'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.tsx index 6f3d299da8d45..dc9a832f820ba 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.tsx @@ -16,7 +16,7 @@ import { EuiText, } from '@elastic/eui'; -import { isMlRule } from '../../../../../../common/detection_engine/ml_helpers'; +import { isMlRule } from '../../../../../../common/machine_learning/helpers'; import { RuleType } from '../../../../../../common/detection_engine/types'; import { FieldHook } from '../../../../../shared_imports'; import { useKibana } from '../../../../../lib/kibana'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.tsx index b6887badc56be..3517c6fb21e69 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.tsx @@ -10,7 +10,7 @@ import styled from 'styled-components'; import deepEqual from 'fast-deep-equal'; import { DEFAULT_INDEX_KEY } from '../../../../../../common/constants'; -import { isMlRule } from '../../../../../../common/detection_engine/ml_helpers'; +import { isMlRule } from '../../../../../../common/machine_learning/helpers'; import { IIndexPattern } from '../../../../../../../../../src/plugins/data/public'; import { useFetchIndexPatterns } from '../../../../../containers/detection_engine/rules'; import { DEFAULT_TIMELINE_TITLE } from '../../../../../components/timeline/translations'; @@ -38,7 +38,7 @@ import { import { schema } from './schema'; import * as i18n from './translations'; import { filterRuleFieldsForType, RuleFields } from '../../create/helpers'; -import { hasMlAdminPermissions } from '../../../../../components/ml/permissions/has_ml_admin_permissions'; +import { hasMlAdminPermissions } from '../../../../../../common/machine_learning/has_ml_admin_permissions'; const CommonUseField = getUseField({ component: Field }); diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/schema.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/schema.tsx index 8915c5f0a224f..08832c5dfe4f5 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/schema.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/schema.tsx @@ -9,7 +9,7 @@ import { EuiText } from '@elastic/eui'; import { isEmpty } from 'lodash/fp'; import React from 'react'; -import { isMlRule } from '../../../../../../common/detection_engine/ml_helpers'; +import { isMlRule } from '../../../../../../common/machine_learning/helpers'; import { esKuery } from '../../../../../../../../../src/plugins/data/public'; import { FieldValueQueryBar } from '../query_bar'; import { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts b/x-pack/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts index 7ad116c313361..b912c182a7c65 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts @@ -11,7 +11,7 @@ import deepmerge from 'deepmerge'; import { NOTIFICATION_THROTTLE_NO_ACTIONS } from '../../../../../common/constants'; import { transformAlertToRuleAction } from '../../../../../common/detection_engine/transform_actions'; import { RuleType } from '../../../../../common/detection_engine/types'; -import { isMlRule } from '../../../../../common/detection_engine/ml_helpers'; +import { isMlRule } from '../../../../../common/machine_learning/helpers'; import { NewRule } from '../../../../containers/detection_engine/rules'; import { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/details/index.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/details/index.tsx index 3e45c892e23dd..6a43c217e5ff5 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/details/index.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/details/index.tsx @@ -69,7 +69,7 @@ import { RuleStatusFailedCallOut } from './status_failed_callout'; import { FailureHistory } from './failure_history'; import { RuleStatus } from '../components/rule_status'; import { useMlCapabilities } from '../../../../components/ml_popover/hooks/use_ml_capabilities'; -import { hasMlAdminPermissions } from '../../../../components/ml/permissions/has_ml_admin_permissions'; +import { hasMlAdminPermissions } from '../../../../../common/machine_learning/has_ml_admin_permissions'; enum RuleDetailTabs { signals = 'signals', diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/helpers.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/helpers.tsx index 2ccbffd864070..3dbcf3b2425cc 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/helpers.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/helpers.tsx @@ -11,7 +11,7 @@ import memoizeOne from 'memoize-one'; import { useLocation } from 'react-router-dom'; import { RuleAlertAction, RuleType } from '../../../../common/detection_engine/types'; -import { isMlRule } from '../../../../common/detection_engine/ml_helpers'; +import { isMlRule } from '../../../../common/machine_learning/helpers'; import { transformRuleToAlertAction } from '../../../../common/detection_engine/transform_actions'; import { Filter } from '../../../../../../../src/plugins/data/public'; import { Rule } from '../../../containers/detection_engine/rules'; diff --git a/x-pack/plugins/siem/public/pages/hosts/details/index.tsx b/x-pack/plugins/siem/public/pages/hosts/details/index.tsx index 730c93b43709c..afed0fab0ade7 100644 --- a/x-pack/plugins/siem/public/pages/hosts/details/index.tsx +++ b/x-pack/plugins/siem/public/pages/hosts/details/index.tsx @@ -15,7 +15,7 @@ import { HeaderPage } from '../../../components/header_page'; import { LastEventTime } from '../../../components/last_event_time'; import { AnomalyTableProvider } from '../../../components/ml/anomaly/anomaly_table_provider'; import { hostToCriteria } from '../../../components/ml/criteria/host_to_criteria'; -import { hasMlUserPermissions } from '../../../components/ml/permissions/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; import { useMlCapabilities } from '../../../components/ml_popover/hooks/use_ml_capabilities'; import { scoreIntervalToDateTime } from '../../../components/ml/score/score_interval_to_datetime'; import { SiemNavigation } from '../../../components/navigation'; diff --git a/x-pack/plugins/siem/public/pages/hosts/hosts.tsx b/x-pack/plugins/siem/public/pages/hosts/hosts.tsx index 2fbbc0d96a1e3..0e29d634d07a6 100644 --- a/x-pack/plugins/siem/public/pages/hosts/hosts.tsx +++ b/x-pack/plugins/siem/public/pages/hosts/hosts.tsx @@ -14,7 +14,7 @@ import { UpdateDateRange } from '../../components/charts/common'; import { FiltersGlobal } from '../../components/filters_global'; import { HeaderPage } from '../../components/header_page'; import { LastEventTime } from '../../components/last_event_time'; -import { hasMlUserPermissions } from '../../components/ml/permissions/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../common/machine_learning/has_ml_user_permissions'; import { SiemNavigation } from '../../components/navigation'; import { KpiHostsComponent } from '../../components/page/hosts'; import { manageQuery } from '../../components/page/manage_query'; diff --git a/x-pack/plugins/siem/public/pages/network/index.tsx b/x-pack/plugins/siem/public/pages/network/index.tsx index babc153823b5a..412e51e74059e 100644 --- a/x-pack/plugins/siem/public/pages/network/index.tsx +++ b/x-pack/plugins/siem/public/pages/network/index.tsx @@ -8,7 +8,7 @@ import React, { useMemo } from 'react'; import { Redirect, Route, Switch, RouteComponentProps } from 'react-router-dom'; import { useMlCapabilities } from '../../components/ml_popover/hooks/use_ml_capabilities'; -import { hasMlUserPermissions } from '../../components/ml/permissions/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../common/machine_learning/has_ml_user_permissions'; import { FlowTarget } from '../../graphql/types'; import { IPDetails } from './ip_details'; diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.test.ts index e6facf6f3b7a8..473d183c8a8f2 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.test.ts @@ -5,6 +5,8 @@ */ import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { mlServicesMock, mlAuthzMock as mockMlAuthzFactory } from '../../../machine_learning/mocks'; +import { buildMlAuthz } from '../../../machine_learning/authz'; import { typicalPayload, getReadBulkRequest, @@ -19,9 +21,12 @@ import { requestContextMock, serverMock, requestMock } from '../__mocks__'; import { createRulesBulkRoute } from './create_rules_bulk_route'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../feature_flags'; +jest.mock('../../../machine_learning/authz', () => mockMlAuthzFactory.create()); + describe('create_rules_bulk', () => { let server: ReturnType; let { clients, context } = requestContextMock.createTools(); + let ml: ReturnType; beforeAll(() => { setFeatureFlagsForTestsOnly(); @@ -34,12 +39,13 @@ describe('create_rules_bulk', () => { beforeEach(() => { server = serverMock.create(); ({ clients, context } = requestContextMock.createTools()); + ml = mlServicesMock.create(); clients.clusterClient.callAsCurrentUser.mockResolvedValue(getNonEmptyIndex()); // index exists clients.alertsClient.find.mockResolvedValue(getEmptyFindResult()); // no existing rules clients.alertsClient.create.mockResolvedValue(getResult()); // successful creation - createRulesBulkRoute(server.router); + createRulesBulkRoute(server.router, ml); }); describe('status codes', () => { @@ -64,16 +70,20 @@ describe('create_rules_bulk', () => { }); describe('unhappy paths', () => { - it('returns an error object if creating an ML rule with an insufficient license', async () => { - (context.licensing.license.hasAtLeast as jest.Mock).mockReturnValue(false); + it('returns a 403 error object if ML Authz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); const response = await server.inject(createBulkMlRuleRequest(), context); expect(response.status).toEqual(200); expect(response.body).toEqual([ { error: { - message: 'Your license does not support machine learning. Please upgrade your license.', - status_code: 400, + message: 'mocked validation message', + status_code: 403, }, rule_id: 'rule-1', }, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts index cf841a9c88b32..371faccfbe47c 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts @@ -8,6 +8,9 @@ import uuid from 'uuid'; import { IRouter } from '../../../../../../../../src/core/server'; import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { SetupPlugins } from '../../../../plugin'; +import { buildMlAuthz } from '../../../machine_learning/authz'; +import { throwHttpError } from '../../../machine_learning/validation'; import { createRules } from '../../rules/create_rules'; import { RuleAlertParamsRest } from '../../types'; import { readRules } from '../../rules/read_rules'; @@ -19,13 +22,12 @@ import { createBulkErrorObject, buildRouteValidation, buildSiemResponse, - validateLicenseForRuleType, } from '../utils'; import { createRulesBulkSchema } from '../schemas/create_rules_bulk_schema'; import { rulesBulkSchema } from '../schemas/response/rules_bulk_schema'; import { updateRulesNotifications } from '../../rules/update_rules_notifications'; -export const createRulesBulkRoute = (router: IRouter) => { +export const createRulesBulkRoute = (router: IRouter, ml: SetupPlugins['ml']) => { router.post( { path: `${DETECTION_ENGINE_RULES_URL}/_bulk_create`, @@ -47,6 +49,8 @@ export const createRulesBulkRoute = (router: IRouter) => { return siemResponse.error({ statusCode: 404 }); } + const mlAuthz = buildMlAuthz({ license: context.licensing.license, ml, request }); + const ruleDefinitions = request.body; const dupes = getDuplicates(ruleDefinitions, 'rule_id'); @@ -89,7 +93,7 @@ export const createRulesBulkRoute = (router: IRouter) => { } = payloadRule; const ruleIdOrUuid = ruleId ?? uuid.v4(); try { - validateLicenseForRuleType({ license: context.licensing.license, ruleType: type }); + throwHttpError(await mlAuthz.validateRuleType(type)); const finalIndex = outputIndex ?? siemClient.getSignalsIndex(); const indexExists = await getIndexExists(clusterClient.callAsCurrentUser, finalIndex); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.test.ts index f15f47432f838..afdcda7da251d 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.test.ts @@ -16,15 +16,19 @@ import { getFindResultWithSingleHit, createMlRuleRequest, } from '../__mocks__/request_responses'; +import { mlServicesMock, mlAuthzMock as mockMlAuthzFactory } from '../../../machine_learning/mocks'; +import { buildMlAuthz } from '../../../machine_learning/authz'; import { requestContextMock, serverMock, requestMock } from '../__mocks__'; import { createRulesRoute } from './create_rules_route'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../feature_flags'; import { updateRulesNotifications } from '../../rules/update_rules_notifications'; jest.mock('../../rules/update_rules_notifications'); +jest.mock('../../../machine_learning/authz', () => mockMlAuthzFactory.create()); describe('create_rules', () => { let server: ReturnType; let { clients, context } = requestContextMock.createTools(); + let ml: ReturnType; beforeAll(() => { setFeatureFlagsForTestsOnly(); @@ -37,13 +41,14 @@ describe('create_rules', () => { beforeEach(() => { server = serverMock.create(); ({ clients, context } = requestContextMock.createTools()); + ml = mlServicesMock.create(); clients.clusterClient.callAsCurrentUser.mockResolvedValue(getNonEmptyIndex()); // index exists clients.alertsClient.find.mockResolvedValue(getEmptyFindResult()); // no current rules clients.alertsClient.create.mockResolvedValue(getResult()); // creation succeeds clients.savedObjectsClient.find.mockResolvedValue(getFindResultStatus()); // needed to transform - createRulesRoute(server.router); + createRulesRoute(server.router, ml); }); describe('status codes with actionClient and alertClient', () => { @@ -86,14 +91,18 @@ describe('create_rules', () => { expect(response.status).toEqual(200); }); - it('rejects the request if licensing is not platinum', async () => { - (context.licensing.license.hasAtLeast as jest.Mock).mockReturnValue(false); + it('returns a 403 if ML Authz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); const response = await server.inject(createMlRuleRequest(), context); - expect(response.status).toEqual(400); + expect(response.status).toEqual(403); expect(response.body).toEqual({ - message: 'Your license does not support machine learning. Please upgrade your license.', - status_code: 400, + message: 'mocked validation message', + status_code: 403, }); }); }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts index 6605b5abfcb09..7cbb22221679a 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts @@ -8,22 +8,20 @@ import uuid from 'uuid'; import { IRouter } from '../../../../../../../../src/core/server'; import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { SetupPlugins } from '../../../../plugin'; +import { buildMlAuthz } from '../../../machine_learning/authz'; +import { throwHttpError } from '../../../machine_learning/validation'; import { createRules } from '../../rules/create_rules'; import { readRules } from '../../rules/read_rules'; import { RuleAlertParamsRest } from '../../types'; import { transformValidate } from './validate'; import { getIndexExists } from '../../index/get_index_exists'; import { createRulesSchema } from '../schemas/create_rules_schema'; -import { - buildRouteValidation, - transformError, - buildSiemResponse, - validateLicenseForRuleType, -} from '../utils'; +import { buildRouteValidation, transformError, buildSiemResponse } from '../utils'; import { updateRulesNotifications } from '../../rules/update_rules_notifications'; import { ruleStatusSavedObjectsClientFactory } from '../../signals/rule_status_saved_objects_client'; -export const createRulesRoute = (router: IRouter): void => { +export const createRulesRoute = (router: IRouter, ml: SetupPlugins['ml']): void => { router.post( { path: DETECTION_ENGINE_RULES_URL, @@ -70,7 +68,6 @@ export const createRulesRoute = (router: IRouter): void => { const siemResponse = buildSiemResponse(response); try { - validateLicenseForRuleType({ license: context.licensing.license, ruleType: type }); const alertsClient = context.alerting?.getAlertsClient(); const clusterClient = context.core.elasticsearch.dataClient; const savedObjectsClient = context.core.savedObjects.client; @@ -80,6 +77,9 @@ export const createRulesRoute = (router: IRouter): void => { return siemResponse.error({ statusCode: 404 }); } + const mlAuthz = buildMlAuthz({ license: context.licensing.license, ml, request }); + throwHttpError(await mlAuthz.validateRuleType(type)); + const finalIndex = outputIndex ?? siemClient.getSignalsIndex(); const indexExists = await getIndexExists(clusterClient.callAsCurrentUser, finalIndex); if (!indexExists) { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.test.ts index 91685a68a60ae..c33c917c2e987 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.test.ts @@ -9,8 +9,6 @@ import { ruleIdsToNdJsonString, rulesToNdJsonString, getSimpleRuleWithId, - getSimpleRule, - getSimpleMlRule, } from '../__mocks__/utils'; import { getImportRulesRequest, @@ -22,10 +20,14 @@ import { getNonEmptyIndex, } from '../__mocks__/request_responses'; import { createMockConfig, requestContextMock, serverMock, requestMock } from '../__mocks__'; +import { mlServicesMock, mlAuthzMock as mockMlAuthzFactory } from '../../../machine_learning/mocks'; +import { buildMlAuthz } from '../../../machine_learning/authz'; import { importRulesRoute } from './import_rules_route'; import * as createRulesStreamFromNdJson from '../../rules/create_rules_stream_from_ndjson'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../feature_flags'; +jest.mock('../../../machine_learning/authz', () => mockMlAuthzFactory.create()); + describe('import_rules_route', () => { beforeAll(() => { setFeatureFlagsForTestsOnly(); @@ -39,25 +41,20 @@ describe('import_rules_route', () => { let server: ReturnType; let request: ReturnType; let { clients, context } = requestContextMock.createTools(); + let ml: ReturnType; beforeEach(() => { - // jest carries state between mocked implementations when using - // spyOn. So now we're doing all three of these. - // https://github.com/facebook/jest/issues/7136#issuecomment-565976599 - jest.resetAllMocks(); - jest.restoreAllMocks(); - jest.clearAllMocks(); - server = serverMock.create(); ({ clients, context } = requestContextMock.createTools()); config = createMockConfig(); const hapiStream = buildHapiStream(ruleIdsToNdJsonString(['rule-1'])); request = getImportRulesRequest(hapiStream); + ml = mlServicesMock.create(); clients.clusterClient.callAsCurrentUser.mockResolvedValue(getNonEmptyIndex()); // index exists clients.alertsClient.find.mockResolvedValue(getEmptyFindResult()); // no extant rules - importRulesRoute(server.router, config); + importRulesRoute(server.router, config, ml); }); describe('status codes', () => { @@ -83,11 +80,12 @@ describe('import_rules_route', () => { }); describe('unhappy paths', () => { - it('returns an error object if creating an ML rule with an insufficient license', async () => { - (context.licensing.license.hasAtLeast as jest.Mock).mockReturnValue(false); - const rules = [getSimpleRule(), getSimpleMlRule('rule-2')]; - const hapiStreamWithMlRule = buildHapiStream(rulesToNdJsonString(rules)); - request = getImportRulesRequest(hapiStreamWithMlRule); + it('returns a 403 error object if ML Authz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); const response = await server.inject(request, context); expect(response.status).toEqual(200); @@ -95,20 +93,19 @@ describe('import_rules_route', () => { errors: [ { error: { - message: - 'Your license does not support machine learning. Please upgrade your license.', - status_code: 400, + message: 'mocked validation message', + status_code: 403, }, - rule_id: 'rule-2', + rule_id: 'rule-1', }, ], success: false, - success_count: 1, + success_count: 0, }); }); test('returns error if createPromiseFromStreams throws error', async () => { - jest + const transformMock = jest .spyOn(createRulesStreamFromNdJson, 'createRulesStreamFromNdJson') .mockImplementation(() => { throw new Error('Test error'); @@ -116,6 +113,8 @@ describe('import_rules_route', () => { const response = await server.inject(request, context); expect(response.status).toEqual(500); expect(response.body).toEqual({ message: 'Test error', status_code: 500 }); + + transformMock.mockRestore(); }); test('returns an error if the index does not exist', async () => { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts index 9ba083ae48086..00010027f106b 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts @@ -11,6 +11,9 @@ import { IRouter } from '../../../../../../../../src/core/server'; import { createPromiseFromStreams } from '../../../../../../../../src/legacy/utils/streams'; import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; import { ConfigType } from '../../../../config'; +import { SetupPlugins } from '../../../../plugin'; +import { buildMlAuthz } from '../../../machine_learning/authz'; +import { throwHttpError } from '../../../machine_learning/validation'; import { createRules } from '../../rules/create_rules'; import { ImportRulesRequestParams } from '../../rules/types'; import { readRules } from '../../rules/read_rules'; @@ -24,7 +27,6 @@ import { isImportRegular, transformError, buildSiemResponse, - validateLicenseForRuleType, } from '../utils'; import { ImportRuleAlertRest } from '../../types'; import { patchRules } from '../../rules/patch_rules'; @@ -38,7 +40,7 @@ type PromiseFromStreams = ImportRuleAlertRest | Error; const CHUNK_PARSED_OBJECT_SIZE = 10; -export const importRulesRoute = (router: IRouter, config: ConfigType) => { +export const importRulesRoute = (router: IRouter, config: ConfigType, ml: SetupPlugins['ml']) => { router.post( { path: `${DETECTION_ENGINE_RULES_URL}/_import`, @@ -67,6 +69,8 @@ export const importRulesRoute = (router: IRouter, config: ConfigType) => { return siemResponse.error({ statusCode: 404 }); } + const mlAuthz = buildMlAuthz({ license: context.licensing.license, ml, request }); + const { filename } = request.body.file.hapi; const fileExtension = extname(filename).toLowerCase(); if (fileExtension !== '.ndjson') { @@ -148,10 +152,7 @@ export const importRulesRoute = (router: IRouter, config: ConfigType) => { } = parsedRule; try { - validateLicenseForRuleType({ - license: context.licensing.license, - ruleType: type, - }); + throwHttpError(await mlAuthz.validateRuleType(type)); const rule = await readRules({ alertsClient, ruleId }); if (rule == null) { @@ -207,8 +208,7 @@ export const importRulesRoute = (router: IRouter, config: ConfigType) => { timelineTitle, meta, filters, - id: undefined, - ruleId, + rule, index, interval, maxSignals, @@ -240,7 +240,7 @@ export const importRulesRoute = (router: IRouter, config: ConfigType) => { resolve( createBulkErrorObject({ ruleId, - statusCode: 400, + statusCode: err.statusCode ?? 400, message: err.message, }) ); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.test.ts index a1f39936dd674..24b2d5631b3a7 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.test.ts @@ -5,6 +5,8 @@ */ import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { mlServicesMock, mlAuthzMock as mockMlAuthzFactory } from '../../../machine_learning/mocks'; +import { buildMlAuthz } from '../../../machine_learning/authz'; import { getEmptyFindResult, typicalPayload, @@ -17,9 +19,12 @@ import { serverMock, requestContextMock, requestMock } from '../__mocks__'; import { patchRulesBulkRoute } from './patch_rules_bulk_route'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../feature_flags'; +jest.mock('../../../machine_learning/authz', () => mockMlAuthzFactory.create()); + describe('patch_rules_bulk', () => { let server: ReturnType; let { clients, context } = requestContextMock.createTools(); + let ml: ReturnType; beforeAll(() => { setFeatureFlagsForTestsOnly(); @@ -32,11 +37,12 @@ describe('patch_rules_bulk', () => { beforeEach(() => { server = serverMock.create(); ({ clients, context } = requestContextMock.createTools()); + ml = mlServicesMock.create(); clients.alertsClient.find.mockResolvedValue(getFindResultWithSingleHit()); // rule exists clients.alertsClient.update.mockResolvedValue(getResult()); // update succeeds - patchRulesBulkRoute(server.router); + patchRulesBulkRoute(server.router, ml); }); describe('status codes with actionClient and alertClient', () => { @@ -90,21 +96,51 @@ describe('patch_rules_bulk', () => { expect(response.body).toEqual({ message: 'Not Found', status_code: 404 }); }); - it('rejects patching of an ML rule with an insufficient license', async () => { - (context.licensing.license.hasAtLeast as jest.Mock).mockReturnValue(false); + it('rejects patching a rule to ML if mlAuthz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); const request = requestMock.create({ method: 'patch', path: `${DETECTION_ENGINE_RULES_URL}/_bulk_update`, body: [typicalMlRulePayload()], }); + const response = await server.inject(request, context); + expect(response.status).toEqual(200); + expect(response.body).toEqual([ + { + error: { + message: 'mocked validation message', + status_code: 403, + }, + rule_id: 'rule-1', + }, + ]); + }); + + it('rejects patching an existing ML rule if mlAuthz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); + const { type, ...payloadWithoutType } = typicalMlRulePayload(); + const request = requestMock.create({ + method: 'patch', + path: `${DETECTION_ENGINE_RULES_URL}/_bulk_update`, + body: [payloadWithoutType], + }); const response = await server.inject(request, context); + expect(response.status).toEqual(200); expect(response.body).toEqual([ { error: { - message: 'Your license does not support machine learning. Please upgrade your license.', - status_code: 400, + message: 'mocked validation message', + status_code: 403, }, rule_id: 'rule-1', }, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts index 201e1f823b4cb..69789fe946622 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts @@ -6,13 +6,11 @@ import { IRouter } from '../../../../../../../../src/core/server'; import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { SetupPlugins } from '../../../../plugin'; +import { buildMlAuthz } from '../../../machine_learning/authz'; +import { throwHttpError } from '../../../machine_learning/validation'; import { PatchRuleAlertParamsRest } from '../../rules/types'; -import { - transformBulkError, - buildRouteValidation, - buildSiemResponse, - validateLicenseForRuleType, -} from '../utils'; +import { transformBulkError, buildRouteValidation, buildSiemResponse } from '../utils'; import { getIdBulkError } from './utils'; import { transformValidateBulkError, validate } from './validate'; import { patchRulesBulkSchema } from '../schemas/patch_rules_bulk_schema'; @@ -20,8 +18,9 @@ import { rulesBulkSchema } from '../schemas/response/rules_bulk_schema'; import { patchRules } from '../../rules/patch_rules'; import { updateRulesNotifications } from '../../rules/update_rules_notifications'; import { ruleStatusSavedObjectsClientFactory } from '../../signals/rule_status_saved_objects_client'; +import { readRules } from '../../rules/read_rules'; -export const patchRulesBulkRoute = (router: IRouter) => { +export const patchRulesBulkRoute = (router: IRouter, ml: SetupPlugins['ml']) => { router.patch( { path: `${DETECTION_ENGINE_RULES_URL}/_bulk_update`, @@ -42,6 +41,7 @@ export const patchRulesBulkRoute = (router: IRouter) => { return siemResponse.error({ statusCode: 404 }); } + const mlAuthz = buildMlAuthz({ license: context.licensing.license, ml, request }); const ruleStatusClient = ruleStatusSavedObjectsClientFactory(savedObjectsClient); const rules = await Promise.all( request.body.map(async payloadRule => { @@ -81,10 +81,18 @@ export const patchRulesBulkRoute = (router: IRouter) => { const idOrRuleIdOrUnknown = id ?? ruleId ?? '(unknown id)'; try { if (type) { - validateLicenseForRuleType({ license: context.licensing.license, ruleType: type }); + // reject an unauthorized "promotion" to ML + throwHttpError(await mlAuthz.validateRuleType(type)); + } + + const existingRule = await readRules({ alertsClient, ruleId, id }); + if (existingRule?.params.type) { + // reject an unauthorized modification of an ML rule + throwHttpError(await mlAuthz.validateRuleType(existingRule?.params.type)); } const rule = await patchRules({ + rule: existingRule, alertsClient, description, enabled, @@ -99,8 +107,6 @@ export const patchRulesBulkRoute = (router: IRouter) => { timelineTitle, meta, filters, - id, - ruleId, index, interval, maxSignals, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.test.ts index dbb0a3bb3e1da..9ae7e83ef7989 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.test.ts @@ -5,6 +5,8 @@ */ import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { mlServicesMock, mlAuthzMock as mockMlAuthzFactory } from '../../../machine_learning/mocks'; +import { buildMlAuthz } from '../../../machine_learning/authz'; import { getEmptyFindResult, getFindResultStatus, @@ -19,9 +21,12 @@ import { requestContextMock, serverMock, requestMock } from '../__mocks__'; import { patchRulesRoute } from './patch_rules_route'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../feature_flags'; +jest.mock('../../../machine_learning/authz', () => mockMlAuthzFactory.create()); + describe('patch_rules', () => { let server: ReturnType; let { clients, context } = requestContextMock.createTools(); + let ml: ReturnType; beforeAll(() => { setFeatureFlagsForTestsOnly(); @@ -34,13 +39,14 @@ describe('patch_rules', () => { beforeEach(() => { server = serverMock.create(); ({ clients, context } = requestContextMock.createTools()); + ml = mlServicesMock.create(); clients.alertsClient.get.mockResolvedValue(getResult()); // existing rule clients.alertsClient.find.mockResolvedValue(getFindResultWithSingleHit()); // existing rule clients.alertsClient.update.mockResolvedValue(getResult()); // successful update clients.savedObjectsClient.find.mockResolvedValue(getFindResultStatus()); // successful transform - patchRulesRoute(server.router); + patchRulesRoute(server.router, ml); }); describe('status codes with actionClient and alertClient', () => { @@ -112,8 +118,12 @@ describe('patch_rules', () => { ); }); - it('rejects patching a rule to ML if licensing is not platinum', async () => { - (context.licensing.license.hasAtLeast as jest.Mock).mockReturnValue(false); + it('rejects patching a rule to ML if mlAuthz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); const request = requestMock.create({ method: 'patch', path: DETECTION_ENGINE_RULES_URL, @@ -121,10 +131,31 @@ describe('patch_rules', () => { }); const response = await server.inject(request, context); - expect(response.status).toEqual(400); + expect(response.status).toEqual(403); + expect(response.body).toEqual({ + message: 'mocked validation message', + status_code: 403, + }); + }); + + it('rejects patching an ML rule if mlAuthz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); + const { type, ...payloadWithoutType } = typicalMlRulePayload(); + const request = requestMock.create({ + method: 'patch', + path: DETECTION_ENGINE_RULES_URL, + body: payloadWithoutType, + }); + const response = await server.inject(request, context); + + expect(response.status).toEqual(403); expect(response.body).toEqual({ - message: 'Your license does not support machine learning. Please upgrade your license.', - status_code: 400, + message: 'mocked validation message', + status_code: 403, }); }); }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.ts index 00ccd3059b38d..ae23e0efc857d 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.ts @@ -6,21 +6,20 @@ import { IRouter } from '../../../../../../../../src/core/server'; import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { SetupPlugins } from '../../../../plugin'; +import { buildMlAuthz } from '../../../machine_learning/authz'; +import { throwHttpError } from '../../../machine_learning/validation'; import { patchRules } from '../../rules/patch_rules'; import { PatchRuleAlertParamsRest } from '../../rules/types'; import { patchRulesSchema } from '../schemas/patch_rules_schema'; -import { - buildRouteValidation, - transformError, - buildSiemResponse, - validateLicenseForRuleType, -} from '../utils'; +import { buildRouteValidation, transformError, buildSiemResponse } from '../utils'; import { getIdError } from './utils'; import { transformValidate } from './validate'; import { updateRulesNotifications } from '../../rules/update_rules_notifications'; import { ruleStatusSavedObjectsClientFactory } from '../../signals/rule_status_saved_objects_client'; +import { readRules } from '../../rules/read_rules'; -export const patchRulesRoute = (router: IRouter) => { +export const patchRulesRoute = (router: IRouter, ml: SetupPlugins['ml']) => { router.patch( { path: DETECTION_ENGINE_RULES_URL, @@ -68,10 +67,6 @@ export const patchRulesRoute = (router: IRouter) => { const siemResponse = buildSiemResponse(response); try { - if (type) { - validateLicenseForRuleType({ license: context.licensing.license, ruleType: type }); - } - const alertsClient = context.alerting?.getAlertsClient(); const savedObjectsClient = context.core.savedObjects.client; @@ -79,6 +74,18 @@ export const patchRulesRoute = (router: IRouter) => { return siemResponse.error({ statusCode: 404 }); } + const mlAuthz = buildMlAuthz({ license: context.licensing.license, ml, request }); + if (type) { + // reject an unauthorized "promotion" to ML + throwHttpError(await mlAuthz.validateRuleType(type)); + } + + const existingRule = await readRules({ alertsClient, ruleId, id }); + if (existingRule?.params.type) { + // reject an unauthorized modification of an ML rule + throwHttpError(await mlAuthz.validateRuleType(existingRule?.params.type)); + } + const ruleStatusClient = ruleStatusSavedObjectsClientFactory(savedObjectsClient); const rule = await patchRules({ alertsClient, @@ -95,8 +102,7 @@ export const patchRulesRoute = (router: IRouter) => { timelineTitle, meta, filters, - id, - ruleId, + rule: existingRule, index, interval, maxSignals, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.test.ts index 332a47d0c0fc2..e48c72ce9579e 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.test.ts @@ -4,6 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ +import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { mlServicesMock, mlAuthzMock as mockMlAuthzFactory } from '../../../machine_learning/mocks'; +import { buildMlAuthz } from '../../../machine_learning/authz'; import { getEmptyFindResult, getResult, @@ -16,12 +19,14 @@ import { import { serverMock, requestContextMock, requestMock } from '../__mocks__'; import { updateRulesBulkRoute } from './update_rules_bulk_route'; import { BulkError } from '../utils'; -import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../feature_flags'; +jest.mock('../../../machine_learning/authz', () => mockMlAuthzFactory.create()); + describe('update_rules_bulk', () => { let server: ReturnType; let { clients, context } = requestContextMock.createTools(); + let ml: ReturnType; beforeAll(() => { setFeatureFlagsForTestsOnly(); @@ -34,12 +39,13 @@ describe('update_rules_bulk', () => { beforeEach(() => { server = serverMock.create(); ({ clients, context } = requestContextMock.createTools()); + ml = mlServicesMock.create(); clients.alertsClient.find.mockResolvedValue(getFindResultWithSingleHit()); clients.alertsClient.update.mockResolvedValue(getResult()); clients.savedObjectsClient.find.mockResolvedValue(getFindResultStatus()); - updateRulesBulkRoute(server.router); + updateRulesBulkRoute(server.router, ml); }); describe('status codes with actionClient and alertClient', () => { @@ -92,8 +98,12 @@ describe('update_rules_bulk', () => { expect(response.body).toEqual(expected); }); - it('returns an error object if creating an ML rule with an insufficient license', async () => { - (context.licensing.license.hasAtLeast as jest.Mock).mockReturnValue(false); + it('returns a 403 error object if mlAuthz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); const request = requestMock.create({ method: 'put', path: `${DETECTION_ENGINE_RULES_URL}/_bulk_update`, @@ -105,8 +115,8 @@ describe('update_rules_bulk', () => { expect(response.body).toEqual([ { error: { - message: 'Your license does not support machine learning. Please upgrade your license.', - status_code: 400, + message: 'mocked validation message', + status_code: 403, }, rule_id: 'rule-1', }, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts index 6d8f2243787e8..11892898d214b 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts @@ -6,22 +6,20 @@ import { IRouter } from '../../../../../../../../src/core/server'; import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { SetupPlugins } from '../../../../plugin'; +import { buildMlAuthz } from '../../../machine_learning/authz'; +import { throwHttpError } from '../../../machine_learning/validation'; import { UpdateRuleAlertParamsRest } from '../../rules/types'; import { getIdBulkError } from './utils'; import { transformValidateBulkError, validate } from './validate'; -import { - buildRouteValidation, - transformBulkError, - buildSiemResponse, - validateLicenseForRuleType, -} from '../utils'; +import { buildRouteValidation, transformBulkError, buildSiemResponse } from '../utils'; import { updateRulesBulkSchema } from '../schemas/update_rules_bulk_schema'; import { updateRules } from '../../rules/update_rules'; import { rulesBulkSchema } from '../schemas/response/rules_bulk_schema'; import { updateRulesNotifications } from '../../rules/update_rules_notifications'; import { ruleStatusSavedObjectsClientFactory } from '../../signals/rule_status_saved_objects_client'; -export const updateRulesBulkRoute = (router: IRouter) => { +export const updateRulesBulkRoute = (router: IRouter, ml: SetupPlugins['ml']) => { router.put( { path: `${DETECTION_ENGINE_RULES_URL}/_bulk_update`, @@ -43,6 +41,7 @@ export const updateRulesBulkRoute = (router: IRouter) => { return siemResponse.error({ statusCode: 404 }); } + const mlAuthz = buildMlAuthz({ license: context.licensing.license, ml, request }); const ruleStatusClient = ruleStatusSavedObjectsClientFactory(savedObjectsClient); const rules = await Promise.all( request.body.map(async payloadRule => { @@ -83,7 +82,7 @@ export const updateRulesBulkRoute = (router: IRouter) => { const finalIndex = outputIndex ?? siemClient.getSignalsIndex(); const idOrRuleIdOrUnknown = id ?? ruleId ?? '(unknown id)'; try { - validateLicenseForRuleType({ license: context.licensing.license, ruleType: type }); + throwHttpError(await mlAuthz.validateRuleType(type)); const rule = await updateRules({ alertsClient, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.test.ts index 53c52153e84e6..ce25a0204a606 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.test.ts @@ -4,7 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import { updateRulesRoute } from './update_rules_route'; +import { mlServicesMock, mlAuthzMock as mockMlAuthzFactory } from '../../../machine_learning/mocks'; +import { buildMlAuthz } from '../../../machine_learning/authz'; import { getEmptyFindResult, getResult, @@ -19,11 +20,15 @@ import { requestContextMock, serverMock, requestMock } from '../__mocks__'; import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../feature_flags'; import { updateRulesNotifications } from '../../rules/update_rules_notifications'; +import { updateRulesRoute } from './update_rules_route'; + +jest.mock('../../../machine_learning/authz', () => mockMlAuthzFactory.create()); jest.mock('../../rules/update_rules_notifications'); describe('update_rules', () => { let server: ReturnType; let { clients, context } = requestContextMock.createTools(); + let ml: ReturnType; beforeAll(() => { setFeatureFlagsForTestsOnly(); @@ -36,13 +41,14 @@ describe('update_rules', () => { beforeEach(() => { server = serverMock.create(); ({ clients, context } = requestContextMock.createTools()); + ml = mlServicesMock.create(); clients.alertsClient.get.mockResolvedValue(getResult()); // existing rule clients.alertsClient.find.mockResolvedValue(getFindResultWithSingleHit()); // rule exists clients.alertsClient.update.mockResolvedValue(getResult()); // successful update clients.savedObjectsClient.find.mockResolvedValue(getFindResultStatusEmpty()); // successful transform - updateRulesRoute(server.router); + updateRulesRoute(server.router, ml); }); describe('status codes with actionClient and alertClient', () => { @@ -106,8 +112,12 @@ describe('update_rules', () => { }); }); - it('rejects the request if licensing is not adequate', async () => { - (context.licensing.license.hasAtLeast as jest.Mock).mockReturnValue(false); + it('returns a 403 if mlAuthz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); const request = requestMock.create({ method: 'put', path: DETECTION_ENGINE_RULES_URL, @@ -115,10 +125,10 @@ describe('update_rules', () => { }); const response = await server.inject(request, context); - expect(response.status).toEqual(400); + expect(response.status).toEqual(403); expect(response.body).toEqual({ - message: 'Your license does not support machine learning. Please upgrade your license.', - status_code: 400, + message: 'mocked validation message', + status_code: 403, }); }); }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts index bfbeef8be2fea..f15154a09657d 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts @@ -6,21 +6,19 @@ import { IRouter } from '../../../../../../../../src/core/server'; import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { SetupPlugins } from '../../../../plugin'; +import { buildMlAuthz } from '../../../machine_learning/authz'; +import { throwHttpError } from '../../../machine_learning/validation'; import { UpdateRuleAlertParamsRest } from '../../rules/types'; import { updateRulesSchema } from '../schemas/update_rules_schema'; -import { - buildRouteValidation, - transformError, - buildSiemResponse, - validateLicenseForRuleType, -} from '../utils'; +import { buildRouteValidation, transformError, buildSiemResponse } from '../utils'; import { getIdError } from './utils'; import { transformValidate } from './validate'; import { updateRules } from '../../rules/update_rules'; import { updateRulesNotifications } from '../../rules/update_rules_notifications'; import { ruleStatusSavedObjectsClientFactory } from '../../signals/rule_status_saved_objects_client'; -export const updateRulesRoute = (router: IRouter) => { +export const updateRulesRoute = (router: IRouter, ml: SetupPlugins['ml']) => { router.put( { path: DETECTION_ENGINE_RULES_URL, @@ -69,8 +67,6 @@ export const updateRulesRoute = (router: IRouter) => { const siemResponse = buildSiemResponse(response); try { - validateLicenseForRuleType({ license: context.licensing.license, ruleType: type }); - const alertsClient = context.alerting?.getAlertsClient(); const savedObjectsClient = context.core.savedObjects.client; const siemClient = context.siem?.getSiemClient(); @@ -80,6 +76,9 @@ export const updateRulesRoute = (router: IRouter) => { return siemResponse.error({ statusCode: 404 }); } + const mlAuthz = buildMlAuthz({ license: context.licensing.license, ml, request }); + throwHttpError(await mlAuthz.validateRuleType(type)); + const finalIndex = outputIndex ?? siemClient.getSignalsIndex(); const rule = await updateRules({ alertsClient, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/check_type_dependents.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/check_type_dependents.ts index 25e76f367037a..1c1bee58f0c97 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/check_type_dependents.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/check_type_dependents.ts @@ -8,7 +8,7 @@ import * as t from 'io-ts'; import { Either, left, fold } from 'fp-ts/lib/Either'; import { pipe } from 'fp-ts/lib/pipeable'; -import { isMlRule } from '../../../../../../common/detection_engine/ml_helpers'; +import { isMlRule } from '../../../../../../common/machine_learning/helpers'; import { dependentRulesSchema, RequiredRulesSchema, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/utils.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/utils.test.ts index 8af5df6056913..fdb1cd148c7fa 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/utils.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/utils.test.ts @@ -19,11 +19,9 @@ import { transformImportError, convertToSnakeCase, SiemResponseFactory, - validateLicenseForRuleType, } from './utils'; import { responseMock } from './__mocks__'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../feature_flags'; -import { licensingMock } from '../../../../../licensing/server/mocks'; describe('utils', () => { beforeAll(() => { @@ -361,36 +359,4 @@ describe('utils', () => { ); }); }); - - describe('validateLicenseForRuleType', () => { - let licenseMock: ReturnType; - - beforeEach(() => { - licenseMock = licensingMock.createLicenseMock(); - }); - - it('throws a BadRequestError if operating on an ML Rule with an insufficient license', () => { - licenseMock.hasAtLeast.mockReturnValue(false); - - expect(() => - validateLicenseForRuleType({ license: licenseMock, ruleType: 'machine_learning' }) - ).toThrowError(BadRequestError); - }); - - it('does not throw if operating on an ML Rule with a sufficient license', () => { - licenseMock.hasAtLeast.mockReturnValue(true); - - expect(() => - validateLicenseForRuleType({ license: licenseMock, ruleType: 'machine_learning' }) - ).not.toThrowError(BadRequestError); - }); - - it('does not throw if operating on a query rule', () => { - licenseMock.hasAtLeast.mockReturnValue(false); - - expect(() => - validateLicenseForRuleType({ license: licenseMock, ruleType: 'query' }) - ).not.toThrowError(BadRequestError); - }); - }); }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/utils.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/utils.ts index 52493a9be9b8f..9903840b99c6f 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/utils.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/utils.ts @@ -7,17 +7,12 @@ import Boom from 'boom'; import Joi from 'joi'; import { has, snakeCase } from 'lodash/fp'; -import { i18n } from '@kbn/i18n'; import { RouteValidationFunction, KibanaResponseFactory, CustomHttpResponseOptions, } from '../../../../../../../src/core/server'; -import { ILicense } from '../../../../../licensing/server'; -import { MINIMUM_ML_LICENSE } from '../../../../common/constants'; -import { RuleType } from '../../../../common/detection_engine/types'; -import { isMlRule } from '../../../../common/detection_engine/ml_helpers'; import { BadRequestError } from '../errors/bad_request_error'; export interface OutputError { @@ -294,28 +289,3 @@ export const convertToSnakeCase = >( return { ...acc, [newKey]: obj[item] }; }, {}); }; - -/** - * Checks the current Kibana License against the rule under operation. - * - * @param license ILicense representing the user license - * @param ruleType the type of the current rule - * - * @throws BadRequestError if rule and license are incompatible - */ -export const validateLicenseForRuleType = ({ - license, - ruleType, -}: { - license: ILicense; - ruleType: RuleType; -}): void => { - if (isMlRule(ruleType) && !license.hasAtLeast(MINIMUM_ML_LICENSE)) { - const message = i18n.translate('xpack.siem.licensing.unsupportedMachineLearningMessage', { - defaultMessage: - 'Your license does not support machine learning. Please upgrade your license.', - }); - - throw new BadRequestError(message); - } -}; diff --git a/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.test.ts index c551eb164ee07..a42500223012e 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.test.ts @@ -19,14 +19,14 @@ describe('patchRules', () => { }); it('should call alertsClient.disable is the rule was enabled and enabled is false', async () => { - const rule = getResult(); - alertsClient.get.mockResolvedValue(getResult()); + const existingRule = getResult(); + const params = getResult().params; await patchRules({ alertsClient, savedObjectsClient, - id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', - ...rule.params, + rule: existingRule, + ...params, enabled: false, interval: '', name: '', @@ -35,23 +35,23 @@ describe('patchRules', () => { expect(alertsClient.disable).toHaveBeenCalledWith( expect.objectContaining({ - id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', + id: existingRule.id, }) ); }); it('should call alertsClient.enable is the rule was disabled and enabled is true', async () => { - const rule = getResult(); - alertsClient.get.mockResolvedValue({ + const existingRule = { ...getResult(), enabled: false, - }); + }; + const params = getResult().params; await patchRules({ alertsClient, savedObjectsClient, - id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', - ...rule.params, + rule: existingRule, + ...params, enabled: true, interval: '', name: '', @@ -60,13 +60,13 @@ describe('patchRules', () => { expect(alertsClient.enable).toHaveBeenCalledWith( expect.objectContaining({ - id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', + id: existingRule.id, }) ); }); it('calls the alertsClient with ML params', async () => { - alertsClient.get.mockResolvedValue(getMlResult()); + const existingRule = getMlResult(); const params = { ...getMlResult().params, anomalyThreshold: 55, @@ -76,7 +76,7 @@ describe('patchRules', () => { await patchRules({ alertsClient, savedObjectsClient, - id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', + rule: existingRule, ...params, }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.ts b/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.ts index da5e90ec14b0b..6dfb72532afbb 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.ts @@ -6,7 +6,6 @@ import { defaults } from 'lodash/fp'; import { PartialAlert } from '../../../../../alerting/server'; -import { readRules } from './read_rules'; import { PatchRuleParams } from './types'; import { addTags } from './add_tags'; import { calculateVersion, calculateName, calculateInterval } from './utils'; @@ -28,12 +27,11 @@ export const patchRules = async ({ filters, from, immutable, - id, - ruleId, index, interval, maxSignals, riskScore, + rule, name, severity, tags, @@ -47,7 +45,6 @@ export const patchRules = async ({ anomalyThreshold, machineLearningJobId, }: PatchRuleParams): Promise => { - const rule = await readRules({ alertsClient, ruleId, id }); if (rule == null) { return null; } diff --git a/x-pack/plugins/siem/server/lib/detection_engine/rules/types.ts b/x-pack/plugins/siem/server/lib/detection_engine/rules/types.ts index b5dbfc92cf528..217a966478e78 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/rules/types.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/rules/types.ts @@ -14,7 +14,7 @@ import { SavedObjectsClientContract, } from 'kibana/server'; import { AlertsClient, PartialAlert } from '../../../../../alerting/server'; -import { Alert } from '../../../../../alerting/common'; +import { Alert, SanitizedAlert } from '../../../../../alerting/common'; import { SIGNALS_ID } from '../../../../common/constants'; import { RuleAlertParams, RuleTypeParams, RuleAlertParamsRest } from '../types'; @@ -140,8 +140,8 @@ export interface Clients { alertsClient: AlertsClient; } -export type PatchRuleParams = Partial> & { - id: string | undefined | null; +export type PatchRuleParams = Partial> & { + rule: SanitizedAlert | null; savedObjectsClient: SavedObjectsClientContract; } & Clients; diff --git a/x-pack/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.test.ts index e8fb4fa96ab51..2d77e9a707f74 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.test.ts @@ -6,7 +6,10 @@ import { savedObjectsClientMock } from '../../../../../../../src/core/server/mocks'; import { alertsClientMock } from '../../../../../alerting/server/mocks'; -import { mockPrepackagedRule } from '../routes/__mocks__/request_responses'; +import { + mockPrepackagedRule, + getFindResultWithSingleHit, +} from '../routes/__mocks__/request_responses'; import { updatePrepackagedRules } from './update_prepacked_rules'; import { patchRules } from './patch_rules'; jest.mock('./patch_rules'); @@ -31,6 +34,7 @@ describe('updatePrepackagedRules', () => { ]; const outputIndex = 'outputIndex'; const prepackagedRule = mockPrepackagedRule(); + alertsClient.find.mockResolvedValue(getFindResultWithSingleHit()); await updatePrepackagedRules( alertsClient, @@ -40,17 +44,8 @@ describe('updatePrepackagedRules', () => { ); expect(patchRules).toHaveBeenCalledWith( - expect.objectContaining({ - ruleId: 'rule-1', - }) - ); - expect(patchRules).not.toHaveBeenCalledWith( - expect.objectContaining({ + expect.not.objectContaining({ enabled: true, - }) - ); - expect(patchRules).not.toHaveBeenCalledWith( - expect.objectContaining({ actions, }) ); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.ts b/x-pack/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.ts index 4c183c51d16ea..618dee26b4812 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.ts @@ -8,6 +8,7 @@ import { SavedObjectsClientContract } from 'kibana/server'; import { AlertsClient } from '../../../../../alerting/server'; import { patchRules } from './patch_rules'; import { PrepackagedRules } from '../types'; +import { readRules } from './read_rules'; export const updatePrepackagedRules = async ( alertsClient: AlertsClient, @@ -15,63 +16,66 @@ export const updatePrepackagedRules = async ( rules: PrepackagedRules[], outputIndex: string ): Promise => { - await rules.forEach(async rule => { - const { - description, - false_positives: falsePositives, - from, - immutable, - query, - language, - saved_id: savedId, - meta, - filters, - rule_id: ruleId, - index, - interval, - max_signals: maxSignals, - risk_score: riskScore, - name, - severity, - tags, - to, - type, - threat, - references, - version, - note, - } = rule; + await Promise.all( + rules.map(async rule => { + const { + description, + false_positives: falsePositives, + from, + immutable, + query, + language, + saved_id: savedId, + meta, + filters, + rule_id: ruleId, + index, + interval, + max_signals: maxSignals, + risk_score: riskScore, + name, + severity, + tags, + to, + type, + threat, + references, + version, + note, + } = rule; - // Note: we do not pass down enabled as we do not want to suddenly disable - // or enable rules on the user when they were not expecting it if a rule updates - return patchRules({ - alertsClient, - description, - falsePositives, - from, - immutable, - query, - language, - outputIndex, - id: undefined, // We never have an id when updating from pre-packaged rules - savedId, - savedObjectsClient, - meta, - filters, - ruleId, - index, - interval, - maxSignals, - riskScore, - name, - severity, - tags, - to, - type, - threat, - references, - version, - note, - }); - }); + const existingRule = await readRules({ alertsClient, ruleId, id: undefined }); + + // Note: we do not pass down enabled as we do not want to suddenly disable + // or enable rules on the user when they were not expecting it if a rule updates + return patchRules({ + alertsClient, + description, + falsePositives, + from, + immutable, + query, + language, + outputIndex, + rule: existingRule, + savedId, + savedObjectsClient, + meta, + filters, + index, + interval, + maxSignals, + riskScore, + name, + severity, + tags, + to, + type, + threat, + references, + version, + note, + }); + }) + ); }; diff --git a/x-pack/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts b/x-pack/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts index ca259b3581720..6160f34faef3f 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts @@ -8,7 +8,7 @@ import { performance } from 'perf_hooks'; import { Logger, KibanaRequest } from 'src/core/server'; import { SIGNALS_ID, DEFAULT_SEARCH_AFTER_PAGE_SIZE } from '../../../../common/constants'; -import { isJobStarted, isMlRule } from '../../../../common/detection_engine/ml_helpers'; +import { isJobStarted, isMlRule } from '../../../../common/machine_learning/helpers'; import { SetupPlugins } from '../../../plugin'; import { buildEventsSearchQuery } from './build_events_query'; diff --git a/x-pack/plugins/siem/server/lib/machine_learning/authz.test.ts b/x-pack/plugins/siem/server/lib/machine_learning/authz.test.ts new file mode 100644 index 0000000000000..93c3a74c71378 --- /dev/null +++ b/x-pack/plugins/siem/server/lib/machine_learning/authz.test.ts @@ -0,0 +1,265 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { KibanaRequest } from '../../../../../../src/core/server'; +import { httpServerMock } from '../../../../../../src/core/server/mocks'; +import { hasMlAdminPermissions } from '../../../common/machine_learning/has_ml_admin_permissions'; +import { mlServicesMock } from './mocks'; +import { hasMlLicense, isMlAdmin, buildMlAuthz } from './authz'; +import { licensingMock } from '../../../../licensing/server/mocks'; + +jest.mock('../../../common/machine_learning/has_ml_admin_permissions'); + +describe('isMlAdmin', () => { + it('returns true if hasMlAdminPermissions is true', async () => { + const mockMl = mlServicesMock.create(); + const request = httpServerMock.createKibanaRequest(); + (hasMlAdminPermissions as jest.Mock).mockReturnValue(true); + + expect(await isMlAdmin({ ml: mockMl, request })).toEqual(true); + }); + + it('returns false if hasMlAdminPermissions is false', async () => { + const mockMl = mlServicesMock.create(); + const request = httpServerMock.createKibanaRequest(); + (hasMlAdminPermissions as jest.Mock).mockReturnValue(false); + + expect(await isMlAdmin({ ml: mockMl, request })).toEqual(false); + }); +}); + +describe('hasMlLicense', () => { + let licenseMock: ReturnType; + + beforeEach(() => { + licenseMock = licensingMock.createLicenseMock(); + }); + + it('returns false for an insufficient license', () => { + licenseMock.hasAtLeast.mockReturnValue(false); + + expect(hasMlLicense(licenseMock)).toEqual(false); + }); + + it('returns true for a sufficient license', () => { + licenseMock.hasAtLeast.mockReturnValue(true); + + expect(hasMlLicense(licenseMock)).toEqual(true); + }); +}); + +describe('mlAuthz', () => { + let licenseMock: ReturnType; + let mlMock: ReturnType; + let request: KibanaRequest; + + beforeEach(() => { + licenseMock = licensingMock.createLicenseMock(); + mlMock = mlServicesMock.create(); + request = httpServerMock.createKibanaRequest(); + }); + + describe('#validateRuleType', () => { + it('is valid for a non-ML rule when ML plugin is unavailable', async () => { + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: undefined, + request, + }); + + const validation = await mlAuthz.validateRuleType('query'); + + expect(validation.valid).toEqual(true); + }); + + it('is invalid for an ML rule when ML plugin is unavailable', async () => { + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: undefined, + request, + }); + + const validation = await mlAuthz.validateRuleType('machine_learning'); + + expect(validation.valid).toEqual(false); + expect(validation.message).toEqual( + 'The machine learning plugin is not available. Try enabling the plugin.' + ); + }); + + it('is valid for a non-ML rule when license is insufficient', async () => { + licenseMock.hasAtLeast.mockReturnValue(false); + + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + const validation = await mlAuthz.validateRuleType('query'); + + expect(validation.valid).toEqual(true); + }); + + it('is invalid for an ML rule when license is insufficient', async () => { + licenseMock.hasAtLeast.mockReturnValue(false); + + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + const validation = await mlAuthz.validateRuleType('machine_learning'); + + expect(validation.valid).toEqual(false); + expect(validation.message).toEqual( + 'Your license does not support machine learning. Please upgrade your license.' + ); + }); + + it('is valid for a non-ML rule when not an ML Admin', async () => { + (hasMlAdminPermissions as jest.Mock).mockReturnValue(false); + + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + const validation = await mlAuthz.validateRuleType('query'); + + expect(validation.valid).toEqual(true); + }); + + it('is invalid for an ML rule when not an ML Admin', async () => { + licenseMock.hasAtLeast.mockReturnValue(true); // prevents short-circuit on license check + (hasMlAdminPermissions as jest.Mock).mockReturnValue(false); + + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + const validation = await mlAuthz.validateRuleType('machine_learning'); + + expect(validation.valid).toEqual(false); + expect(validation.message).toEqual( + 'The current user is not a machine learning administrator.' + ); + }); + + it('is valid for an ML rule if ML available, license is sufficient, and an ML Admin', async () => { + licenseMock.hasAtLeast.mockReturnValue(true); + (hasMlAdminPermissions as jest.Mock).mockReturnValue(true); + + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + const validation = await mlAuthz.validateRuleType('machine_learning'); + + expect(validation.valid).toEqual(true); + expect(validation.message).toBeUndefined(); + }); + + it('only calls ml services once for multiple invocations', async () => { + const mockMlCapabilities = jest.fn(); + mlMock.mlSystemProvider.mockImplementation(() => ({ + mlInfo: jest.fn(), + mlSearch: jest.fn(), + mlCapabilities: mockMlCapabilities, + })); + + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + await mlAuthz.validateRuleType('machine_learning'); + await mlAuthz.validateRuleType('machine_learning'); + await mlAuthz.validateRuleType('machine_learning'); + + expect(mockMlCapabilities).toHaveBeenCalledTimes(1); + }); + + it('does not call ml services for non-ML rules', async () => { + const mockMlCapabilities = jest.fn(); + mlMock.mlSystemProvider.mockImplementation(() => ({ + mlInfo: jest.fn(), + mlSearch: jest.fn(), + mlCapabilities: mockMlCapabilities, + })); + + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + await mlAuthz.validateRuleType('query'); + await mlAuthz.validateRuleType('query'); + await mlAuthz.validateRuleType('query'); + + expect(mockMlCapabilities).not.toHaveBeenCalled(); + }); + + it('validates the same cache result per request if permissions change mid-stream', async () => { + licenseMock.hasAtLeast.mockReturnValueOnce(false); + licenseMock.hasAtLeast.mockReturnValueOnce(true); + + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + const validationFirst = await mlAuthz.validateRuleType('machine_learning'); + const validationSecond = await mlAuthz.validateRuleType('machine_learning'); + + expect(validationFirst.valid).toEqual(false); + expect(validationFirst.message).toEqual( + 'Your license does not support machine learning. Please upgrade your license.' + ); + expect(validationSecond.valid).toEqual(false); + expect(validationSecond.message).toEqual( + 'Your license does not support machine learning. Please upgrade your license.' + ); + }); + + it('will invalidate the cache result if the builder is called a second time after a license change', async () => { + licenseMock.hasAtLeast.mockReturnValueOnce(false); + licenseMock.hasAtLeast.mockReturnValueOnce(true); + (hasMlAdminPermissions as jest.Mock).mockReturnValueOnce(true); + + const mlAuthzFirst = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + const mlAuthzSecond = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + const validationFirst = await mlAuthzFirst.validateRuleType('machine_learning'); + const validationSecond = await mlAuthzSecond.validateRuleType('machine_learning'); + + expect(validationFirst.valid).toEqual(false); + expect(validationFirst.message).toEqual( + 'Your license does not support machine learning. Please upgrade your license.' + ); + expect(validationSecond.valid).toEqual(true); + expect(validationSecond.message).toBeUndefined(); + }); + }); +}); diff --git a/x-pack/plugins/siem/server/lib/machine_learning/authz.ts b/x-pack/plugins/siem/server/lib/machine_learning/authz.ts new file mode 100644 index 0000000000000..fb74f46244361 --- /dev/null +++ b/x-pack/plugins/siem/server/lib/machine_learning/authz.ts @@ -0,0 +1,120 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { i18n } from '@kbn/i18n'; + +import { KibanaRequest } from '../../../../../../src/core/server/'; +import { ILicense } from '../../../../licensing/server'; +import { MlPluginSetup } from '../../../../ml/server'; +import { SetupPlugins } from '../../plugin'; +import { MINIMUM_ML_LICENSE } from '../../../common/constants'; +import { hasMlAdminPermissions } from '../../../common/machine_learning/has_ml_admin_permissions'; +import { isMlRule } from '../../../common/machine_learning/helpers'; +import { RuleType } from '../../../common/detection_engine/types'; +import { Validation } from './validation'; +import { cache } from './cache'; + +export interface MlAuthz { + validateRuleType: (type: RuleType) => Promise; +} + +/** + * Builds ML authz services + * + * @param license A {@link ILicense} representing the user license + * @param ml {@link MlPluginSetup} ML services to fetch ML capabilities + * @param request A {@link KibanaRequest} representing the authenticated user + * + * @returns A {@link MLAuthz} service object + */ +export const buildMlAuthz = ({ + license, + ml, + request, +}: { + license: ILicense; + ml: SetupPlugins['ml']; + request: KibanaRequest; +}): MlAuthz => { + const cachedValidate = cache(() => validateMlAuthz({ license, ml, request })); + const validateRuleType = async (type: RuleType): Promise => { + if (!isMlRule(type)) { + return { valid: true, message: undefined }; + } else { + return cachedValidate(); + } + }; + + return { validateRuleType }; +}; + +/** + * Validates ML authorization for the current request + * + * @param license A {@link ILicense} representing the user license + * @param ml {@link MlPluginSetup} ML services to fetch ML capabilities + * @param request A {@link KibanaRequest} representing the authenticated user + * + * @returns A {@link Validation} validation + */ +export const validateMlAuthz = async ({ + license, + ml, + request, +}: { + license: ILicense; + ml: SetupPlugins['ml']; + request: KibanaRequest; +}): Promise => { + let message: string | undefined; + + if (ml == null) { + message = i18n.translate('xpack.siem.authz.mlUnavailable', { + defaultMessage: 'The machine learning plugin is not available. Try enabling the plugin.', + }); + } else if (!hasMlLicense(license)) { + message = i18n.translate('xpack.siem.licensing.unsupportedMachineLearningMessage', { + defaultMessage: + 'Your license does not support machine learning. Please upgrade your license.', + }); + } else if (!(await isMlAdmin({ ml, request }))) { + message = i18n.translate('xpack.siem.authz.userIsNotMlAdminMessage', { + defaultMessage: 'The current user is not a machine learning administrator.', + }); + } + + return { + valid: message === undefined, + message, + }; +}; + +/** + * Whether the license allows ML usage + * + * @param license A {@link ILicense} representing the user license + * + */ +export const hasMlLicense = (license: ILicense): boolean => license.hasAtLeast(MINIMUM_ML_LICENSE); + +/** + * Whether the requesting user is an ML Admin + * + * @param request A {@link KibanaRequest} representing the authenticated user + * @param ml {@link MlPluginSetup} ML services to fetch ML capabilities + * + */ +export const isMlAdmin = async ({ + request, + ml, +}: { + request: KibanaRequest; + ml: MlPluginSetup; +}): Promise => { + const scopedMlClient = ml.mlClient.asScoped(request).callAsCurrentUser; + const mlCapabilities = await ml.mlSystemProvider(scopedMlClient, request).mlCapabilities(); + return hasMlAdminPermissions(mlCapabilities); +}; diff --git a/x-pack/plugins/siem/server/lib/machine_learning/cache.test.ts b/x-pack/plugins/siem/server/lib/machine_learning/cache.test.ts new file mode 100644 index 0000000000000..14e4cfe8ebdda --- /dev/null +++ b/x-pack/plugins/siem/server/lib/machine_learning/cache.test.ts @@ -0,0 +1,41 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { cache } from './cache'; + +describe('cache', () => { + it('does not call the function if not invoked', () => { + const fn = jest.fn(); + cache(fn); + + expect(fn).not.toHaveBeenCalled(); + }); + + it('returns the function result', () => { + const fn = jest.fn().mockReturnValue('result'); + const cachedFn = cache(fn); + + expect(cachedFn()).toEqual('result'); + }); + + it('only calls the function once for multiple invocations', () => { + const fn = jest.fn(); + const cachedFn = cache(fn); + + cachedFn(); + cachedFn(); + cachedFn(); + + expect(fn).toHaveBeenCalledTimes(1); + }); + + it('returns the function result on subsequent invocations', () => { + const fn = jest.fn().mockReturnValue('result'); + const cachedFn = cache(fn); + + expect([cachedFn(), cachedFn(), cachedFn()]).toEqual(['result', 'result', 'result']); + }); +}); diff --git a/x-pack/plugins/siem/server/lib/machine_learning/cache.ts b/x-pack/plugins/siem/server/lib/machine_learning/cache.ts new file mode 100644 index 0000000000000..1a7b95f2c5af2 --- /dev/null +++ b/x-pack/plugins/siem/server/lib/machine_learning/cache.ts @@ -0,0 +1,24 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +/** + * Caches the result of a function call + * + * @param fn the function to be invoked + * + * @returns A function that will invoke the given function on its first invocation, + * and then simply return the result on subsequent calls + */ +export const cache = (fn: () => T): (() => T) => { + let result: T | null = null; + + return () => { + if (result === null) { + result = fn(); + } + return result; + }; +}; diff --git a/x-pack/plugins/siem/server/lib/machine_learning/mocks.ts b/x-pack/plugins/siem/server/lib/machine_learning/mocks.ts new file mode 100644 index 0000000000000..f044022d6db69 --- /dev/null +++ b/x-pack/plugins/siem/server/lib/machine_learning/mocks.ts @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { MlPluginSetup } from '../../../../ml/server'; +import { elasticsearchServiceMock } from '../../../../../../src/core/server/mocks'; + +const createMockClient = () => elasticsearchServiceMock.createClusterClient(); +const createMockMlSystemProvider = () => + jest.fn(() => ({ + mlCapabilities: jest.fn(), + })); + +export const mlServicesMock = { + create: () => + (({ + mlSystemProvider: createMockMlSystemProvider(), + mlClient: createMockClient(), + } as unknown) as jest.Mocked), +}; + +const mockValidateRuleType = jest.fn().mockResolvedValue({ valid: true, message: undefined }); +const createBuildMlAuthzMock = () => + jest.fn().mockReturnValue({ validateRuleType: mockValidateRuleType }); + +export const mlAuthzMock = { + create: () => ({ + buildMlAuthz: createBuildMlAuthzMock(), + }), +}; diff --git a/x-pack/plugins/siem/server/lib/machine_learning/validation.test.ts b/x-pack/plugins/siem/server/lib/machine_learning/validation.test.ts new file mode 100644 index 0000000000000..effe59c073c59 --- /dev/null +++ b/x-pack/plugins/siem/server/lib/machine_learning/validation.test.ts @@ -0,0 +1,36 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { toHttpError, throwHttpError } from './validation'; + +describe('toHttpError', () => { + it('returns nothing if validation is valid', () => { + expect(toHttpError({ valid: true, message: undefined })).toBeUndefined(); + }); + + it('returns an HTTP error if validation is invalid', () => { + const error = toHttpError({ valid: false, message: 'validation message' }); + expect(error?.statusCode).toEqual(403); + expect(error?.message).toEqual('validation message'); + }); +}); + +describe('throwHttpError', () => { + it('does nothing if validation is valid', () => { + expect(() => throwHttpError({ valid: true, message: undefined })).not.toThrowError(); + }); + + it('throws an error if validation is invalid', () => { + let error; + try { + throwHttpError({ valid: false, message: 'validation failed' }); + } catch (e) { + error = e; + } + expect(error?.statusCode).toEqual(403); + expect(error?.message).toEqual('validation failed'); + }); +}); diff --git a/x-pack/plugins/siem/server/lib/machine_learning/validation.ts b/x-pack/plugins/siem/server/lib/machine_learning/validation.ts new file mode 100644 index 0000000000000..eab85bbb510be --- /dev/null +++ b/x-pack/plugins/siem/server/lib/machine_learning/validation.ts @@ -0,0 +1,33 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +export interface Validation { + valid: boolean; + message: string | undefined; +} + +export class HttpAuthzError extends Error { + public readonly statusCode: number; + + constructor(message: string | undefined) { + super(message); + this.name = 'HttpAuthzError'; + this.statusCode = 403; + } +} + +export const toHttpError = (validation: Validation): HttpAuthzError | undefined => { + if (!validation.valid) { + return new HttpAuthzError(validation.message); + } +}; + +export const throwHttpError = (validation: Validation): void => { + const error = toHttpError(validation); + if (error) { + throw error; + } +}; diff --git a/x-pack/plugins/siem/server/plugin.ts b/x-pack/plugins/siem/server/plugin.ts index 3ef4b39bd0979..d296ee94e8958 100644 --- a/x-pack/plugins/siem/server/plugin.ts +++ b/x-pack/plugins/siem/server/plugin.ts @@ -98,7 +98,8 @@ export class Plugin implements IPlugin { // Detection Engine Rule routes that have the REST endpoints of /api/detection_engine/rules // All REST rule creation, deletion, updating, etc...... - createRulesRoute(router); + createRulesRoute(router, ml); readRulesRoute(router); - updateRulesRoute(router); - patchRulesRoute(router); + updateRulesRoute(router, ml); + patchRulesRoute(router, ml); deleteRulesRoute(router); findRulesRoute(router); addPrepackedRulesRoute(router); getPrepackagedRulesStatusRoute(router); - createRulesBulkRoute(router); - updateRulesBulkRoute(router); - patchRulesBulkRoute(router); + createRulesBulkRoute(router, ml); + updateRulesBulkRoute(router, ml); + patchRulesBulkRoute(router, ml); deleteRulesBulkRoute(router); createTimelinesRoute(router, config, security); updateTimelinesRoute(router, config, security); - importRulesRoute(router, config); + importRulesRoute(router, config, ml); exportRulesRoute(router, config); importTimelinesRoute(router, config, security); From 7b5c9c04edc6094b4662b375a6917d270b428191 Mon Sep 17 00:00:00 2001 From: spalger Date: Mon, 11 May 2020 12:58:24 -0700 Subject: [PATCH 03/12] skip flaky suite (#65741) --- .../__jest__/client_integration/mapped_fields.test.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/mapped_fields.test.tsx b/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/mapped_fields.test.tsx index 8989e85d9f188..57040eaeefbdf 100644 --- a/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/mapped_fields.test.tsx +++ b/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/mapped_fields.test.tsx @@ -10,7 +10,8 @@ import { componentHelpers, MappingsEditorTestBed, DomFields, nextTick } from './ const { setup } = componentHelpers.mappingsEditor; const onChangeHandler = jest.fn(); -describe('Mappings editor: mapped fields', () => { +// FLAKY: https://github.com/elastic/kibana/issues/65741 +describe.skip('Mappings editor: mapped fields', () => { afterEach(() => { onChangeHandler.mockReset(); }); From 56c46ae1de66530ccc8eeaba61ac67e63e023af6 Mon Sep 17 00:00:00 2001 From: orfeas0 Date: Mon, 11 May 2020 23:20:03 +0300 Subject: [PATCH 04/12] Add example of of local plugin installation (#65986) --- docs/user/plugins.asciidoc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/user/plugins.asciidoc b/docs/user/plugins.asciidoc index 83c1ab1a842bb..a96fe811dc84f 100644 --- a/docs/user/plugins.asciidoc +++ b/docs/user/plugins.asciidoc @@ -33,12 +33,17 @@ $ bin/kibana-plugin install x-pack === Install plugins from an arbitrary URL You can download official Elastic plugins simply by specifying their name. You -can alternatively specify a URL to a specific plugin, as in the following -example: +can alternatively specify a URL or file path to a specific plugin, as in the following +examples: ["source","shell",subs="attributes"] $ bin/kibana-plugin install https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-{version}.zip +or + +["source","shell",subs="attributes"] +$ bin/kibana-plugin install file:///local/path/to/custom_plugin.zip + You can specify URLs that use the HTTP, HTTPS, or `file` protocols. [float] From 20826486784fc2cd154218a773aeef7fafe80fb8 Mon Sep 17 00:00:00 2001 From: Steph Milovic Date: Mon, 11 May 2020 14:27:02 -0600 Subject: [PATCH 05/12] [SIEM] [Cases] Case API tests (#65777) --- .../tests/cases/comments/delete_comment.ts | 76 +++++ .../tests/cases/comments/find_comments.ts | 93 ++++++ .../basic/tests/cases/comments/get_comment.ts | 53 +++ .../tests/cases/comments/patch_comment.ts | 123 +++++++ .../tests/cases/comments/post_comment.ts | 57 ++++ .../basic/tests/cases/delete_cases.ts | 76 +++++ .../basic/tests/cases/find_cases.ts | 158 +++++++++ .../basic/tests/cases/get_case.ts | 52 +++ .../basic/tests/cases/patch_cases.ts | 139 ++++++++ .../basic/tests/cases/post_case.ts | 46 +++ .../basic/tests/cases/push_case.ts | 161 +++++++++ .../tests/cases/reporters/get_reporters.ts | 40 +++ .../basic/tests/cases/status/get_status.ts | 59 ++++ .../basic/tests/cases/tags/get_tags.ts | 43 +++ .../user_actions/get_all_user_actions.ts | 307 ++++++++++++++++++ .../case_api_integration/basic/tests/index.ts | 19 +- .../case_api_integration/common/lib/mock.ts | 50 +++ .../case_api_integration/common/lib/utils.ts | 61 ++-- 18 files changed, 1580 insertions(+), 33 deletions(-) create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/comments/delete_comment.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/comments/find_comments.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/comments/get_comment.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/comments/patch_comment.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/comments/post_comment.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/delete_cases.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/find_cases.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/get_case.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/patch_cases.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/post_case.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/push_case.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/reporters/get_reporters.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/status/get_status.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/tags/get_tags.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/user_actions/get_all_user_actions.ts create mode 100644 x-pack/test/case_api_integration/common/lib/mock.ts diff --git a/x-pack/test/case_api_integration/basic/tests/cases/comments/delete_comment.ts b/x-pack/test/case_api_integration/basic/tests/cases/comments/delete_comment.ts new file mode 100644 index 0000000000000..afae04ae9cf5b --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/comments/delete_comment.ts @@ -0,0 +1,76 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../../plugins/case/common/constants'; +import { postCaseReq, postCommentReq } from '../../../../common/lib/mock'; +import { deleteCases, deleteCasesUserActions, deleteComments } from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('delete_comment', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteCasesUserActions(es); + }); + + it('should delete a comment', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + const { body: comment } = await supertest + .delete(`${CASES_URL}/${postedCase.id}/comments/${patchedCase.comments[0].id}`) + .set('kbn-xsrf', 'true') + .send(); + + expect(comment).to.eql({}); + }); + + it('unhappy path - 404s when comment belongs to different case', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + const { body } = await supertest + .delete(`${CASES_URL}/fake-id/comments/${patchedCase.comments[0].id}`) + .set('kbn-xsrf', 'true') + .send() + .expect(404); + expect(body.message).to.eql( + `This comment ${patchedCase.comments[0].id} does not exist in fake-id).` + ); + }); + + it('unhappy path - 404s when comment is not there', async () => { + await supertest + .delete(`${CASES_URL}/fake-id/comments/fake-id`) + .set('kbn-xsrf', 'true') + .send() + .expect(404); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/comments/find_comments.ts b/x-pack/test/case_api_integration/basic/tests/cases/comments/find_comments.ts new file mode 100644 index 0000000000000..e5c44de90b5a1 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/comments/find_comments.ts @@ -0,0 +1,93 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../../plugins/case/common/constants'; +import { postCaseReq, postCommentReq } from '../../../../common/lib/mock'; +import { deleteCases, deleteCasesUserActions, deleteComments } from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('find_comments', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteCasesUserActions(es); + }); + + it('should find all case comment', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + // post 2 comments + await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + const { body: caseComments } = await supertest + .get(`${CASES_URL}/${postedCase.id}/comments/_find`) + .set('kbn-xsrf', 'true') + .send(); + + expect(caseComments.comments).to.eql(patchedCase.comments); + }); + + it('should filter case comments', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + // post 2 comments + await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send({ comment: 'unique' }); + + const { body: caseComments } = await supertest + .get(`${CASES_URL}/${postedCase.id}/comments/_find?search=unique`) + .set('kbn-xsrf', 'true') + .send(); + + expect(caseComments.comments).to.eql([patchedCase.comments[1]]); + }); + + it('unhappy path - 400s when query is bad', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + await supertest + .get(`${CASES_URL}/${postedCase.id}/comments/_find?perPage=true`) + .set('kbn-xsrf', 'true') + .send() + .expect(400); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/comments/get_comment.ts b/x-pack/test/case_api_integration/basic/tests/cases/comments/get_comment.ts new file mode 100644 index 0000000000000..53da0ef1d2b16 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/comments/get_comment.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; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../../plugins/case/common/constants'; +import { postCaseReq, postCommentReq } from '../../../../common/lib/mock'; +import { deleteCases, deleteCasesUserActions, deleteComments } from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('get_comment', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteCasesUserActions(es); + }); + + it('should get a comment', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + const { body: comment } = await supertest + .get(`${CASES_URL}/${postedCase.id}/comments/${patchedCase.comments[0].id}`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(comment).to.eql(patchedCase.comments[0]); + }); + it('unhappy path - 404s when comment is not there', async () => { + await supertest + .get(`${CASES_URL}/fake-id/comments/fake-comment`) + .set('kbn-xsrf', 'true') + .send() + .expect(404); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/comments/patch_comment.ts b/x-pack/test/case_api_integration/basic/tests/cases/comments/patch_comment.ts new file mode 100644 index 0000000000000..73aeeb0fb989a --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/comments/patch_comment.ts @@ -0,0 +1,123 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../../plugins/case/common/constants'; +import { defaultUser, postCaseReq, postCommentReq } from '../../../../common/lib/mock'; +import { deleteCases, deleteCasesUserActions, deleteComments } from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('patch_comment', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteCasesUserActions(es); + }); + + it('should patch a comment', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + const newComment = 'Well I decided to update my comment. So what? Deal with it.'; + const { body } = await supertest + .patch(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send({ + id: patchedCase.comments[0].id, + version: patchedCase.comments[0].version, + comment: newComment, + }); + expect(body.comments[0].comment).to.eql(newComment); + expect(body.updated_by).to.eql(defaultUser); + }); + + it('unhappy path - 404s when comment is not there', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + await supertest + .patch(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send({ + id: 'id', + version: 'version', + comment: 'comment', + }) + .expect(404); + }); + + it('unhappy path - 404s when case is not there', async () => { + await supertest + .patch(`${CASES_URL}/fake-id/comments`) + .set('kbn-xsrf', 'true') + .send({ + id: 'id', + version: 'version', + comment: 'comment', + }) + .expect(404); + }); + + it('unhappy path - 400s when patch body is bad', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + await supertest + .patch(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send({ + id: patchedCase.comments[0].id, + version: patchedCase.comments[0].version, + comment: true, + }) + .expect(400); + }); + + it('unhappy path - 409s when conflict', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + const newComment = 'Well I decided to update my comment. So what? Deal with it.'; + await supertest + .patch(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send({ + id: patchedCase.comments[0].id, + version: 'version-mismatch', + comment: newComment, + }) + .expect(409); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/comments/post_comment.ts b/x-pack/test/case_api_integration/basic/tests/cases/comments/post_comment.ts new file mode 100644 index 0000000000000..6e8353f8ea86a --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/comments/post_comment.ts @@ -0,0 +1,57 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../../plugins/case/common/constants'; +import { defaultUser, postCaseReq, postCommentReq } from '../../../../common/lib/mock'; +import { deleteCases, deleteCasesUserActions, deleteComments } from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('post_comment', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteCasesUserActions(es); + }); + + it('should post a comment', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + expect(patchedCase.comments[0].comment).to.eql(postCommentReq.comment); + expect(patchedCase.updated_by).to.eql(defaultUser); + }); + + it('unhappy path - 400s when post body is bad', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send({ + bad: 'comment', + }) + .expect(400); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/delete_cases.ts b/x-pack/test/case_api_integration/basic/tests/cases/delete_cases.ts new file mode 100644 index 0000000000000..aa2465e44c5c1 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/delete_cases.ts @@ -0,0 +1,76 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../plugins/case/common/constants'; +import { postCaseReq, postCommentReq } from '../../../common/lib/mock'; +import { deleteCases, deleteCasesUserActions, deleteComments } from '../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('delete_cases', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteCasesUserActions(es); + }); + + it('should delete a case', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + + const { body } = await supertest + .delete(`${CASES_URL}?ids=["${postedCase.id}"]`) + .set('kbn-xsrf', 'true') + .send() + .expect(204); + + expect(body).to.eql({}); + }); + + it(`should delete a case's comments when that case gets deleted`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + await supertest + .get(`${CASES_URL}/${postedCase.id}/comments/${patchedCase.comments[0].id}`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + await supertest + .delete(`${CASES_URL}?ids=["${postedCase.id}"]`) + .set('kbn-xsrf', 'true') + .send() + .expect(204); + await supertest + .get(`${CASES_URL}/${postedCase.id}/comments/${patchedCase.comments[0].id}`) + .set('kbn-xsrf', 'true') + .send() + .expect(404); + }); + it('unhappy path - 404s when case is not there', async () => { + await supertest + .delete(`${CASES_URL}?ids=["fake-id"]`) + .set('kbn-xsrf', 'true') + .send() + .expect(404); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/find_cases.ts b/x-pack/test/case_api_integration/basic/tests/cases/find_cases.ts new file mode 100644 index 0000000000000..04d195ea73509 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/find_cases.ts @@ -0,0 +1,158 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../plugins/case/common/constants'; +import { postCaseReq, postCommentReq, findCasesResp } from '../../../common/lib/mock'; +import { deleteCases, deleteComments, deleteCasesUserActions } from '../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + describe('find_cases', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteCasesUserActions(es); + }); + it('should return empty response', async () => { + const { body } = await supertest + .get(`${CASES_URL}/_find`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body).to.eql(findCasesResp); + }); + + it('should return cases', async () => { + const { body: a } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const { body: b } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const { body: c } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const { body } = await supertest + .get(`${CASES_URL}/_find?sortOrder=asc`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body).to.eql({ + ...findCasesResp, + total: 3, + cases: [a, b, c], + count_open_cases: 3, + }); + }); + + it('filters by tags', async () => { + await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ ...postCaseReq, tags: ['unique'] }); + const { body } = await supertest + .get(`${CASES_URL}/_find?sortOrder=asc&tags=unique`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body).to.eql({ + ...findCasesResp, + total: 1, + cases: [postedCase], + count_open_cases: 1, + }); + }); + + it('correctly counts comments', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + + // post 2 comments + await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + const { body } = await supertest + .get(`${CASES_URL}/_find?sortOrder=asc`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body).to.eql({ + ...findCasesResp, + total: 1, + cases: [ + { + ...patchedCase, + comments: [], + totalComment: 2, + }, + ], + count_open_cases: 1, + }); + }); + + it('correctly counts open/closed', async () => { + await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + status: 'closed', + }, + ], + }) + .expect(200); + const { body } = await supertest + .get(`${CASES_URL}/_find?sortOrder=asc`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body.count_open_cases).to.eql(1); + expect(body.count_closed_cases).to.eql(1); + }); + it('unhappy path - 400s when bad query supplied', async () => { + await supertest + .get(`${CASES_URL}/_find?perPage=true`) + .set('kbn-xsrf', 'true') + .send() + .expect(400); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/get_case.ts b/x-pack/test/case_api_integration/basic/tests/cases/get_case.ts new file mode 100644 index 0000000000000..9aad86126ceaf --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/get_case.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; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../plugins/case/common/constants'; +import { + postCaseReq, + postCaseResp, + removeServerGeneratedPropertiesFromCase, +} from '../../../common/lib/mock'; +import { deleteCases } from '../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('get_case', () => { + afterEach(async () => { + await deleteCases(es); + }); + + it('should return a case', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + const data = removeServerGeneratedPropertiesFromCase(body); + expect(data).to.eql(postCaseResp(postedCase.id)); + }); + it('unhappy path - 404s when case is not there', async () => { + await supertest + .get(`${CASES_URL}/fake-id`) + .set('kbn-xsrf', 'true') + .send() + .expect(404); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/patch_cases.ts b/x-pack/test/case_api_integration/basic/tests/cases/patch_cases.ts new file mode 100644 index 0000000000000..caeaf46cbc953 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/patch_cases.ts @@ -0,0 +1,139 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../plugins/case/common/constants'; +import { + defaultUser, + postCaseReq, + postCaseResp, + removeServerGeneratedPropertiesFromCase, +} from '../../../common/lib/mock'; +import { deleteCases, deleteCasesUserActions } from '../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('patch_cases', () => { + afterEach(async () => { + await deleteCases(es); + await deleteCasesUserActions(es); + }); + + it('should patch a case', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + const { body: patchedCases } = await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + status: 'closed', + }, + ], + }) + .expect(200); + + const data = removeServerGeneratedPropertiesFromCase(patchedCases[0]); + expect(data).to.eql({ + ...postCaseResp(postedCase.id), + closed_by: defaultUser, + status: 'closed', + updated_by: defaultUser, + }); + }); + + it('unhappy path - 404s when case is not there', async () => { + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: 'not-real', + version: 'version', + status: 'closed', + }, + ], + }) + .expect(404); + }); + + it('unhappy path - 406s when excess data sent', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + badKey: 'closed', + }, + ], + }) + .expect(406); + }); + + it('unhappy path - 400s when bad data sent', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + status: true, + }, + ], + }) + .expect(400); + }); + + it('unhappy path - 409s when conflict', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + await supertest + .patch(`${CASES_URL}`) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: 'version', + status: 'closed', + }, + ], + }) + .expect(409); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/post_case.ts b/x-pack/test/case_api_integration/basic/tests/cases/post_case.ts new file mode 100644 index 0000000000000..ab668c2c32725 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/post_case.ts @@ -0,0 +1,46 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../plugins/case/common/constants'; +import { + postCaseReq, + postCaseResp, + removeServerGeneratedPropertiesFromCase, +} from '../../../common/lib/mock'; +import { deleteCases } from '../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('post_case', () => { + afterEach(async () => { + await deleteCases(es); + }); + + it('should post a case', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const data = removeServerGeneratedPropertiesFromCase(postedCase); + expect(data).to.eql(postCaseResp(postedCase.id)); + }); + it('unhappy path - 400s when bad query supplied', async () => { + await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ ...postCaseReq, badKey: true }) + .expect(400); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/push_case.ts b/x-pack/test/case_api_integration/basic/tests/cases/push_case.ts new file mode 100644 index 0000000000000..848b980dee769 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/push_case.ts @@ -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; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../common/ftr_provider_context'; + +import { CASE_CONFIGURE_URL, CASES_URL } from '../../../../../plugins/case/common/constants'; +import { postCaseReq, defaultUser, postCommentReq } from '../../../common/lib/mock'; +import { + deleteCases, + deleteCasesUserActions, + deleteComments, + deleteConfiguration, + getConfiguration, +} from '../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('push_case', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteConfiguration(es); + await deleteCasesUserActions(es); + }); + + it('should push a case', async () => { + const { body: configure } = await supertest + .post(CASE_CONFIGURE_URL) + .set('kbn-xsrf', 'true') + .send(getConfiguration()) + .expect(200); + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body } = await supertest + .post(`${CASES_URL}/${postedCase.id}/_push`) + .set('kbn-xsrf', 'true') + .send({ + connector_id: configure.connector_id, + connector_name: configure.connector_name, + external_id: 'external_id', + external_title: 'external_title', + external_url: 'external_url', + }) + .expect(200); + expect(body.connector_id).to.eql(configure.connector_id); + expect(body.external_service.pushed_by).to.eql(defaultUser); + }); + + it('pushes a comment appropriately', async () => { + const { body: configure } = await supertest + .post(CASE_CONFIGURE_URL) + .set('kbn-xsrf', 'true') + .send(getConfiguration()) + .expect(200); + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + await supertest + .post(`${CASES_URL}/${postedCase.id}/_push`) + .set('kbn-xsrf', 'true') + .send({ + connector_id: configure.connector_id, + connector_name: configure.connector_name, + external_id: 'external_id', + external_title: 'external_title', + external_url: 'external_url', + }) + .expect(200); + + await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + const { body } = await supertest + .post(`${CASES_URL}/${postedCase.id}/_push`) + .set('kbn-xsrf', 'true') + .send({ + connector_id: configure.connector_id, + connector_name: configure.connector_name, + external_id: 'external_id', + external_title: 'external_title', + external_url: 'external_url', + }) + .expect(200); + expect(body.comments[0].pushed_by).to.eql(defaultUser); + }); + it('unhappy path - 404s when case does not exist', async () => { + await supertest + .post(`${CASES_URL}/fake-id/_push`) + .set('kbn-xsrf', 'true') + .send({ + connector_id: 'connector_id', + connector_name: 'connector_name', + external_id: 'external_id', + external_title: 'external_title', + external_url: 'external_url', + }) + .expect(404); + }); + it('unhappy path - 400s when bad data supplied', async () => { + await supertest + .post(`${CASES_URL}/fake-id/_push`) + .set('kbn-xsrf', 'true') + .send({ + badKey: 'connector_id', + }) + .expect(400); + }); + it('unhappy path = 409s when case is closed', async () => { + const { body: configure } = await supertest + .post(CASE_CONFIGURE_URL) + .set('kbn-xsrf', 'true') + .send(getConfiguration()) + .expect(200); + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + status: 'closed', + }, + ], + }) + .expect(200); + await supertest + .post(`${CASES_URL}/${postedCase.id}/_push`) + .set('kbn-xsrf', 'true') + .send({ + connector_id: configure.connector_id, + connector_name: configure.connector_name, + external_id: 'external_id', + external_title: 'external_title', + external_url: 'external_url', + }) + .expect(409); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/reporters/get_reporters.ts b/x-pack/test/case_api_integration/basic/tests/cases/reporters/get_reporters.ts new file mode 100644 index 0000000000000..a781b928b2b68 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/reporters/get_reporters.ts @@ -0,0 +1,40 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASES_URL, CASE_REPORTERS_URL } from '../../../../../../plugins/case/common/constants'; +import { defaultUser, postCaseReq } from '../../../../common/lib/mock'; +import { deleteCases } from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('get_reporters', () => { + afterEach(async () => { + await deleteCases(es); + }); + + it('should return reporters', async () => { + await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body } = await supertest + .get(CASE_REPORTERS_URL) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body).to.eql([defaultUser]); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/status/get_status.ts b/x-pack/test/case_api_integration/basic/tests/cases/status/get_status.ts new file mode 100644 index 0000000000000..6552f588bdc19 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/status/get_status.ts @@ -0,0 +1,59 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASES_URL, CASE_STATUS_URL } from '../../../../../../plugins/case/common/constants'; +import { postCaseReq } from '../../../../common/lib/mock'; +import { deleteCases } from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('get_status', () => { + afterEach(async () => { + await deleteCases(es); + }); + + it('should return case statuses', async () => { + await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + status: 'closed', + }, + ], + }) + .expect(200); + + const { body } = await supertest + .get(CASE_STATUS_URL) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body).to.eql({ + count_open_cases: 1, + count_closed_cases: 1, + }); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/tags/get_tags.ts b/x-pack/test/case_api_integration/basic/tests/cases/tags/get_tags.ts new file mode 100644 index 0000000000000..9b769e3c5eef4 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/tags/get_tags.ts @@ -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; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASES_URL, CASE_TAGS_URL } from '../../../../../../plugins/case/common/constants'; +import { postCaseReq } from '../../../../common/lib/mock'; +import { deleteCases } from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('get_tags', () => { + afterEach(async () => { + await deleteCases(es); + }); + + it('should return case tags', async () => { + await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ ...postCaseReq, tags: ['unique'] }); + + const { body } = await supertest + .get(CASE_TAGS_URL) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body).to.eql(['defacement', 'unique']); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/user_actions/get_all_user_actions.ts b/x-pack/test/case_api_integration/basic/tests/cases/user_actions/get_all_user_actions.ts new file mode 100644 index 0000000000000..6bbd43eef1439 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/user_actions/get_all_user_actions.ts @@ -0,0 +1,307 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASE_CONFIGURE_URL, CASES_URL } from '../../../../../../plugins/case/common/constants'; +import { defaultUser, postCaseReq, postCommentReq } from '../../../../common/lib/mock'; +import { + deleteCases, + deleteCasesUserActions, + deleteComments, + deleteConfiguration, + getConfiguration, +} from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('get_all_user_actions', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteConfiguration(es); + await deleteCasesUserActions(es); + }); + + it(`on new case, user action: 'create' should be called with actionFields: ['description', 'status', 'tags', 'title']`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(1); + + expect(body[0].action_field).to.eql(['description', 'status', 'tags', 'title']); + expect(body[0].action).to.eql('create'); + expect(body[0].old_value).to.eql(null); + expect(body[0].new_value).to.eql(JSON.stringify(postCaseReq)); + }); + + it(`on close case, user action: 'update' should be called with actionFields: ['status']`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + status: 'closed', + }, + ], + }) + .expect(200); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(2); + expect(body[1].action_field).to.eql(['status']); + expect(body[1].action).to.eql('update'); + expect(body[1].old_value).to.eql('open'); + expect(body[1].new_value).to.eql('closed'); + }); + + it(`on update case connector, user action: 'update' should be called with actionFields: ['connector_id']`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const newConnectorId = '12345'; + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + connector_id: newConnectorId, + }, + ], + }) + .expect(200); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(2); + expect(body[1].action_field).to.eql(['connector_id']); + expect(body[1].action).to.eql('update'); + expect(body[1].old_value).to.eql('none'); + expect(body[1].new_value).to.eql(newConnectorId); + }); + + it(`on update tags, user action: 'add' and 'delete' should be called with actionFields: ['tags']`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + tags: ['cool', 'neat'], + }, + ], + }) + .expect(200); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(3); + expect(body[1].action_field).to.eql(['tags']); + expect(body[1].action).to.eql('add'); + expect(body[1].old_value).to.eql(null); + expect(body[1].new_value).to.eql('cool, neat'); + expect(body[2].action_field).to.eql(['tags']); + expect(body[2].action).to.eql('delete'); + expect(body[2].old_value).to.eql(null); + expect(body[2].new_value).to.eql('defacement'); + }); + + it(`on update title, user action: 'update' should be called with actionFields: ['title']`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const newTitle = 'Such a great title'; + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + title: newTitle, + }, + ], + }) + .expect(200); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(2); + expect(body[1].action_field).to.eql(['title']); + expect(body[1].action).to.eql('update'); + expect(body[1].old_value).to.eql(postCaseReq.title); + expect(body[1].new_value).to.eql(newTitle); + }); + + it(`on update description, user action: 'update' should be called with actionFields: ['description']`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const newDesc = 'Such a great description'; + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + description: newDesc, + }, + ], + }) + .expect(200); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(2); + expect(body[1].action_field).to.eql(['description']); + expect(body[1].action).to.eql('update'); + expect(body[1].old_value).to.eql(postCaseReq.description); + expect(body[1].new_value).to.eql(newDesc); + }); + + it(`on new comment, user action: 'create' should be called with actionFields: ['comments']`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(2); + + expect(body[1].action_field).to.eql(['comment']); + expect(body[1].action).to.eql('create'); + expect(body[1].old_value).to.eql(null); + expect(body[1].new_value).to.eql(postCommentReq.comment); + }); + + it(`on update comment, user action: 'update' should be called with actionFields: ['comments']`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + const newComment = 'Well I decided to update my comment. So what? Deal with it.'; + await supertest + .patch(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send({ + id: patchedCase.comments[0].id, + version: patchedCase.comments[0].version, + comment: newComment, + }); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(3); + + expect(body[2].action_field).to.eql(['comment']); + expect(body[2].action).to.eql('update'); + expect(body[2].old_value).to.eql(postCommentReq.comment); + expect(body[2].new_value).to.eql(newComment); + }); + + it(`on new push to service, user action: 'push-to-service' should be called with actionFields: ['pushed']`, async () => { + const { body: configure } = await supertest + .post(CASE_CONFIGURE_URL) + .set('kbn-xsrf', 'true') + .send(getConfiguration()) + .expect(200); + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + + await supertest + .post(`${CASES_URL}/${postedCase.id}/_push`) + .set('kbn-xsrf', 'true') + .send({ + connector_id: configure.connector_id, + connector_name: configure.connector_name, + external_id: 'external_id', + external_title: 'external_title', + external_url: 'external_url', + }) + .expect(200); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(2); + + expect(body[1].action_field).to.eql(['pushed']); + expect(body[1].action).to.eql('push-to-service'); + expect(body[1].old_value).to.eql(null); + const newValue = JSON.parse(body[1].new_value); + expect(newValue.connector_id).to.eql(configure.connector_id); + expect(newValue.pushed_by).to.eql(defaultUser); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/index.ts b/x-pack/test/case_api_integration/basic/tests/index.ts index efd5369c019d8..b152a97a28616 100644 --- a/x-pack/test/case_api_integration/basic/tests/index.ts +++ b/x-pack/test/case_api_integration/basic/tests/index.ts @@ -12,9 +12,24 @@ export default ({ loadTestFile }: FtrProviderContext): void => { // Fastest ciGroup for the moment. this.tags('ciGroup2'); + loadTestFile(require.resolve('./cases/comments/delete_comment')); + loadTestFile(require.resolve('./cases/comments/find_comments')); + loadTestFile(require.resolve('./cases/comments/get_comment')); + loadTestFile(require.resolve('./cases/comments/patch_comment')); + loadTestFile(require.resolve('./cases/comments/post_comment')); + loadTestFile(require.resolve('./cases/delete_cases')); + loadTestFile(require.resolve('./cases/find_cases')); + loadTestFile(require.resolve('./cases/get_case')); + loadTestFile(require.resolve('./cases/patch_cases')); + loadTestFile(require.resolve('./cases/post_case')); + loadTestFile(require.resolve('./cases/push_case')); + loadTestFile(require.resolve('./cases/reporters/get_reporters')); + loadTestFile(require.resolve('./cases/status/get_status')); + loadTestFile(require.resolve('./cases/tags/get_tags')); + loadTestFile(require.resolve('./cases/user_actions/get_all_user_actions')); loadTestFile(require.resolve('./configure/get_configure')); - loadTestFile(require.resolve('./configure/post_configure')); - loadTestFile(require.resolve('./configure/patch_configure')); loadTestFile(require.resolve('./configure/get_connectors')); + loadTestFile(require.resolve('./configure/patch_configure')); + loadTestFile(require.resolve('./configure/post_configure')); }); }; diff --git a/x-pack/test/case_api_integration/common/lib/mock.ts b/x-pack/test/case_api_integration/common/lib/mock.ts new file mode 100644 index 0000000000000..728eaf88617e9 --- /dev/null +++ b/x-pack/test/case_api_integration/common/lib/mock.ts @@ -0,0 +1,50 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { + CasePostRequest, + CaseResponse, + CasesFindResponse, +} from '../../../../plugins/case/common/api'; +export const defaultUser = { email: null, full_name: null, username: 'elastic' }; +export const postCaseReq: CasePostRequest = { + description: 'This is a brand new case of a bad meanie defacing data', + title: 'Super Bad Security Issue', + tags: ['defacement'], +}; + +export const postCommentReq: { comment: string } = { + comment: 'This is a cool comment', +}; + +export const postCaseResp = (id: string): Partial => ({ + ...postCaseReq, + id, + comments: [], + totalComment: 0, + connector_id: 'none', + closed_by: null, + created_by: defaultUser, + external_service: null, + status: 'open', + updated_by: null, +}); + +export const removeServerGeneratedPropertiesFromCase = ( + config: Partial +): Partial => { + const { closed_at, created_at, updated_at, version, ...rest } = config; + return rest; +}; + +export const findCasesResp: CasesFindResponse = { + page: 1, + per_page: 20, + total: 0, + cases: [], + count_open_cases: 0, + count_closed_cases: 0, +}; diff --git a/x-pack/test/case_api_integration/common/lib/utils.ts b/x-pack/test/case_api_integration/common/lib/utils.ts index df768ff09b368..4b1dc6ffa5891 100644 --- a/x-pack/test/case_api_integration/common/lib/utils.ts +++ b/x-pack/test/case_api_integration/common/lib/utils.ts @@ -30,6 +30,36 @@ export const removeServerGeneratedPropertiesFromConfigure = ( return rest; }; +export const deleteCasesUserActions = async (es: Client): Promise => { + await es.deleteByQuery({ + index: '.kibana', + q: 'type:cases-user-actions', + wait_for_completion: true, + refresh: true, + body: {}, + }); +}; + +export const deleteCases = async (es: Client): Promise => { + await es.deleteByQuery({ + index: '.kibana', + q: 'type:cases', + wait_for_completion: true, + refresh: true, + body: {}, + }); +}; + +export const deleteComments = async (es: Client): Promise => { + await es.deleteByQuery({ + index: '.kibana', + q: 'type:cases-comments', + wait_for_completion: true, + refresh: true, + body: {}, + }); +}; + export const deleteConfiguration = async (es: Client): Promise => { await es.deleteByQuery({ index: '.kibana', @@ -39,34 +69,3 @@ export const deleteConfiguration = async (es: Client): Promise => { body: {}, }); }; - -export const getConnector = () => ({ - name: 'ServiceNow Connector', - actionTypeId: '.servicenow', - secrets: { - username: 'admin', - password: 'admin', - }, - config: { - apiUrl: 'localhost', - casesConfiguration: { - mapping: [ - { - source: 'title', - target: 'short_description', - actionType: 'overwrite', - }, - { - source: 'description', - target: 'description', - actionType: 'overwrite', - }, - { - source: 'comments', - target: 'comments', - actionType: 'append', - }, - ], - }, - }, -}); From 0c259102ed23878647c1bf0f5f2d4b5f73b6694b Mon Sep 17 00:00:00 2001 From: Kaarina Tungseth Date: Mon, 11 May 2020 15:42:56 -0500 Subject: [PATCH 06/12] [DOCS] Removed saved object options (#66072) Co-authored-by: Elastic Machine --- docs/canvas/canvas-elements.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/canvas/canvas-elements.asciidoc b/docs/canvas/canvas-elements.asciidoc index a25460a20eb50..4149039a3f87b 100644 --- a/docs/canvas/canvas-elements.asciidoc +++ b/docs/canvas/canvas-elements.asciidoc @@ -31,7 +31,7 @@ By default, most of the elements you create use demo data until you change the d [[canvas-add-object]] ==== Add a saved object -Add a <>, such as a map or Lens visualization, then customize it to fit your display needs. +Add a <>, then customize it to fit your display needs. . Click *Embed object*. From 4506ca1dffd586e5799cf1cac1cec248ab1e0916 Mon Sep 17 00:00:00 2001 From: Justin Kambic Date: Mon, 11 May 2020 17:15:51 -0400 Subject: [PATCH 07/12] Change default cert age limit value. (#65918) * Change default cert age limit value. * Refresh test snapshot. Co-authored-by: Elastic Machine --- x-pack/plugins/uptime/common/constants/settings_defaults.ts | 2 +- .../uptime/server/lib/alerts/__tests__/status_check.test.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/uptime/common/constants/settings_defaults.ts b/x-pack/plugins/uptime/common/constants/settings_defaults.ts index 82575e875577b..b9e99a54b3b11 100644 --- a/x-pack/plugins/uptime/common/constants/settings_defaults.ts +++ b/x-pack/plugins/uptime/common/constants/settings_defaults.ts @@ -8,6 +8,6 @@ import { DynamicSettings } from '../runtime_types'; export const DYNAMIC_SETTINGS_DEFAULTS: DynamicSettings = { heartbeatIndices: 'heartbeat-8*', - certAgeThreshold: 365, + certAgeThreshold: 730, certExpirationThreshold: 30, }; diff --git a/x-pack/plugins/uptime/server/lib/alerts/__tests__/status_check.test.ts b/x-pack/plugins/uptime/server/lib/alerts/__tests__/status_check.test.ts index a89e5ff62319d..73d104c1d21ae 100644 --- a/x-pack/plugins/uptime/server/lib/alerts/__tests__/status_check.test.ts +++ b/x-pack/plugins/uptime/server/lib/alerts/__tests__/status_check.test.ts @@ -87,7 +87,7 @@ describe('status check alert', () => { Object { "callES": [MockFunction], "dynamicSettings": Object { - "certAgeThreshold": 365, + "certAgeThreshold": 730, "certExpirationThreshold": 30, "heartbeatIndices": "heartbeat-8*", }, @@ -132,7 +132,7 @@ describe('status check alert', () => { Object { "callES": [MockFunction], "dynamicSettings": Object { - "certAgeThreshold": 365, + "certAgeThreshold": 730, "certExpirationThreshold": 30, "heartbeatIndices": "heartbeat-8*", }, From 5b6a99a9ac82c267076aac5769aaa94dd8fe302d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Louv-Jansen?= Date: Mon, 11 May 2020 23:17:37 +0200 Subject: [PATCH 08/12] [DOCS] APM Agent config: Setting values must be string (#65875) Co-authored-by: Elastic Machine --- docs/apm/api.asciidoc | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/apm/api.asciidoc b/docs/apm/api.asciidoc index 93733f5990a46..b26c7446b91d1 100644 --- a/docs/apm/api.asciidoc +++ b/docs/apm/api.asciidoc @@ -60,7 +60,7 @@ The following Agent configuration APIs are available: ====== `settings`:: -(required) Key/value object with settings and their corresponding value. +(required) Key/value object with option name and option value. `agent_name`:: (optional) The agent name is used by the UI to determine which settings to display. @@ -73,14 +73,14 @@ The following Agent configuration APIs are available: -------------------------------------------------- PUT /api/apm/settings/agent-configuration { - "service" : { - "name" : "frontend", - "environment" : "production" + "service": { + "name": "frontend", + "environment": "production" }, - "settings" : { - "transaction_sample_rate" : 0.4, - "capture_body" : "off", - "transaction_max_spans" : 500 + "settings": { + "transaction_sample_rate": "0.4", + "capture_body": "off", + "transaction_max_spans": "500" }, "agent_name": "nodejs" } @@ -124,7 +124,7 @@ PUT /api/apm/settings/agent-configuration DELETE /api/apm/settings/agent-configuration { "service" : { - "name" : "frontend", + "name": "frontend", "environment": "production" } } @@ -157,9 +157,9 @@ DELETE /api/apm/settings/agent-configuration "environment": "production" }, "settings": { - "transaction_sample_rate": 1, + "transaction_sample_rate": "1", "capture_body": "off", - "transaction_max_spans": 200 + "transaction_max_spans": "200" }, "@timestamp": 1581934104843, "applied_by_agent": false, @@ -171,9 +171,9 @@ DELETE /api/apm/settings/agent-configuration "name": "opbeans-go" }, "settings": { - "transaction_sample_rate": 1, + "transaction_sample_rate": "1", "capture_body": "off", - "transaction_max_spans": 300 + "transaction_max_spans": "300" }, "@timestamp": 1581934111727, "applied_by_agent": false, @@ -185,7 +185,7 @@ DELETE /api/apm/settings/agent-configuration "name": "frontend" }, "settings": { - "transaction_sample_rate": 1, + "transaction_sample_rate": "1", }, "@timestamp": 1582031336265, "applied_by_agent": false, @@ -250,7 +250,7 @@ GET /api/apm/settings/agent-configuration "name": "frontend" }, "settings": { - "transaction_sample_rate": 1, + "transaction_sample_rate": "1", }, "@timestamp": 1582031336265, "applied_by_agent": false, @@ -266,9 +266,9 @@ GET /api/apm/settings/agent-configuration -------------------------------------------------- POST /api/apm/settings/agent-configuration/search { - "etag" : "1e58c178efeebae15c25c539da740d21dee422fc", + "etag": "1e58c178efeebae15c25c539da740d21dee422fc", "service" : { - "name" : "frontend", + "name": "frontend", "environment": "production" } } From 480c1527c835b7f040e9ae969dc7335e1bf4916a Mon Sep 17 00:00:00 2001 From: gchaps <33642766+gchaps@users.noreply.github.com> Date: Mon, 11 May 2020 14:19:50 -0700 Subject: [PATCH 09/12] [DOCS] Improves formatting in action types (#65932) * [DOCS] Fixes formatting in action types * [DOCS] Updates preconfigured connectors and alerts --- docs/user/alerting/action-types.asciidoc | 6 +- .../user/alerting/action-types/email.asciidoc | 45 +++++--- .../user/alerting/action-types/index.asciidoc | 22 ++-- .../alerting/action-types/pagerduty.asciidoc | 15 +-- .../pre-configured-connectors.asciidoc | 99 ++++++++---------- .../user/alerting/action-types/slack.asciidoc | 8 +- .../alerting/action-types/webhook.asciidoc | 43 +++++--- ...ert-pre-configured-connectors-dropdown.png | Bin 92273 -> 76704 bytes .../alert-pre-configured-slack-connector.png | Bin 146428 -> 62511 bytes ...pre-configured-action-type-select-type.png | Bin 104497 -> 84001 bytes .../pre-configured-connectors-view-screen.png | Bin 94078 -> 49182 bytes 11 files changed, 140 insertions(+), 98 deletions(-) rename docs/user/alerting/{ => action-types}/pre-configured-connectors.asciidoc (55%) diff --git a/docs/user/alerting/action-types.asciidoc b/docs/user/alerting/action-types.asciidoc index 09878b3059ac8..e8dcf689df8e4 100644 --- a/docs/user/alerting/action-types.asciidoc +++ b/docs/user/alerting/action-types.asciidoc @@ -41,9 +41,9 @@ see https://www.elastic.co/subscriptions[the subscription page]. [float] [[create-connectors]] -=== Preconfigured connectors and action types +=== Preconfigured actions and connectors -For out-of-the-box and standardized connectors, you can <> +For out-of-the-box and standardized connectors, you can <> before {kib} starts. If you preconfigure a connector, you can also <>. @@ -54,4 +54,4 @@ include::action-types/pagerduty.asciidoc[] include::action-types/server-log.asciidoc[] include::action-types/slack.asciidoc[] include::action-types/webhook.asciidoc[] -include::pre-configured-connectors.asciidoc[] +include::action-types/pre-configured-connectors.asciidoc[] diff --git a/docs/user/alerting/action-types/email.asciidoc b/docs/user/alerting/action-types/email.asciidoc index 81b4e210961f6..4fb8a816d1ec9 100644 --- a/docs/user/alerting/action-types/email.asciidoc +++ b/docs/user/alerting/action-types/email.asciidoc @@ -28,27 +28,46 @@ Password:: password for 'login' type authentication. name: preconfigured-email-action-type actionTypeId: .email config: - from: testsender@test.com <1.1> - host: validhostname <1.2> - port: 8080 <1.3> - secure: false <1.4> + from: testsender@test.com + host: validhostname + port: 8080 + secure: false secrets: - user: testuser <2.1> - password: passwordkeystorevalue <2.2> + user: testuser + password: passwordkeystorevalue -- `config` defines the action type specific to the configuration and contains the following properties: -<1.1> `from:` is an email address and correspond to *Sender*. -<1.2> `host:` is a string and correspond to *Host*. -<1.3> `port:` is a number and correspond to *Port*. -<1.4> `secure:` is a boolean and correspond to *Secure*. +[cols="2*<"] +|=== -`secrets` defines action type sensitive configuration: +| `from` +| An email address that corresponds to *Sender*. -<2.1> `user:` is a string and correspond to *User*. -<2.2> `password:` is a string and correspond to *Password*. Should be stored in the <>. +| `host` +| A string that corresponds to *Host*. +| `port` +| A number that corresponds to *Port*. + +| `secure` +| A boolean that corresponds to *Secure*. + +|=== + +`secrets` defines sensitive information for the action type: + +[cols="2*<"] +|=== + +| `user` +| A string that corresponds to *User*. + +| `password` +| A string that corresponds to *Password*. Should be stored in the <>. + +|=== [[email-action-configuration]] ==== Action configuration diff --git a/docs/user/alerting/action-types/index.asciidoc b/docs/user/alerting/action-types/index.asciidoc index c71412210c535..115423086bae3 100644 --- a/docs/user/alerting/action-types/index.asciidoc +++ b/docs/user/alerting/action-types/index.asciidoc @@ -25,16 +25,26 @@ Execution time field:: This field will be automatically set to the time the ale name: action-type-index actionTypeId: .index config: - index: .kibana <1> - refresh: true <2> - executionTimeField: somedate <3> + index: .kibana + refresh: true + executionTimeField: somedate -- `config` defines the action type specific to the configuration and contains the following properties: -<1> `index:` is a string and correspond to *Index*. -<2> `refresh:` is a boolean and correspond to *Refresh*. -<3> `executionTimeField:` is a string and correspond to *Execution time field*. +[cols="2*<"] +|=== + +|`index` +| A string that corresponds to *Index*. + +|`refresh` +| A boolean that corresponds to *Refresh*. + +|`executionTimeField` +| A string that corresponds to *Execution time field*. + +|=== [float] diff --git a/docs/user/alerting/action-types/pagerduty.asciidoc b/docs/user/alerting/action-types/pagerduty.asciidoc index cd51ec2e3301e..0468ab042e57e 100644 --- a/docs/user/alerting/action-types/pagerduty.asciidoc +++ b/docs/user/alerting/action-types/pagerduty.asciidoc @@ -145,18 +145,19 @@ Integration Key:: A 32 character PagerDuty Integration Key for an integration name: preconfigured-pagerduty-action-type actionTypeId: .pagerduty config: - apiUrl: https://test.host <1.1> + apiUrl: https://test.host secrets: - routingKey: testroutingkey <2.1> + routingKey: testroutingkey -- -`config` defines the action type specific to the configuration and contains the following properties: +`config` defines the action type specific to the configuration. +`config` contains +`apiURL`, a string that corresponds to *API URL*. -<1.1> `apiUrl:` is URL string and correspond to *API URL*. +`secrets` defines sensitive information for the action type. +`secrets` contains +`routingKey`, a string that corresponds to *Integration Key*. -`secrets` defines action type sensitive configuration: - -<2.1> `routingKey:` is a string and correspond to *Integration Key*. [float] [[pagerduty-action-configuration]] diff --git a/docs/user/alerting/pre-configured-connectors.asciidoc b/docs/user/alerting/action-types/pre-configured-connectors.asciidoc similarity index 55% rename from docs/user/alerting/pre-configured-connectors.asciidoc rename to docs/user/alerting/action-types/pre-configured-connectors.asciidoc index d5c20d1853d42..b3e401256f27b 100644 --- a/docs/user/alerting/pre-configured-connectors.asciidoc +++ b/docs/user/alerting/action-types/pre-configured-connectors.asciidoc @@ -1,9 +1,9 @@ [role="xpack"] [[pre-configured-action-types-and-connectors]] -== Preconfigured connectors and action types +=== Preconfigured connectors and action types -You can preconfigure an action type or a connector to have all the information it needs prior to startup +You can preconfigure a connector or action type to have all the information it needs prior to startup by adding it to the `kibana.yml` file. Preconfigured connectors offer the following capabilities: @@ -13,15 +13,15 @@ action are predefined, including the connector name and ID. - Appear in all spaces because they are not saved objects. - Cannot be edited or deleted. -Sensitive configuration information, such as credentials, can use the <>. - -A preconfigured action types has only preconfigured connectors. Preconfigured connectors can belong to either the preconfigured action type or to the regular action type. +A preconfigured action type has only preconfigured connectors. Preconfigured +connectors can belong to either the preconfigured action type or to the regular action type. [float] [[preconfigured-connector-example]] -=== Creating a preconfigured connector +==== Preconfigured connectors -The following example shows a valid configuration of two out-of-the box connectors: <> and <>. +This example shows a valid configuration for +two out-of-the box connectors: <> and <>. ```js xpack.actions.preconfigured: @@ -44,7 +44,7 @@ The following example shows a valid configuration of two out-of-the box connecto password: changeme ``` -<1> the key is the action connector identifier, eg `my-slack1` in this example. +<1> The key is the action connector identifier, `my-slack1` in this example. <2> `actionTypeId` is the action type identifier. <3> `name` is the name of the preconfigured connector. <4> `config` is the action type specific to the configuration. @@ -55,74 +55,67 @@ The following example shows a valid configuration of two out-of-the box connecto Sensitive properties, such as passwords, can also be stored in the <>. ============================================== -[float] -[[preconfigured-action-type-example]] -=== Creating a preconfigured action type - -In the `kibana.yml` file: - -. Exclude the action type from `xpack.actions.enabledActionTypes`. -. Add all its preconfigured connectors. - -The following example shows a valid configuration of preconfigured action type with one out-of-the box connector. - -```js - xpack.actions.enabledActionTypes: ['.slack', '.email', '.index'] <1> - xpack.actions.preconfigured: <2> - my-server-log: - actionTypeId: .server-log - name: 'Server log #xyz' -``` - -<1> `enabledActionTypes` should exclude preconfigured action type to prevent creating and deleting connectors. -<2> `preconfigured` is the setting for defining the list of available connectors for the preconfigured action type. - +//// [float] [[managing-pre-configured-connectors]] -=== Managing preconfigured connectors +==== View preconfigured connectors +//// -Preconfigured connectors appear in the connector list, regardless of which space the user is in. -They are tagged as “preconfigured” and cannot be deleted. +In *Management > Alerts and Actions*, preconfigured connectors +appear in the <>, +regardless of which space you are in. +They are tagged as “preconfigured”, and you cannot delete them. [role="screenshot"] image::images/pre-configured-connectors-managing.png[Connectors managing tab with pre-cofigured] -Clicking on a preconfigured connector shows the description, but not any of the configuration. +Clicking a preconfigured connector shows the description, but not the configuration. A message indicates that this is a preconfigured connector. [role="screenshot"] image::images/pre-configured-connectors-view-screen.png[Pre-configured connector view details] -The connector details preview is disabled for preconfigured connectors. +The connector details preview is disabled for preconfigured connectors +of a preconfigured action type. [role="screenshot"] image::images/pre-configured-action-type-managing.png[Connectors managing tab with pre-cofigured] - [float] -[[managing-pre-configured-action-types]] -=== Managing preconfigured action types +[[preconfigured-action-type-example]] +==== Preconfigured action type -Clicking *Create connector* shows the list of available action types. -Disabled action types are not included. +This example shows a preconfigured action type with one out-of-the box connector. -[role="screenshot"] -image::images/pre-configured-action-type-select-type.png[Pre-configured connector create menu] +```js + xpack.actions.enabledActionTypes: ['.slack', '.email', '.index'] <1> + xpack.actions.preconfigured: <2> + my-server-log: + actionTypeId: .server-log + name: 'Server log #xyz' +``` -[float] -[[pre-configured-connector-alert-form]] -=== Alert with a preconfigured connector +<1> `enabledActionTypes` excludes the preconfigured action type to prevent creating and deleting connectors. +<2> `preconfigured` is the setting for defining the list of available connectors for the preconfigured action type. -When attaching an action to an alert, -select from a list of available action types, and -then select the Slack or Webhook type. Those action types were configured previously. -The preconfigured connector is installed and is automatically selected. +[[managing-pre-configured-action-types]] +To attach a preconfigured action to an alert: -[role="screenshot"] -image::images/alert-pre-configured-slack-connector.png[Create alert with selected Slack action type] +. In *Management > Alerts and Actions*, open the *Connectors* tab. -The dropdown is populated with additional preconfigured Slack connectors. -The `preconfigured` label distinguishes them from space-aware connectors that use saved objects. +. Click *Create connector.* +. In the list of available action types, select the preconfigured action type you want. ++ +[role="screenshot"] +image::images/pre-configured-action-type-select-type.png[Pre-configured connector create menu] + +. In *Create alert*, open the connector dropdown, and then select the preconfigured +connector. ++ +The `preconfigured` label distinguishes it from a space-aware connector. ++ [role="screenshot"] image::images/alert-pre-configured-connectors-dropdown.png[Dropdown list with pre-cofigured connectors] + +. Click *Add action*. diff --git a/docs/user/alerting/action-types/slack.asciidoc b/docs/user/alerting/action-types/slack.asciidoc index afa616ba77b3a..5bad8a53f898c 100644 --- a/docs/user/alerting/action-types/slack.asciidoc +++ b/docs/user/alerting/action-types/slack.asciidoc @@ -23,12 +23,12 @@ Webhook URL:: The URL of the incoming webhook. See https://api.slack.com/messa name: preconfigured-slack-action-type actionTypeId: .slack config: - webhookUrl: 'https://hooks.slack.com/services/abcd/efgh/ijklmnopqrstuvwxyz' <1> + webhookUrl: 'https://hooks.slack.com/services/abcd/efgh/ijklmnopqrstuvwxyz' -- -`config` defines the action type specific to the configuration and contains the following properties: - -<1> `webhookUrl:` is URL string and correspond to *Webhook URL*. +`config` defines the action type specific to the configuration. +`config` contains +`webhookUrl`, a string that corresponds to *Webhook URL*. [float] diff --git a/docs/user/alerting/action-types/webhook.asciidoc b/docs/user/alerting/action-types/webhook.asciidoc index 27609652288b5..c91c24430e982 100644 --- a/docs/user/alerting/action-types/webhook.asciidoc +++ b/docs/user/alerting/action-types/webhook.asciidoc @@ -19,7 +19,7 @@ Password:: An optional password. If set, HTTP basic authentication is used. Cur [float] [[Preconfigured-webhook-configuration]] -==== Preconfigured action type +==== Preconfigured action type [source,text] -- @@ -27,25 +27,44 @@ Password:: An optional password. If set, HTTP basic authentication is used. Cur name: preconfigured-webhook-action-type actionTypeId: .webhook config: - url: https://test.host <1.1> - method: POST <1.2> - headers: <1.3> + url: https://test.host + method: POST + headers: testheader: testvalue secrets: - user: testuser <2.1> - password: passwordkeystorevalue <2.2> + user: testuser + password: passwordkeystorevalue -- `config` defines the action type specific to the configuration and contains the following properties: -<1.1> `url:` is URL string and correspond to *URL*. -<1.2> `method:` is a string and correspond to *Method*. -<1.3> `headers:` is Record and correspond to *Headers*. +[cols="2*<"] +|=== -`secrets` defines action type sensitive configuration: +|`url` +| A URL string that corresponds to *URL*. + +|`method` +| A string that corresponds to *Method*. + +|`headers` +|A record that corresponds to *Headers*. + +|=== + +`secrets` defines sensitive information for the action type: + +[cols="2*<"] +|=== + +|`user` +|A string that corresponds to *User*. + +|`password` +|A string that corresponds to *Password*. Should be stored in the <>. + +|=== -<2.1> `user:` is a string and correspond to *User*. -<2.2> `password:` is a string and correspond to *Password*. Should be stored in the <>. [float] [[webhook-action-configuration]] diff --git a/docs/user/alerting/images/alert-pre-configured-connectors-dropdown.png b/docs/user/alerting/images/alert-pre-configured-connectors-dropdown.png index 4e6c713298626f4f733e9e685815af168a95f77d..081688758eb484771277149e4a93fc5f65c8ecac 100644 GIT binary patch literal 76704 zcmeFYWm6?VyDW;kySok!gS*?{4DRkS46tx_cXt@v2Y1)O-F@LK+~M%b?dpi?Xkyl>RD-QBMTqw zcZG+lHA)4dNDY+|4lc?N5An7!Wn|`pSaY^ z)3={L@1VqZNx`Ua_I?Ls=OJGEf`LrB)l*@?W(iNLOOIqz00M(B?CE5Ks?<~J`zF+i zn)?VT3SvaCdpTh7)&jYVm|zz)WtNAx9OQ8iOyT;}5cN=C#O#CM-snnT&QOEmzg%b; z*#1JIoNQm4eFSm%_$Q4_5cQtwsEeVXPn7U>T7O#df3zGN(Y=_i^oe4QQS2pi4s>sh z=Mt38uxF`5R$G|>cSp~5gx3m>53omC<5 z@eJjOMr6|?w+i5i%gVpjr%MhSw&kfbPue$maSn|hSbAEzHLGZqdrgWwmuL?COqChE z0Q%|D$;oH{qg8H)WM|QA#V3<3N2Dw4S+m5@Y1_A@{)DR?IYQRgDr1mT9gWafjP~z+ ze`wJ2@atL;OGqcI?o06~42DCVRuoc7=|LY<5QFEh&y%JjC0sO&62Zf$s3GoPOs29q z9a<~#=yN96UY^U=iV;-AJ_=^I*Feh}zuo8T28fX8#oPD_=w#w%Y+b zR3V5d%u6eoca%k<4n?C3H{$JM~HT%Ge2@4L|tn#L~E!-wXfx zEDF79uc8>#n27E z7??5|sdrf+uR^b@E7HPrL+7s=gseP{u))5Uj#4{JLiQLG9@@7y`NmK0UhQ)6`@Jf6 z0uzU>C(fTkn@@pe3hS_b1vJ58=1l!oAg<+5<4^-e_bI)QSI+%o@e{IN;8Q{KH!0X> za(8#P`1WrVkl^Mg5tz*~ca9G+*c~NUcFwfs=*=RZo(DPDx0wLPWHwgVrC#u*eHeiN zQaFeLBdl<6crxf8!TLCT_l%HgeMqdh$^PthNL4T?MvyB=%|ZG`ELKoqz0OVqdSGdN zu1>f$xhNor-$CyAxT0tnV$yiwY$gFK6jR}ZdofUC1u|F|VZ~(DGBgyTSffa0B&wlR zBHt1eWSDLUf1&ZlW{a=IuaAlsV|v7Ri?Jn#669Ny5%VG4ORZW_W%?_MaLm$Mk?TY= zi!#g*{H9&=Cy{2!U!HZlgI)^)|AA;~lA4Zq6yscn$A~@AYqr8zg~c#pQ|DQQ|1qUm z?^cEQ8jk4r3AG0it$-H-*m# zE)T{K<27d31>42)&fd2D%>qQPNO}J_Cr^+Wrm{>F zrVkyYJWP<2v6bbQm6p|%AudKWV`_k2jUkd!q?R9*Jot5ka)W+@eZ%pKMKaAq{<>sP z87kR2xg?n>*z?F3CN(uRB{gmdkEwo%s2ZVK zP{*=~#Kx!iWIo%9Xbq4V*c{v(;}-3f^$@C9x;`6pTz)6;g5k;Z4)qTH9>gW?RmP>M zn=h!_A=e@L8u=hk92r}UqH9^GSfJQ8C6pu2r{9jH LtmK~Rka8)ynbj`niPW|0 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

?woHd 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 literal 92273 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 E2e9M;vj6}9 literal 146428 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

Snh{Ng41B}KT>M=1! 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 diff --git a/docs/user/alerting/images/pre-configured-action-type-select-type.png b/docs/user/alerting/images/pre-configured-action-type-select-type.png index 29e5a29edc7c0608d06386e1c95bc14899f8c044..91ca831840ce92396f9f411fde108c06593c063a 100644 GIT binary patch literal 84001 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 diff --git a/docs/user/alerting/images/pre-configured-connectors-view-screen.png b/docs/user/alerting/images/pre-configured-connectors-view-screen.png index 43ac44e7536d8f8686054ef1e1d5d92c8e5624e3..9c75f86498bebe37f9263462e2c1b20273409f5a 100644 GIT binary patch delta 46399 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 From 0802ccc262688e5dea904e6cc82d2f48d034b437 Mon Sep 17 00:00:00 2001 From: Nathan L Smith Date: Mon, 11 May 2020 18:26:50 -0500 Subject: [PATCH 10/12] Fix major severity service map ring colors (#66124) Using `||` in the switch statement made it so "major" did not work, and we would get the border width but not the color. Change to splitting case statements. Fixes #66081 --- .../apm/public/components/app/ServiceMap/cytoscapeOptions.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/apm/public/components/app/ServiceMap/cytoscapeOptions.ts b/x-pack/plugins/apm/public/components/app/ServiceMap/cytoscapeOptions.ts index 0cdc7c4eb124d..d3c4654de8164 100644 --- a/x-pack/plugins/apm/public/components/app/ServiceMap/cytoscapeOptions.ts +++ b/x-pack/plugins/apm/public/components/app/ServiceMap/cytoscapeOptions.ts @@ -17,7 +17,8 @@ export const getSeverityColor = (nodeSeverity: string) => { switch (nodeSeverity) { case severity.warning: return theme.euiColorVis0; - case severity.minor || severity.major: + case severity.minor: + case severity.major: return theme.euiColorVis5; case severity.critical: return theme.euiColorVis9; From 6d95b68c7247e8fd6c904fc484824e534186bec0 Mon Sep 17 00:00:00 2001 From: Phillip Burch Date: Mon, 11 May 2020 19:08:02 -0500 Subject: [PATCH 11/12] Cleanup prefill and edit flow. (#66105) --- .../components/expression.tsx | 90 ++++++++++--------- .../infra/server/lib/alerting/common/utils.ts | 5 ++ 2 files changed, 53 insertions(+), 42 deletions(-) diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression.tsx b/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression.tsx index 406f9c7602d35..8fdba86f233d4 100644 --- a/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression.tsx +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression.tsx @@ -74,6 +74,7 @@ export const Expressions: React.FC = props => { fetch: alertsContext.http.fetch, toastWarning: alertsContext.toastNotifications.addWarning, }); + const [timeSize, setTimeSize] = useState(1); const [timeUnit, setTimeUnit] = useState('m'); const derivedIndexPattern = useMemo(() => createDerivedIndexPattern('metrics'), [ @@ -173,52 +174,57 @@ export const Expressions: React.FC = props => { [alertParams.criteria, setAlertParams] ); - useEffect(() => { + const preFillAlertCriteria = useCallback(() => { const md = alertsContext.metadata; - if (md) { - if (md.currentOptions?.metrics) { - setAlertParams( - 'criteria', - md.currentOptions.metrics.map(metric => ({ - metric: metric.field, - comparator: Comparator.GT, - threshold: [], - timeSize, - timeUnit, - aggType: metric.aggregation, - })) - ); - } else { - setAlertParams('criteria', [defaultExpression]); - } + if (md && md.currentOptions?.metrics) { + setAlertParams( + 'criteria', + md.currentOptions.metrics.map(metric => ({ + metric: metric.field, + comparator: Comparator.GT, + threshold: [], + timeSize, + timeUnit, + aggType: metric.aggregation, + })) + ); + } else { + setAlertParams('criteria', [defaultExpression]); + } + }, [alertsContext.metadata, setAlertParams, timeSize, timeUnit]); - if (md.currentOptions) { - if (md.currentOptions.filterQuery) { - setAlertParams('filterQueryText', md.currentOptions.filterQuery); - setAlertParams( - 'filterQuery', - convertKueryToElasticSearchQuery(md.currentOptions.filterQuery, derivedIndexPattern) || - '' - ); - } else if (md.currentOptions.groupBy && md.series) { - const filter = `${md.currentOptions.groupBy}: "${md.series.id}"`; - setAlertParams('filterQueryText', filter); - setAlertParams( - 'filterQuery', - convertKueryToElasticSearchQuery(filter, derivedIndexPattern) || '' - ); - } + const preFillAlertFilter = useCallback(() => { + const md = alertsContext.metadata; + if (md && md.currentOptions?.filterQuery) { + setAlertParams('filterQueryText', md.currentOptions.filterQuery); + setAlertParams( + 'filterQuery', + convertKueryToElasticSearchQuery(md.currentOptions.filterQuery, derivedIndexPattern) || '' + ); + } else if (md && md.currentOptions?.groupBy && md.series) { + const filter = `${md.currentOptions?.groupBy}: "${md.series.id}"`; + setAlertParams('filterQueryText', filter); + setAlertParams( + 'filterQuery', + convertKueryToElasticSearchQuery(filter, derivedIndexPattern) || '' + ); + } + }, [alertsContext.metadata, derivedIndexPattern, setAlertParams]); - setAlertParams('groupBy', md.currentOptions.groupBy); - } - setAlertParams('sourceId', source?.id); + useEffect(() => { + if (alertParams.criteria && alertParams.criteria.length) { + setTimeSize(alertParams.criteria[0].timeSize); + setTimeUnit(alertParams.criteria[0].timeUnit); } else { - if (!alertParams.criteria) { - setAlertParams('criteria', [defaultExpression]); - } - if (!alertParams.sourceId) { - setAlertParams('sourceId', source?.id || 'default'); - } + preFillAlertCriteria(); + } + + if (!alertParams.filterQuery) { + preFillAlertFilter(); + } + + if (!alertParams.sourceId) { + setAlertParams('sourceId', source?.id || 'default'); } }, [alertsContext.metadata, defaultExpression, source]); // eslint-disable-line react-hooks/exhaustive-deps diff --git a/x-pack/plugins/infra/server/lib/alerting/common/utils.ts b/x-pack/plugins/infra/server/lib/alerting/common/utils.ts index a2c5b27c38fd6..5ca65b667ae11 100644 --- a/x-pack/plugins/infra/server/lib/alerting/common/utils.ts +++ b/x-pack/plugins/infra/server/lib/alerting/common/utils.ts @@ -13,6 +13,11 @@ export const oneOfLiterals = (arrayOfLiterals: Readonly) => }); export const validateIsStringElasticsearchJSONFilter = (value: string) => { + if (value === '') { + // Allow clearing the filter. + return; + } + const errorMessage = 'filterQuery must be a valid Elasticsearch filter expressed in JSON'; try { const parsedValue = JSON.parse(value); From b5f5284b5c54c3a9861baa56b3429fe2e95443f1 Mon Sep 17 00:00:00 2001 From: spalger Date: Mon, 11 May 2020 17:11:37 -0700 Subject: [PATCH 12/12] skip flaky suite (#59849) --- .../__jest__/client_integration/template_clone.test.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/index_management/__jest__/client_integration/template_clone.test.tsx b/x-pack/plugins/index_management/__jest__/client_integration/template_clone.test.tsx index 17e19bf881dee..fa9d13d1ddd07 100644 --- a/x-pack/plugins/index_management/__jest__/client_integration/template_clone.test.tsx +++ b/x-pack/plugins/index_management/__jest__/client_integration/template_clone.test.tsx @@ -42,7 +42,8 @@ jest.mock('@elastic/eui', () => ({ ), })); -describe('', () => { +// FLAKY: https://github.com/elastic/kibana/issues/59849 +describe.skip('', () => { let testBed: TemplateFormTestBed; const { server, httpRequestsMockHelpers } = setupEnvironment();