= ({
application.capabilities.actions.show,
displayActionsOptions,
displayResponseActionsOptions,
- responseActionsEnabled,
]);
return (
diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_response_actions/get_supported_response_actions.ts b/x-pack/plugins/security_solution/public/detection_engine/rule_response_actions/get_supported_response_actions.ts
index 51b599028156d..95fc300a3fe57 100644
--- a/x-pack/plugins/security_solution/public/detection_engine/rule_response_actions/get_supported_response_actions.ts
+++ b/x-pack/plugins/security_solution/public/detection_engine/rule_response_actions/get_supported_response_actions.ts
@@ -24,12 +24,10 @@ interface EnabledFeatures {
export const getSupportedResponseActions = (
actionTypes: ResponseActionType[],
- enabledFeatures: EnabledFeatures,
userPermissions: EnabledFeatures
): ResponseActionType[] =>
actionTypes.reduce((acc: ResponseActionType[], actionType) => {
const isEndpointAction = actionType.id === ResponseActionTypesEnum['.endpoint'];
- if (!enabledFeatures.endpoint && isEndpointAction) return acc;
if (ResponseActionTypes.options.includes(actionType.id))
return [
...acc,
diff --git a/x-pack/plugins/security_solution/public/detection_engine/rule_response_actions/use_supported_response_action_types.tsx b/x-pack/plugins/security_solution/public/detection_engine/rule_response_actions/use_supported_response_action_types.tsx
index aed3d0302f05c..5d6f7a01bf076 100644
--- a/x-pack/plugins/security_solution/public/detection_engine/rule_response_actions/use_supported_response_action_types.tsx
+++ b/x-pack/plugins/security_solution/public/detection_engine/rule_response_actions/use_supported_response_action_types.tsx
@@ -7,7 +7,6 @@
import { useEffect, useMemo, useState } from 'react';
import { useUserPrivileges } from '../../common/components/user_privileges';
-import { useIsExperimentalFeatureEnabled } from '../../common/hooks/use_experimental_features';
import type { ResponseActionType } from './get_supported_response_actions';
import { getSupportedResponseActions, responseActionTypes } from './get_supported_response_actions';
@@ -16,15 +15,8 @@ export const useSupportedResponseActionTypes = () => {
ResponseActionType[] | undefined
>();
- const isEndpointEnabled = useIsExperimentalFeatureEnabled('endpointResponseActionsEnabled');
const { canIsolateHost, canKillProcess, canSuspendProcess } =
useUserPrivileges().endpointPrivileges;
- const enabledFeatures = useMemo(
- () => ({
- endpoint: isEndpointEnabled,
- }),
- [isEndpointEnabled]
- );
const userHasPermissionsToExecute = useMemo(
() => ({
@@ -36,11 +28,10 @@ export const useSupportedResponseActionTypes = () => {
useEffect(() => {
const supportedTypes = getSupportedResponseActions(
responseActionTypes,
- enabledFeatures,
userHasPermissionsToExecute
);
setSupportedResponseActionTypes(supportedTypes);
- }, [isEndpointEnabled, enabledFeatures, userHasPermissionsToExecute]);
+ }, [userHasPermissionsToExecute]);
return supportedResponseActionTypes;
};
diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/left/components/response_details.test.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/left/components/response_details.test.tsx
index e8be41c601844..9b11ccbb516ba 100644
--- a/x-pack/plugins/security_solution/public/flyout/document_details/left/components/response_details.test.tsx
+++ b/x-pack/plugins/security_solution/public/flyout/document_details/left/components/response_details.test.tsx
@@ -12,7 +12,6 @@ import { DocumentDetailsContext } from '../../shared/context';
import { rawEventData, TestProviders } from '../../../../common/mock';
import { RESPONSE_DETAILS_TEST_ID } from './test_ids';
import { ResponseDetails } from './response_details';
-import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features';
jest.mock('../../../../common/hooks/use_experimental_features');
jest.mock('../../../../common/lib/kibana', () => {
@@ -98,19 +97,6 @@ const renderResponseDetails = (contextValue: DocumentDetailsContext) =>
);
describe('', () => {
- let featureFlags: { endpointResponseActionsEnabled: boolean; responseActionsEnabled: boolean };
-
- beforeEach(() => {
- featureFlags = { endpointResponseActionsEnabled: true, responseActionsEnabled: true };
-
- const useIsExperimentalFeatureEnabledMock = (feature: keyof typeof featureFlags) =>
- featureFlags[feature];
-
- (useIsExperimentalFeatureEnabled as jest.Mock).mockImplementation(
- useIsExperimentalFeatureEnabledMock
- );
- });
-
it('should render the view with response actions', () => {
const wrapper = renderResponseDetails(contextWithResponseActions);
@@ -120,17 +106,6 @@ describe('', () => {
// TODO mock osquery results
});
- it('should render the view with osquery only', () => {
- featureFlags.responseActionsEnabled = true;
- featureFlags.endpointResponseActionsEnabled = false;
-
- const wrapper = renderResponseDetails(contextWithResponseActions);
-
- expect(wrapper.getByTestId(RESPONSE_DETAILS_TEST_ID)).toBeInTheDocument();
- expect(wrapper.queryByTestId('responseActionsViewWrapper')).not.toBeInTheDocument();
- expect(wrapper.getByTestId('osqueryViewWrapper')).toBeInTheDocument();
- });
-
it('should render the empty information', () => {
const wrapper = renderResponseDetails(defaultContextValue);
diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/left/components/response_details.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/left/components/response_details.tsx
index c240799639166..5081bdad9c17f 100644
--- a/x-pack/plugins/security_solution/public/flyout/document_details/left/components/response_details.tsx
+++ b/x-pack/plugins/security_solution/public/flyout/document_details/left/components/response_details.tsx
@@ -11,8 +11,6 @@ import styled from 'styled-components';
import { FormattedMessage } from '@kbn/i18n-react';
import { RESPONSE_DETAILS_TEST_ID } from './test_ids';
import { useDocumentDetailsContext } from '../../shared/context';
-import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features';
-import { useOsqueryTab } from '../../../../common/components/event_details/osquery_tab';
import { useResponseActionsView } from '../../../../common/components/event_details/response_actions_view';
const ExtendedFlyoutWrapper = styled.div`
@@ -25,18 +23,11 @@ const ExtendedFlyoutWrapper = styled.div`
*/
export const ResponseDetails: React.FC = () => {
const { searchHit, dataAsNestedObject, isPreview } = useDocumentDetailsContext();
- const endpointResponseActionsEnabled = useIsExperimentalFeatureEnabled(
- 'endpointResponseActionsEnabled'
- );
const responseActionsView = useResponseActionsView({
rawEventData: searchHit,
ecsData: dataAsNestedObject,
});
- const osqueryView = useOsqueryTab({
- rawEventData: searchHit,
- ecsData: dataAsNestedObject,
- });
return (
@@ -57,9 +48,7 @@ export const ResponseDetails: React.FC = () => {
-
- {endpointResponseActionsEnabled ? responseActionsView?.content : osqueryView?.content}
-
+ {responseActionsView?.content}
>
)}
diff --git a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/actions_log_filters.tsx b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/actions_log_filters.tsx
index f403ba6f6aacd..b950c3f343e18 100644
--- a/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/actions_log_filters.tsx
+++ b/x-pack/plugins/security_solution/public/management/components/endpoint_response_actions_list/components/actions_log_filters.tsx
@@ -55,9 +55,6 @@ export const ActionsLogFilters = memo(
'data-test-subj'?: string;
}) => {
const getTestId = useTestIdGenerator(dataTestSubj);
- const responseActionsEnabled = useIsExperimentalFeatureEnabled(
- 'endpointResponseActionsEnabled'
- );
const isSentinelOneV1Enabled = useIsExperimentalFeatureEnabled(
'responseActionsSentinelOneV1Enabled'
@@ -86,26 +83,24 @@ export const ActionsLogFilters = memo(
onChangeFilterOptions={onChangeStatusesFilter}
data-test-subj={dataTestSubj}
/>
- {isSentinelOneV1Enabled
- ? responseActionsEnabled && (
-
- )
- : responseActionsEnabled && (
-
- )}
+ {isSentinelOneV1Enabled ? (
+
+ ) : (
+
+ )}
>
);
}, [
@@ -116,7 +111,6 @@ export const ActionsLogFilters = memo(
dataTestSubj,
onChangeCommandsFilter,
onChangeStatusesFilter,
- responseActionsEnabled,
onChangeAgentTypesFilter,
onChangeTypeFilter,
]);
diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/create_rule/route.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/create_rule/route.test.ts
index 1402518103e64..7441aec8c8fa5 100644
--- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/create_rule/route.test.ts
+++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/create_rule/route.test.ts
@@ -172,10 +172,6 @@ describe('Create rule route', () => {
});
});
describe('rule containing response actions', () => {
- beforeEach(() => {
- // @ts-expect-error We're writting to a read only property just for the purpose of the test
- clients.config.experimentalFeatures.endpointResponseActionsEnabled = true;
- });
const getResponseAction = (command: string = 'isolate', config?: object) => ({
action_type_id: '.endpoint',
params: {
diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/update_rule/route.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/update_rule/route.test.ts
index 80db9f68a853b..87f42a014c1d2 100644
--- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/update_rule/route.test.ts
+++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/api/rules/update_rule/route.test.ts
@@ -179,10 +179,6 @@ describe('Update rule route', () => {
});
});
describe('rule containing response actions', () => {
- beforeEach(() => {
- // @ts-expect-error We're writting to a read only property just for the purpose of the test
- clients.config.experimentalFeatures.endpointResponseActionsEnabled = true;
- });
const getResponseAction = (command: string = 'isolate', config?: object) => ({
action_type_id: '.endpoint',
params: {
diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/utils/validate.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/utils/validate.ts
index dd77122ac4560..500db54acd867 100644
--- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/utils/validate.ts
+++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_management/utils/validate.ts
@@ -64,9 +64,7 @@ export const validateResponseActionsPermissions = async (
ruleUpdate: RuleCreateProps | RuleUpdateProps,
existingRule?: RuleAlertType | null
): Promise => {
- const { experimentalFeatures } = await securitySolution.getConfig();
-
- if (!experimentalFeatures.endpointResponseActionsEnabled || !isQueryRule(ruleUpdate.type)) {
+ if (!isQueryRule(ruleUpdate.type)) {
return;
}
diff --git a/x-pack/test/defend_workflows_cypress/config.ts b/x-pack/test/defend_workflows_cypress/config.ts
index 09c08fca6996c..a8502edcabe24 100644
--- a/x-pack/test/defend_workflows_cypress/config.ts
+++ b/x-pack/test/defend_workflows_cypress/config.ts
@@ -48,9 +48,6 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) {
`--xpack.fleet.agents.elasticsearch.host=http://${hostIp}:${kibanaCommonTestsConfig.get(
'servers.elasticsearch.port'
)}`,
- `--xpack.securitySolution.enableExperimental=${JSON.stringify([
- 'endpointResponseActionsEnabled',
- ])}`,
],
},
};