mirror of
https://github.com/elastic/kibana.git
synced 2025-06-27 10:40:07 -04:00
[Security Solution] move detection_engine files out of the detections folder (#221867)
## Summary This PR is only moving files and update file paths. No code changes are implemented whatsoever. The PR focuses on moving a bunch of folders and files that lived under the `detections` folder but were actually only used within the `detection_engine` folder. - if the files/folders were used within a single `detection_engine` folder (like for example `rule_actions_overflow` is only used within `rule_details_ui`) then things were moved closest to where it was used) - if the files/folders were used within multiple `detection_engine` folders, then things were moved into a `components` folder under the existing `common` folder at the root of `detection_engine` **_If there are any folders or files that you feel should live in a specific folder, let me know. I'm happy to move things around some more!_** ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios
This commit is contained in:
parent
dbe3a5d769
commit
9b4f96731b
55 changed files with 120 additions and 122 deletions
2
.github/CODEOWNERS
vendored
2
.github/CODEOWNERS
vendored
|
@ -2514,8 +2514,6 @@ x-pack/test/security_solution_cypress/cypress/tasks/expandable_flyout @elastic/
|
|||
/x-pack/solutions/security/plugins/security_solution/public/detection_engine/rule_management_ui @elastic/security-detection-rule-management
|
||||
/x-pack/solutions/security/plugins/security_solution/public/detection_engine/rule_monitoring @elastic/security-detection-rule-management
|
||||
/x-pack/solutions/security/plugins/security_solution/public/detections/components/callouts @elastic/security-detection-rule-management
|
||||
/x-pack/solutions/security/plugins/security_solution/public/detections/components/rules @elastic/security-detection-rule-management
|
||||
/x-pack/solutions/security/plugins/security_solution/public/detections/components/rules/rule_preview @elastic/security-detection-engine
|
||||
/x-pack/solutions/security/plugins/security_solution/public/detections/containers/detection_engine/rules @elastic/security-detection-rule-management
|
||||
/x-pack/solutions/security/plugins/security_solution/public/detections/mitre @elastic/security-detection-rule-management
|
||||
/x-pack/solutions/security/plugins/security_solution/public/detection_engine/common @elastic/security-detection-rule-management
|
||||
|
|
|
@ -231,6 +231,11 @@ module.exports = {
|
|||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]common[\/\\]components[\/\\]utility_bar[\/\\]utility_bar_action.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]common[\/\\]mock[\/\\]storybook_providers.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]common[\/\\]mock[\/\\]test_providers.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]common[\/\\]components[\/\\]related_integrations[\/\\]integrations_description[\/\\]index.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]common[\/\\]components[\/\\]related_integrations[\/\\]integrations_description[\/\\]integration_status_badge.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]common[\/\\]components[\/\\]related_integrations[\/\\]integrations_description[\/\\]integration_version_mismatch_icon.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]common[\/\\]components[\/\\]related_integrations[\/\\]integrations_popover[\/\\]index.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]common[\/\\]components[\/\\]rule_switch[\/\\]index.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]rule_creation[\/\\]components[\/\\]eql_query_edit[\/\\]eql_overview_link.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]rule_creation[\/\\]components[\/\\]ml_job_link[\/\\]ml_job_link.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]rule_creation[\/\\]components[\/\\]step_about_rule_details[\/\\]index.test.tsx/,
|
||||
|
@ -256,6 +261,7 @@ module.exports = {
|
|||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]rule_creation_ui[\/\\]pages[\/\\]rule_creation[\/\\]index.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]rule_details_ui[\/\\]pages[\/\\]rule_details[\/\\]execution_log_table[\/\\]execution_log_table.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]rule_details_ui[\/\\]pages[\/\\]rule_details[\/\\]index.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]rule_details_ui[\/\\]pages[\/\\]rule_details[\/\\]rule_actions_overflow[\/\\]index.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]rule_exceptions[\/\\]components[\/\\]add_exception_flyout[\/\\]index.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]rule_exceptions[\/\\]components[\/\\]all_exception_items_table[\/\\]all_items.test.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]rule_exceptions[\/\\]components[\/\\]all_exception_items_table[\/\\]all_items.tsx/,
|
||||
|
@ -278,6 +284,7 @@ module.exports = {
|
|||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]rule_management[\/\\]components[\/\\]rule_details[\/\\]badge_list.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]rule_management[\/\\]components[\/\\]rule_details[\/\\]rule_about_section.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]rule_management[\/\\]components[\/\\]rule_details[\/\\]rule_details_flyout.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]rule_management_ui[\/\\]components[\/\\]pre_packaged_rules[\/\\]load_empty_prompt.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]rule_management_ui[\/\\]components[\/\\]rules_table[\/\\]add_prebuilt_rules_table[\/\\]add_prebuilt_rules_table_filters.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]rule_management_ui[\/\\]components[\/\\]rules_table[\/\\]rules_table_filters[\/\\]rule_search_field.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detection_engine[\/\\]rule_management_ui[\/\\]components[\/\\]rules_table[\/\\]rules_table_filters[\/\\]rules_table_filters.tsx/,
|
||||
|
@ -299,13 +306,6 @@ module.exports = {
|
|||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detections[\/\\]components[\/\\]alerts_table[\/\\]additional_filters_action[\/\\]index.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detections[\/\\]components[\/\\]alerts_table[\/\\]index.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detections[\/\\]components[\/\\]osquery[\/\\]osquery_flyout.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detections[\/\\]components[\/\\]rules[\/\\]pre_packaged_rules[\/\\]load_empty_prompt.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detections[\/\\]components[\/\\]rules[\/\\]related_integrations[\/\\]integrations_description[\/\\]index.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detections[\/\\]components[\/\\]rules[\/\\]related_integrations[\/\\]integrations_description[\/\\]integration_status_badge.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detections[\/\\]components[\/\\]rules[\/\\]related_integrations[\/\\]integrations_description[\/\\]integration_version_mismatch_icon.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detections[\/\\]components[\/\\]rules[\/\\]related_integrations[\/\\]integrations_popover[\/\\]index.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detections[\/\\]components[\/\\]rules[\/\\]rule_actions_overflow[\/\\]index.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detections[\/\\]components[\/\\]rules[\/\\]rule_switch[\/\\]index.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detections[\/\\]components[\/\\]severity[\/\\]index.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detections[\/\\]components[\/\\]status[\/\\]index.tsx/,
|
||||
/x-pack[\/\\]solutions[\/\\]security[\/\\]plugins[\/\\]security_solution[\/\\]public[\/\\]detections[\/\\]components[\/\\]value_lists_management_flyout[\/\\]reference_error_modal[\/\\]reference_error_modal.tsx/,
|
||||
|
|
|
@ -9,7 +9,7 @@ import React from 'react';
|
|||
import styled from 'styled-components';
|
||||
|
||||
import type { RelatedIntegrationArray } from '../../../../../../common/api/detection_engine/model/rule_schema';
|
||||
import type { ListItems } from '../../../../../detection_engine/rule_creation_ui/components/description_step/types';
|
||||
import type { ListItems } from '../../../../rule_creation_ui/components/description_step/types';
|
||||
import type { IntegrationDetails } from '../integration_details';
|
||||
import { useRelatedIntegrations } from '../use_related_integrations';
|
||||
|
|
@ -5,15 +5,15 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { cleanup, waitFor, renderHook } from '@testing-library/react';
|
||||
import { cleanup, renderHook, waitFor } from '@testing-library/react';
|
||||
|
||||
import { useIntegrations } from './use_integrations';
|
||||
|
||||
import { fleetIntegrationsApi } from '../../../../detection_engine/fleet_integrations/api';
|
||||
import { fleetIntegrationsApi } from '../../../fleet_integrations/api';
|
||||
import { useToasts } from '../../../../common/lib/kibana';
|
||||
import { createReactQueryWrapper } from '../../../../common/mock';
|
||||
|
||||
jest.mock('../../../../detection_engine/fleet_integrations/api');
|
||||
jest.mock('../../../fleet_integrations/api');
|
||||
jest.mock('../../../../common/lib/kibana');
|
||||
|
||||
describe('useIntegrations', () => {
|
|
@ -8,7 +8,7 @@
|
|||
import { useQuery } from '@tanstack/react-query';
|
||||
|
||||
import type { Integration } from '../../../../../common/api/detection_engine/fleet_integrations';
|
||||
import { fleetIntegrationsApi } from '../../../../detection_engine/fleet_integrations';
|
||||
import { fleetIntegrationsApi } from '../../../fleet_integrations';
|
||||
|
||||
const ONE_MINUTE = 60000;
|
||||
|
|
@ -5,24 +5,22 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { mount, type ComponentType as EnzymeComponentType } from 'enzyme';
|
||||
import { type ComponentType as EnzymeComponentType, mount } from 'enzyme';
|
||||
import React from 'react';
|
||||
import { waitFor } from '@testing-library/react';
|
||||
|
||||
import { performBulkAction } from '../../../../detection_engine/rule_management/api/api';
|
||||
import { performBulkAction } from '../../../rule_management/api/api';
|
||||
import { RuleSwitchComponent } from '.';
|
||||
import { getRulesSchemaMock } from '../../../../../common/api/detection_engine/model/rule_schema/mocks';
|
||||
import { useRulesTableContextOptional } from '../../../../detection_engine/rule_management_ui/components/rules_table/rules_table/rules_table_context';
|
||||
import { useRulesTableContextMock } from '../../../../detection_engine/rule_management_ui/components/rules_table/rules_table/__mocks__/rules_table_context';
|
||||
import { useRulesTableContextOptional } from '../../../rule_management_ui/components/rules_table/rules_table/rules_table_context';
|
||||
import { useRulesTableContextMock } from '../../../rule_management_ui/components/rules_table/rules_table/__mocks__/rules_table_context';
|
||||
import { TestProviders } from '../../../../common/mock';
|
||||
import { useAppToasts } from '../../../../common/hooks/use_app_toasts';
|
||||
import { useAppToastsMock } from '../../../../common/hooks/use_app_toasts.mock';
|
||||
|
||||
jest.mock('../../../../common/hooks/use_app_toasts');
|
||||
jest.mock('../../../../detection_engine/rule_management/api/api');
|
||||
jest.mock(
|
||||
'../../../../detection_engine/rule_management_ui/components/rules_table/rules_table/rules_table_context'
|
||||
);
|
||||
jest.mock('../../../rule_management/api/api');
|
||||
jest.mock('../../../rule_management_ui/components/rules_table/rules_table/rules_table_context');
|
||||
jest.mock('../../../../common/lib/apm/use_start_transaction');
|
||||
|
||||
const useAppToastsValueMock = useAppToastsMock.create();
|
|
@ -12,8 +12,8 @@ import styled from 'styled-components';
|
|||
import { BulkActionTypeEnum } from '../../../../../common/api/detection_engine/rule_management';
|
||||
import { SINGLE_RULE_ACTIONS } from '../../../../common/lib/apm/user_actions';
|
||||
import { useStartTransaction } from '../../../../common/lib/apm/use_start_transaction';
|
||||
import { useExecuteBulkAction } from '../../../../detection_engine/rule_management/logic/bulk_actions/use_execute_bulk_action';
|
||||
import { useRulesTableContextOptional } from '../../../../detection_engine/rule_management_ui/components/rules_table/rules_table/rules_table_context';
|
||||
import { useExecuteBulkAction } from '../../../rule_management/logic/bulk_actions/use_execute_bulk_action';
|
||||
import { useRulesTableContextOptional } from '../../../rule_management_ui/components/rules_table/rules_table/rules_table_context';
|
||||
import { ruleSwitchAriaLabel } from './translations';
|
||||
|
||||
const StaticSwitch = styled(EuiSwitch)`
|
|
@ -12,17 +12,17 @@ import semver from 'semver';
|
|||
import { css } from '@emotion/css';
|
||||
import type { EuiComboBoxOptionOption } from '@elastic/eui';
|
||||
import {
|
||||
EuiTextTruncate,
|
||||
EuiButtonIcon,
|
||||
EuiComboBox,
|
||||
EuiFieldText,
|
||||
EuiFlexGroup,
|
||||
EuiFlexItem,
|
||||
EuiFormRow,
|
||||
EuiTextTruncate,
|
||||
} from '@elastic/eui';
|
||||
import type { FieldHook } from '../../../../shared_imports';
|
||||
import type { Integration, RelatedIntegration } from '../../../../../common/api/detection_engine';
|
||||
import { useIntegrations } from '../../../../detections/components/rules/related_integrations/use_integrations';
|
||||
import { useIntegrations } from '../../../common/components/related_integrations/use_integrations';
|
||||
import { IntegrationStatusBadge } from './integration_status_badge';
|
||||
import * as i18n from './translations';
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
*/
|
||||
|
||||
import { EuiDescriptionList, EuiFlexGroup, EuiFlexItem } from '@elastic/eui';
|
||||
import { isEmpty, chunk, get, pick, isNumber } from 'lodash/fp';
|
||||
import { chunk, get, isEmpty, isNumber, pick } from 'lodash/fp';
|
||||
import React, { memo, useState } from 'react';
|
||||
import styled from 'styled-components';
|
||||
import type { ThreatMapping, Threats, Type } from '@kbn/securitysolution-io-ts-alerting-types';
|
||||
|
@ -17,7 +17,7 @@ import type {
|
|||
RelatedIntegrationArray,
|
||||
RequiredFieldArray,
|
||||
} from '../../../../../common/api/detection_engine/model/rule_schema';
|
||||
import { buildRelatedIntegrationsDescription } from '../../../../detections/components/rules/related_integrations/integrations_description';
|
||||
import { buildRelatedIntegrationsDescription } from '../../../common/components/related_integrations/integrations_description';
|
||||
import { DEFAULT_TIMELINE_TITLE } from '../../../../timelines/components/timeline/translations';
|
||||
import type { EqlOptions } from '../../../../../common/search_strategy';
|
||||
import { useKibana } from '../../../../common/lib/kibana';
|
||||
|
@ -26,26 +26,26 @@ import type { FieldValueTimeline } from '../../../rule_creation/components/pick_
|
|||
import type { FormSchema } from '../../../../shared_imports';
|
||||
import type { ListItems } from './types';
|
||||
import {
|
||||
buildAlertSuppressionDescription,
|
||||
buildAlertSuppressionMissingFieldsDescription,
|
||||
buildAlertSuppressionWindowDescription,
|
||||
buildEqlOptionsDescription,
|
||||
buildHighlightedFieldsOverrideDescription,
|
||||
buildIntervalDescription,
|
||||
buildNoteDescription,
|
||||
buildQueryBarDescription,
|
||||
buildRequiredFieldsDescription,
|
||||
buildRiskScoreDescription,
|
||||
buildRuleTypeDescription,
|
||||
buildSetupDescription,
|
||||
buildSeverityDescription,
|
||||
buildStringArrayDescription,
|
||||
buildThreatDescription,
|
||||
buildThreatMappingDescription,
|
||||
buildThresholdDescription,
|
||||
buildUnorderedListArrayDescription,
|
||||
buildUrlsDescription,
|
||||
buildNoteDescription,
|
||||
buildRiskScoreDescription,
|
||||
buildRuleTypeDescription,
|
||||
buildThresholdDescription,
|
||||
buildThreatMappingDescription,
|
||||
buildEqlOptionsDescription,
|
||||
buildRequiredFieldsDescription,
|
||||
buildAlertSuppressionDescription,
|
||||
buildAlertSuppressionWindowDescription,
|
||||
buildAlertSuppressionMissingFieldsDescription,
|
||||
buildHighlightedFieldsOverrideDescription,
|
||||
buildSetupDescription,
|
||||
getQueryLabel,
|
||||
buildIntervalDescription,
|
||||
} from './helpers';
|
||||
import * as i18n from './translations';
|
||||
import { buildMlJobsDescription } from './build_ml_jobs_description';
|
||||
|
@ -55,10 +55,10 @@ import { filterEmptyThreats } from '../../pages/rule_creation/helpers';
|
|||
import { useLicense } from '../../../../common/hooks/use_license';
|
||||
import type { LicenseService } from '../../../../../common/license';
|
||||
import {
|
||||
isThresholdRule,
|
||||
isSuppressionRuleConfiguredWithMissingFields,
|
||||
isSuppressionRuleConfiguredWithGroupBy,
|
||||
isSuppressionRuleConfiguredWithDuration,
|
||||
isSuppressionRuleConfiguredWithGroupBy,
|
||||
isSuppressionRuleConfiguredWithMissingFields,
|
||||
isThresholdRule,
|
||||
} from '../../../../../common/detection_engine/utils';
|
||||
import {
|
||||
ALERT_SUPPRESSION_DURATION_FIELD_NAME,
|
||||
|
@ -80,6 +80,7 @@ import type { FieldValueQueryBar } from '../query_bar_field';
|
|||
|
||||
const DescriptionListContainer = styled(EuiDescriptionList)`
|
||||
max-width: 600px;
|
||||
|
||||
.euiDescriptionList__description {
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
|
|
|
@ -78,7 +78,7 @@ import {
|
|||
buildShowBuildingBlockFilter,
|
||||
buildThreatMatchFilter,
|
||||
} from '../../../../detections/components/alerts_table/default_config';
|
||||
import { RuleSwitch } from '../../../../detections/components/rules/rule_switch';
|
||||
import { RuleSwitch } from '../../../common/components/rule_switch';
|
||||
import { StepPanel } from '../../../rule_creation/components/step_panel';
|
||||
import {
|
||||
getMachineLearningJobId,
|
||||
|
@ -89,7 +89,7 @@ import { CreatedBy, UpdatedBy } from '../../../../detections/components/rules/ru
|
|||
import { useGlobalTime } from '../../../../common/containers/use_global_time';
|
||||
import { inputsSelectors } from '../../../../common/store/inputs';
|
||||
import { setAbsoluteRangeDatePicker } from '../../../../common/store/inputs/actions';
|
||||
import { RuleActionsOverflow } from '../../../../detections/components/rules/rule_actions_overflow';
|
||||
import { RuleActionsOverflow } from './rule_actions_overflow';
|
||||
import { useMlCapabilities } from '../../../../common/components/ml/hooks/use_ml_capabilities';
|
||||
import { hasMlAdminPermissions } from '../../../../../common/machine_learning/has_ml_admin_permissions';
|
||||
import { hasMlLicense } from '../../../../../common/machine_learning/has_ml_license';
|
||||
|
@ -117,7 +117,7 @@ import {
|
|||
RuleStatus,
|
||||
RuleStatusFailedCallOut,
|
||||
ruleStatusI18n,
|
||||
} from '../../../../detections/components/rules/rule_execution_status';
|
||||
} from '../../../common/components/rule_execution_status';
|
||||
import { ExecutionEventsTable } from '../../../rule_monitoring';
|
||||
import { ExecutionLogTable } from './execution_log_table/execution_log_table';
|
||||
import { RuleBackfillsInfo } from '../../../rule_gaps/components/rule_backfills_info';
|
||||
|
|
|
@ -8,24 +8,22 @@
|
|||
import { fireEvent, render, waitFor } from '@testing-library/react';
|
||||
import React from 'react';
|
||||
import { RuleActionsOverflow } from '.';
|
||||
import { ManualRuleRunEventTypes } from '../../../../common/lib/telemetry';
|
||||
import { TestProviders } from '../../../../common/mock';
|
||||
import { useBulkExport } from '../../../../detection_engine/rule_management/logic/bulk_actions/use_bulk_export';
|
||||
import { useExecuteBulkAction } from '../../../../detection_engine/rule_management/logic/bulk_actions/use_execute_bulk_action';
|
||||
import { mockRule } from '../../../../detection_engine/rule_management_ui/components/rules_table/__mocks__/mock';
|
||||
import { ManualRuleRunEventTypes } from '../../../../../common/lib/telemetry';
|
||||
import { TestProviders } from '../../../../../common/mock';
|
||||
import { useBulkExport } from '../../../../rule_management/logic/bulk_actions/use_bulk_export';
|
||||
import { useExecuteBulkAction } from '../../../../rule_management/logic/bulk_actions/use_execute_bulk_action';
|
||||
import { mockRule } from '../../../../rule_management_ui/components/rules_table/__mocks__/mock';
|
||||
|
||||
const showBulkDuplicateExceptionsConfirmation = () => Promise.resolve(null);
|
||||
const showManualRuleRunConfirmation = () => Promise.resolve(null);
|
||||
|
||||
jest.mock('../../../../common/hooks/use_experimental_features');
|
||||
jest.mock(
|
||||
'../../../../detection_engine/rule_management/logic/bulk_actions/use_execute_bulk_action'
|
||||
);
|
||||
jest.mock('../../../../detection_engine/rule_management/logic/bulk_actions/use_bulk_export');
|
||||
jest.mock('../../../../../common/hooks/use_experimental_features');
|
||||
jest.mock('../../../../rule_management/logic/bulk_actions/use_execute_bulk_action');
|
||||
jest.mock('../../../../rule_management/logic/bulk_actions/use_bulk_export');
|
||||
|
||||
const mockReportEvent = jest.fn();
|
||||
jest.mock('../../../../common/lib/kibana', () => {
|
||||
const actual = jest.requireActual('../../../../common/lib/kibana');
|
||||
jest.mock('../../../../../common/lib/kibana', () => {
|
||||
const actual = jest.requireActual('../../../../../common/lib/kibana');
|
||||
return {
|
||||
...actual,
|
||||
useKibana: jest.fn().mockImplementation(() => {
|
|
@ -14,27 +14,27 @@ import {
|
|||
} from '@elastic/eui';
|
||||
import React, { useCallback, useMemo } from 'react';
|
||||
import styled from 'styled-components';
|
||||
import { useScheduleRuleRun } from '../../../../detection_engine/rule_gaps/logic/use_schedule_rule_run';
|
||||
import type { TimeRange } from '../../../../detection_engine/rule_gaps/types';
|
||||
import { APP_UI_ID, SecurityPageName } from '../../../../../common/constants';
|
||||
import { DuplicateOptions } from '../../../../../common/detection_engine/rule_management/constants';
|
||||
import { BulkActionTypeEnum } from '../../../../../common/api/detection_engine/rule_management';
|
||||
import { getRulesUrl } from '../../../../common/components/link_to/redirect_to_detection_engine';
|
||||
import { useBoolState } from '../../../../common/hooks/use_bool_state';
|
||||
import { SINGLE_RULE_ACTIONS } from '../../../../common/lib/apm/user_actions';
|
||||
import { useStartTransaction } from '../../../../common/lib/apm/use_start_transaction';
|
||||
import { useKibana } from '../../../../common/lib/kibana';
|
||||
import { canEditRuleWithActions } from '../../../../common/utils/privileges';
|
||||
import type { Rule } from '../../../../detection_engine/rule_management/logic';
|
||||
import { useBulkExport } from '../../../../detection_engine/rule_management/logic/bulk_actions/use_bulk_export';
|
||||
import { useScheduleRuleRun } from '../../../../rule_gaps/logic/use_schedule_rule_run';
|
||||
import type { TimeRange } from '../../../../rule_gaps/types';
|
||||
import { APP_UI_ID, SecurityPageName } from '../../../../../../common';
|
||||
import { DuplicateOptions } from '../../../../../../common/detection_engine/rule_management/constants';
|
||||
import { BulkActionTypeEnum } from '../../../../../../common/api/detection_engine/rule_management';
|
||||
import { getRulesUrl } from '../../../../../common/components/link_to/redirect_to_detection_engine';
|
||||
import { useBoolState } from '../../../../../common/hooks/use_bool_state';
|
||||
import { SINGLE_RULE_ACTIONS } from '../../../../../common/lib/apm/user_actions';
|
||||
import { useStartTransaction } from '../../../../../common/lib/apm/use_start_transaction';
|
||||
import { useKibana } from '../../../../../common/lib/kibana';
|
||||
import { canEditRuleWithActions } from '../../../../../common/utils/privileges';
|
||||
import type { Rule } from '../../../../rule_management/logic';
|
||||
import { useBulkExport } from '../../../../rule_management/logic/bulk_actions/use_bulk_export';
|
||||
import {
|
||||
goToRuleEditPage,
|
||||
useExecuteBulkAction,
|
||||
} from '../../../../detection_engine/rule_management/logic/bulk_actions/use_execute_bulk_action';
|
||||
import { useDownloadExportedRules } from '../../../../detection_engine/rule_management/logic/bulk_actions/use_download_exported_rules';
|
||||
import * as i18nActions from '../../../../detection_engine/common/translations';
|
||||
} from '../../../../rule_management/logic/bulk_actions/use_execute_bulk_action';
|
||||
import { useDownloadExportedRules } from '../../../../rule_management/logic/bulk_actions/use_download_exported_rules';
|
||||
import * as i18nActions from '../../../../common/translations';
|
||||
import * as i18n from './translations';
|
||||
import { ManualRuleRunEventTypes } from '../../../../common/lib/telemetry';
|
||||
import { ManualRuleRunEventTypes } from '../../../../../common/lib/telemetry';
|
||||
|
||||
const MyEuiButtonIcon = styled(EuiButtonIcon)`
|
||||
&.euiButtonIcon {
|
|
@ -7,20 +7,20 @@
|
|||
|
||||
import React, { useMemo } from 'react';
|
||||
import { isEmpty } from 'lodash/fp';
|
||||
import {
|
||||
EuiDescriptionList,
|
||||
EuiText,
|
||||
EuiFlexGrid,
|
||||
EuiFlexItem,
|
||||
EuiFlexGroup,
|
||||
EuiLoadingSpinner,
|
||||
EuiButtonIcon,
|
||||
EuiPopover,
|
||||
} from '@elastic/eui';
|
||||
import type { EuiDescriptionListProps } from '@elastic/eui';
|
||||
import {
|
||||
EuiButtonIcon,
|
||||
EuiDescriptionList,
|
||||
EuiFlexGrid,
|
||||
EuiFlexGroup,
|
||||
EuiFlexItem,
|
||||
EuiLoadingSpinner,
|
||||
EuiPopover,
|
||||
EuiText,
|
||||
} from '@elastic/eui';
|
||||
import type {
|
||||
Type,
|
||||
ThreatMapping as ThreatMappingType,
|
||||
Type,
|
||||
} from '@kbn/securitysolution-io-ts-alerting-types';
|
||||
import type { Filter } from '@kbn/es-query';
|
||||
import type { SavedQuery } from '@kbn/data-plugin/public';
|
||||
|
@ -38,7 +38,7 @@ import type {
|
|||
import { AlertSuppressionMissingFieldsStrategyEnum } from '../../../../../common/api/detection_engine/model/rule_schema';
|
||||
import { assertUnreachable } from '../../../../../common/utility_types';
|
||||
import * as descriptionStepI18n from '../../../rule_creation_ui/components/description_step/translations';
|
||||
import { RelatedIntegrationsDescription } from '../../../../detections/components/rules/related_integrations/integrations_description';
|
||||
import { RelatedIntegrationsDescription } from '../../../common/components/related_integrations/integrations_description';
|
||||
import { AlertSuppressionLabel } from '../../../rule_creation_ui/components/description_step/alert_suppression_label';
|
||||
import { useGetSavedQuery } from '../../../common/use_get_saved_query';
|
||||
import * as threatMatchI18n from '../../../../common/components/threat_match/translations';
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
import React from 'react';
|
||||
import { EuiDescriptionList } from '@elastic/eui';
|
||||
import * as ruleDetailsI18n from '../../../../translations';
|
||||
import { RelatedIntegrationsDescription } from '../../../../../../../../detections/components/rules/related_integrations/integrations_description';
|
||||
import { RelatedIntegrationsDescription } from '../../../../../../../common/components/related_integrations/integrations_description';
|
||||
import type { RelatedIntegrationArray } from '../../../../../../../../../common/api/detection_engine';
|
||||
import { EmptyFieldValuePlaceholder } from '../../empty_field_value_placeholder';
|
||||
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
|
||||
import React from 'react';
|
||||
import {
|
||||
EuiButtonIcon,
|
||||
EuiPopover,
|
||||
EuiText,
|
||||
EuiPopoverFooter,
|
||||
EuiPopoverTitle,
|
||||
EuiSpacer,
|
||||
EuiPopoverFooter,
|
||||
EuiButtonIcon,
|
||||
EuiText,
|
||||
} from '@elastic/eui';
|
||||
|
||||
import { RuleExecutionStatusEnum } from '../../../../../common/api/detection_engine/rule_monitoring';
|
||||
|
@ -24,7 +24,7 @@ import { getRuleDetailsTabUrl } from '../../../../common/components/link_to/redi
|
|||
import { SecurityPageName } from '../../../../../common/constants';
|
||||
import { SecuritySolutionLinkButton } from '../../../../common/components/links';
|
||||
import { isMlRule } from '../../../../../common/detection_engine/utils';
|
||||
import { getCapitalizedStatusText } from '../../../../detections/components/rules/rule_execution_status/utils';
|
||||
import { getCapitalizedStatusText } from '../../../common/components/rule_execution_status/utils';
|
||||
import type { Rule } from '../../../rule_management/logic';
|
||||
import { isJobStarted } from '../../../../../common/machine_learning/helpers';
|
||||
import { RuleDetailTabs } from '../../../rule_details_ui/pages/rule_details/use_rule_details_tabs';
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
import { EuiBadge, EuiButton, EuiButtonEmpty } from '@elastic/eui';
|
||||
import React from 'react';
|
||||
import { css } from '@emotion/react';
|
||||
import { INSTALL_PREBUILT_RULES_ANCHOR } from '../../../../detection_engine/rule_management_ui/components/rules_table/rules_table/guided_onboarding/rules_management_tour';
|
||||
import { INSTALL_PREBUILT_RULES_ANCHOR } from '../rules_table/rules_table/guided_onboarding/rules_management_tour';
|
||||
import * as i18n from './translations';
|
||||
import { useGetSecuritySolutionLinkProps } from '../../../../common/components/links';
|
||||
import { SecurityPageName } from '../../../../../common';
|
||||
import { usePrebuiltRulesStatus } from '../../../../detection_engine/rule_management/logic/prebuilt_rules/use_prebuilt_rules_status';
|
||||
import { usePrebuiltRulesStatus } from '../../../rule_management/logic/prebuilt_rules/use_prebuilt_rules_status';
|
||||
|
||||
interface AddElasticRulesButtonProps {
|
||||
'data-test-subj'?: string;
|
|
@ -8,7 +8,7 @@
|
|||
import { EuiEmptyPrompt, EuiFlexGroup, EuiFlexItem } from '@elastic/eui';
|
||||
import React, { memo } from 'react';
|
||||
import styled from 'styled-components';
|
||||
import { useUserData } from '../../user_info';
|
||||
import { useUserData } from '../../../../detections/components/user_info';
|
||||
import { AddElasticRulesButton } from './add_elastic_rules_button';
|
||||
import * as i18n from './translations';
|
||||
|
|
@ -6,13 +6,13 @@
|
|||
*/
|
||||
|
||||
import type { EuiBasicTableColumn } from '@elastic/eui';
|
||||
import { EuiBadge, EuiText, EuiLink } from '@elastic/eui';
|
||||
import { EuiBadge, EuiLink, EuiText } from '@elastic/eui';
|
||||
import React, { useMemo } from 'react';
|
||||
import { RulesTableEmptyColumnName } from '../rules_table_empty_column_name';
|
||||
import { SHOW_RELATED_INTEGRATIONS_SETTING } from '../../../../../../common/constants';
|
||||
import { PopoverItems } from '../../../../../common/components/popover_items';
|
||||
import { useUiSetting$ } from '../../../../../common/lib/kibana';
|
||||
import { IntegrationsPopover } from '../../../../../detections/components/rules/related_integrations/integrations_popover';
|
||||
import { IntegrationsPopover } from '../../../../common/components/related_integrations/integrations_popover';
|
||||
import { SeverityBadge } from '../../../../../common/components/severity_badge';
|
||||
import * as i18n from '../../../../common/translations';
|
||||
import type { Rule } from '../../../../rule_management/logic';
|
||||
|
@ -21,8 +21,8 @@ import { hasUserCRUDPermission } from '../../../../../common/utils/privileges';
|
|||
import type { AddPrebuiltRulesTableActions } from './add_prebuilt_rules_table_context';
|
||||
import { useAddPrebuiltRulesTableContext } from './add_prebuilt_rules_table_context';
|
||||
import type {
|
||||
RuleSignatureId,
|
||||
RuleResponse,
|
||||
RuleSignatureId,
|
||||
} from '../../../../../../common/api/detection_engine/model/rule_schema';
|
||||
import { getNormalizedSeverity } from '../helpers';
|
||||
import { PrebuiltRulesInstallButton } from './add_prebuilt_rules_install_button';
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
|
||||
import React from 'react';
|
||||
import {
|
||||
EuiButtonIcon,
|
||||
EuiPopover,
|
||||
EuiText,
|
||||
EuiPopoverFooter,
|
||||
EuiPopoverTitle,
|
||||
EuiSpacer,
|
||||
EuiPopoverFooter,
|
||||
EuiButtonIcon,
|
||||
EuiText,
|
||||
} from '@elastic/eui';
|
||||
|
||||
import { RuleExecutionStatusEnum } from '../../../../../common/api/detection_engine/rule_monitoring';
|
||||
|
@ -24,7 +24,7 @@ import { getRuleDetailsTabUrl } from '../../../../common/components/link_to/redi
|
|||
import { SecurityPageName } from '../../../../../common/constants';
|
||||
import { SecuritySolutionLinkButton } from '../../../../common/components/links';
|
||||
import { isMlRule } from '../../../../../common/detection_engine/utils';
|
||||
import { getCapitalizedStatusText } from '../../../../detections/components/rules/rule_execution_status/utils';
|
||||
import { getCapitalizedStatusText } from '../../../common/components/rule_execution_status/utils';
|
||||
import type { Rule } from '../../../rule_management/logic';
|
||||
import { isJobStarted } from '../../../../../common/machine_learning/helpers';
|
||||
import { RuleDetailTabs } from '../../../rule_details_ui/pages/rule_details/use_rule_details_tabs';
|
||||
|
|
|
@ -12,8 +12,8 @@ import { EuiFilterButton, EuiPopover, EuiSelectable } from '@elastic/eui';
|
|||
import * as i18n from '../../../../common/translations';
|
||||
import type { RuleExecutionStatus } from '../../../../../../common/api/detection_engine';
|
||||
import { RuleExecutionStatusEnum } from '../../../../../../common/api/detection_engine';
|
||||
import { getCapitalizedStatusText } from '../../../../../detections/components/rules/rule_execution_status/utils';
|
||||
import { RuleStatusBadge } from '../../../../../detections/components/rules/rule_execution_status/rule_status_badge';
|
||||
import { getCapitalizedStatusText } from '../../../../common/components/rule_execution_status/utils';
|
||||
import { RuleStatusBadge } from '../../../../common/components/rule_execution_status';
|
||||
|
||||
interface OptionData {
|
||||
status: RuleExecutionStatus;
|
||||
|
|
|
@ -16,7 +16,7 @@ import { FormattedMessage } from '@kbn/i18n-react';
|
|||
import React, { useCallback, useMemo, useRef } from 'react';
|
||||
import { Loader } from '../../../../common/components/loader';
|
||||
import { useBoolState } from '../../../../common/hooks/use_bool_state';
|
||||
import { PrePackagedRulesPrompt } from '../../../../detections/components/rules/pre_packaged_rules/load_empty_prompt';
|
||||
import { PrePackagedRulesPrompt } from '../pre_packaged_rules/load_empty_prompt';
|
||||
import type { Rule } from '../../../rule_management/logic';
|
||||
import * as i18n from '../../../common/translations';
|
||||
import type { EuiBasicTableOnChange } from '../../../common/types';
|
||||
|
|
|
@ -23,7 +23,7 @@ import type { RuleSignatureId } from '../../../../../../common/api/detection_eng
|
|||
import { PopoverItems } from '../../../../../common/components/popover_items';
|
||||
import { useUiSetting$ } from '../../../../../common/lib/kibana';
|
||||
import { hasUserCRUDPermission } from '../../../../../common/utils/privileges';
|
||||
import { IntegrationsPopover } from '../../../../../detections/components/rules/related_integrations/integrations_popover';
|
||||
import { IntegrationsPopover } from '../../../../common/components/related_integrations/integrations_popover';
|
||||
import { SeverityBadge } from '../../../../../common/components/severity_badge';
|
||||
import { useUserData } from '../../../../../detections/components/user_info';
|
||||
import * as i18n from '../../../../common/translations';
|
||||
|
|
|
@ -30,9 +30,9 @@ import {
|
|||
canEditRuleWithActions,
|
||||
explainLackOfPermission,
|
||||
} from '../../../../common/utils/privileges';
|
||||
import { IntegrationsPopover } from '../../../../detections/components/rules/related_integrations/integrations_popover';
|
||||
import { RuleStatusBadge } from '../../../../detections/components/rules/rule_execution_status';
|
||||
import { RuleSwitch } from '../../../../detections/components/rules/rule_switch';
|
||||
import { IntegrationsPopover } from '../../../common/components/related_integrations/integrations_popover';
|
||||
import { RuleStatusBadge } from '../../../common/components/rule_execution_status';
|
||||
import { RuleSwitch } from '../../../common/components/rule_switch';
|
||||
import { SeverityBadge } from '../../../../common/components/severity_badge';
|
||||
import * as i18n from '../../../common/translations';
|
||||
import { RuleDetailTabs } from '../../../rule_details_ui/pages/rule_details/use_rule_details_tabs';
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
*/
|
||||
|
||||
import React from 'react';
|
||||
import { EuiButtonEmpty, EuiFlexGroup, EuiFlexItem, EuiToolTip, EuiSpacer } from '@elastic/eui';
|
||||
import { EuiButtonEmpty, EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiToolTip } from '@elastic/eui';
|
||||
import { MaintenanceWindowCallout } from '@kbn/alerts-ui-shared';
|
||||
import { DEFAULT_APP_CATEGORIES } from '@kbn/core-application-common';
|
||||
import { APP_UI_ID } from '../../../../../common/constants';
|
||||
|
@ -19,9 +19,9 @@ import { useKibana } from '../../../../common/lib/kibana';
|
|||
import { hasUserCRUDPermission } from '../../../../common/utils/privileges';
|
||||
import { SpyRoute } from '../../../../common/utils/route/spy_routes';
|
||||
import { MissingPrivilegesCallOut } from '../../../../detections/components/callouts/missing_privileges_callout';
|
||||
import { MlJobCompatibilityCallout } from '../../../../detections/components/callouts/ml_job_compatibility_callout';
|
||||
import { MlJobCompatibilityCallout } from '../../components/ml_job_compatibility_callout';
|
||||
import { NeedAdminForUpdateRulesCallOut } from '../../../../detections/components/callouts/need_admin_for_update_callout';
|
||||
import { AddElasticRulesButton } from '../../../../detections/components/rules/pre_packaged_rules/add_elastic_rules_button';
|
||||
import { AddElasticRulesButton } from '../../components/pre_packaged_rules/add_elastic_rules_button';
|
||||
import { ValueListsFlyout } from '../../../../detections/components/value_lists_management_flyout';
|
||||
import { useUserData } from '../../../../detections/components/user_info';
|
||||
import { useListsConfig } from '../../../../detections/containers/detection_engine/lists/use_lists_config';
|
||||
|
@ -31,7 +31,7 @@ import { AllRules } from '../../components/rules_table';
|
|||
import { RulesTableContextProvider } from '../../components/rules_table/rules_table/rules_table_context';
|
||||
import { HeaderPage } from '../../../../common/components/header_page';
|
||||
import { RuleUpdateCallouts } from '../../components/rule_update_callouts/rule_update_callouts';
|
||||
import { BlogPostPrebuiltRuleCustomizationCallout } from '../../../../detections/components/callouts/blog_post_prebuilt_rule_customization_callout';
|
||||
import { BlogPostPrebuiltRuleCustomizationCallout } from '../../components/blog_post_prebuilt_rule_customization_callout';
|
||||
import { RuleImportModal } from '../../components/rule_import_modal/rule_import_modal';
|
||||
|
||||
const RulesPageComponent: React.FC = () => {
|
||||
|
|
|
@ -10,11 +10,11 @@ import { EuiHealth } from '@elastic/eui';
|
|||
|
||||
import type { RuleExecutionStatus } from '../../../../../../../common/api/detection_engine/rule_monitoring';
|
||||
import { getEmptyTagValue } from '../../../../../../common/components/empty_value';
|
||||
import { RuleStatusBadge } from '../../../../../../detections/components/rules/rule_execution_status';
|
||||
import { RuleStatusBadge } from '../../../../../common/components/rule_execution_status';
|
||||
import {
|
||||
getCapitalizedStatusText,
|
||||
getStatusColor,
|
||||
} from '../../../../../../detections/components/rules/rule_execution_status/utils';
|
||||
} from '../../../../../common/components/rule_execution_status/utils';
|
||||
|
||||
const EMPTY_STATUS_TEXT = getEmptyTagValue();
|
||||
|
||||
|
|
|
@ -26,9 +26,12 @@ const mockUseIntegrations = jest.fn().mockReturnValue({
|
|||
data: [],
|
||||
});
|
||||
|
||||
jest.mock('../../../../detections/components/rules/related_integrations/use_integrations', () => ({
|
||||
useIntegrations: () => mockUseIntegrations(),
|
||||
}));
|
||||
jest.mock(
|
||||
'../../../../detection_engine/common/components/related_integrations/use_integrations',
|
||||
() => ({
|
||||
useIntegrations: () => mockUseIntegrations(),
|
||||
})
|
||||
);
|
||||
|
||||
jest.mock('../../../../common/hooks/use_space_id', () => ({
|
||||
useSpaceId: () => 'test-space-id',
|
||||
|
|
|
@ -9,7 +9,7 @@ import { useEffect, useMemo } from 'react';
|
|||
|
||||
import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features';
|
||||
import type { ManagedUserHits } from '../../../../../common/search_strategy/security_solution/users/managed_details';
|
||||
import { useIntegrations } from '../../../../detections/components/rules/related_integrations/use_integrations';
|
||||
import { useIntegrations } from '../../../../detection_engine/common/components/related_integrations/use_integrations';
|
||||
import { UsersQueries } from '../../../../../common/api/search_strategy';
|
||||
import { useSpaceId } from '../../../../common/hooks/use_space_id';
|
||||
import { useSearchStrategy } from '../../../../common/containers/use_search_strategy';
|
||||
|
@ -17,10 +17,10 @@ import { useGlobalTime } from '../../../../common/containers/use_global_time';
|
|||
import { useQueryInspector } from '../../../../common/components/page/manage_query';
|
||||
import {
|
||||
ENTRA_ID_PACKAGE_NAME,
|
||||
OKTA_PACKAGE_NAME,
|
||||
getEntraUserIndex,
|
||||
getOktaUserIndex,
|
||||
MANAGED_USER_QUERY_ID,
|
||||
OKTA_PACKAGE_NAME,
|
||||
} from '../constants';
|
||||
import * as i18n from '../translations';
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ import React from 'react';
|
|||
import { EuiHorizontalRule, EuiLoadingSpinner, EuiText } from '@elastic/eui';
|
||||
import { FormattedMessage } from '@kbn/i18n-react';
|
||||
import type { RelatedIntegration } from '../../../../../common/api/detection_engine';
|
||||
import { IntegrationsPopover } from '../../../../detections/components/rules/related_integrations/integrations_popover';
|
||||
import { IntegrationsPopover } from '../../../../detection_engine/common/components/related_integrations/integrations_popover';
|
||||
import type { RuleMigrationRule } from '../../../../../common/siem_migrations/model/rule_migration.gen';
|
||||
import * as i18n from './translations';
|
||||
import type { TableColumn } from './constants';
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue