From a7744f4122dd9075b18a1b9cf2fd7c72760225b8 Mon Sep 17 00:00:00 2001 From: Juan Pablo Djeredjian Date: Fri, 10 Nov 2023 09:42:18 +0100 Subject: [PATCH] [Security Solution] Migrate Prebuilt rules API integration tests to `security_solution_api_integration` folder (#169951) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Addresses partially: https://github.com/elastic/kibana/issues/151902 ## Summary - Migrates Prebuilt rules-related API integration tests to `security_solution_api_integration` folder. - Moves tests from `x-pack/test/detection_engine_api_integration/security_and_spaces` into `x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license`. - PR moves following folders: - `/prebuilt_rules` - `/bundled_prebuilt_rules_package` - `/large_prebuilt_rules_package` - `/update_prebuilt_rules_package` - Duplicates or completely moves needed utils into: - `x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules`, depending if they are no longer used in the original folder or they still are in the remaining test (should be moved shortly as well) - All tests run on both **ESS** and **Serverless** ## Flaky test runner - [ ] [`/prebuilt_rules`](https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3888) 🟢 - [ ] [`/bundled_prebuilt_rules_package`](https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3916)🟢 - [ ] [`/large_prebuilt_rules_package`](https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3917)🟢 - [ ] [`/update_prebuilt_rules_package`](https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3920)🟢 [Link to all for PR](https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds?branch=refs%2Fpull%2F169951%2Fhead) ### For maintainers - [ ] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> --- .buildkite/ftr_configs.yml | 17 ++++---- .github/CODEOWNERS | 1 + .../utils/index.ts | 6 --- ...get_prebuilt_rules_and_timelines_status.ts | 31 -------------- .../config/serverless/config.base.ts | 12 +++++- .../package.json | 22 +++++++++- .../configs/ess.config.ts} | 16 ++++---- .../configs/serverless.config.ts | 29 +++++++++++++ .../security_detection_engine-99.0.0.zip | Bin ...ecurity_detection_engine-99.0.1-beta.1.zip | Bin .../bundled_prebuilt_rules_package/index.ts | 15 +++++++ .../install_latest_bundled_prebuilt_rules.ts | 16 ++++---- .../prerelease_packages.ts | 38 +++++++++++++----- .../configs/ess.config.ts} | 16 +++++--- .../configs/serverless.config.ts | 37 +++++++++++++++++ .../security_detection_engine-100.0.0.zip | Bin .../large_prebuilt_rules_package/index.ts | 14 +++++++ .../install_large_prebuilt_rules_package.ts | 14 ++++--- .../management/configs/ess.config.ts} | 10 +++-- .../management/configs/serverless.config.ts | 15 +++++++ .../management}/fleet_integration.ts | 17 ++++---- .../management}/get_prebuilt_rules_status.ts | 27 ++++++------- .../get_prebuilt_timelines_status.ts | 7 ++-- .../prebuilt_rules/management}/index.ts | 5 +-- .../install_and_upgrade_prebuilt_rules.ts | 28 ++++++------- .../configs/ess.config.ts} | 10 +++-- .../configs/serverless.config.ts | 16 ++++++++ .../update_prebuilt_rules_package/index.ts | 14 +++++++ .../update_prebuilt_rules_package.ts | 16 ++++---- .../delete_all_prebuilt_rule_assets.ts | 23 +++++++++++ .../prebuilt_rules/delete_all_timelines.ts | 23 +++++++++++ .../delete_prebuilt_rules_fleet_package.ts | 7 ++-- .../prebuilt_rules/get_installed_rules.ts | 0 .../get_prebuilt_rules_fleet_package.ts | 23 +++++++++++ .../get_prebuilt_rules_status.ts | 1 + .../utils/rules/prebuilt_rules/index.ts | 12 ++++++ .../install_fleet_package_by_url.ts | 5 ++- .../prebuilt_rules/install_prebuilt_rules.ts | 1 + .../install_prebuilt_rules_fleet_package.ts | 0 .../review_install_prebuilt_rules.ts | 1 + .../review_upgrade_prebuilt_rules.ts | 1 + .../prebuilt_rules/upgrade_prebuilt_rules.ts | 1 + .../tsconfig.json | 4 +- 43 files changed, 401 insertions(+), 150 deletions(-) delete mode 100644 x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/get_prebuilt_rules_and_timelines_status.ts rename x-pack/test/{detection_engine_api_integration/security_and_spaces/bundled_prebuilt_rules_package/config.ts => security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/configs/ess.config.ts} (78%) create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/configs/serverless.config.ts rename x-pack/test/{detection_engine_api_integration/security_and_spaces => security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules}/bundled_prebuilt_rules_package/fleet_bundled_packages/fixtures/security_detection_engine-99.0.0.zip (100%) rename x-pack/test/{detection_engine_api_integration/security_and_spaces => security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules}/bundled_prebuilt_rules_package/fleet_bundled_packages/fixtures/security_detection_engine-99.0.1-beta.1.zip (100%) create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/index.ts rename x-pack/test/{detection_engine_api_integration/security_and_spaces => security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules}/bundled_prebuilt_rules_package/install_latest_bundled_prebuilt_rules.ts (86%) rename x-pack/test/{detection_engine_api_integration/security_and_spaces => security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules}/bundled_prebuilt_rules_package/prerelease_packages.ts (70%) rename x-pack/test/{detection_engine_api_integration/security_and_spaces/large_prebuilt_rules_package/config.ts => security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/configs/ess.config.ts} (80%) create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/configs/serverless.config.ts rename x-pack/test/{detection_engine_api_integration/security_and_spaces => security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules}/large_prebuilt_rules_package/fleet_bundled_packages/fixtures/security_detection_engine-100.0.0.zip (100%) create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/index.ts rename x-pack/test/{detection_engine_api_integration/security_and_spaces => security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules}/large_prebuilt_rules_package/install_large_prebuilt_rules_package.ts (78%) rename x-pack/test/{detection_engine_api_integration/security_and_spaces/update_prebuilt_rules_package/config.ts => security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/configs/ess.config.ts} (61%) create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/configs/serverless.config.ts rename x-pack/test/{detection_engine_api_integration/security_and_spaces/prebuilt_rules => security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management}/fleet_integration.ts (79%) rename x-pack/test/{detection_engine_api_integration/security_and_spaces/prebuilt_rules => security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management}/get_prebuilt_rules_status.ts (96%) rename x-pack/test/{detection_engine_api_integration/security_and_spaces/prebuilt_rules => security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management}/get_prebuilt_timelines_status.ts (88%) rename x-pack/test/{detection_engine_api_integration/security_and_spaces/prebuilt_rules => security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management}/index.ts (73%) rename x-pack/test/{detection_engine_api_integration/security_and_spaces/prebuilt_rules => security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management}/install_and_upgrade_prebuilt_rules.ts (95%) rename x-pack/test/{detection_engine_api_integration/security_and_spaces/prebuilt_rules/config.ts => security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/update_prebuilt_rules_package/configs/ess.config.ts} (60%) create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/update_prebuilt_rules_package/configs/serverless.config.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/update_prebuilt_rules_package/index.ts rename x-pack/test/{detection_engine_api_integration/security_and_spaces => security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules}/update_prebuilt_rules_package/update_prebuilt_rules_package.ts (93%) create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/delete_all_prebuilt_rule_assets.ts create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/delete_all_timelines.ts rename x-pack/test/{detection_engine_api_integration/utils => security_solution_api_integration/test_suites/detections_response/utils/rules}/prebuilt_rules/delete_prebuilt_rules_fleet_package.ts (84%) rename x-pack/test/{detection_engine_api_integration/utils => security_solution_api_integration/test_suites/detections_response/utils/rules}/prebuilt_rules/get_installed_rules.ts (100%) create mode 100644 x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/get_prebuilt_rules_fleet_package.ts rename x-pack/test/{detection_engine_api_integration/utils => security_solution_api_integration/test_suites/detections_response/utils/rules}/prebuilt_rules/get_prebuilt_rules_status.ts (95%) rename x-pack/test/{detection_engine_api_integration/utils => security_solution_api_integration/test_suites/detections_response/utils/rules}/prebuilt_rules/install_fleet_package_by_url.ts (93%) rename x-pack/test/{detection_engine_api_integration/utils => security_solution_api_integration/test_suites/detections_response/utils/rules}/prebuilt_rules/install_prebuilt_rules.ts (98%) rename x-pack/test/{detection_engine_api_integration/utils => security_solution_api_integration/test_suites/detections_response/utils/rules}/prebuilt_rules/install_prebuilt_rules_fleet_package.ts (100%) rename x-pack/test/{detection_engine_api_integration/utils => security_solution_api_integration/test_suites/detections_response/utils/rules}/prebuilt_rules/review_install_prebuilt_rules.ts (95%) rename x-pack/test/{detection_engine_api_integration/utils => security_solution_api_integration/test_suites/detections_response/utils/rules}/prebuilt_rules/review_upgrade_prebuilt_rules.ts (94%) rename x-pack/test/{detection_engine_api_integration/utils => security_solution_api_integration/test_suites/detections_response/utils/rules}/prebuilt_rules/upgrade_prebuilt_rules.ts (98%) diff --git a/.buildkite/ftr_configs.yml b/.buildkite/ftr_configs.yml index c817c9f8442e57a..95588c63f7489ec 100644 --- a/.buildkite/ftr_configs.yml +++ b/.buildkite/ftr_configs.yml @@ -228,10 +228,6 @@ enabled: - x-pack/test/detection_engine_api_integration/security_and_spaces/group5/config.ts - x-pack/test/detection_engine_api_integration/security_and_spaces/group10/config.ts - x-pack/test/detection_engine_api_integration/security_and_spaces/rule_execution_logic/config.ts - - x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/config.ts - - x-pack/test/detection_engine_api_integration/security_and_spaces/bundled_prebuilt_rules_package/config.ts - - x-pack/test/detection_engine_api_integration/security_and_spaces/large_prebuilt_rules_package/config.ts - - x-pack/test/detection_engine_api_integration/security_and_spaces/update_prebuilt_rules_package/config.ts - x-pack/test/disable_ems/config.ts - x-pack/test/encrypted_saved_objects_api_integration/config.ts - x-pack/test/examples/config.ts @@ -467,8 +463,11 @@ enabled: - x-pack/test/security_solution_api_integration/test_suites/entity_analytics/default_license/risk_engine/configs/serverless.config.ts - x-pack/test/security_solution_api_integration/test_suites/entity_analytics/default_license/risk_engine/configs/ess.config.ts - - - - - + - x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/configs/serverless.config.ts + - x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/configs/ess.config.ts + - x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/configs/serverless.config.ts + - x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/configs/ess.config.ts + - x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/configs/serverless.config.ts + - x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/configs/ess.config.ts + - x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/update_prebuilt_rules_package/configs/serverless.config.ts + - x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/update_prebuilt_rules_package/configs/ess.config.ts diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b60e8c5effe4557..19b62559fa3c08e 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1299,6 +1299,7 @@ x-pack/plugins/cloud_integrations/cloud_full_story/server/config.ts @elastic/kib /x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_details @elastic/security-detection-rule-management /x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/prebuilt_rules @elastic/security-detection-rule-management /x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/rule_management @elastic/security-detection-rule-management +/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules @elastic/security-detection-rule-management /x-pack/plugins/security_solution/public/common/components/health_truncate_text @elastic/security-detection-rule-management /x-pack/plugins/security_solution/public/common/components/links_to_docs @elastic/security-detection-rule-management diff --git a/x-pack/test/detection_engine_api_integration/utils/index.ts b/x-pack/test/detection_engine_api_integration/utils/index.ts index 432923baefb1d2d..1c62f3dc2c1230c 100644 --- a/x-pack/test/detection_engine_api_integration/utils/index.ts +++ b/x-pack/test/detection_engine_api_integration/utils/index.ts @@ -93,12 +93,6 @@ export * from './wait_for_rule_status'; export * from './wait_for_signals_to_be_present'; export * from './prebuilt_rules/create_prebuilt_rule_saved_objects'; export * from './prebuilt_rules/delete_all_prebuilt_rule_assets'; -export * from './prebuilt_rules/delete_prebuilt_rules_fleet_package'; -export * from './prebuilt_rules/get_prebuilt_rules_status'; -export * from './prebuilt_rules/get_prebuilt_rules_and_timelines_status'; -export * from './prebuilt_rules/install_prebuilt_rules_fleet_package'; -export * from './prebuilt_rules/install_prebuilt_rules'; -export * from './prebuilt_rules/upgrade_prebuilt_rules'; export * from './prebuilt_rules/install_mock_prebuilt_rules'; export * from './prebuilt_rules/install_prebuilt_rules_and_timelines'; export * from './get_legacy_action_so'; diff --git a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/get_prebuilt_rules_and_timelines_status.ts b/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/get_prebuilt_rules_and_timelines_status.ts deleted file mode 100644 index 2d03e597dc5aff6..000000000000000 --- a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/get_prebuilt_rules_and_timelines_status.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { - GetPrebuiltRulesAndTimelinesStatusResponse, - PREBUILT_RULES_STATUS_URL, -} from '@kbn/security-solution-plugin/common/api/detection_engine/prebuilt_rules'; -import type SuperTest from 'supertest'; - -/** - * (LEGACY) - * Helper to retrieve the prebuilt rules status - * - * @param supertest The supertest deps - */ -export const getPrebuiltRulesAndTimelinesStatus = async ( - supertest: SuperTest.SuperTest -): Promise => { - const response = await supertest - .get(PREBUILT_RULES_STATUS_URL) - .set('kbn-xsrf', 'true') - .set('elastic-api-version', '2023-10-31') - .send() - .expect(200); - - return response.body; -}; diff --git a/x-pack/test/security_solution_api_integration/config/serverless/config.base.ts b/x-pack/test/security_solution_api_integration/config/serverless/config.base.ts index 6790c39c8511511..6238282722cfc7e 100644 --- a/x-pack/test/security_solution_api_integration/config/serverless/config.base.ts +++ b/x-pack/test/security_solution_api_integration/config/serverless/config.base.ts @@ -8,6 +8,8 @@ import { FtrConfigProviderContext } from '@kbn/test'; export interface CreateTestConfigOptions { testFiles: string[]; junit: { reportName: string }; + kbnTestServerArgs?: string[]; + kbnTestServerEnv?: Record; } export function createTestConfig(options: CreateTestConfigOptions) { @@ -20,7 +22,15 @@ export function createTestConfig(options: CreateTestConfigOptions) { ...svlSharedConfig.getAll(), kbnTestServer: { ...svlSharedConfig.get('kbnTestServer'), - serverArgs: [...svlSharedConfig.get('kbnTestServer.serverArgs'), '--serverless=security'], + serverArgs: [ + ...svlSharedConfig.get('kbnTestServer.serverArgs'), + '--serverless=security', + ...(options.kbnTestServerArgs || []), + ], + env: { + ...svlSharedConfig.get('kbnTestServer.env'), + ...options.kbnTestServerEnv, + }, }, testFiles: options.testFiles, junit: options.junit, diff --git a/x-pack/test/security_solution_api_integration/package.json b/x-pack/test/security_solution_api_integration/package.json index a2bbd939fade28b..89f6e0f164f8eda 100644 --- a/x-pack/test/security_solution_api_integration/package.json +++ b/x-pack/test/security_solution_api_integration/package.json @@ -48,6 +48,26 @@ "entity_analytics:runner:serverless": "npm run run-tests:ea:default risk_engine serverless serverlessEnv", "entity_analytics:qa:serverless": "npm run run-tests:ea:default risk_engine serverless qaEnv", "entity_analytics:server:ess": "npm run initialize-server:ea:default risk_engine ess", - "entity_analytics:runner:ess": "npm run run-tests:ea:default risk_engine ess essEnv" + "entity_analytics:runner:ess": "npm run run-tests:ea:default risk_engine ess essEnv", + "prebuilt_rules_management:server:serverless": "npm run initialize-server:dr:default prebuilt_rules/management serverless", + "prebuilt_rules_management:runner:serverless": "npm run run-tests:dr:default prebuilt_rules/management serverless serverlessEnv", + "prebuilt_rules_management:qa:serverless": "npm run run-tests:dr:default prebuilt_rules/management serverless qaEnv", + "prebuilt_rules_management:server:ess": "npm run initialize-server:dr:default prebuilt_rules/management ess", + "prebuilt_rules_management:runner:ess": "npm run run-tests:dr:default prebuilt_rules/management ess essEnv", + "prebuilt_rules_bundled_prebuilt_rules_package:server:serverless": "npm run initialize-server:dr:default prebuilt_rules/bundled_prebuilt_rules_package serverless", + "prebuilt_rules_bundled_prebuilt_rules_package:runner:serverless": "npm run run-tests:dr:default prebuilt_rules/bundled_prebuilt_rules_package serverless serverlessEnv", + "prebuilt_rules_bundled_prebuilt_rules_package:qa:serverless": "npm run run-tests:dr:default prebuilt_rules/bundled_prebuilt_rules_package serverless qaEnv", + "prebuilt_rules_bundled_prebuilt_rules_package:server:ess": "npm run initialize-server:dr:default prebuilt_rules/bundled_prebuilt_rules_package ess", + "prebuilt_rules_bundled_prebuilt_rules_package:runner:ess": "npm run run-tests:dr:default prebuilt_rules/bundled_prebuilt_rules_package ess essEnv", + "prebuilt_rules_large_prebuilt_rules_package:server:serverless": "npm run initialize-server:dr:default prebuilt_rules/large_prebuilt_rules_package serverless", + "prebuilt_rules_large_prebuilt_rules_package:runner:serverless": "npm run run-tests:dr:default prebuilt_rules/large_prebuilt_rules_package serverless serverlessEnv", + "prebuilt_rules_large_prebuilt_rules_package:qa:serverless": "npm run run-tests:dr:default prebuilt_rules/large_prebuilt_rules_package serverless qaEnv", + "prebuilt_rules_large_prebuilt_rules_package:server:ess": "npm run initialize-server:dr:default prebuilt_rules/large_prebuilt_rules_package ess", + "prebuilt_rules_large_prebuilt_rules_package:runner:ess": "npm run run-tests:dr:default prebuilt_rules/large_prebuilt_rules_package ess essEnv", + "prebuilt_rules_update_prebuilt_rules_package:server:serverless": "npm run initialize-server:dr:default prebuilt_rules/update_prebuilt_rules_package serverless", + "prebuilt_rules_update_prebuilt_rules_package:runner:serverless": "npm run run-tests:dr:default prebuilt_rules/update_prebuilt_rules_package serverless serverlessEnv", + "prebuilt_rules_update_prebuilt_rules_package:qa:serverless": "npm run run-tests:dr:default prebuilt_rules/update_prebuilt_rules_package serverless qaEnv", + "prebuilt_rules_update_prebuilt_rules_package:server:ess": "npm run initialize-server:dr:default prebuilt_rules/update_prebuilt_rules_package ess", + "prebuilt_rules_update_prebuilt_rules_package:runner:ess": "npm run run-tests:dr:default prebuilt_rules/update_prebuilt_rules_package ess essEnvs" } } diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/bundled_prebuilt_rules_package/config.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/configs/ess.config.ts similarity index 78% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/bundled_prebuilt_rules_package/config.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/configs/ess.config.ts index 28f71daa1f0f4c9..87c0b1b3c43d87c 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/bundled_prebuilt_rules_package/config.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/configs/ess.config.ts @@ -4,24 +4,26 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ + import { FtrConfigProviderContext } from '@kbn/test'; import path from 'path'; export const BUNDLED_PACKAGE_DIR = path.join( path.dirname(__filename), - './fleet_bundled_packages/fixtures' + './../fleet_bundled_packages/fixtures' ); -// eslint-disable-next-line import/no-default-export export default async function ({ readConfigFile }: FtrConfigProviderContext) { - const functionalConfig = await readConfigFile(require.resolve('../config.base.ts')); + const functionalConfig = await readConfigFile( + require.resolve('../../../../../../config/ess/config.base.trial') + ); return { ...functionalConfig.getAll(), - testFiles: [ - require.resolve('./prerelease_packages.ts'), - require.resolve('./install_latest_bundled_prebuilt_rules.ts'), - ], + testFiles: [require.resolve('..')], + junit: { + reportName: 'Detection Engine ESS / Bundled Prebuilt Rules Package API Integration Tests', + }, kbnTestServer: { ...functionalConfig.get('kbnTestServer'), serverArgs: [ diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/configs/serverless.config.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/configs/serverless.config.ts new file mode 100644 index 000000000000000..db6e8e11082e0da --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/configs/serverless.config.ts @@ -0,0 +1,29 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import path from 'path'; +import { createTestConfig } from '../../../../../../config/serverless/config.base'; + +export const BUNDLED_PACKAGE_DIR = path.join( + path.dirname(__filename), + './../fleet_bundled_packages/fixtures' +); +export default createTestConfig({ + testFiles: [require.resolve('..')], + junit: { + reportName: + 'Detection Engine Serverless / Bundled Prebuilte Rules Package API Integration Tests', + }, + kbnTestServerArgs: [ + /* Tests in this directory simulate an air-gapped environment in which the instance doesn't have access to EPR. + * To do that, we point the Fleet url to an invalid URL, and instruct Fleet to fetch bundled packages at the + * location defined in BUNDLED_PACKAGE_DIR. + */ + `--xpack.fleet.registryUrl=http://invalidURL:8080`, + `--xpack.fleet.developer.bundledPackageLocation=${BUNDLED_PACKAGE_DIR}`, + ], +}); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/bundled_prebuilt_rules_package/fleet_bundled_packages/fixtures/security_detection_engine-99.0.0.zip b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/fleet_bundled_packages/fixtures/security_detection_engine-99.0.0.zip similarity index 100% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/bundled_prebuilt_rules_package/fleet_bundled_packages/fixtures/security_detection_engine-99.0.0.zip rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/fleet_bundled_packages/fixtures/security_detection_engine-99.0.0.zip diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/bundled_prebuilt_rules_package/fleet_bundled_packages/fixtures/security_detection_engine-99.0.1-beta.1.zip b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/fleet_bundled_packages/fixtures/security_detection_engine-99.0.1-beta.1.zip similarity index 100% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/bundled_prebuilt_rules_package/fleet_bundled_packages/fixtures/security_detection_engine-99.0.1-beta.1.zip rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/fleet_bundled_packages/fixtures/security_detection_engine-99.0.1-beta.1.zip diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/index.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/index.ts new file mode 100644 index 000000000000000..6d1e677426b3296 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/index.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrProviderContext } from '../../../../../ftr_provider_context'; + +export default ({ loadTestFile }: FtrProviderContext): void => { + describe('Detection Engine API - Bundled Prebuilt Rules Package', function () { + loadTestFile(require.resolve('./install_latest_bundled_prebuilt_rules')); + loadTestFile(require.resolve('./prerelease_packages')); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/bundled_prebuilt_rules_package/install_latest_bundled_prebuilt_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/install_latest_bundled_prebuilt_rules.ts similarity index 86% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/bundled_prebuilt_rules_package/install_latest_bundled_prebuilt_rules.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/install_latest_bundled_prebuilt_rules.ts index d9f710ba6afcf13..bd306b0d65654fc 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/bundled_prebuilt_rules_package/install_latest_bundled_prebuilt_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/install_latest_bundled_prebuilt_rules.ts @@ -6,18 +6,18 @@ */ import fs from 'fs/promises'; import path from 'path'; -// @ts-expect-error we have to check types with "allowJs: false" for now, causing this import to fail import { REPO_ROOT } from '@kbn/repo-info'; import JSON5 from 'json5'; import expect from 'expect'; import { PackageSpecManifest } from '@kbn/fleet-plugin/common'; import { ALL_SAVED_OBJECT_INDICES } from '@kbn/core-saved-objects-server'; -import { FtrProviderContext } from '../../common/ftr_provider_context'; -import { deleteAllPrebuiltRuleAssets, deleteAllRules } from '../../utils'; -import { getPrebuiltRulesStatus } from '../../utils/prebuilt_rules/get_prebuilt_rules_status'; -import { installPrebuiltRulesPackageByVersion } from '../../utils/prebuilt_rules/install_fleet_package_by_url'; - -// eslint-disable-next-line import/no-default-export +import { FtrProviderContext } from '../../../../../ftr_provider_context'; +import { + deleteAllRules, + deleteAllPrebuiltRuleAssets, + getPrebuiltRulesStatus, + installPrebuiltRulesPackageByVersion, +} from '../../../utils'; export default ({ getService }: FtrProviderContext): void => { const es = getService('es'); const supertest = getService('supertest'); @@ -28,7 +28,7 @@ export default ({ getService }: FtrProviderContext): void => { /* attempt to install it from the local file system. The API response from EPM provides /* us with the information of whether the package was installed from the registry or /* from a package that was bundled with Kibana */ - describe('install_bundled_prebuilt_rules', () => { + describe('@ess @serverless @skipInQA install_bundled_prebuilt_rules', () => { beforeEach(async () => { await deleteAllRules(supertest, log); await deleteAllPrebuiltRuleAssets(es); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/bundled_prebuilt_rules_package/prerelease_packages.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/prerelease_packages.ts similarity index 70% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/bundled_prebuilt_rules_package/prerelease_packages.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/prerelease_packages.ts index 7348b596d1404eb..448e325892a5fdf 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/bundled_prebuilt_rules_package/prerelease_packages.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/bundled_prebuilt_rules_package/prerelease_packages.ts @@ -5,14 +5,19 @@ * 2.0. */ import expect from 'expect'; -import { FtrProviderContext } from '../../common/ftr_provider_context'; -import { deleteAllPrebuiltRuleAssets, deleteAllRules } from '../../utils'; -import { getInstalledRules } from '../../utils/prebuilt_rules/get_installed_rules'; -import { getPrebuiltRulesStatus } from '../../utils/prebuilt_rules/get_prebuilt_rules_status'; -import { installPrebuiltRulesPackageViaFleetAPI } from '../../utils/prebuilt_rules/install_fleet_package_by_url'; -import { installPrebuiltRules } from '../../utils/prebuilt_rules/install_prebuilt_rules'; -// eslint-disable-next-line import/no-default-export +import { FtrProviderContext } from '../../../../../ftr_provider_context'; +import { + deleteAllPrebuiltRuleAssets, + deleteAllRules, + deletePrebuiltRulesFleetPackage, + getInstalledRules, + getPrebuiltRulesFleetPackage, + getPrebuiltRulesStatus, + installPrebuiltRules, + installPrebuiltRulesPackageViaFleetAPI, +} from '../../../utils'; + export default ({ getService }: FtrProviderContext): void => { const es = getService('es'); const supertest = getService('supertest'); @@ -25,10 +30,11 @@ export default ({ getService }: FtrProviderContext): void => { /* (We use high mock version numbers to prevent clashes with real packages downloaded in other tests.) /* To do assertions on which packages have been installed, 99.0.0 has a single rule to install, /* while 99.0.1-beta.1 has 2 rules to install. Also, both packages have the version as part of the rule names. */ - describe('prerelease_packages', () => { + describe('@ess @serverless @skipInQA prerelease_packages', () => { beforeEach(async () => { await deleteAllRules(supertest, log); await deleteAllPrebuiltRuleAssets(es); + await deletePrebuiltRulesFleetPackage(supertest); }); it('should install latest stable version and ignore prerelease packages', async () => { @@ -38,13 +44,27 @@ export default ({ getService }: FtrProviderContext): void => { expect(statusBeforePackageInstallation.stats.num_prebuilt_rules_to_install).toBe(0); expect(statusBeforePackageInstallation.stats.num_prebuilt_rules_to_upgrade).toBe(0); - await installPrebuiltRulesPackageViaFleetAPI(es, supertest); + // Install package without specifying version to check if latest stable version is installed + const fleetPackageInstallationResponse = await installPrebuiltRulesPackageViaFleetAPI( + es, + supertest + ); + + expect(fleetPackageInstallationResponse.items.length).toBe(1); + expect(fleetPackageInstallationResponse.items[0].id).toBe('rule_99.0.0'); // Name of the rule in package 99.0.0 + + // Get the installed package and check if the version is 99.0.0 + const prebuiltRulesFleetPackage = await getPrebuiltRulesFleetPackage(supertest); + expect(prebuiltRulesFleetPackage.body.item.version).toBe('99.0.0'); + expect(prebuiltRulesFleetPackage.status).toBe(200); + // Get status of our prebuilt rules (nothing should be instaled yet) const statusAfterPackageInstallation = await getPrebuiltRulesStatus(supertest); expect(statusAfterPackageInstallation.stats.num_prebuilt_rules_installed).toBe(0); expect(statusAfterPackageInstallation.stats.num_prebuilt_rules_to_install).toBe(1); // 1 rule in package 99.0.0 expect(statusAfterPackageInstallation.stats.num_prebuilt_rules_to_upgrade).toBe(0); + // Install prebuilt rules await installPrebuiltRules(es, supertest); // Verify that status is updated after package installation diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/large_prebuilt_rules_package/config.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/configs/ess.config.ts similarity index 80% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/large_prebuilt_rules_package/config.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/configs/ess.config.ts index cba748857259395..9b056de5b825243 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/large_prebuilt_rules_package/config.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/configs/ess.config.ts @@ -4,21 +4,27 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ + import { FtrConfigProviderContext } from '@kbn/test'; import path from 'path'; export const BUNDLED_PACKAGE_DIR = path.join( path.dirname(__filename), - './fleet_bundled_packages/fixtures' + './../fleet_bundled_packages/fixtures' ); -// eslint-disable-next-line import/no-default-export export default async function ({ readConfigFile }: FtrConfigProviderContext) { - const functionalConfig = await readConfigFile(require.resolve('../config.base.ts')); + const functionalConfig = await readConfigFile( + require.resolve('../../../../../../config/ess/config.base.trial') + ); return { ...functionalConfig.getAll(), - testFiles: [require.resolve('./install_large_prebuilt_rules_package.ts')], + testFiles: [require.resolve('..')], + junit: { + reportName: + 'Detection Engine ESS / Large Prebuilt Rules Package Installation API Integration Tests', + }, kbnTestServer: { ...functionalConfig.get('kbnTestServer'), serverArgs: [ @@ -36,7 +42,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { /* Limit the heap memory to the lowest amount with which Kibana doesn't crash with an out of memory error * when installing the large package. */ - NODE_OPTIONS: '--max-old-space-size=700', + NODE_OPTIONS: '--max-old-space-size=800', }, }, }; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/configs/serverless.config.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/configs/serverless.config.ts new file mode 100644 index 000000000000000..29b6ec1c4cc6cba --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/configs/serverless.config.ts @@ -0,0 +1,37 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import path from 'path'; +import { createTestConfig } from '../../../../../../config/serverless/config.base'; + +export const BUNDLED_PACKAGE_DIR = path.join( + path.dirname(__filename), + './../fleet_bundled_packages/fixtures' +); +export default createTestConfig({ + testFiles: [require.resolve('..')], + junit: { + reportName: + 'Detection Engine Serverless / Large Prebuilt Rules Package Installation API Integration Tests', + }, + kbnTestServerArgs: [ + /* Tests in this directory simulate an air-gapped environment in which the instance doesn't have access to EPR. + * To do that, we point the Fleet url to an invalid URL, and instruct Fleet to fetch bundled packages at the + * location defined in BUNDLED_PACKAGE_DIR. + * Since we want to test the installation of a large package, we created a specific package `security_detection_engine-100.0.0` + * which contains 15000 rules assets and 750 unique rules, and attempt to install it. + */ + `--xpack.fleet.registryUrl=http://invalidURL:8080`, + `--xpack.fleet.developer.bundledPackageLocation=${BUNDLED_PACKAGE_DIR}`, + ], + kbnTestServerEnv: { + /* Limit the heap memory to the lowest amount with which Kibana doesn't crash with an out of memory error + * when installing the large package. + */ + NODE_OPTIONS: '--max-old-space-size=800', + }, +}); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/large_prebuilt_rules_package/fleet_bundled_packages/fixtures/security_detection_engine-100.0.0.zip b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/fleet_bundled_packages/fixtures/security_detection_engine-100.0.0.zip similarity index 100% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/large_prebuilt_rules_package/fleet_bundled_packages/fixtures/security_detection_engine-100.0.0.zip rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/fleet_bundled_packages/fixtures/security_detection_engine-100.0.0.zip diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/index.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/index.ts new file mode 100644 index 000000000000000..74959124978aed8 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/index.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrProviderContext } from '../../../../../ftr_provider_context'; + +export default ({ loadTestFile }: FtrProviderContext): void => { + describe('Detection Engine API - Large Prebuilt Rules Package', function () { + loadTestFile(require.resolve('./install_large_prebuilt_rules_package')); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/large_prebuilt_rules_package/install_large_prebuilt_rules_package.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/install_large_prebuilt_rules_package.ts similarity index 78% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/large_prebuilt_rules_package/install_large_prebuilt_rules_package.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/install_large_prebuilt_rules_package.ts index c047413bdb90abf..e059cab5ae64b20 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/large_prebuilt_rules_package/install_large_prebuilt_rules_package.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/large_prebuilt_rules_package/install_large_prebuilt_rules_package.ts @@ -5,18 +5,20 @@ * 2.0. */ import expect from 'expect'; -import { FtrProviderContext } from '../../common/ftr_provider_context'; -import { deleteAllRules, getPrebuiltRulesAndTimelinesStatus } from '../../utils'; -import { deleteAllPrebuiltRuleAssets } from '../../utils/prebuilt_rules/delete_all_prebuilt_rule_assets'; -import { installPrebuiltRulesAndTimelines } from '../../utils/prebuilt_rules/install_prebuilt_rules_and_timelines'; +import { FtrProviderContext } from '../../../../../ftr_provider_context'; +import { + deleteAllPrebuiltRuleAssets, + deleteAllRules, + getPrebuiltRulesAndTimelinesStatus, + installPrebuiltRulesAndTimelines, +} from '../../../utils'; -// eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext): void => { const es = getService('es'); const supertest = getService('supertest'); const log = getService('log'); - describe('install_large_prebuilt_rules_package', () => { + describe('@ess @serverless @skipInQA install_large_prebuilt_rules_package', () => { beforeEach(async () => { await deleteAllRules(supertest, log); await deleteAllPrebuiltRuleAssets(es); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/update_prebuilt_rules_package/config.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/configs/ess.config.ts similarity index 61% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/update_prebuilt_rules_package/config.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/configs/ess.config.ts index 63e43d962a52e78..7fec27a5d9276f2 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/update_prebuilt_rules_package/config.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/configs/ess.config.ts @@ -7,12 +7,16 @@ import { FtrConfigProviderContext } from '@kbn/test'; -// eslint-disable-next-line import/no-default-export export default async function ({ readConfigFile }: FtrConfigProviderContext) { - const functionalConfig = await readConfigFile(require.resolve('../config.base.ts')); + const functionalConfig = await readConfigFile( + require.resolve('../../../../../../config/ess/config.base.trial') + ); return { ...functionalConfig.getAll(), - testFiles: [require.resolve('./update_prebuilt_rules_package.ts')], + testFiles: [require.resolve('..')], + junit: { + reportName: 'Detection Engine ESS / Prebuilt Rules Management API Integration Tests', + }, }; } diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/configs/serverless.config.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/configs/serverless.config.ts new file mode 100644 index 000000000000000..89916d26e7a7367 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/configs/serverless.config.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { createTestConfig } from '../../../../../../config/serverless/config.base'; + +export default createTestConfig({ + testFiles: [require.resolve('..')], + junit: { + reportName: 'Detection Engine Serverless / Prebuilt Rules Management API Integration Tests', + }, +}); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/fleet_integration.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/fleet_integration.ts similarity index 79% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/fleet_integration.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/fleet_integration.ts index 1433cb7cac2fff2..0eff0a25c2cb822 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/fleet_integration.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/fleet_integration.ts @@ -5,24 +5,23 @@ * 2.0. */ import expect from 'expect'; -import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { FtrProviderContext } from '../../../../../ftr_provider_context'; import { deleteAllRules, - deleteAllTimelines, getPrebuiltRulesAndTimelinesStatus, -} from '../../utils'; -import { deleteAllPrebuiltRuleAssets } from '../../utils/prebuilt_rules/delete_all_prebuilt_rule_assets'; -import { installPrebuiltRulesFleetPackage } from '../../utils/prebuilt_rules/install_prebuilt_rules_fleet_package'; -import { installPrebuiltRulesAndTimelines } from '../../utils/prebuilt_rules/install_prebuilt_rules_and_timelines'; -import { deletePrebuiltRulesFleetPackage } from '../../utils/prebuilt_rules/delete_prebuilt_rules_fleet_package'; + installPrebuiltRulesAndTimelines, +} from '../../../utils'; +import { deleteAllPrebuiltRuleAssets } from '../../../utils/rules/prebuilt_rules/delete_all_prebuilt_rule_assets'; +import { deleteAllTimelines } from '../../../utils/rules/prebuilt_rules/delete_all_timelines'; +import { deletePrebuiltRulesFleetPackage } from '../../../utils/rules/prebuilt_rules/delete_prebuilt_rules_fleet_package'; +import { installPrebuiltRulesFleetPackage } from '../../../utils/rules/prebuilt_rules/install_prebuilt_rules_fleet_package'; -// eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext): void => { const es = getService('es'); const supertest = getService('supertest'); const log = getService('log'); - describe('install_prebuilt_rules_from_real_package', () => { + describe('@ess @serverless @skipInQA install_prebuilt_rules_from_real_package', () => { beforeEach(async () => { await deletePrebuiltRulesFleetPackage(supertest); await deleteAllRules(supertest, log); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/get_prebuilt_rules_status.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/get_prebuilt_rules_status.ts similarity index 96% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/get_prebuilt_rules_status.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/get_prebuilt_rules_status.ts index ae43e3bdd509820..16dba276169474d 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/get_prebuilt_rules_status.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/get_prebuilt_rules_status.ts @@ -6,32 +6,29 @@ */ import expect from 'expect'; -import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { FtrProviderContext } from '../../../../../ftr_provider_context'; import { - createRule, + deleteAllPrebuiltRuleAssets, deleteAllRules, + getPrebuiltRulesStatus, + createRule, + getSimpleRule, + createRuleAssetSavedObject, + createPrebuiltRuleAssetSavedObjects, + installPrebuiltRules, deleteRule, + upgradePrebuiltRules, + createHistoricalPrebuiltRuleAssetSavedObjects, getPrebuiltRulesAndTimelinesStatus, - getSimpleRule, installPrebuiltRulesAndTimelines, -} from '../../utils'; -import { - createHistoricalPrebuiltRuleAssetSavedObjects, - createPrebuiltRuleAssetSavedObjects, - createRuleAssetSavedObject, -} from '../../utils/prebuilt_rules/create_prebuilt_rule_saved_objects'; -import { deleteAllPrebuiltRuleAssets } from '../../utils/prebuilt_rules/delete_all_prebuilt_rule_assets'; -import { getPrebuiltRulesStatus } from '../../utils/prebuilt_rules/get_prebuilt_rules_status'; -import { installPrebuiltRules } from '../../utils/prebuilt_rules/install_prebuilt_rules'; -import { upgradePrebuiltRules } from '../../utils/prebuilt_rules/upgrade_prebuilt_rules'; +} from '../../../utils'; -// eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext): void => { const supertest = getService('supertest'); const es = getService('es'); const log = getService('log'); - describe('Prebuilt Rules status', () => { + describe('@ess @serverless @skipInQA Prebuilt Rules status', () => { describe('get_prebuilt_rules_status', () => { beforeEach(async () => { await deleteAllPrebuiltRuleAssets(es); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/get_prebuilt_timelines_status.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/get_prebuilt_timelines_status.ts similarity index 88% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/get_prebuilt_timelines_status.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/get_prebuilt_timelines_status.ts index 05b34ffa98ed7ed..9acef16bfbeb14f 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/get_prebuilt_timelines_status.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/get_prebuilt_timelines_status.ts @@ -6,19 +6,18 @@ */ import expect from 'expect'; -import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { FtrProviderContext } from '../../../../../ftr_provider_context'; import { deleteAllTimelines, getPrebuiltRulesAndTimelinesStatus, installPrebuiltRulesAndTimelines, -} from '../../utils'; +} from '../../../utils'; -// eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext): void => { const supertest = getService('supertest'); const es = getService('es'); - describe('get_prebuilt_timelines_status', () => { + describe('@ess @serverless @skipInQA get_prebuilt_timelines_status', () => { beforeEach(async () => { await deleteAllTimelines(es); }); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/index.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/index.ts similarity index 73% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/index.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/index.ts index 67ae12c35735184..52a745e0e797573 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/index.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/index.ts @@ -5,11 +5,10 @@ * 2.0. */ -import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { FtrProviderContext } from '../../../../../ftr_provider_context'; -// eslint-disable-next-line import/no-default-export export default ({ loadTestFile }: FtrProviderContext): void => { - describe('detection engine api security and spaces enabled - Prebuilt Rules', function () { + describe('Detection Engine API - Prebuilt Rules Management', function () { loadTestFile(require.resolve('./get_prebuilt_rules_status')); loadTestFile(require.resolve('./get_prebuilt_timelines_status')); loadTestFile(require.resolve('./install_and_upgrade_prebuilt_rules')); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/install_and_upgrade_prebuilt_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/install_and_upgrade_prebuilt_rules.ts similarity index 95% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/install_and_upgrade_prebuilt_rules.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/install_and_upgrade_prebuilt_rules.ts index 85af64415c95e27..a75c8f87bd783c0 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/install_and_upgrade_prebuilt_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/management/install_and_upgrade_prebuilt_rules.ts @@ -4,34 +4,30 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ - import expect from 'expect'; -import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { FtrProviderContext } from '../../../../../ftr_provider_context'; import { deleteAllRules, deleteAllTimelines, + deleteAllPrebuiltRuleAssets, + createRuleAssetSavedObject, + createPrebuiltRuleAssetSavedObjects, + installPrebuiltRulesAndTimelines, deleteRule, getPrebuiltRulesAndTimelinesStatus, -} from '../../utils'; -import { createHistoricalPrebuiltRuleAssetSavedObjects, - createPrebuiltRuleAssetSavedObjects, - createRuleAssetSavedObject, -} from '../../utils/prebuilt_rules/create_prebuilt_rule_saved_objects'; -import { deleteAllPrebuiltRuleAssets } from '../../utils/prebuilt_rules/delete_all_prebuilt_rule_assets'; -import { installPrebuiltRulesAndTimelines } from '../../utils/prebuilt_rules/install_prebuilt_rules_and_timelines'; -import { installPrebuiltRules } from '../../utils/prebuilt_rules/install_prebuilt_rules'; -import { getPrebuiltRulesStatus } from '../../utils/prebuilt_rules/get_prebuilt_rules_status'; -import { upgradePrebuiltRules } from '../../utils/prebuilt_rules/upgrade_prebuilt_rules'; -import { getInstalledRules } from '../../utils/prebuilt_rules/get_installed_rules'; - -// eslint-disable-next-line import/no-default-export + getPrebuiltRulesStatus, + installPrebuiltRules, + getInstalledRules, + upgradePrebuiltRules, +} from '../../../utils'; + export default ({ getService }: FtrProviderContext): void => { const es = getService('es'); const supertest = getService('supertest'); const log = getService('log'); - describe('install and upgrade prebuilt rules with mock rule assets', () => { + describe('@ess @serverless @skipInQA install and upgrade prebuilt rules with mock rule assets', () => { beforeEach(async () => { await deleteAllRules(supertest, log); await deleteAllTimelines(es); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/config.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/update_prebuilt_rules_package/configs/ess.config.ts similarity index 60% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/config.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/update_prebuilt_rules_package/configs/ess.config.ts index 2430b8f2148d9a9..0def0b0f17a5f3b 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/prebuilt_rules/config.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/update_prebuilt_rules_package/configs/ess.config.ts @@ -7,12 +7,16 @@ import { FtrConfigProviderContext } from '@kbn/test'; -// eslint-disable-next-line import/no-default-export export default async function ({ readConfigFile }: FtrConfigProviderContext) { - const functionalConfig = await readConfigFile(require.resolve('../config.base.ts')); + const functionalConfig = await readConfigFile( + require.resolve('../../../../../../config/ess/config.base.trial') + ); return { ...functionalConfig.getAll(), - testFiles: [require.resolve('.')], + testFiles: [require.resolve('..')], + junit: { + reportName: 'Detection Engine ESS / Update Prebuilt Rules Package - API Integration Tests', + }, }; } diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/update_prebuilt_rules_package/configs/serverless.config.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/update_prebuilt_rules_package/configs/serverless.config.ts new file mode 100644 index 000000000000000..5f6716342c92468 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/update_prebuilt_rules_package/configs/serverless.config.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { createTestConfig } from '../../../../../../config/serverless/config.base'; + +export default createTestConfig({ + testFiles: [require.resolve('..')], + junit: { + reportName: + 'Detection Engine Serverless / Update Prebuilt Rules Package - API Integration Tests', + }, +}); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/update_prebuilt_rules_package/index.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/update_prebuilt_rules_package/index.ts new file mode 100644 index 000000000000000..48d0fb1f1fd9918 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/update_prebuilt_rules_package/index.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrProviderContext } from '../../../../../ftr_provider_context'; + +export default ({ loadTestFile }: FtrProviderContext): void => { + describe('Detection Engine API - Update Prebuilt Rules Package', function () { + loadTestFile(require.resolve('./update_prebuilt_rules_package')); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/update_prebuilt_rules_package/update_prebuilt_rules_package.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/update_prebuilt_rules_package/update_prebuilt_rules_package.ts similarity index 93% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/update_prebuilt_rules_package/update_prebuilt_rules_package.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/update_prebuilt_rules_package/update_prebuilt_rules_package.ts index 1d7939e83f9abe3..981bfd712678004 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/update_prebuilt_rules_package/update_prebuilt_rules_package.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules/update_prebuilt_rules_package/update_prebuilt_rules_package.ts @@ -8,25 +8,23 @@ import fs from 'fs/promises'; import path from 'path'; import getMajorVersion from 'semver/functions/major'; import getMinorVersion from 'semver/functions/minor'; -// @ts-expect-error we have to check types with "allowJs: false" for now, causing this import to fail import { REPO_ROOT } from '@kbn/repo-info'; import JSON5 from 'json5'; import expect from 'expect'; import { PackageSpecManifest } from '@kbn/fleet-plugin/common'; -import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { FtrProviderContext } from '../../../../../ftr_provider_context'; import { deleteAllPrebuiltRuleAssets, deleteAllRules, + getInstalledRules, getPrebuiltRulesStatus, installPrebuiltRules, + installPrebuiltRulesPackageByVersion, upgradePrebuiltRules, -} from '../../utils'; -import { reviewPrebuiltRulesToInstall } from '../../utils/prebuilt_rules/review_install_prebuilt_rules'; -import { reviewPrebuiltRulesToUpgrade } from '../../utils/prebuilt_rules/review_upgrade_prebuilt_rules'; -import { installPrebuiltRulesPackageByVersion } from '../../utils/prebuilt_rules/install_fleet_package_by_url'; -import { getInstalledRules } from '../../utils/prebuilt_rules/get_installed_rules'; + reviewPrebuiltRulesToInstall, + reviewPrebuiltRulesToUpgrade, +} from '../../../utils'; -// eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext): void => { const es = getService('es'); const supertest = getService('supertest'); @@ -63,7 +61,7 @@ export default ({ getService }: FtrProviderContext): void => { return getPackageResponse.body.item.version ?? ''; }; - describe('update_prebuilt_rules_package', () => { + describe('@ess @serverless @skipInQA update_prebuilt_rules_package', () => { before(async () => { const configFilePath = path.resolve(REPO_ROOT, 'fleet_packages.json'); const fleetPackages = await fs.readFile(configFilePath, 'utf8'); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/delete_all_prebuilt_rule_assets.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/delete_all_prebuilt_rule_assets.ts new file mode 100644 index 000000000000000..899d5ddd7f83f1e --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/delete_all_prebuilt_rule_assets.ts @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { Client } from '@elastic/elasticsearch'; +import { SECURITY_SOLUTION_SAVED_OBJECT_INDEX } from '@kbn/core-saved-objects-server'; + +/** + * Remove all prebuilt rule assets from the security solution savedObjects index + * @param es The ElasticSearch handle + */ +export const deleteAllPrebuiltRuleAssets = async (es: Client): Promise => { + await es.deleteByQuery({ + index: SECURITY_SOLUTION_SAVED_OBJECT_INDEX, + q: 'type:security-rule', + wait_for_completion: true, + refresh: true, + body: {}, + }); +}; diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/delete_all_timelines.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/delete_all_timelines.ts new file mode 100644 index 000000000000000..291cd269580b070 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/delete_all_timelines.ts @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { Client } from '@elastic/elasticsearch'; +import { SECURITY_SOLUTION_SAVED_OBJECT_INDEX } from '@kbn/core-saved-objects-server'; + +/** + * Remove all timelines from the security solution savedObjects index + * @param es The ElasticSearch handle + */ +export const deleteAllTimelines = async (es: Client): Promise => { + await es.deleteByQuery({ + index: SECURITY_SOLUTION_SAVED_OBJECT_INDEX, + q: 'type:siem-ui-timeline', + wait_for_completion: true, + refresh: true, + body: {}, + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/delete_prebuilt_rules_fleet_package.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/delete_prebuilt_rules_fleet_package.ts similarity index 84% rename from x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/delete_prebuilt_rules_fleet_package.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/delete_prebuilt_rules_fleet_package.ts index 1bb596e2baeb126..1647ff301a3246a 100644 --- a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/delete_prebuilt_rules_fleet_package.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/delete_prebuilt_rules_fleet_package.ts @@ -18,10 +18,11 @@ export async function deletePrebuiltRulesFleetPackage( ) { const resp = await supertest .get(epmRouteService.getInfoPath('security_detection_engine')) - .send() - .expect(200); + .set('kbn-xsrf', 'true') + .set('elastic-api-version', '2023-10-31') + .send(); - if (resp.body.response.status === 'installed') { + if (resp.status === 200 && resp.body.response.status === 'installed') { await supertest .delete( epmRouteService.getRemovePath('security_detection_engine', resp.body.response.version) diff --git a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/get_installed_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/get_installed_rules.ts similarity index 100% rename from x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/get_installed_rules.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/get_installed_rules.ts diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/get_prebuilt_rules_fleet_package.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/get_prebuilt_rules_fleet_package.ts new file mode 100644 index 000000000000000..ec69b6cfb14c288 --- /dev/null +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/get_prebuilt_rules_fleet_package.ts @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { epmRouteService } from '@kbn/fleet-plugin/common'; +import type SuperTest from 'supertest'; + +/** + * Gets the security_detection_engine package using fleet API. + * + * @param supertest Supertest instance + * @returns The API endpoint response. Will have status 200 if package installed or 404 if not + */ +export async function getPrebuiltRulesFleetPackage(supertest: SuperTest.SuperTest) { + return await supertest + .get(epmRouteService.getInfoPath('security_detection_engine')) + .set('kbn-xsrf', 'true') + .set('elastic-api-version', '2023-10-31') + .send(); +} diff --git a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/get_prebuilt_rules_status.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/get_prebuilt_rules_status.ts similarity index 95% rename from x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/get_prebuilt_rules_status.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/get_prebuilt_rules_status.ts index db7d8553ad94663..0f785f8a7745383 100644 --- a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/get_prebuilt_rules_status.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/get_prebuilt_rules_status.ts @@ -23,6 +23,7 @@ export const getPrebuiltRulesStatus = async ( .get(GET_PREBUILT_RULES_STATUS_URL) .set('kbn-xsrf', 'true') .set('elastic-api-version', '1') + .set('x-elastic-internal-origin', 'foo') .send() .expect(200); diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/index.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/index.ts index 9970b6b13eeec59..fbf9ab7b36384e1 100644 --- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/index.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/index.ts @@ -5,6 +5,18 @@ * 2.0. */ export * from './create_prebuilt_rule_saved_objects'; +export * from './delete_all_prebuilt_rule_assets'; +export * from './delete_all_timelines'; +export * from './delete_prebuilt_rules_fleet_package'; +export * from './get_installed_rules'; export * from './get_prebuilt_rules_and_timelines_status'; +export * from './get_prebuilt_rules_status'; +export * from './get_prebuilt_rules_fleet_package'; +export * from './install_fleet_package_by_url'; export * from './install_mock_prebuilt_rules'; export * from './install_prebuilt_rules_and_timelines'; +export * from './install_prebuilt_rules_fleet_package'; +export * from './install_prebuilt_rules'; +export * from './review_install_prebuilt_rules'; +export * from './review_upgrade_prebuilt_rules'; +export * from './upgrade_prebuilt_rules'; diff --git a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/install_fleet_package_by_url.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/install_fleet_package_by_url.ts similarity index 93% rename from x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/install_fleet_package_by_url.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/install_fleet_package_by_url.ts index bccdf28906e23d4..259369346cc8b9b 100644 --- a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/install_fleet_package_by_url.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/install_fleet_package_by_url.ts @@ -8,6 +8,7 @@ import type { Client } from '@elastic/elasticsearch'; import type SuperTest from 'supertest'; import { ALL_SAVED_OBJECT_INDICES } from '@kbn/core-saved-objects-server'; import { InstallPackageResponse } from '@kbn/fleet-plugin/common/types'; +import { epmRouteService } from '@kbn/fleet-plugin/common'; /** * Installs latest available non-prerelease prebuilt rules package `security_detection_engine`. @@ -25,6 +26,7 @@ export const installPrebuiltRulesPackageViaFleetAPI = async ( const fleetResponse = await supertest .post(`/api/fleet/epm/packages/security_detection_engine`) .set('kbn-xsrf', 'xxxx') + .set('elastic-api-version', '2023-10-31') .type('application/json') .send({ force: true }) .expect(200); @@ -63,8 +65,9 @@ export const installPrebuiltRulesPackageByVersion = async ( version: string ): Promise => { const fleetResponse = await supertest - .post(`/api/fleet/epm/packages/security_detection_engine/${version}`) + .post(epmRouteService.getInstallPath('security_detection_engine', version)) .set('kbn-xsrf', 'xxxx') + .set('elastic-api-version', '2023-10-31') .type('application/json') .send({ force: true }) .expect(200); diff --git a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/install_prebuilt_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/install_prebuilt_rules.ts similarity index 98% rename from x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/install_prebuilt_rules.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/install_prebuilt_rules.ts index 52e34d67a1936e9..308fef271e98755 100644 --- a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/install_prebuilt_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/install_prebuilt_rules.ts @@ -43,6 +43,7 @@ export const installPrebuiltRules = async ( .post(PERFORM_RULE_INSTALLATION_URL) .set('kbn-xsrf', 'true') .set('elastic-api-version', '1') + .set('x-elastic-internal-origin', 'foo') .send(payload) .expect(200); diff --git a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/install_prebuilt_rules_fleet_package.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/install_prebuilt_rules_fleet_package.ts similarity index 100% rename from x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/install_prebuilt_rules_fleet_package.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/install_prebuilt_rules_fleet_package.ts diff --git a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/review_install_prebuilt_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/review_install_prebuilt_rules.ts similarity index 95% rename from x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/review_install_prebuilt_rules.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/review_install_prebuilt_rules.ts index ff7987d776213c6..573b481a3b30f7b 100644 --- a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/review_install_prebuilt_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/review_install_prebuilt_rules.ts @@ -22,6 +22,7 @@ export const reviewPrebuiltRulesToInstall = async ( .post(REVIEW_RULE_INSTALLATION_URL) .set('kbn-xsrf', 'true') .set('elastic-api-version', '1') + .set('x-elastic-internal-origin', 'securitySolution') .send() .expect(200); diff --git a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/review_upgrade_prebuilt_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/review_upgrade_prebuilt_rules.ts similarity index 94% rename from x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/review_upgrade_prebuilt_rules.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/review_upgrade_prebuilt_rules.ts index fdcdab5dd9ed345..9bbf980dccccae6 100644 --- a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/review_upgrade_prebuilt_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/review_upgrade_prebuilt_rules.ts @@ -22,6 +22,7 @@ export const reviewPrebuiltRulesToUpgrade = async ( .post(REVIEW_RULE_UPGRADE_URL) .set('kbn-xsrf', 'true') .set('elastic-api-version', '1') + .set('x-elastic-internal-origin', 'securitySolution') .send() .expect(200); diff --git a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/upgrade_prebuilt_rules.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/upgrade_prebuilt_rules.ts similarity index 98% rename from x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/upgrade_prebuilt_rules.ts rename to x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/upgrade_prebuilt_rules.ts index 1fbbe46e1e7ff4f..caadba2619a7413 100644 --- a/x-pack/test/detection_engine_api_integration/utils/prebuilt_rules/upgrade_prebuilt_rules.ts +++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/utils/rules/prebuilt_rules/upgrade_prebuilt_rules.ts @@ -39,6 +39,7 @@ export const upgradePrebuiltRules = async ( .post(PERFORM_RULE_UPGRADE_URL) .set('kbn-xsrf', 'true') .set('elastic-api-version', '1') + .set('x-elastic-internal-origin', 'foo') .send(payload) .expect(200); diff --git a/x-pack/test/security_solution_api_integration/tsconfig.json b/x-pack/test/security_solution_api_integration/tsconfig.json index 2c3b9082ac7cceb..4dfd3ef6ba30d9c 100644 --- a/x-pack/test/security_solution_api_integration/tsconfig.json +++ b/x-pack/test/security_solution_api_integration/tsconfig.json @@ -31,6 +31,8 @@ "@kbn/core", "@kbn/alerting-plugin", "@kbn/core-http-common", - "@kbn/securitysolution-ecs" + "@kbn/securitysolution-ecs", + "@kbn/fleet-plugin", + "@kbn/repo-info", ] }