diff --git a/x-pack/plugins/security_solution/common/experimental_features.ts b/x-pack/plugins/security_solution/common/experimental_features.ts
index 67b9a57af1628..1ae20af759611 100644
--- a/x-pack/plugins/security_solution/common/experimental_features.ts
+++ b/x-pack/plugins/security_solution/common/experimental_features.ts
@@ -230,11 +230,6 @@ export const allowedExperimentalValues = Object.freeze({
*/
valueListItemsModalEnabled: true,
- /**
- * Enables the manual rule run
- */
- manualRuleRunEnabled: false,
-
/**
* Adds a new option to filter descendants of a process for Management / Event Filters
*/
diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/execution_log_table/__snapshots__/execution_log_search_bar.test.tsx.snap b/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/execution_log_table/__snapshots__/execution_log_search_bar.test.tsx.snap
index 009e6dcc58ace..4f5e9954cced0 100644
--- a/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/execution_log_table/__snapshots__/execution_log_search_bar.test.tsx.snap
+++ b/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/execution_log_table/__snapshots__/execution_log_search_bar.test.tsx.snap
@@ -13,6 +13,20 @@ exports[`ExecutionLogSearchBar snapshots renders correctly against snapshot 1`]
+
+
+
diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/execution_log_table/execution_log_search_bar.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/execution_log_table/execution_log_search_bar.tsx
index db43b104ec713..3c70fa7c33c9c 100644
--- a/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/execution_log_table/execution_log_search_bar.tsx
+++ b/x-pack/plugins/security_solution/public/detection_engine/rule_details_ui/pages/rule_details/execution_log_table/execution_log_search_bar.tsx
@@ -20,7 +20,6 @@ import {
} from '../../../../../../common/detection_engine/rule_management/execution_log';
import { ExecutionStatusFilter, ExecutionRunTypeFilter } from '../../../../rule_monitoring';
-import { useIsExperimentalFeatureEnabled } from '../../../../../common/hooks/use_experimental_features';
import * as i18n from './translations';
export const EXECUTION_LOG_SCHEMA_MAPPING = {
@@ -75,7 +74,6 @@ export const ExecutionLogSearchBar = React.memo(
},
[onSearch]
);
- const isManualRuleRunEnabled = useIsExperimentalFeatureEnabled('manualRuleRunEnabled');
return (
@@ -93,15 +91,14 @@ export const ExecutionLogSearchBar = React.memo(
- {isManualRuleRunEnabled && (
-
-
-
- )}
+
+
+
+
= ({
timelines,
telemetry,
} = useKibana().services;
- const isManualRuleRunEnabled = useIsExperimentalFeatureEnabled('manualRuleRunEnabled');
const {
[RuleDetailTabs.executionResults]: {
@@ -473,15 +470,10 @@ const ExecutionLogTableComponent: React.FC = ({
);
const executionLogColumns = useMemo(() => {
- const columns = [...EXECUTION_LOG_COLUMNS].filter((item) => {
- if ('field' in item) {
- return item.field === 'type' ? isManualRuleRunEnabled : true;
- }
- return true;
- });
+ const columns = [...EXECUTION_LOG_COLUMNS];
let messageColumnWidth = 50;
- if (showSourceEventTimeRange && isManualRuleRunEnabled) {
+ if (showSourceEventTimeRange) {
columns.push(...getSourceEventTimeRangeColumns());
messageColumnWidth = 30;
}
@@ -506,7 +498,6 @@ const ExecutionLogTableComponent: React.FC = ({
return columns;
}, [
- isManualRuleRunEnabled,
actions,
docLinks,
showMetricColumns,
@@ -583,14 +574,12 @@ const ExecutionLogTableComponent: React.FC = ({
updatedAt: dataUpdatedAt,
})}
- {isManualRuleRunEnabled && (
-
- )}
+
{i18n.MANUAL_RULE_RUN_MODAL_TITLE}
-
+
}
diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_gaps/components/rule_backfills_info/index.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_gaps/components/rule_backfills_info/index.tsx
index 2bacc44b15a76..2a0981e2f5259 100644
--- a/x-pack/plugins/security_solution/public/detection_engine/rule_gaps/components/rule_backfills_info/index.tsx
+++ b/x-pack/plugins/security_solution/public/detection_engine/rule_gaps/components/rule_backfills_info/index.tsx
@@ -25,9 +25,8 @@ import { hasUserCRUDPermission } from '../../../../common/utils/privileges';
import { useUserData } from '../../../../detections/components/user_info';
import { getBackfillRowsFromResponse } from './utils';
import { HeaderSection } from '../../../../common/components/header_section';
-import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features';
import { TableHeaderTooltipCell } from '../../../rule_management_ui/components/rules_table/table_header_tooltip_cell';
-import { TECHNICAL_PREVIEW, TECHNICAL_PREVIEW_TOOLTIP } from '../../../../common/translations';
+import { BETA, BETA_TOOLTIP } from '../../../../common/translations';
import { useKibana } from '../../../../common/lib/kibana';
const DEFAULT_PAGE_SIZE = 10;
@@ -143,26 +142,16 @@ const getBackfillsTableColumns = (hasCRUDPermissions: boolean) => {
};
export const RuleBackfillsInfo = React.memo<{ ruleId: string }>(({ ruleId }) => {
- const isManualRuleRunEnabled = useIsExperimentalFeatureEnabled('manualRuleRunEnabled');
const [pageIndex, setPageIndex] = useState(0);
const [pageSize, setPageSize] = useState(DEFAULT_PAGE_SIZE);
const [{ canUserCRUD }] = useUserData();
const hasCRUDPermissions = hasUserCRUDPermission(canUserCRUD);
const { timelines } = useKibana().services;
- const { data, isLoading, isError, refetch, dataUpdatedAt } = useFindBackfillsForRules(
- {
- ruleIds: [ruleId],
- page: pageIndex + 1,
- perPage: pageSize,
- },
- {
- enabled: isManualRuleRunEnabled,
- }
- );
-
- if (!isManualRuleRunEnabled) {
- return null;
- }
+ const { data, isLoading, isError, refetch, dataUpdatedAt } = useFindBackfillsForRules({
+ ruleIds: [ruleId],
+ page: pageIndex + 1,
+ perPage: pageSize,
+ });
const backfills: BackfillRow[] = getBackfillRowsFromResponse(data?.data ?? []);
@@ -197,7 +186,7 @@ export const RuleBackfillsInfo = React.memo<{ ruleId: string }>(({ ruleId }) =>
title={i18n.BACKFILL_TABLE_TITLE}
subtitle={i18n.BACKFILL_TABLE_SUBTITLE}
/>
-
+
diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/components/rules_table/bulk_actions/use_bulk_actions.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/components/rules_table/bulk_actions/use_bulk_actions.tsx
index c2c176563ca48..68e58b4db073f 100644
--- a/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/components/rules_table/bulk_actions/use_bulk_actions.tsx
+++ b/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/components/rules_table/bulk_actions/use_bulk_actions.tsx
@@ -16,7 +16,6 @@ import { MAX_MANUAL_RULE_RUN_BULK_SIZE } from '../../../../../../common/constant
import type { TimeRange } from '../../../../rule_gaps/types';
import { useKibana } from '../../../../../common/lib/kibana';
import { convertRulesFilterToKQL } from '../../../../../../common/detection_engine/rule_management/rule_filtering';
-import { useIsExperimentalFeatureEnabled } from '../../../../../common/hooks/use_experimental_features';
import { DuplicateOptions } from '../../../../../../common/detection_engine/rule_management/constants';
import type {
BulkActionEditPayload,
@@ -89,7 +88,6 @@ export const useBulkActions = ({
actions: { clearRulesSelection, setIsPreflightInProgress },
} = rulesTableContext;
- const isManualRuleRunEnabled = useIsExperimentalFeatureEnabled('manualRuleRunEnabled');
const getBulkItemsPopoverContent = useCallback(
(closePopover: () => void): EuiContextMenuPanelDescriptor[] => {
const selectedRules = rules.filter(({ id }) => selectedRuleIds.includes(id));
@@ -448,18 +446,14 @@ export const useBulkActions = ({
onClick: handleExportAction,
icon: undefined,
},
- ...(isManualRuleRunEnabled
- ? [
- {
- key: i18n.BULK_ACTION_MANUAL_RULE_RUN,
- name: i18n.BULK_ACTION_MANUAL_RULE_RUN,
- 'data-test-subj': 'scheduleRuleRunBulk',
- disabled: containsLoading || (!containsEnabled && !isAllSelected),
- onClick: handleScheduleRuleRunAction,
- icon: undefined,
- },
- ]
- : []),
+ {
+ key: i18n.BULK_ACTION_MANUAL_RULE_RUN,
+ name: i18n.BULK_ACTION_MANUAL_RULE_RUN,
+ 'data-test-subj': 'scheduleRuleRunBulk',
+ disabled: containsLoading || (!containsEnabled && !isAllSelected),
+ onClick: handleScheduleRuleRunAction,
+ icon: undefined,
+ },
{
key: i18n.BULK_ACTION_DISABLE,
name: i18n.BULK_ACTION_DISABLE,
@@ -600,7 +594,6 @@ export const useBulkActions = ({
filterOptions,
completeBulkEditForm,
startServices,
- isManualRuleRunEnabled,
]
);
diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/components/rules_table/use_rules_table_actions.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/components/rules_table/use_rules_table_actions.tsx
index 984df06342a1a..4cc7a03426657 100644
--- a/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/components/rules_table/use_rules_table_actions.tsx
+++ b/x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/components/rules_table/use_rules_table_actions.tsx
@@ -8,7 +8,6 @@
import type { DefaultItemAction } from '@elastic/eui';
import { EuiToolTip } from '@elastic/eui';
import React from 'react';
-import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features';
import { DuplicateOptions } from '../../../../../common/detection_engine/rule_management/constants';
import { BulkActionTypeEnum } from '../../../../../common/api/detection_engine/rule_management';
import { SINGLE_RULE_ACTIONS } from '../../../../common/lib/apm/user_actions';
@@ -47,8 +46,6 @@ export const useRulesTableActions = ({
const downloadExportedRules = useDownloadExportedRules();
const { scheduleRuleRun } = useScheduleRuleRun();
- const isManualRuleRunEnabled = useIsExperimentalFeatureEnabled('manualRuleRunEnabled');
-
return [
{
type: 'icon',
@@ -120,33 +117,28 @@ export const useRulesTableActions = ({
},
enabled: (rule: Rule) => !rule.immutable,
},
- ...(isManualRuleRunEnabled
- ? [
- {
- type: 'icon',
- 'data-test-subj': 'manualRuleRunAction',
- description: (rule) =>
- !rule.enabled ? i18n.MANUAL_RULE_RUN_TOOLTIP : i18n.MANUAL_RULE_RUN,
- icon: 'play',
- name: i18n.MANUAL_RULE_RUN,
- onClick: async (rule: Rule) => {
- startTransaction({ name: SINGLE_RULE_ACTIONS.MANUAL_RULE_RUN });
- const modalManualRuleRunConfirmationResult = await showManualRuleRunConfirmation();
- telemetry.reportManualRuleRunOpenModal({
- type: 'single',
- });
- if (modalManualRuleRunConfirmationResult === null) {
- return;
- }
- await scheduleRuleRun({
- ruleIds: [rule.id],
- timeRange: modalManualRuleRunConfirmationResult,
- });
- },
- enabled: (rule: Rule) => rule.enabled,
- } as DefaultItemAction,
- ]
- : []),
+ {
+ type: 'icon',
+ 'data-test-subj': 'manualRuleRunAction',
+ description: (rule) => (!rule.enabled ? i18n.MANUAL_RULE_RUN_TOOLTIP : i18n.MANUAL_RULE_RUN),
+ icon: 'play',
+ name: i18n.MANUAL_RULE_RUN,
+ onClick: async (rule: Rule) => {
+ startTransaction({ name: SINGLE_RULE_ACTIONS.MANUAL_RULE_RUN });
+ const modalManualRuleRunConfirmationResult = await showManualRuleRunConfirmation();
+ telemetry.reportManualRuleRunOpenModal({
+ type: 'single',
+ });
+ if (modalManualRuleRunConfirmationResult === null) {
+ return;
+ }
+ await scheduleRuleRun({
+ ruleIds: [rule.id],
+ timeRange: modalManualRuleRunConfirmationResult,
+ });
+ },
+ enabled: (rule: Rule) => rule.enabled,
+ },
{
type: 'icon',
'data-test-subj': 'deleteRuleAction',
diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_monitoring/components/execution_results_table/use_execution_results.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_monitoring/components/execution_results_table/use_execution_results.tsx
index 8660139676351..e6ee5769ee822 100644
--- a/x-pack/plugins/security_solution/public/detection_engine/rule_monitoring/components/execution_results_table/use_execution_results.tsx
+++ b/x-pack/plugins/security_solution/public/detection_engine/rule_monitoring/components/execution_results_table/use_execution_results.tsx
@@ -7,29 +7,20 @@
import { useQuery } from '@tanstack/react-query';
import { useAppToasts } from '../../../../common/hooks/use_app_toasts';
-
-import { RuleRunTypeEnum } from '../../../../../common/api/detection_engine/rule_monitoring';
import type { GetRuleExecutionResultsResponse } from '../../../../../common/api/detection_engine/rule_monitoring';
import type { FetchRuleExecutionResultsArgs } from '../../api';
import { api } from '../../api';
-import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features';
import * as i18n from './translations';
export type UseExecutionResultsArgs = Omit;
export const useExecutionResults = (args: UseExecutionResultsArgs) => {
const { addError } = useAppToasts();
- const isManualRuleRunEnabled = useIsExperimentalFeatureEnabled('manualRuleRunEnabled');
return useQuery(
['detectionEngine', 'ruleMonitoring', 'executionResults', args],
({ signal }) => {
- let runTypeFilters = args.runTypeFilters;
-
- // if manual rule run is disabled, only show standard runs
- if (!isManualRuleRunEnabled) {
- runTypeFilters = [RuleRunTypeEnum.standard];
- }
+ const runTypeFilters = args.runTypeFilters;
return api.fetchRuleExecutionResults({ ...args, runTypeFilters, signal });
},
diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/rule_actions_overflow/index.test.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/rule_actions_overflow/index.test.tsx
index 298ae1c503533..e1ff950bc5e32 100644
--- a/x-pack/plugins/security_solution/public/detections/components/rules/rule_actions_overflow/index.test.tsx
+++ b/x-pack/plugins/security_solution/public/detections/components/rules/rule_actions_overflow/index.test.tsx
@@ -274,25 +274,6 @@ describe('RuleActionsOverflow', () => {
expect(getByTestId('rules-details-popover')).not.toHaveTextContent(/.+/);
});
- test('it does not show "Manual run" action item when feature flag "manualRuleRunEnabled" is set to false', () => {
- useIsExperimentalFeatureEnabledMock.mockReturnValue(false);
-
- const { getByTestId } = render(
- Promise.resolve(true)}
- />,
- { wrapper: TestProviders }
- );
- fireEvent.click(getByTestId('rules-details-popover-button-icon'));
-
- expect(getByTestId('rules-details-menu-panel')).not.toHaveTextContent('Manual run');
- });
-
test('it calls telemetry.reportManualRuleRunOpenModal when rules-details-manual-rule-run is clicked', async () => {
const { getByTestId } = render(
{
navigateToApp(APP_UI_ID, {
deepLinkId: SecurityPageName.rules,
@@ -152,39 +149,32 @@ const RuleActionsOverflowComponent = ({
>
{i18nActions.EXPORT_RULE}
,
- ...(isManualRuleRunEnabled
- ? [
- {
- startTransaction({ name: SINGLE_RULE_ACTIONS.MANUAL_RULE_RUN });
- closePopover();
- const modalManualRuleRunConfirmationResult =
- await showManualRuleRunConfirmation();
- telemetry.reportManualRuleRunOpenModal({
- type: 'single',
- });
- if (modalManualRuleRunConfirmationResult === null) {
- return;
- }
- await scheduleRuleRun({
- ruleIds: [rule.id],
- timeRange: modalManualRuleRunConfirmationResult,
- });
- }}
- >
- {i18nActions.MANUAL_RULE_RUN}
- ,
- ]
- : []),
+ {
+ startTransaction({ name: SINGLE_RULE_ACTIONS.MANUAL_RULE_RUN });
+ closePopover();
+ const modalManualRuleRunConfirmationResult = await showManualRuleRunConfirmation();
+ telemetry.reportManualRuleRunOpenModal({
+ type: 'single',
+ });
+ if (modalManualRuleRunConfirmationResult === null) {
+ return;
+ }
+ await scheduleRuleRun({
+ ruleIds: [rule.id],
+ timeRange: modalManualRuleRunConfirmationResult,
+ });
+ }}
+ >
+ {i18nActions.MANUAL_RULE_RUN}
+ ,
{
// check whether "manual rule run" feature is enabled
- await throwDryRunError(
- () =>
- invariant(experimentalFeatures?.manualRuleRunEnabled, 'Manual rule run feature is disabled.'),
- BulkActionsDryRunErrCode.MANUAL_RULE_RUN_FEATURE
- );
await throwDryRunError(
() => invariant(rule.enabled, 'Cannot schedule manual rule run for a disabled rule'),
diff --git a/x-pack/test/security_solution_api_integration/config/ess/config.base.ts b/x-pack/test/security_solution_api_integration/config/ess/config.base.ts
index 705c0b8686dd0..3ab6d5059fd07 100644
--- a/x-pack/test/security_solution_api_integration/config/ess/config.base.ts
+++ b/x-pack/test/security_solution_api_integration/config/ess/config.base.ts
@@ -85,7 +85,6 @@ export function createTestConfig(options: CreateTestConfigOptions, testFiles?: s
'loggingRequestsEnabled',
'riskScoringPersistence',
'riskScoringRoutesEnabled',
- 'manualRuleRunEnabled',
])}`,
'--xpack.task_manager.poll_interval=1000',
`--xpack.actions.preconfigured=${JSON.stringify(PRECONFIGURED_ACTION_CONNECTORS)}`,
diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/configs/serverless.config.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/configs/serverless.config.ts
index 8f64a859b7002..ce949d5cc23fc 100644
--- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/configs/serverless.config.ts
+++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_execution_logic/trial_license_complete_tier/configs/serverless.config.ts
@@ -17,9 +17,6 @@ export default createTestConfig({
'testing_ignored.constant',
'/testing_regex*/',
])}`, // See tests within the file "ignore_fields.ts" which use these values in "alertIgnoreFields"
- `--xpack.securitySolution.enableExperimental=${JSON.stringify([
- 'manualRuleRunEnabled',
- 'loggingRequestsEnabled',
- ])}`,
+ `--xpack.securitySolution.enableExperimental=${JSON.stringify(['loggingRequestsEnabled'])}`,
],
});
diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_gaps/trial_license_complete_tier/configs/serverless.config.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_gaps/trial_license_complete_tier/configs/serverless.config.ts
index 783adb64f6c2e..43904f7c217f3 100644
--- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_gaps/trial_license_complete_tier/configs/serverless.config.ts
+++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_gaps/trial_license_complete_tier/configs/serverless.config.ts
@@ -16,6 +16,5 @@ export default createTestConfig({
'testing_ignored.constant',
'/testing_regex*/',
])}`, // See tests within the file "ignore_fields.ts" which use these values in "alertIgnoreFields"
- `--xpack.securitySolution.enableExperimental=${JSON.stringify(['manualRuleRunEnabled'])}`,
],
});
diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_gaps/trial_license_complete_tier/manual_rule_run.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_gaps/trial_license_complete_tier/manual_rule_run.ts
index 8a6167fc69301..153185456544d 100644
--- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_gaps/trial_license_complete_tier/manual_rule_run.ts
+++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/detection_engine/rule_gaps/trial_license_complete_tier/manual_rule_run.ts
@@ -42,9 +42,7 @@ export default ({ getService }: FtrProviderContext) => {
const log = getService('log');
const es = getService('es');
- // Currently FF are not supported on MKI environments, so this test should be skipped from MKI environments.
- // Once `manualRuleRunEnabled` FF is removed, we can remove `@skipInServerlessMKI` as well
- describe('@ess @serverless @skipInServerlessMKI manual_rule_run', () => {
+ describe('@ess @serverless manual_rule_run', () => {
beforeEach(async () => {
await createAlertsIndex(supertest, log);
});
diff --git a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_management/trial_license_complete_tier/configs/serverless.config.ts b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_management/trial_license_complete_tier/configs/serverless.config.ts
index 52a1074c87904..ca9396db04661 100644
--- a/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_management/trial_license_complete_tier/configs/serverless.config.ts
+++ b/x-pack/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_management/trial_license_complete_tier/configs/serverless.config.ts
@@ -12,7 +12,4 @@ export default createTestConfig({
reportName:
'Rules Management - Rule Management Integration Tests - Serverless Env - Complete Tier',
},
- kbnTestServerArgs: [
- `--xpack.securitySolution.enableExperimental=${JSON.stringify(['manualRuleRunEnabled'])}`,
- ],
});
diff --git a/x-pack/test/security_solution_cypress/config.ts b/x-pack/test/security_solution_cypress/config.ts
index 88752eb1b5f93..05bc2e381527a 100644
--- a/x-pack/test/security_solution_cypress/config.ts
+++ b/x-pack/test/security_solution_cypress/config.ts
@@ -44,10 +44,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) {
// See https://github.com/elastic/kibana/pull/125396 for details
'--xpack.alerting.rules.minimumScheduleInterval.value=1s',
'--xpack.ruleRegistry.unsafe.legacyMultiTenancy.enabled=true',
- `--xpack.securitySolution.enableExperimental=${JSON.stringify([
- 'manualRuleRunEnabled',
- 'loggingRequestsEnabled',
- ])}`,
+ `--xpack.securitySolution.enableExperimental=${JSON.stringify(['loggingRequestsEnabled'])}`,
// mock cloud to enable the guided onboarding tour in e2e tests
'--xpack.cloud.id=test',
`--home.disableWelcomeScreen=true`,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_edit/preview.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_edit/preview.cy.ts
index ce298bafbfea0..c2e41c9d4680c 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_edit/preview.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_edit/preview.cy.ts
@@ -32,9 +32,7 @@ const expectedValidEsqlQuery = 'from auditbeat* METADATA _id';
describe(
'Detection rules, preview',
{
- // Currently FF are not supported on MKI environments, so this test should be skipped from MKI environments.
- // Once `manualRuleRunEnabled` FF is removed, we can remove `@skipInServerlessMKI` as well
- tags: ['@ess', '@serverless', '@skipInServerlessMKI'],
+ tags: ['@ess', '@serverless'],
env: {
kbnServerArgs: [
`--xpack.securitySolution.enableExperimental=${JSON.stringify(['loggingRequestsEnabled'])}`,
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_gaps/bulk_manual_rule_run.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_gaps/bulk_manual_rule_run.cy.ts
index 17cde9485a13c..5a66dcdc0de84 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_gaps/bulk_manual_rule_run.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_gaps/bulk_manual_rule_run.cy.ts
@@ -19,9 +19,7 @@ import { deleteAlertsAndRules } from '../../../../tasks/api_calls/common';
import { createRule } from '../../../../tasks/api_calls/rules';
import { login } from '../../../../tasks/login';
-// Currently FF are not supported on MKI environments, so this test should be skipped from MKI environments.
-// Once `manualRuleRunEnabled` FF is removed, we can remove `@skipInServerlessMKI` as well
-describe('Manual rule run', { tags: ['@ess', '@serverless', '@skipInServerlessMKI'] }, () => {
+describe('Manual rule run', { tags: ['@ess', '@serverless'] }, () => {
beforeEach(() => {
login();
deleteAlertsAndRules();
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_gaps/manual_rule_run.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_gaps/manual_rule_run.cy.ts
index 29e2379367c0b..f40f4284b84b5 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_gaps/manual_rule_run.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/detection_engine/rule_gaps/manual_rule_run.cy.ts
@@ -18,9 +18,7 @@ import { deleteAlertsAndRules } from '../../../../tasks/api_calls/common';
import { createRule } from '../../../../tasks/api_calls/rules';
import { login } from '../../../../tasks/login';
-// Currently FF are not supported on MKI environments, so this test should be skipped from MKI environments.
-// Once `manualRuleRunEnabled` FF is removed, we can remove `@skipInServerlessMKI` as well
-describe('Manual rule run', { tags: ['@ess', '@serverless', '@skipInServerlessMKI'] }, () => {
+describe('Manual rule run', { tags: ['@ess', '@serverless'] }, () => {
beforeEach(() => {
login();
deleteAlertsAndRules();
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_details/backfill_group.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_details/backfill_group.cy.ts
index 2f97e2f3c0721..f747e6be43e5a 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_details/backfill_group.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_details/backfill_group.cy.ts
@@ -34,14 +34,7 @@ import {
describe(
'Backfill groups',
{
- tags: ['@ess', '@serverless', '@skipInServerlessMKI'],
- env: {
- ftrConfig: {
- kbnServerArgs: [
- `--xpack.securitySolution.enableExperimental=${JSON.stringify(['manualRuleRunEnabled'])}`,
- ],
- },
- },
+ tags: ['@ess', '@serverless'],
},
function () {
before(() => {
diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_details/execution_log.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_details/execution_log.cy.ts
index a34826d2c8cb4..dc9e3e5719d27 100644
--- a/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_details/execution_log.cy.ts
+++ b/x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/rule_details/execution_log.cy.ts
@@ -27,13 +27,6 @@ describe.skip(
'Event log',
{
tags: ['@ess', '@serverless'],
- env: {
- ftrConfig: {
- kbnServerArgs: [
- `--xpack.securitySolution.enableExperimental=${JSON.stringify(['manualRuleRunEnabled'])}`,
- ],
- },
- },
},
function () {
before(() => {
diff --git a/x-pack/test/security_solution_cypress/serverless_config.ts b/x-pack/test/security_solution_cypress/serverless_config.ts
index 13877fcbf5af4..71a63b697187f 100644
--- a/x-pack/test/security_solution_cypress/serverless_config.ts
+++ b/x-pack/test/security_solution_cypress/serverless_config.ts
@@ -34,10 +34,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) {
{ product_line: 'endpoint', product_tier: 'complete' },
{ product_line: 'cloud', product_tier: 'complete' },
])}`,
- `--xpack.securitySolution.enableExperimental=${JSON.stringify([
- 'manualRuleRunEnabled',
- 'loggingRequestsEnabled',
- ])}`,
+ `--xpack.securitySolution.enableExperimental=${JSON.stringify(['loggingRequestsEnabled'])}`,
'--csp.strict=false',
'--csp.warnLegacyBrowsers=false',
],