Skip to content

Commit

Permalink
Merge branch 'main' into add-content-virtual-column
Browse files Browse the repository at this point in the history
  • Loading branch information
achyutjhunjhunwala authored Jan 8, 2024
2 parents 0d59148 + 0109320 commit 31d894d
Show file tree
Hide file tree
Showing 195 changed files with 272 additions and 210 deletions.
6 changes: 6 additions & 0 deletions packages/kbn-test/jest-preset.js
Original file line number Diff line number Diff line change
Expand Up @@ -124,4 +124,10 @@ module.exports = {
watchPathIgnorePatterns: ['.*/__tmp__/.*'],

resolver: '<rootDir>/packages/kbn-test/src/jest/resolver.js',

// Workaround to "TypeError: Cannot assign to read only property 'structuredClone' of object '[object global]'"
// This happens when we run jest tests with --watch after node20+
globals: {
structuredClone: {},
},
};
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import { FormattedMessage } from '@kbn/i18n-react';
import { INGESTION_METHOD_IDS } from '../../../../../common/constants';

import { generateEncodedPath } from '../../../shared/encode_path_params';
import { HttpLogic } from '../../../shared/http';
import { KibanaLogic } from '../../../shared/kibana';
import { handlePageChange } from '../../../shared/table_pagination';
import {
Expand All @@ -35,6 +36,8 @@ import {
import { EnterpriseSearchContentPageTemplate } from '../layout';
import { SelectConnector } from '../new_index/select_connector/select_connector';

import { CannotConnect } from '../search_index/components/cannot_connect';

import { ConnectorStats } from './connector_stats';
import { ConnectorsLogic } from './connectors_logic';
import { ConnectorsTable } from './connectors_table';
Expand All @@ -52,6 +55,7 @@ export interface ConnectorsProps {
export const Connectors: React.FC<ConnectorsProps> = ({ isCrawler }) => {
const { fetchConnectors, onPaginate, setIsFirstRequest } = useActions(ConnectorsLogic);
const { data, isLoading, searchParams, isEmpty, connectors } = useValues(ConnectorsLogic);
const { errorConnectingMessage } = useValues(HttpLogic);
const [searchQuery, setSearchValue] = useState('');

useEffect(() => {
Expand Down Expand Up @@ -122,6 +126,7 @@ export const Connectors: React.FC<ConnectorsProps> = ({ isCrawler }) => {
]
: [
<EuiButton
disabled={Boolean(errorConnectingMessage)}
key="newCrawler"
color="primary"
iconType="plusInCircle"
Expand All @@ -141,6 +146,12 @@ export const Connectors: React.FC<ConnectorsProps> = ({ isCrawler }) => {
],
}}
>
{Boolean(errorConnectingMessage) && (
<>
<CannotConnect />
<EuiSpacer />
</>
)}
<ConnectorStats isCrawler={isCrawler} />
<EuiSpacer />

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,18 @@
*/
import React from 'react';

import { useValues } from 'kea';

import { EuiButton, EuiEmptyPrompt, EuiPanel } from '@elastic/eui';
import { i18n } from '@kbn/i18n';

import { generateEncodedPath } from '../../../shared/encode_path_params';
import { HttpLogic } from '../../../shared/http';
import { KibanaLogic } from '../../../shared/kibana';
import { NEW_INDEX_METHOD_PATH } from '../../routes';

export const CrawlerEmptyState: React.FC = () => {
const { errorConnectingMessage } = useValues(HttpLogic);
return (
<EuiPanel hasBorder>
<EuiEmptyPrompt
Expand All @@ -39,6 +43,7 @@ export const CrawlerEmptyState: React.FC = () => {
actions={
<EuiButton
color="primary"
disabled={Boolean(errorConnectingMessage)}
fill
iconType="plusInCircle"
onClick={() =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,15 @@ import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui';

import { Status } from '../../../../../../common/types/api';
import { docLinks } from '../../../../shared/doc_links';
import { HttpLogic } from '../../../../shared/http';
import { KibanaLogic } from '../../../../shared/kibana';
import { LicensingLogic } from '../../../../shared/licensing';
import {
LicensingCallout,
LICENSING_FEATURE,
} from '../../../../shared/licensing_callout/licensing_callout';
import { CreateCrawlerIndexApiLogic } from '../../../api/crawler/create_crawler_index_api_logic';
import { CannotConnect } from '../../search_index/components/cannot_connect';
import { NewSearchIndexTemplate } from '../new_search_index_template';

import { MethodCrawlerLogic } from './method_crawler_logic';
Expand All @@ -29,6 +31,7 @@ export const MethodCrawler: React.FC = () => {
const { makeRequest } = useActions(CreateCrawlerIndexApiLogic);
const { isCloud } = useValues(KibanaLogic);
const { hasPlatinumLicense } = useValues(LicensingLogic);
const { errorConnectingMessage } = useValues(HttpLogic);

const isGated = !isCloud && !hasPlatinumLicense;

Expand All @@ -41,11 +44,16 @@ export const MethodCrawler: React.FC = () => {
<LicensingCallout feature={LICENSING_FEATURE.CRAWLER} />
</EuiFlexItem>
)}
{Boolean(errorConnectingMessage) && (
<EuiFlexItem>
<CannotConnect />
</EuiFlexItem>
)}
<EuiFlexItem>
<NewSearchIndexTemplate
type="crawler"
onSubmit={(indexName, language) => makeRequest({ indexName, language })}
disabled={isGated}
disabled={isGated || Boolean(errorConnectingMessage)}
buttonLoading={status === Status.LOADING}
docsUrl={docLinks.crawlerOverview}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,9 @@ export const NewSearchIndexPage: React.FC = () => {
<EuiIcon type={getIngestionMethodIconType(type)} size="xxl" />
</EuiFlexItem>
<EuiFlexItem grow={false}>{getTitle(type, serviceType)}</EuiFlexItem>
<EuiFlexItem grow={false}>{getConnectorModeBadge(isNative)}</EuiFlexItem>
{type === INGESTION_METHOD_IDS.CONNECTOR && (
<EuiFlexItem grow={false}>{getConnectorModeBadge(isNative)}</EuiFlexItem>
)}
</EuiFlexGroup>
),
}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import {
RISK_SCORE_MEDIUM,
RISK_SCORE_HIGH,
RISK_SCORE_CRITICAL,
} from '../../../../../detections/components/rules/step_about_rule/data';
} from '../../../../constants';
import { getFillColor, getRiskScorePalette, RISK_SCORE_STEPS } from '.';

describe('getFillColor', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import {
RISK_SCORE_MEDIUM,
RISK_SCORE_HIGH,
RISK_SCORE_CRITICAL,
} from '../../../../../detections/components/rules/step_about_rule/data';
} from '../../../../constants';

/**
* The detection engine creates risk scores in the range 1 - 100.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import type { Severity } from '@kbn/securitysolution-io-ts-alerting-types';
import { EuiBasicTable, EuiSkeletonText, EuiSpacer } from '@elastic/eui';

import { PreferenceFormattedDate } from '../../formatted_date';
import { SeverityBadge } from '../../../../detections/components/rules/severity_badge';
import { SeverityBadge } from '../../severity_badge';
import { useAlertsByIds } from '../../../containers/alerts/use_alerts_by_ids';
import { SIMPLE_ALERT_TABLE_ERROR, SIMPLE_ALERT_TABLE_LIMITED } from './translations';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import {
import { FormattedFieldValue } from '../../../../timelines/components/timeline/body/renderers/formatted_field';
import { OverviewCardWithActions, OverviewCard } from './overview_card';
import { StatusPopoverButton } from './status_popover_button';
import { SeverityBadge } from '../../../../detections/components/rules/severity_badge';
import { SeverityBadge } from '../../severity_badge';
import { useThrottledResizeObserver } from '../../utils';
import { isNotNull } from '../../../../timelines/store/helpers';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import {
SUB_PLUGINS_REDUCER,
TestProviders,
} from '../../../mock';
import { SeverityBadge } from '../../../../detections/components/rules/severity_badge';
import { SeverityBadge } from '../../severity_badge';
import type { State } from '../../../store';
import { createStore } from '../../../store';
import { TimelineId } from '../../../../../common/types';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
* 2.0.
*/

import { useIsExperimentalFeatureEnabled } from '../../../common/hooks/use_experimental_features';
import { useKibana } from '../../../common/lib/kibana';
import { useIsExperimentalFeatureEnabled } from '../../hooks/use_experimental_features';
import { useKibana } from '../../lib/kibana';

export const useIsEsqlRuleTypeEnabled = (): boolean => {
const isEsqlSettingEnabled = useKibana().services.configSettings.ESQLEnabled;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import type { InputsModelId } from '../../store/inputs/constants';
import type { MatrixHistogramType } from '../../../../common/search_strategy/security_solution';
import type { UpdateDateRange } from '../charts/common';
import type { GlobalTimeArgs } from '../../containers/use_global_time';
import type { FieldValueThreshold } from '../../../detections/components/rules/threshold_input';
import type { FieldValueThreshold } from '../../../detection_engine/rule_creation_ui/components/threshold_input';
import type { GetLensAttributes, LensAttributes } from '../visualization_actions/types';

export type MatrixHistogramMappingTypes = Record<
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { upperFirst } from 'lodash/fp';
import { euiLightVars } from '@kbn/ui-theme';
import type { Severity } from '@kbn/securitysolution-io-ts-alerting-types';

import { HealthTruncateText } from '../../../../common/components/health_truncate_text';
import { HealthTruncateText } from '../health_truncate_text';

const { euiColorVis0, euiColorVis5, euiColorVis7, euiColorVis9 } = euiLightVars;
const severityToColorMap: Record<Severity, string> = {
Expand Down
18 changes: 18 additions & 0 deletions x-pack/plugins/security_solution/public/common/constants.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/*
* 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 { euiLightVars } from '@kbn/ui-theme';

export const RISK_COLOR_LOW = euiLightVars.euiColorVis0;
export const RISK_COLOR_MEDIUM = euiLightVars.euiColorVis5;
export const RISK_COLOR_HIGH = euiLightVars.euiColorVis7;
export const RISK_COLOR_CRITICAL = euiLightVars.euiColorVis9;

export const RISK_SCORE_LOW = 21;
export const RISK_SCORE_MEDIUM = 47;
export const RISK_SCORE_HIGH = 73;
export const RISK_SCORE_CRITICAL = 99;
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import type { FieldHook } from '../../../../shared_imports';
import { getFieldValidityAndErrorMessage } from '../../../../shared_imports';
import { useSecurityJobs } from '../../../../common/components/ml_popover/hooks/use_security_jobs';
import { useKibana } from '../../../../common/lib/kibana';
import { ML_JOB_SELECT_PLACEHOLDER_TEXT } from '../step_define_rule/translations';
import { HelpText } from './help_text';

import * as i18n from './translations';
Expand Down Expand Up @@ -135,7 +134,7 @@ export const MlJobSelect: React.FC<MlJobSelectProps> = ({ describedByIds = [], f
isLoading={loading}
onChange={handleJobSelect}
options={jobOptions}
placeholder={ML_JOB_SELECT_PLACEHOLDER_TEXT}
placeholder={i18n.ML_JOB_SELECT_PLACEHOLDER_TEXT}
renderOption={renderJobOption}
rowHeight={50}
selectedOptions={selectedJobOptions}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,10 @@ export const CREATE_CUSTOM_JOB_BUTTON_TITLE = i18n.translate(
defaultMessage: 'Create custom job',
}
);

export const ML_JOB_SELECT_PLACEHOLDER_TEXT = i18n.translate(
'xpack.securitySolution.detectionEngine.createRule.stepDefineRule.mlJobSelectPlaceholderText',
{
defaultMessage: 'Select a job',
}
);
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ import { StepAboutRuleToggleDetails } from '.';
import {
mockRule,
mockAboutStepRule,
} from '../../../../detection_engine/rule_management_ui/components/rules_table/__mocks__/mock';
} from '../../../rule_management_ui/components/rules_table/__mocks__/mock';
import { HeaderSection } from '../../../../common/components/header_section';
import { StepAboutRule } from '../step_about_rule';
import type { AboutStepRule } from '../../../pages/detection_engine/rules/types';
import { StepAboutRule } from '../../../rule_creation_ui/components/step_about_rule';
import type { AboutStepRule } from '../../../../detections/pages/detection_engine/rules/types';
import { getMockTheme } from '../../../../common/lib/kibana/kibana_react.mock';

jest.mock('../../../../common/lib/kibana');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ import type { PropsWithChildren } from 'react';
import React, { memo, useCallback, useMemo, useState } from 'react';

import { css } from '@emotion/css';
import { RuleAboutSection } from '../../../../detection_engine/rule_management/components/rule_details/rule_about_section';
import { RuleAboutSection } from '../../../rule_management/components/rule_details/rule_about_section';
import { HeaderSection } from '../../../../common/components/header_section';
import { MarkdownRenderer } from '../../../../common/components/markdown_editor';
import type {
AboutStepRule,
AboutStepRuleDetails,
} from '../../../pages/detection_engine/rules/types';
} from '../../../../detections/pages/detection_engine/rules/types';
import * as i18n from './translations';
import { fullHeight } from './styles';
import type { RuleResponse } from '../../../../../common/api/detection_engine';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
*/

import type { ActionTypeRegistryContract } from '@kbn/triggers-actions-ui-plugin/public';
import { debouncedValidateRuleActionsField } from '../../../containers/detection_engine/rules/validate_rule_actions_field';
import { debouncedValidateRuleActionsField } from '../../../../detections/containers/detection_engine/rules/validate_rule_actions_field';

import type { FormSchema } from '../../../../shared_imports';
import type { ActionsStepRule } from '../../../pages/detection_engine/rules/types';
import type { ActionsStepRule } from '../../../../detections/pages/detection_engine/rules/types';

export const getSchema = ({
actionTypeRegistry,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ import {
defaultSchedule,
stepAboutDefaultValue,
stepDefineDefaultValue,
} from '../../../pages/detection_engine/rules/utils';
import { useRuleForms } from '../../../../detection_engine/rule_creation_ui/pages/form';
} from '../../../../detections/pages/detection_engine/rules/utils';
import { useRuleForms } from '../../../rule_creation_ui/pages/form';
import type { FormHook } from '../../../../shared_imports';
import type { ActionsStepRule } from '../../../pages/detection_engine/rules/types';
import type { ActionsStepRule } from '../../../../detections/pages/detection_engine/rules/types';
import { FrequencyDescription } from './notification_action';

jest.mock('../../../../common/lib/kibana', () => ({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,18 @@ import type { Type } from '@kbn/securitysolution-io-ts-alerting-types';
import type { RuleObjectId } from '../../../../../common/api/detection_engine/model/rule_schema';
import { isQueryRule } from '../../../../../common/detection_engine/utils';
import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features';
import { ResponseActionsForm } from '../../../../detection_engine/rule_response_actions/response_actions_form';
import type { RuleStepProps, ActionsStepRule } from '../../../pages/detection_engine/rules/types';
import { ResponseActionsForm } from '../../../rule_response_actions/response_actions_form';
import type {
RuleStepProps,
ActionsStepRule,
} from '../../../../detections/pages/detection_engine/rules/types';
import { Form, UseField } from '../../../../shared_imports';
import type { FormHook } from '../../../../shared_imports';
import { StepContentWrapper } from '../step_content_wrapper';
import { RuleActionsField } from '../rule_actions_field';
import { useKibana } from '../../../../common/lib/kibana';
import { useFetchConnectorsQuery } from '../../../../detection_engine/rule_management/api/hooks/use_fetch_connectors_query';
import { useFetchConnectorTypesQuery } from '../../../../detection_engine/rule_management/api/hooks/use_fetch_connector_types_query';
import { useFetchConnectorsQuery } from '../../../rule_management/api/hooks/use_fetch_connectors_query';
import { useFetchConnectorTypesQuery } from '../../../rule_management/api/hooks/use_fetch_connector_types_query';
import * as i18n from './translations';
import { RuleSnoozeSection } from './rule_snooze_section';
import { NotificationAction } from './notification_action';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import type { ActionResult } from '@kbn/actions-plugin/server';
import type { RuleActionFrequency, RuleAction } from '@kbn/alerting-plugin/common';
import type { ActionTypeRegistryContract } from '@kbn/triggers-actions-ui-plugin/public';
import { FormattedMessage } from '@kbn/i18n-react';
import { getTimeTypeValue } from '../../../../detection_engine/rule_creation_ui/pages/rule_creation/helpers';
import { getTimeTypeValue } from '../../../rule_creation_ui/pages/rule_creation/helpers';
import * as i18n from './translations';

const DescriptionLine = ({ children }: { children: React.ReactNode }) => (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import React from 'react';
import { EuiToolTip, EuiText, EuiFlexGroup, EuiFlexItem, EuiIcon } from '@elastic/eui';
import type { RuleAction } from '@kbn/alerting-plugin/common';
import { getActionDetails } from '../../../../detection_engine/rule_response_actions/constants';
import { getActionDetails } from '../../../rule_response_actions/constants';

interface ResponseActionProps {
action: Omit<RuleAction, 'id' | 'group'>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import React from 'react';
import { EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui';
import type { RuleObjectId } from '../../../../../common/api/detection_engine/model/rule_schema';
import { RuleSnoozeBadge } from '../../../../detection_engine/rule_management/components/rule_snooze_badge';
import { RuleSnoozeBadge } from '../../../rule_management/components/rule_snooze_badge';
import * as i18n from './translations';

interface RuleSnoozeSectionProps {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { securitySolutionQueryClient } from '../../../common/containers/query_cl
import type { ValidationError, ValidationFunc } from '../../../shared_imports';
import { isEsqlRule } from '../../../../common/detection_engine/utils';
import type { DefineStepRule } from '../../../detections/pages/detection_engine/rules/types';
import type { FieldValueQueryBar } from '../../../detections/components/rules/query_bar';
import type { FieldValueQueryBar } from '../../rule_creation_ui/components/query_bar';
import * as i18n from './translations';
import { getEsqlQueryConfig } from './get_esql_query_config';
export type FieldType = 'string';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import type { ChangeEvent } from 'react';
import React, { useCallback, useEffect, useState, useRef } from 'react';
import styled from 'styled-components';

import * as RuleI18n from '../../../pages/detection_engine/rules/translations';
import * as RuleI18n from '../../../../detections/pages/detection_engine/rules/translations';
import type { FieldHook } from '../../../../shared_imports';
import { getFieldValidityAndErrorMessage } from '../../../../shared_imports';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import type { DataViewListItem } from '@kbn/data-views-plugin/common';
import type { FieldHook } from '../../../../shared_imports';
import { getFieldValidityAndErrorMessage } from '../../../../shared_imports';
import * as i18n from './translations';
import type { DefineStepRule } from '../../../pages/detection_engine/rules/types';
import type { DefineStepRule } from '../../../../detections/pages/detection_engine/rules/types';

export interface DataViewSelectorProps {
kibanaDataViews: Record<string, DataViewListItem>;
Expand Down
Loading

0 comments on commit 31d894d

Please sign in to comment.