mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
[Security Solution] remove unused BrowserField references (#130206)
A property was passed through many react components, but never used. This commit cleans this up.
This commit is contained in:
parent
3af9f04ff4
commit
4835a5d7d1
67 changed files with 45 additions and 2132 deletions
|
@ -114,7 +114,6 @@ describe('PreviewTableCellRenderer', () => {
|
|||
|
||||
expect(mockImplementation.renderColumn).toBeCalledWith({
|
||||
asPlainText: false,
|
||||
browserFields,
|
||||
columnName: header.id,
|
||||
ecsData,
|
||||
eventId,
|
||||
|
|
|
@ -18,7 +18,6 @@ import { CellValueElementProps } from '../../../../../../timelines/common';
|
|||
export const PreviewRenderCellValue: React.FC<
|
||||
EuiDataGridCellValueElementProps & CellValueElementProps
|
||||
> = ({
|
||||
browserFields,
|
||||
columnId,
|
||||
data,
|
||||
ecsData,
|
||||
|
@ -38,7 +37,6 @@ export const PreviewRenderCellValue: React.FC<
|
|||
truncate,
|
||||
}) => (
|
||||
<PreviewTableCellRenderer
|
||||
browserFields={browserFields}
|
||||
columnId={columnId}
|
||||
data={data}
|
||||
ecsData={ecsData}
|
||||
|
@ -60,7 +58,6 @@ export const PreviewRenderCellValue: React.FC<
|
|||
);
|
||||
|
||||
export const PreviewTableCellRenderer: React.FC<CellValueElementProps> = ({
|
||||
browserFields,
|
||||
data,
|
||||
ecsData,
|
||||
eventId,
|
||||
|
@ -95,7 +92,6 @@ export const PreviewTableCellRenderer: React.FC<CellValueElementProps> = ({
|
|||
<StyledContent className={styledContentClassName} $isDetails={isDetails}>
|
||||
{getColumnRenderer(header.id, columnRenderers, data).renderColumn({
|
||||
asPlainText,
|
||||
browserFields,
|
||||
columnName: header.id,
|
||||
ecsData,
|
||||
eventId,
|
||||
|
|
|
@ -24,7 +24,6 @@ const AlertsExampleComponent: React.FC = () => {
|
|||
return (
|
||||
<>
|
||||
{alertsRowRenderer.renderRow({
|
||||
browserFields: {},
|
||||
data: mockEndpointProcessExecutionMalwarePreventionAlert,
|
||||
isDraggable: false,
|
||||
timelineId: ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID,
|
||||
|
|
|
@ -21,7 +21,6 @@ const AuditdExampleComponent: React.FC = () => {
|
|||
return (
|
||||
<>
|
||||
{auditdRowRenderer.renderRow({
|
||||
browserFields: {},
|
||||
data: mockTimelineData[26].ecs,
|
||||
isDraggable: false,
|
||||
timelineId: ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID,
|
||||
|
|
|
@ -21,7 +21,6 @@ const AuditdFileExampleComponent: React.FC = () => {
|
|||
return (
|
||||
<>
|
||||
{auditdFileRowRenderer.renderRow({
|
||||
browserFields: {},
|
||||
data: mockTimelineData[27].ecs,
|
||||
isDraggable: false,
|
||||
timelineId: ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID,
|
||||
|
|
|
@ -21,7 +21,6 @@ const LibraryExampleComponent: React.FC = () => {
|
|||
return (
|
||||
<>
|
||||
{libraryRowRenderer.renderRow({
|
||||
browserFields: {},
|
||||
data: mockEndpointLibraryLoadEvent,
|
||||
isDraggable: false,
|
||||
timelineId: ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID,
|
||||
|
|
|
@ -14,7 +14,6 @@ import { ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID } from '../constants';
|
|||
const NetflowExampleComponent: React.FC = () => (
|
||||
<>
|
||||
{netflowRowRenderer.renderRow({
|
||||
browserFields: {},
|
||||
data: getMockNetflowData(),
|
||||
isDraggable: false,
|
||||
timelineId: ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID,
|
||||
|
|
|
@ -21,7 +21,6 @@ const RegistryExampleComponent: React.FC = () => {
|
|||
return (
|
||||
<>
|
||||
{registryRowRenderer.renderRow({
|
||||
browserFields: {},
|
||||
data: mockEndpointRegistryModificationEvent,
|
||||
isDraggable: false,
|
||||
timelineId: ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID,
|
||||
|
|
|
@ -14,7 +14,6 @@ import { ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID } from '../constants';
|
|||
const SuricataExampleComponent: React.FC = () => (
|
||||
<>
|
||||
{suricataRowRenderer.renderRow({
|
||||
browserFields: {},
|
||||
data: mockTimelineData[2].ecs,
|
||||
isDraggable: false,
|
||||
timelineId: ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID,
|
||||
|
|
|
@ -21,7 +21,6 @@ const SystemExampleComponent: React.FC = () => {
|
|||
return (
|
||||
<>
|
||||
{systemRowRenderer.renderRow({
|
||||
browserFields: {},
|
||||
data: mockEndgameTerminationEvent,
|
||||
isDraggable: false,
|
||||
timelineId: ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID,
|
||||
|
|
|
@ -17,7 +17,6 @@ const SystemDnsExampleComponent: React.FC = () => {
|
|||
return (
|
||||
<>
|
||||
{systemDnsRowRenderer.renderRow({
|
||||
browserFields: {},
|
||||
data: mockEndgameDnsRequest,
|
||||
isDraggable: false,
|
||||
timelineId: ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID,
|
||||
|
|
|
@ -21,7 +21,6 @@ const SystemEndgameProcessExampleComponent: React.FC = () => {
|
|||
return (
|
||||
<>
|
||||
{systemEndgameProcessRowRenderer.renderRow({
|
||||
browserFields: {},
|
||||
data: mockEndgameCreationEvent,
|
||||
isDraggable: false,
|
||||
timelineId: ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID,
|
||||
|
|
|
@ -21,7 +21,6 @@ const SystemFileExampleComponent: React.FC = () => {
|
|||
return (
|
||||
<>
|
||||
{systemFileRowRenderer.renderRow({
|
||||
browserFields: {},
|
||||
data: mockEndgameFileDeleteEvent,
|
||||
isDraggable: false,
|
||||
timelineId: ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID,
|
||||
|
|
|
@ -21,7 +21,6 @@ const SystemFimExampleComponent: React.FC = () => {
|
|||
return (
|
||||
<>
|
||||
{systemFimRowRenderer.renderRow({
|
||||
browserFields: {},
|
||||
data: mockEndgameFileCreateEvent,
|
||||
isDraggable: false,
|
||||
timelineId: ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID,
|
||||
|
|
|
@ -19,7 +19,6 @@ const SystemSecurityEventExampleComponent: React.FC = () => {
|
|||
return (
|
||||
<>
|
||||
{systemSecurityEventRowRenderer.renderRow({
|
||||
browserFields: {},
|
||||
data: mockEndgameUserLogon,
|
||||
isDraggable: false,
|
||||
timelineId: ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID,
|
||||
|
|
|
@ -20,7 +20,6 @@ const SystemSocketExampleComponent: React.FC = () => {
|
|||
return (
|
||||
<>
|
||||
{systemSocketRowRenderer.renderRow({
|
||||
browserFields: {},
|
||||
data: mockEndgameIpv4ConnectionAcceptEvent,
|
||||
isDraggable: false,
|
||||
timelineId: ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID,
|
||||
|
|
|
@ -14,7 +14,6 @@ import { ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID } from '../constants';
|
|||
const ThreatMatchExampleComponent: React.FC = () => (
|
||||
<>
|
||||
{threatMatchRowRenderer.renderRow({
|
||||
browserFields: {},
|
||||
data: mockTimelineData[31].ecs,
|
||||
isDraggable: false,
|
||||
timelineId: ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID,
|
||||
|
|
|
@ -14,7 +14,6 @@ import { ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID } from '../constants';
|
|||
const ZeekExampleComponent: React.FC = () => (
|
||||
<>
|
||||
{zeekRowRenderer.renderRow({
|
||||
browserFields: {},
|
||||
data: mockTimelineData[13].ecs,
|
||||
isDraggable: false,
|
||||
timelineId: ROW_RENDERER_BROWSER_EXAMPLE_TIMELINE_ID,
|
||||
|
|
|
@ -9,7 +9,6 @@ import React from 'react';
|
|||
import { isEmpty } from 'lodash';
|
||||
|
||||
import { inputsModel } from '../../../../../common/store';
|
||||
import { BrowserFields } from '../../../../../common/containers/source';
|
||||
import {
|
||||
TimelineItem,
|
||||
TimelineNonEcsData,
|
||||
|
@ -31,7 +30,6 @@ const ARIA_ROW_INDEX_OFFSET = 2;
|
|||
|
||||
interface Props {
|
||||
actionsColumnWidth: number;
|
||||
browserFields: BrowserFields;
|
||||
columnHeaders: ColumnHeaderOptions[];
|
||||
containerRef: React.MutableRefObject<HTMLDivElement | null>;
|
||||
data: TimelineItem[];
|
||||
|
@ -55,7 +53,6 @@ interface Props {
|
|||
|
||||
const EventsComponent: React.FC<Props> = ({
|
||||
actionsColumnWidth,
|
||||
browserFields,
|
||||
columnHeaders,
|
||||
containerRef,
|
||||
data,
|
||||
|
@ -81,7 +78,6 @@ const EventsComponent: React.FC<Props> = ({
|
|||
<StatefulEvent
|
||||
actionsColumnWidth={actionsColumnWidth}
|
||||
ariaRowindex={i + ARIA_ROW_INDEX_OFFSET}
|
||||
browserFields={browserFields}
|
||||
columnHeaders={columnHeaders}
|
||||
containerRef={containerRef}
|
||||
event={event}
|
||||
|
|
|
@ -19,7 +19,6 @@ import {
|
|||
TimelineTabs,
|
||||
} from '../../../../../../common/types/timeline';
|
||||
import type { SetEventsDeleted, SetEventsLoading } from '../../../../../../../timelines/common';
|
||||
import { BrowserFields } from '../../../../../common/containers/source';
|
||||
import {
|
||||
TimelineItem,
|
||||
TimelineNonEcsData,
|
||||
|
@ -45,7 +44,6 @@ import { StatefulEventContext } from '../../../../../../../timelines/public';
|
|||
interface Props {
|
||||
actionsColumnWidth: number;
|
||||
containerRef: React.MutableRefObject<HTMLDivElement | null>;
|
||||
browserFields: BrowserFields;
|
||||
columnHeaders: ColumnHeaderOptions[];
|
||||
event: TimelineItem;
|
||||
eventIdToNoteIds: Readonly<Record<string, string[]>>;
|
||||
|
@ -78,7 +76,6 @@ EventsTrSupplementContainerWrapper.displayName = 'EventsTrSupplementContainerWra
|
|||
|
||||
const StatefulEventComponent: React.FC<Props> = ({
|
||||
actionsColumnWidth,
|
||||
browserFields,
|
||||
containerRef,
|
||||
columnHeaders,
|
||||
event,
|
||||
|
@ -236,31 +233,6 @@ const StatefulEventComponent: React.FC<Props> = ({
|
|||
[dispatch, timelineId]
|
||||
);
|
||||
|
||||
const RowRendererContent = useMemo(
|
||||
() => (
|
||||
<EventsTrSupplement>
|
||||
<StatefulRowRenderer
|
||||
ariaRowindex={ariaRowindex}
|
||||
browserFields={browserFields}
|
||||
containerRef={containerRef}
|
||||
event={event}
|
||||
lastFocusedAriaColindex={lastFocusedAriaColindex}
|
||||
rowRenderers={rowRenderers}
|
||||
timelineId={timelineId}
|
||||
/>
|
||||
</EventsTrSupplement>
|
||||
),
|
||||
[
|
||||
ariaRowindex,
|
||||
browserFields,
|
||||
containerRef,
|
||||
event,
|
||||
lastFocusedAriaColindex,
|
||||
rowRenderers,
|
||||
timelineId,
|
||||
]
|
||||
);
|
||||
|
||||
return (
|
||||
<StatefulEventContext.Provider value={activeStatefulEventContext}>
|
||||
<EventsTrGroup
|
||||
|
@ -319,7 +291,16 @@ const StatefulEventComponent: React.FC<Props> = ({
|
|||
/>
|
||||
</EventsTrSupplement>
|
||||
|
||||
{RowRendererContent}
|
||||
<EventsTrSupplement>
|
||||
<StatefulRowRenderer
|
||||
ariaRowindex={ariaRowindex}
|
||||
containerRef={containerRef}
|
||||
event={event}
|
||||
lastFocusedAriaColindex={lastFocusedAriaColindex}
|
||||
rowRenderers={rowRenderers}
|
||||
timelineId={timelineId}
|
||||
/>
|
||||
</EventsTrSupplement>
|
||||
</EventsTrSupplementContainerWrapper>
|
||||
</EventsTrGroup>
|
||||
</StatefulEventContext.Provider>
|
||||
|
|
|
@ -15,7 +15,6 @@ import {
|
|||
getRowRendererClassName,
|
||||
} from '../../../../../../../../timelines/public';
|
||||
import { RowRenderer } from '../../../../../../../common/types';
|
||||
import { BrowserFields } from '../../../../../../common/containers/source';
|
||||
import { TimelineItem } from '../../../../../../../common/search_strategy/timeline';
|
||||
import { getRowRenderer } from '../../renderers/get_row_renderer';
|
||||
import { useStatefulEventFocus } from '../use_stateful_event_focus';
|
||||
|
@ -37,7 +36,6 @@ import * as i18n from '../translations';
|
|||
*/
|
||||
export const StatefulRowRenderer = ({
|
||||
ariaRowindex,
|
||||
browserFields,
|
||||
containerRef,
|
||||
event,
|
||||
lastFocusedAriaColindex,
|
||||
|
@ -45,7 +43,6 @@ export const StatefulRowRenderer = ({
|
|||
timelineId,
|
||||
}: {
|
||||
ariaRowindex: number;
|
||||
browserFields: BrowserFields;
|
||||
containerRef: React.MutableRefObject<HTMLDivElement | null>;
|
||||
event: TimelineItem;
|
||||
lastFocusedAriaColindex: number;
|
||||
|
@ -78,7 +75,6 @@ export const StatefulRowRenderer = ({
|
|||
</EuiScreenReaderOnly>
|
||||
<div onKeyDown={onKeyDown}>
|
||||
{rowRenderer.renderRow({
|
||||
browserFields,
|
||||
data: event.ecs,
|
||||
isDraggable: true,
|
||||
timelineId,
|
||||
|
@ -90,7 +86,6 @@ export const StatefulRowRenderer = ({
|
|||
),
|
||||
[
|
||||
ariaRowindex,
|
||||
browserFields,
|
||||
event.ecs,
|
||||
focusOwnership,
|
||||
onFocus,
|
||||
|
|
|
@ -260,7 +260,6 @@ export const StatefulBody = React.memo<Props>(
|
|||
<Events
|
||||
containerRef={containerRef}
|
||||
actionsColumnWidth={actionsColumnWidth}
|
||||
browserFields={browserFields}
|
||||
columnHeaders={columnHeaders}
|
||||
data={data}
|
||||
eventIdToNoteIds={eventIdToNoteIds}
|
||||
|
|
|
@ -4,7 +4,6 @@ exports[`GenericRowRenderer #createGenericAuditRowRenderer renders correctly aga
|
|||
<span>
|
||||
<RowRendererContainer>
|
||||
<AuditdGenericDetails
|
||||
browserFields={Object {}}
|
||||
contextId="connected-to-test"
|
||||
data={
|
||||
Object {
|
||||
|
@ -110,7 +109,6 @@ exports[`GenericRowRenderer #createGenericFileRowRenderer renders correctly agai
|
|||
<span>
|
||||
<RowRendererContainer>
|
||||
<AuditdGenericFileDetails
|
||||
browserFields={Object {}}
|
||||
contextId="opened-file-test"
|
||||
data={
|
||||
Object {
|
||||
|
|
|
@ -9,8 +9,6 @@ import { shallow } from 'enzyme';
|
|||
import React from 'react';
|
||||
|
||||
import '../../../../../../common/mock/match_media';
|
||||
import { BrowserFields } from '../../../../../../common/containers/source';
|
||||
import { mockBrowserFields } from '../../../../../../common/containers/source/mock';
|
||||
import { mockTimelineData, TestProviders } from '../../../../../../common/mock';
|
||||
import { AuditdGenericDetails, AuditdGenericLine } from './generic_details';
|
||||
import { useMountAppended } from '../../../../../../common/utils/use_mount_appended';
|
||||
|
@ -30,13 +28,10 @@ describe('GenericDetails', () => {
|
|||
|
||||
describe('rendering', () => {
|
||||
test('it renders the default AuditAcquiredCredsDetails', () => {
|
||||
// I cannot and do not want to use BrowserFields for the mocks for the snapshot tests as they are too heavy
|
||||
const browserFields: BrowserFields = {};
|
||||
const wrapper = shallow(
|
||||
<AuditdGenericDetails
|
||||
contextId="contextid-123"
|
||||
text="generic-text-123"
|
||||
browserFields={browserFields}
|
||||
data={mockTimelineData[21].ecs}
|
||||
timelineId="test"
|
||||
/>
|
||||
|
@ -50,7 +45,6 @@ describe('GenericDetails', () => {
|
|||
<AuditdGenericDetails
|
||||
contextId="contextid-123"
|
||||
text="generic-text-123"
|
||||
browserFields={mockBrowserFields}
|
||||
data={mockTimelineData[19].ecs}
|
||||
timelineId="test"
|
||||
/>
|
||||
|
@ -66,7 +60,6 @@ describe('GenericDetails', () => {
|
|||
<AuditdGenericDetails
|
||||
contextId="contextid-123"
|
||||
text="generic-text-123"
|
||||
browserFields={mockBrowserFields}
|
||||
data={mockTimelineData[0].ecs}
|
||||
timelineId="test"
|
||||
/>
|
||||
|
|
|
@ -9,7 +9,6 @@ import { EuiFlexGroup, EuiSpacer } from '@elastic/eui';
|
|||
import { get } from 'lodash/fp';
|
||||
import React from 'react';
|
||||
|
||||
import { BrowserFields } from '../../../../../../common/containers/source';
|
||||
import { Ecs } from '../../../../../../../common/ecs';
|
||||
import { DraggableBadge } from '../../../../../../common/components/draggables';
|
||||
|
||||
|
@ -116,7 +115,6 @@ export const AuditdGenericLine = React.memo<Props>(
|
|||
AuditdGenericLine.displayName = 'AuditdGenericLine';
|
||||
|
||||
interface GenericDetailsProps {
|
||||
browserFields: BrowserFields;
|
||||
data: Ecs;
|
||||
isDraggable?: boolean;
|
||||
contextId: string;
|
||||
|
|
|
@ -9,8 +9,6 @@ import { shallow } from 'enzyme';
|
|||
import React from 'react';
|
||||
|
||||
import '../../../../../../common/mock/match_media';
|
||||
import { BrowserFields } from '../../../../../../common/containers/source';
|
||||
import { mockBrowserFields } from '../../../../../../common/containers/source/mock';
|
||||
import { mockTimelineData, TestProviders } from '../../../../../../common/mock';
|
||||
import { AuditdGenericFileDetails, AuditdGenericFileLine } from './generic_file_details';
|
||||
import { useMountAppended } from '../../../../../../common/utils/use_mount_appended';
|
||||
|
@ -30,13 +28,10 @@ describe('GenericFileDetails', () => {
|
|||
|
||||
describe('rendering', () => {
|
||||
test('it renders the default GenericFileDetails', () => {
|
||||
// I cannot and do not want to use BrowserFields for the mocks for the snapshot tests as they are too heavy
|
||||
const browserFields: BrowserFields = {};
|
||||
const wrapper = shallow(
|
||||
<AuditdGenericFileDetails
|
||||
contextId="contextid-123"
|
||||
text="generic-text-123"
|
||||
browserFields={browserFields}
|
||||
data={mockTimelineData[27].ecs}
|
||||
fileIcon="document"
|
||||
timelineId="test"
|
||||
|
@ -51,7 +46,6 @@ describe('GenericFileDetails', () => {
|
|||
<AuditdGenericFileDetails
|
||||
contextId="contextid-123"
|
||||
text="generic-text-123"
|
||||
browserFields={mockBrowserFields}
|
||||
data={mockTimelineData[19].ecs}
|
||||
fileIcon="document"
|
||||
timelineId="test"
|
||||
|
@ -68,7 +62,6 @@ describe('GenericFileDetails', () => {
|
|||
<AuditdGenericFileDetails
|
||||
contextId="contextid-123"
|
||||
text="generic-text-123"
|
||||
browserFields={mockBrowserFields}
|
||||
data={mockTimelineData[0].ecs}
|
||||
fileIcon="document"
|
||||
timelineId="test"
|
||||
|
|
|
@ -9,7 +9,6 @@ import { EuiFlexGroup, EuiSpacer, IconType } from '@elastic/eui';
|
|||
import { get } from 'lodash/fp';
|
||||
import React from 'react';
|
||||
|
||||
import { BrowserFields } from '../../../../../../common/containers/source';
|
||||
import { Ecs } from '../../../../../../../common/ecs';
|
||||
import { DraggableBadge } from '../../../../../../common/components/draggables';
|
||||
|
||||
|
@ -135,7 +134,6 @@ export const AuditdGenericFileLine = React.memo<Props>(
|
|||
AuditdGenericFileLine.displayName = 'AuditdGenericFileLine';
|
||||
|
||||
interface GenericDetailsProps {
|
||||
browserFields: BrowserFields;
|
||||
contextId: string;
|
||||
data: Ecs;
|
||||
text: string;
|
||||
|
|
|
@ -10,8 +10,6 @@ import { cloneDeep } from 'lodash/fp';
|
|||
import React from 'react';
|
||||
|
||||
import { RowRenderer } from '../../../../../../../common/types';
|
||||
import { BrowserFields } from '../../../../../../common/containers/source';
|
||||
import { mockBrowserFields } from '../../../../../../common/containers/source/mock';
|
||||
import { Ecs } from '../../../../../../../common/ecs';
|
||||
import { mockTimelineData, TestProviders } from '../../../../../../common/mock';
|
||||
import { useMountAppended } from '../../../../../../common/utils/use_mount_appended';
|
||||
|
@ -49,10 +47,7 @@ describe('GenericRowRenderer', () => {
|
|||
});
|
||||
});
|
||||
test('renders correctly against snapshot', () => {
|
||||
// I cannot and do not want to use BrowserFields mocks for the snapshot tests as they are too heavy
|
||||
const browserFields: BrowserFields = {};
|
||||
const children = connectedToRenderer.renderRow({
|
||||
browserFields,
|
||||
data: auditd,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -82,7 +77,6 @@ describe('GenericRowRenderer', () => {
|
|||
|
||||
test('should render a auditd row', () => {
|
||||
const children = connectedToRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: auditd,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -113,10 +107,7 @@ describe('GenericRowRenderer', () => {
|
|||
});
|
||||
|
||||
test('renders correctly against snapshot', () => {
|
||||
// I cannot and do not want to use BrowserFields mocks for the snapshot tests as they are too heavy
|
||||
const browserFields: BrowserFields = {};
|
||||
const children = fileToRenderer.renderRow({
|
||||
browserFields,
|
||||
data: auditdFile,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -146,7 +137,6 @@ describe('GenericRowRenderer', () => {
|
|||
|
||||
test('should render a auditd row', () => {
|
||||
const children = fileToRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: auditdFile,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
|
|
@ -34,10 +34,9 @@ export const createGenericAuditRowRenderer = ({
|
|||
action.toLowerCase() === actionName
|
||||
);
|
||||
},
|
||||
renderRow: ({ browserFields, data, isDraggable, timelineId }) => (
|
||||
renderRow: ({ data, isDraggable, timelineId }) => (
|
||||
<RowRendererContainer>
|
||||
<AuditdGenericDetails
|
||||
browserFields={browserFields}
|
||||
data={data}
|
||||
isDraggable={isDraggable}
|
||||
contextId={`${actionName}-${timelineId}`}
|
||||
|
@ -68,10 +67,9 @@ export const createGenericFileRowRenderer = ({
|
|||
action.toLowerCase() === actionName
|
||||
);
|
||||
},
|
||||
renderRow: ({ browserFields, data, isDraggable, timelineId }) => (
|
||||
renderRow: ({ data, isDraggable, timelineId }) => (
|
||||
<RowRendererContainer>
|
||||
<AuditdGenericFileDetails
|
||||
browserFields={browserFields}
|
||||
contextId={`${actionName}-${timelineId}`}
|
||||
data={data}
|
||||
fileIcon={fileIcon}
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
|
||||
import type React from 'react';
|
||||
import type { Filter } from '@kbn/es-query';
|
||||
import { BrowserFields } from '../../../../../../../timelines/common/search_strategy';
|
||||
|
||||
import { ColumnHeaderOptions, RowRenderer } from '../../../../../../common/types';
|
||||
import { Ecs } from '../../../../../../common/ecs';
|
||||
|
@ -16,7 +15,6 @@ import { TimelineNonEcsData } from '../../../../../../common/search_strategy/tim
|
|||
export interface ColumnRenderer {
|
||||
isInstance: (columnName: string, data: TimelineNonEcsData[]) => boolean;
|
||||
renderColumn: ({
|
||||
browserFields,
|
||||
className,
|
||||
columnName,
|
||||
eventId,
|
||||
|
@ -31,7 +29,6 @@ export interface ColumnRenderer {
|
|||
values,
|
||||
}: {
|
||||
asPlainText?: boolean;
|
||||
browserFields?: BrowserFields;
|
||||
className?: string;
|
||||
columnName: string;
|
||||
ecsData?: Ecs;
|
||||
|
|
|
@ -54,7 +54,6 @@ describe('threatMatchRowRenderer', () => {
|
|||
describe('#renderRow', () => {
|
||||
it('renders correctly against snapshot', () => {
|
||||
const children = threatMatchRowRenderer.renderRow({
|
||||
browserFields: {},
|
||||
data: threatMatchData,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
|
|
@ -9,7 +9,6 @@ import React from 'react';
|
|||
|
||||
import '../../../../../../common/mock/match_media';
|
||||
import { TestProviders } from '../../../../../../common/mock';
|
||||
import { mockBrowserFields } from '../../../../../../common/containers/source/mock';
|
||||
import { mockEndgameDnsRequest } from '../../../../../../common/mock/mock_endgame_ecs_data';
|
||||
import { useMountAppended } from '../../../../../../common/utils/use_mount_appended';
|
||||
|
||||
|
@ -32,7 +31,6 @@ describe('DnsRequestEventDetails', () => {
|
|||
const wrapper = mount(
|
||||
<TestProviders>
|
||||
<DnsRequestEventDetails
|
||||
browserFields={mockBrowserFields}
|
||||
contextId="test-context"
|
||||
data={mockEndgameDnsRequest}
|
||||
timelineId="timeline-id-test"
|
||||
|
|
|
@ -9,7 +9,6 @@ import { EuiSpacer } from '@elastic/eui';
|
|||
import { get } from 'lodash/fp';
|
||||
import React from 'react';
|
||||
|
||||
import { BrowserFields } from '../../../../../../common/containers/source';
|
||||
import { Details } from '../helpers';
|
||||
import { Ecs } from '../../../../../../../common/ecs';
|
||||
import { NetflowRenderer } from '../netflow';
|
||||
|
@ -17,7 +16,6 @@ import { NetflowRenderer } from '../netflow';
|
|||
import { DnsRequestEventDetailsLine } from './dns_request_event_details_line';
|
||||
|
||||
interface Props {
|
||||
browserFields: BrowserFields;
|
||||
contextId: string;
|
||||
data: Ecs;
|
||||
isDraggable?: boolean;
|
||||
|
|
|
@ -9,7 +9,6 @@ import React from 'react';
|
|||
|
||||
import '../../../../../../common/mock/match_media';
|
||||
import { TestProviders } from '../../../../../../common/mock';
|
||||
import { mockBrowserFields } from '../../../../../../common/containers/source/mock';
|
||||
import {
|
||||
mockEndgameAdminLogon,
|
||||
mockEndgameExplicitUserLogon,
|
||||
|
@ -37,7 +36,6 @@ describe('EndgameSecurityEventDetails', () => {
|
|||
const wrapper = mount(
|
||||
<TestProviders>
|
||||
<EndgameSecurityEventDetails
|
||||
browserFields={mockBrowserFields}
|
||||
contextId="test-context"
|
||||
data={mockEndgameUserLogon}
|
||||
timelineId="timeline-id-test"
|
||||
|
@ -53,7 +51,6 @@ describe('EndgameSecurityEventDetails', () => {
|
|||
const wrapper = mount(
|
||||
<TestProviders>
|
||||
<EndgameSecurityEventDetails
|
||||
browserFields={mockBrowserFields}
|
||||
contextId="test-context"
|
||||
data={mockEndgameAdminLogon}
|
||||
timelineId="timeline-id-test"
|
||||
|
@ -69,7 +66,6 @@ describe('EndgameSecurityEventDetails', () => {
|
|||
const wrapper = mount(
|
||||
<TestProviders>
|
||||
<EndgameSecurityEventDetails
|
||||
browserFields={mockBrowserFields}
|
||||
contextId="test-context"
|
||||
data={mockEndgameExplicitUserLogon}
|
||||
timelineId="timeline-id-test"
|
||||
|
@ -85,7 +81,6 @@ describe('EndgameSecurityEventDetails', () => {
|
|||
const wrapper = mount(
|
||||
<TestProviders>
|
||||
<EndgameSecurityEventDetails
|
||||
browserFields={mockBrowserFields}
|
||||
contextId="test-context"
|
||||
data={mockEndgameUserLogoff}
|
||||
timelineId="timeline-id-test"
|
||||
|
|
|
@ -9,7 +9,6 @@ import { EuiSpacer } from '@elastic/eui';
|
|||
import { get } from 'lodash/fp';
|
||||
import React from 'react';
|
||||
|
||||
import { BrowserFields } from '../../../../../../common/containers/source';
|
||||
import { Ecs } from '../../../../../../../common/ecs';
|
||||
import { NetflowRenderer } from '../netflow';
|
||||
|
||||
|
@ -17,7 +16,6 @@ import { EndgameSecurityEventDetailsLine } from './endgame_security_event_detail
|
|||
import { Details } from '../helpers';
|
||||
|
||||
interface Props {
|
||||
browserFields: BrowserFields;
|
||||
contextId: string;
|
||||
data: Ecs;
|
||||
isDraggable?: boolean;
|
||||
|
|
|
@ -11,7 +11,6 @@ import React from 'react';
|
|||
|
||||
import { removeExternalLinkText } from '@kbn/securitysolution-io-ts-utils';
|
||||
import '../../../../../common/mock/match_media';
|
||||
import { mockBrowserFields } from '../../../../../common/containers/source/mock';
|
||||
import { Ecs } from '../../../../../../common/ecs';
|
||||
import { mockTimelineData } from '../../../../../common/mock';
|
||||
import { TestProviders } from '../../../../../common/mock/test_providers';
|
||||
|
@ -57,7 +56,6 @@ describe('get_column_renderer', () => {
|
|||
test('renders correctly against snapshot', () => {
|
||||
const rowRenderer = getRowRenderer(nonSuricata, defaultRowRenderers);
|
||||
const row = rowRenderer?.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: nonSuricata,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -70,7 +68,6 @@ describe('get_column_renderer', () => {
|
|||
test('should render plain row data when it is a non suricata row', () => {
|
||||
const rowRenderer = getRowRenderer(nonSuricata, defaultRowRenderers);
|
||||
const row = rowRenderer?.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: nonSuricata,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -86,7 +83,6 @@ describe('get_column_renderer', () => {
|
|||
test('should render a suricata row data when it is a suricata row', () => {
|
||||
const rowRenderer = getRowRenderer(suricata, defaultRowRenderers);
|
||||
const row = rowRenderer?.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: suricata,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -105,7 +101,6 @@ describe('get_column_renderer', () => {
|
|||
suricata.event = { ...suricata.event, ...{ category: ['network_traffic'] } };
|
||||
const rowRenderer = getRowRenderer(suricata, defaultRowRenderers);
|
||||
const row = rowRenderer?.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: suricata,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -124,7 +119,6 @@ describe('get_column_renderer', () => {
|
|||
zeek.event = { ...zeek.event, ...{ category: ['network_traffic'] } };
|
||||
const rowRenderer = getRowRenderer(zeek, defaultRowRenderers);
|
||||
const row = rowRenderer?.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: zeek,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -143,7 +137,6 @@ describe('get_column_renderer', () => {
|
|||
system.event = { ...system.event, ...{ category: ['network_traffic'] } };
|
||||
const rowRenderer = getRowRenderer(system, defaultRowRenderers);
|
||||
const row = rowRenderer?.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: system,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -162,7 +155,6 @@ describe('get_column_renderer', () => {
|
|||
auditd.event = { ...auditd.event, ...{ category: ['network_traffic'] } };
|
||||
const rowRenderer = getRowRenderer(auditd, defaultRowRenderers);
|
||||
const row = rowRenderer?.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: auditd,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
|
|
@ -9,8 +9,6 @@ import { shallow } from 'enzyme';
|
|||
import React from 'react';
|
||||
|
||||
import '../../../../../../common/mock/match_media';
|
||||
import { BrowserFields } from '../../../../../../common/containers/source';
|
||||
import { mockBrowserFields } from '../../../../../../common/containers/source/mock';
|
||||
import { Ecs } from '../../../../../../../common/ecs';
|
||||
import { getMockNetflowData, TestProviders } from '../../../../../../common/mock';
|
||||
import { useMountAppended } from '../../../../../../common/utils/use_mount_appended';
|
||||
|
@ -34,9 +32,7 @@ describe('netflowRowRenderer', () => {
|
|||
const mount = useMountAppended();
|
||||
|
||||
test('renders correctly against snapshot', () => {
|
||||
const browserFields: BrowserFields = {};
|
||||
const children = netflowRowRenderer.renderRow({
|
||||
browserFields,
|
||||
data: getMockNetflowData(),
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -106,7 +102,6 @@ describe('netflowRowRenderer', () => {
|
|||
|
||||
test('should render netflow data', () => {
|
||||
const children = netflowRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: getMockNetflowData(),
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
|
|
@ -9,7 +9,6 @@ import { mount, shallow } from 'enzyme';
|
|||
import { cloneDeep } from 'lodash';
|
||||
import React from 'react';
|
||||
|
||||
import { mockBrowserFields } from '../../../../../common/containers/source/mock';
|
||||
import { Ecs } from '../../../../../../common/ecs';
|
||||
import { mockTimelineData } from '../../../../../common/mock';
|
||||
import { plainRowRenderer } from './plain_row_renderer';
|
||||
|
@ -22,7 +21,6 @@ describe('plain_row_renderer', () => {
|
|||
|
||||
test('renders correctly against snapshot', () => {
|
||||
const children = plainRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockDatum,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -37,7 +35,6 @@ describe('plain_row_renderer', () => {
|
|||
|
||||
test('should render a plain row', () => {
|
||||
const children = plainRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockDatum,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
|
|
@ -14,7 +14,6 @@ import { reasonColumnRenderer } from './reason_column_renderer';
|
|||
import { plainColumnRenderer } from './plain_column_renderer';
|
||||
|
||||
import { RowRendererId, ColumnHeaderOptions, RowRenderer } from '../../../../../../common/types';
|
||||
import { BrowserFields } from '../../../../../../common/search_strategy';
|
||||
|
||||
import { render } from '@testing-library/react';
|
||||
import { TestProviders } from '../../../../../../../timelines/public/mock';
|
||||
|
@ -61,7 +60,6 @@ const rowRenderers: RowRenderer[] = [
|
|||
renderRow: () => <span data-test-subj="test-row-render" />,
|
||||
},
|
||||
];
|
||||
const browserFields: BrowserFields = {};
|
||||
|
||||
const defaultProps = {
|
||||
columnName: REASON_FIELD_NAME,
|
||||
|
@ -83,19 +81,18 @@ describe('reasonColumnRenderer', () => {
|
|||
});
|
||||
|
||||
describe('renderColumn', () => {
|
||||
it('calls `plainColumnRenderer.renderColumn` when ecsData, rowRenderers or browserFields is empty', () => {
|
||||
it('calls `plainColumnRenderer.renderColumn` when ecsData, or rowRenderers is empty', () => {
|
||||
reasonColumnRenderer.renderColumn(defaultProps);
|
||||
|
||||
expect(plainColumnRenderer.renderColumn).toBeCalledTimes(1);
|
||||
});
|
||||
|
||||
it("doesn't call `plainColumnRenderer.renderColumn` in expanded value when ecsData, rowRenderers or browserFields fields are not empty", () => {
|
||||
it("doesn't call `plainColumnRenderer.renderColumn` in expanded value when ecsData, or rowRenderers fields are not empty", () => {
|
||||
reasonColumnRenderer.renderColumn({
|
||||
...defaultProps,
|
||||
isDetails: true,
|
||||
ecsData: invalidEcs,
|
||||
rowRenderers,
|
||||
browserFields,
|
||||
});
|
||||
|
||||
expect(plainColumnRenderer.renderColumn).toBeCalledTimes(0);
|
||||
|
@ -107,7 +104,6 @@ describe('reasonColumnRenderer', () => {
|
|||
isDetails: false,
|
||||
ecsData: invalidEcs,
|
||||
rowRenderers,
|
||||
browserFields,
|
||||
});
|
||||
|
||||
expect(plainColumnRenderer.renderColumn).toBeCalledTimes(1);
|
||||
|
@ -119,7 +115,6 @@ describe('reasonColumnRenderer', () => {
|
|||
isDetails: true,
|
||||
ecsData: invalidEcs,
|
||||
rowRenderers,
|
||||
browserFields,
|
||||
});
|
||||
|
||||
const wrapper = render(<TestProviders>{renderedColumn}</TestProviders>);
|
||||
|
@ -133,7 +128,6 @@ describe('reasonColumnRenderer', () => {
|
|||
isDetails: true,
|
||||
ecsData: validEcs,
|
||||
rowRenderers,
|
||||
browserFields,
|
||||
});
|
||||
|
||||
const wrapper = render(<TestProviders>{renderedColumn}</TestProviders>);
|
||||
|
|
|
@ -10,7 +10,6 @@ import { isEqual } from 'lodash/fp';
|
|||
import React, { useMemo } from 'react';
|
||||
|
||||
import { ColumnHeaderOptions, RowRenderer } from '../../../../../../common/types';
|
||||
import { BrowserFields } from '../../../../../../common/search_strategy';
|
||||
import { Ecs } from '../../../../../../common/ecs';
|
||||
import { eventRendererNames } from '../../../row_renderers_browser/catalog/constants';
|
||||
import { ColumnRenderer } from './column_renderer';
|
||||
|
@ -23,7 +22,6 @@ export const reasonColumnRenderer: ColumnRenderer = {
|
|||
isInstance: isEqual(REASON_FIELD_NAME),
|
||||
|
||||
renderColumn: ({
|
||||
browserFields,
|
||||
columnName,
|
||||
ecsData,
|
||||
eventId,
|
||||
|
@ -36,7 +34,6 @@ export const reasonColumnRenderer: ColumnRenderer = {
|
|||
truncate,
|
||||
values,
|
||||
}: {
|
||||
browserFields?: BrowserFields;
|
||||
columnName: string;
|
||||
ecsData?: Ecs;
|
||||
eventId: string;
|
||||
|
@ -49,10 +46,9 @@ export const reasonColumnRenderer: ColumnRenderer = {
|
|||
truncate?: boolean;
|
||||
values: string[] | undefined | null;
|
||||
}) => {
|
||||
if (isDetails && values && ecsData && rowRenderers && browserFields) {
|
||||
if (isDetails && values && ecsData && rowRenderers) {
|
||||
return values.map((value, i) => (
|
||||
<ReasonCell
|
||||
browserFields={browserFields}
|
||||
ecsData={ecsData}
|
||||
key={`reason-column-renderer-value-${timelineId}-${columnName}-${eventId}-${field.id}-${value}-${i}`}
|
||||
rowRenderers={rowRenderers}
|
||||
|
@ -81,21 +77,19 @@ const ReasonCell: React.FC<{
|
|||
timelineId: string;
|
||||
ecsData: Ecs;
|
||||
rowRenderers: RowRenderer[];
|
||||
browserFields: BrowserFields;
|
||||
}> = ({ ecsData, rowRenderers, browserFields, timelineId, value }) => {
|
||||
}> = ({ ecsData, rowRenderers, timelineId, value }) => {
|
||||
const rowRenderer = useMemo(() => getRowRenderer(ecsData, rowRenderers), [ecsData, rowRenderers]);
|
||||
|
||||
const rowRender = useMemo(() => {
|
||||
return (
|
||||
rowRenderer &&
|
||||
rowRenderer.renderRow({
|
||||
browserFields,
|
||||
data: ecsData,
|
||||
isDraggable: false,
|
||||
timelineId,
|
||||
})
|
||||
);
|
||||
}, [rowRenderer, browserFields, ecsData, timelineId]);
|
||||
}, [rowRenderer, ecsData, timelineId]);
|
||||
|
||||
return (
|
||||
<>
|
||||
|
|
|
@ -4,596 +4,6 @@ exports[`suricata_row_renderer renders correctly against snapshot 1`] = `
|
|||
<span>
|
||||
<RowRendererContainer>
|
||||
<SuricataDetails
|
||||
browserFields={
|
||||
Object {
|
||||
"agent": Object {
|
||||
"fields": Object {
|
||||
"agent.ephemeral_id": Object {
|
||||
"aggregatable": true,
|
||||
"category": "agent",
|
||||
"description": "Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but \`agent.id\` does not.",
|
||||
"example": "8a4f500f",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "agent.ephemeral_id",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"agent.hostname": Object {
|
||||
"aggregatable": true,
|
||||
"category": "agent",
|
||||
"description": null,
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "agent.hostname",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"agent.id": Object {
|
||||
"aggregatable": true,
|
||||
"category": "agent",
|
||||
"description": "Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id.",
|
||||
"example": "8a4f500d",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "agent.id",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"agent.name": Object {
|
||||
"aggregatable": true,
|
||||
"category": "agent",
|
||||
"description": "Name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. If no name is given, the name is often left empty.",
|
||||
"example": "foo",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "agent.name",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"auditd": Object {
|
||||
"fields": Object {
|
||||
"auditd.data.a0": Object {
|
||||
"aggregatable": true,
|
||||
"category": "auditd",
|
||||
"description": null,
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
],
|
||||
"name": "auditd.data.a0",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"auditd.data.a1": Object {
|
||||
"aggregatable": true,
|
||||
"category": "auditd",
|
||||
"description": null,
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
],
|
||||
"name": "auditd.data.a1",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"auditd.data.a2": Object {
|
||||
"aggregatable": true,
|
||||
"category": "auditd",
|
||||
"description": null,
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
],
|
||||
"name": "auditd.data.a2",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"base": Object {
|
||||
"fields": Object {
|
||||
"@timestamp": Object {
|
||||
"aggregatable": true,
|
||||
"category": "base",
|
||||
"description": "Date/time when the event originated. For log events this is the date/time when the event was generated, and not when it was read. Required field for all events.",
|
||||
"example": "2016-05-23T08:05:34.853Z",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "@timestamp",
|
||||
"readFromDocValues": true,
|
||||
"searchable": true,
|
||||
"type": "date",
|
||||
},
|
||||
"_id": Object {
|
||||
"aggregatable": false,
|
||||
"category": "base",
|
||||
"description": "Each document has an _id that uniquely identifies it",
|
||||
"example": "Y-6TfmcB0WOhS6qyMv3s",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "_id",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"message": Object {
|
||||
"aggregatable": false,
|
||||
"category": "base",
|
||||
"description": "For log events the message field contains the log message, optimized for viewing in a log viewer. For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. If multiple messages exist, they can be combined into one message.",
|
||||
"example": "Hello World",
|
||||
"format": "string",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "message",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"client": Object {
|
||||
"fields": Object {
|
||||
"client.address": Object {
|
||||
"aggregatable": true,
|
||||
"category": "client",
|
||||
"description": "Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the \`.address\` field. Then it should be duplicated to \`.ip\` or \`.domain\`, depending on which one it is.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "client.address",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"client.bytes": Object {
|
||||
"aggregatable": true,
|
||||
"category": "client",
|
||||
"description": "Bytes sent from the client to the server.",
|
||||
"example": "184",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "client.bytes",
|
||||
"searchable": true,
|
||||
"type": "number",
|
||||
},
|
||||
"client.domain": Object {
|
||||
"aggregatable": true,
|
||||
"category": "client",
|
||||
"description": "Client domain.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "client.domain",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"client.geo.country_iso_code": Object {
|
||||
"aggregatable": true,
|
||||
"category": "client",
|
||||
"description": "Country ISO code.",
|
||||
"example": "CA",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "client.geo.country_iso_code",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"cloud": Object {
|
||||
"fields": Object {
|
||||
"cloud.account.id": Object {
|
||||
"aggregatable": true,
|
||||
"category": "cloud",
|
||||
"description": "The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.",
|
||||
"example": "666777888999",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "cloud.account.id",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"cloud.availability_zone": Object {
|
||||
"aggregatable": true,
|
||||
"category": "cloud",
|
||||
"description": "Availability zone in which this host is running.",
|
||||
"example": "us-east-1c",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "cloud.availability_zone",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"container": Object {
|
||||
"fields": Object {
|
||||
"container.id": Object {
|
||||
"aggregatable": true,
|
||||
"category": "container",
|
||||
"description": "Unique container id.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "container.id",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"container.image.name": Object {
|
||||
"aggregatable": true,
|
||||
"category": "container",
|
||||
"description": "Name of the image the container was built on.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "container.image.name",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"container.image.tag": Object {
|
||||
"aggregatable": true,
|
||||
"category": "container",
|
||||
"description": "Container image tag.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "container.image.tag",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"destination": Object {
|
||||
"fields": Object {
|
||||
"destination.address": Object {
|
||||
"aggregatable": true,
|
||||
"category": "destination",
|
||||
"description": "Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the \`.address\` field. Then it should be duplicated to \`.ip\` or \`.domain\`, depending on which one it is.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "destination.address",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"destination.bytes": Object {
|
||||
"aggregatable": true,
|
||||
"category": "destination",
|
||||
"description": "Bytes sent from the destination to the source.",
|
||||
"example": "184",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "destination.bytes",
|
||||
"searchable": true,
|
||||
"type": "number",
|
||||
},
|
||||
"destination.domain": Object {
|
||||
"aggregatable": true,
|
||||
"category": "destination",
|
||||
"description": "Destination domain.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "destination.domain",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"destination.ip": Object {
|
||||
"aggregatable": true,
|
||||
"category": "destination",
|
||||
"description": "IP address of the destination. Can be one or multiple IPv4 or IPv6 addresses.",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "destination.ip",
|
||||
"searchable": true,
|
||||
"type": "ip",
|
||||
},
|
||||
"destination.port": Object {
|
||||
"aggregatable": true,
|
||||
"category": "destination",
|
||||
"description": "Port of the destination.",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "destination.port",
|
||||
"searchable": true,
|
||||
"type": "long",
|
||||
},
|
||||
},
|
||||
},
|
||||
"event": Object {
|
||||
"fields": Object {
|
||||
"event.action": Object {
|
||||
"aggregatable": true,
|
||||
"category": "event",
|
||||
"description": "The action captured by the event. This describes the information in the event. It is more specific than \`event.category\`. Examples are \`group-add\`, \`process-started\`, \`file-created\`. The value is normally defined by the implementer.",
|
||||
"example": "user-password-change",
|
||||
"format": "string",
|
||||
"indexes": Array [
|
||||
"apm-*-transaction*",
|
||||
"traces-apm*",
|
||||
"auditbeat-*",
|
||||
"endgame-*",
|
||||
"filebeat-*",
|
||||
"logs-*",
|
||||
"packetbeat-*",
|
||||
"winlogbeat-*",
|
||||
],
|
||||
"name": "event.action",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"event.category": Object {
|
||||
"aggregatable": true,
|
||||
"category": "event",
|
||||
"description": "This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. \`event.category\` represents the \\"big buckets\\" of ECS categories. For example, filtering on \`event.category:process\` yields all events relating to process activity. This field is closely related to \`event.type\`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories.",
|
||||
"example": "authentication",
|
||||
"format": "string",
|
||||
"indexes": Array [
|
||||
"apm-*-transaction*",
|
||||
"traces-apm*",
|
||||
"auditbeat-*",
|
||||
"endgame-*",
|
||||
"filebeat-*",
|
||||
"logs-*",
|
||||
"packetbeat-*",
|
||||
"winlogbeat-*",
|
||||
],
|
||||
"name": "event.category",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"event.end": Object {
|
||||
"aggregatable": true,
|
||||
"category": "event",
|
||||
"description": "event.end contains the date when the event ended or when the activity was last observed.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"apm-*-transaction*",
|
||||
"traces-apm*",
|
||||
"auditbeat-*",
|
||||
"endgame-*",
|
||||
"filebeat-*",
|
||||
"logs-*",
|
||||
"packetbeat-*",
|
||||
"winlogbeat-*",
|
||||
],
|
||||
"name": "event.end",
|
||||
"searchable": true,
|
||||
"type": "date",
|
||||
},
|
||||
"event.severity": Object {
|
||||
"aggregatable": true,
|
||||
"category": "event",
|
||||
"description": "The numeric severity of the event according to your event source. What the different severity values mean can be different between sources and use cases. It's up to the implementer to make sure severities are consistent across events from the same source. The Syslog severity belongs in \`log.syslog.severity.code\`. \`event.severity\` is meant to represent the severity according to the event source (e.g. firewall, IDS). If the event source does not publish its own severity, you may optionally copy the \`log.syslog.severity.code\` to \`event.severity\`.",
|
||||
"example": 7,
|
||||
"format": "number",
|
||||
"indexes": Array [
|
||||
"apm-*-transaction*",
|
||||
"traces-apm*",
|
||||
"auditbeat-*",
|
||||
"endgame-*",
|
||||
"filebeat-*",
|
||||
"logs-*",
|
||||
"packetbeat-*",
|
||||
"winlogbeat-*",
|
||||
],
|
||||
"name": "event.severity",
|
||||
"searchable": true,
|
||||
"type": "number",
|
||||
},
|
||||
},
|
||||
},
|
||||
"host": Object {
|
||||
"fields": Object {
|
||||
"host.name": Object {
|
||||
"aggregatable": true,
|
||||
"category": "host",
|
||||
"description": "Name of the host. It can contain what \`hostname\` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.",
|
||||
"format": "string",
|
||||
"indexes": Array [
|
||||
"apm-*-transaction*",
|
||||
"traces-apm*",
|
||||
"auditbeat-*",
|
||||
"endgame-*",
|
||||
"filebeat-*",
|
||||
"logs-*",
|
||||
"packetbeat-*",
|
||||
"winlogbeat-*",
|
||||
],
|
||||
"name": "host.name",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"nestedField": Object {
|
||||
"fields": Object {
|
||||
"nestedField.firstAttributes": Object {
|
||||
"aggregatable": false,
|
||||
"category": "nestedField",
|
||||
"description": "",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "nestedField.firstAttributes",
|
||||
"searchable": true,
|
||||
"subType": Object {
|
||||
"nested": Object {
|
||||
"path": "nestedField",
|
||||
},
|
||||
},
|
||||
"type": "string",
|
||||
},
|
||||
"nestedField.secondAttributes": Object {
|
||||
"aggregatable": false,
|
||||
"category": "nestedField",
|
||||
"description": "",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "nestedField.secondAttributes",
|
||||
"searchable": true,
|
||||
"subType": Object {
|
||||
"nested": Object {
|
||||
"path": "nestedField",
|
||||
},
|
||||
},
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"source": Object {
|
||||
"fields": Object {
|
||||
"source.ip": Object {
|
||||
"aggregatable": true,
|
||||
"category": "source",
|
||||
"description": "IP address of the source. Can be one or multiple IPv4 or IPv6 addresses.",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "source.ip",
|
||||
"searchable": true,
|
||||
"type": "ip",
|
||||
},
|
||||
"source.port": Object {
|
||||
"aggregatable": true,
|
||||
"category": "source",
|
||||
"description": "Port of the source.",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "source.port",
|
||||
"searchable": true,
|
||||
"type": "long",
|
||||
},
|
||||
},
|
||||
},
|
||||
"user": Object {
|
||||
"fields": Object {
|
||||
"user.name": Object {
|
||||
"aggregatable": true,
|
||||
"category": "user",
|
||||
"description": "Short name or login of the user.",
|
||||
"example": "albert",
|
||||
"format": "string",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "user.name",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
data={
|
||||
Object {
|
||||
"_id": "1",
|
||||
|
|
|
@ -9,7 +9,6 @@ import { shallow } from 'enzyme';
|
|||
import React from 'react';
|
||||
|
||||
import { removeExternalLinkText } from '@kbn/securitysolution-io-ts-utils';
|
||||
import { mockBrowserFields } from '../../../../../../common/containers/source/mock';
|
||||
import { mockTimelineData } from '../../../../../../common/mock';
|
||||
import '../../../../../../common/mock/match_media';
|
||||
import { TestProviders } from '../../../../../../common/mock/test_providers';
|
||||
|
@ -33,24 +32,14 @@ describe('SuricataDetails', () => {
|
|||
|
||||
describe('rendering', () => {
|
||||
test('it renders the default SuricataDetails', () => {
|
||||
const wrapper = shallow(
|
||||
<SuricataDetails
|
||||
data={mockTimelineData[2].ecs}
|
||||
browserFields={mockBrowserFields}
|
||||
timelineId="test"
|
||||
/>
|
||||
);
|
||||
const wrapper = shallow(<SuricataDetails data={mockTimelineData[2].ecs} timelineId="test" />);
|
||||
expect(wrapper).toMatchSnapshot();
|
||||
});
|
||||
|
||||
test('it returns text if the data does contain suricata data', () => {
|
||||
const wrapper = mount(
|
||||
<TestProviders>
|
||||
<SuricataDetails
|
||||
data={mockTimelineData[2].ecs}
|
||||
browserFields={mockBrowserFields}
|
||||
timelineId="test"
|
||||
/>
|
||||
<SuricataDetails data={mockTimelineData[2].ecs} timelineId="test" />
|
||||
</TestProviders>
|
||||
);
|
||||
const removeEuiIconText = removeExternalLinkText(wrapper.text()).replaceAll(
|
||||
|
@ -63,13 +52,7 @@ describe('SuricataDetails', () => {
|
|||
});
|
||||
|
||||
test('it returns null for text if the data contains no suricata data', () => {
|
||||
const wrapper = shallow(
|
||||
<SuricataDetails
|
||||
data={mockTimelineData[0].ecs}
|
||||
browserFields={mockBrowserFields}
|
||||
timelineId="test"
|
||||
/>
|
||||
);
|
||||
const wrapper = shallow(<SuricataDetails data={mockTimelineData[0].ecs} timelineId="test" />);
|
||||
expect(wrapper.isEmptyRender()).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -10,7 +10,6 @@ import { get } from 'lodash/fp';
|
|||
import React from 'react';
|
||||
import styled from 'styled-components';
|
||||
|
||||
import { BrowserFields } from '../../../../../../common/containers/source';
|
||||
import { Ecs } from '../../../../../../../common/ecs';
|
||||
|
||||
import { NetflowRenderer } from '../netflow';
|
||||
|
@ -24,7 +23,6 @@ const Details = styled.div`
|
|||
Details.displayName = 'Details';
|
||||
|
||||
export const SuricataDetails = React.memo<{
|
||||
browserFields: BrowserFields;
|
||||
data: Ecs;
|
||||
isDraggable?: boolean;
|
||||
timelineId: string;
|
||||
|
|
|
@ -10,7 +10,6 @@ import { cloneDeep } from 'lodash/fp';
|
|||
import React from 'react';
|
||||
|
||||
import { removeExternalLinkText } from '@kbn/securitysolution-io-ts-utils';
|
||||
import { mockBrowserFields } from '../../../../../../common/containers/source/mock';
|
||||
import { Ecs } from '../../../../../../../common/ecs';
|
||||
import { mockTimelineData } from '../../../../../../common/mock';
|
||||
import '../../../../../../common/mock/match_media';
|
||||
|
@ -42,7 +41,6 @@ describe('suricata_row_renderer', () => {
|
|||
|
||||
test('renders correctly against snapshot', () => {
|
||||
const children = suricataRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: nonSuricata,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -62,7 +60,6 @@ describe('suricata_row_renderer', () => {
|
|||
|
||||
test('should render a suricata row', () => {
|
||||
const children = suricataRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: suricata,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -85,7 +82,6 @@ describe('suricata_row_renderer', () => {
|
|||
test('should render a suricata row even if it does not have a suricata signature', () => {
|
||||
delete suricata?.suricata?.eve?.alert?.signature;
|
||||
const children = suricataRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: suricata,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
|
|
@ -19,14 +19,9 @@ export const suricataRowRenderer: RowRenderer = {
|
|||
const module: string | null | undefined = get('event.module[0]', ecs);
|
||||
return module != null && module.toLowerCase() === 'suricata';
|
||||
},
|
||||
renderRow: ({ browserFields, data, isDraggable, timelineId }) => (
|
||||
renderRow: ({ data, isDraggable, timelineId }) => (
|
||||
<RowRendererContainer>
|
||||
<SuricataDetails
|
||||
data={data}
|
||||
browserFields={browserFields}
|
||||
isDraggable={isDraggable}
|
||||
timelineId={timelineId}
|
||||
/>
|
||||
<SuricataDetails data={data} isDraggable={isDraggable} timelineId={timelineId} />
|
||||
</RowRendererContainer>
|
||||
),
|
||||
};
|
||||
|
|
|
@ -4,7 +4,6 @@ exports[`GenericRowRenderer #createGenericFileRowRenderer renders correctly agai
|
|||
<span>
|
||||
<RowRendererContainer>
|
||||
<SystemGenericFileDetails
|
||||
browserFields={Object {}}
|
||||
contextId="user_login-test"
|
||||
data={
|
||||
Object {
|
||||
|
@ -68,7 +67,6 @@ exports[`GenericRowRenderer #createGenericSystemRowRenderer renders correctly ag
|
|||
<span>
|
||||
<RowRendererContainer>
|
||||
<SystemGenericDetails
|
||||
browserFields={Object {}}
|
||||
contextId="process_started-test"
|
||||
data={
|
||||
Object {
|
||||
|
|
|
@ -9,8 +9,6 @@ import { shallow } from 'enzyme';
|
|||
import React from 'react';
|
||||
|
||||
import '../../../../../../common/mock/match_media';
|
||||
import { BrowserFields } from '../../../../../../common/containers/source';
|
||||
import { mockBrowserFields } from '../../../../../../common/containers/source/mock';
|
||||
import { mockTimelineData, TestProviders } from '../../../../../../common/mock';
|
||||
import { SystemGenericDetails, SystemGenericLine } from './generic_details';
|
||||
import { useMountAppended } from '../../../../../../common/utils/use_mount_appended';
|
||||
|
@ -32,13 +30,10 @@ describe('SystemGenericDetails', () => {
|
|||
|
||||
describe('rendering', () => {
|
||||
test('it renders the default SystemGenericDetails', () => {
|
||||
// I cannot and do not want to use BrowserFields for the mocks for the snapshot tests as they are too heavy
|
||||
const browserFields: BrowserFields = {};
|
||||
const wrapper = shallow(
|
||||
<SystemGenericDetails
|
||||
contextId="[contextid-123]"
|
||||
text="[generic-text-123]"
|
||||
browserFields={browserFields}
|
||||
data={mockTimelineData[28].ecs}
|
||||
timelineId="test"
|
||||
/>
|
||||
|
@ -52,7 +47,6 @@ describe('SystemGenericDetails', () => {
|
|||
<SystemGenericDetails
|
||||
contextId="[contextid-123]"
|
||||
text="[generic-text-123]"
|
||||
browserFields={mockBrowserFields}
|
||||
data={mockTimelineData[28].ecs}
|
||||
timelineId="test"
|
||||
/>
|
||||
|
|
|
@ -9,7 +9,6 @@ import { EuiFlexGroup, EuiSpacer } from '@elastic/eui';
|
|||
import { get } from 'lodash/fp';
|
||||
import React from 'react';
|
||||
|
||||
import { BrowserFields } from '../../../../../../common/containers/source';
|
||||
import { Ecs } from '../../../../../../../common/ecs';
|
||||
import { DraggableBadge } from '../../../../../../common/components/draggables';
|
||||
import { OverflowField } from '../../../../../../common/components/tables/helpers';
|
||||
|
@ -141,7 +140,6 @@ export const SystemGenericLine = React.memo<Props>(
|
|||
SystemGenericLine.displayName = 'SystemGenericLine';
|
||||
|
||||
interface GenericDetailsProps {
|
||||
browserFields: BrowserFields;
|
||||
contextId: string;
|
||||
data: Ecs;
|
||||
isDraggable?: boolean;
|
||||
|
|
|
@ -8,8 +8,6 @@
|
|||
import { shallow } from 'enzyme';
|
||||
import React from 'react';
|
||||
|
||||
import { BrowserFields } from '../../../../../../common/containers/source';
|
||||
import { mockBrowserFields } from '../../../../../../common/containers/source/mock';
|
||||
import '../../../../../../common/mock/match_media';
|
||||
import { mockTimelineData, TestProviders } from '../../../../../../common/mock';
|
||||
import { mockEndgameCreationEvent } from '../../../../../../common/mock/mock_endgame_ecs_data';
|
||||
|
@ -43,13 +41,10 @@ describe('SystemGenericFileDetails', () => {
|
|||
|
||||
describe('rendering', () => {
|
||||
test('it renders the default SystemGenericDetails', () => {
|
||||
// I cannot and do not want to use BrowserFields for the mocks for the snapshot tests as they are too heavy
|
||||
const browserFields: BrowserFields = {};
|
||||
const wrapper = shallow(
|
||||
<SystemGenericFileDetails
|
||||
contextId="[contextid-123]"
|
||||
text="[generic-text-123]"
|
||||
browserFields={browserFields}
|
||||
data={mockTimelineData[29].ecs}
|
||||
timelineId="test"
|
||||
/>
|
||||
|
@ -63,7 +58,6 @@ describe('SystemGenericFileDetails', () => {
|
|||
<SystemGenericFileDetails
|
||||
contextId="[contextid-123]"
|
||||
text="[generic-text-123]"
|
||||
browserFields={mockBrowserFields}
|
||||
data={mockTimelineData[29].ecs}
|
||||
timelineId="test"
|
||||
/>
|
||||
|
@ -80,7 +74,6 @@ describe('SystemGenericFileDetails', () => {
|
|||
<SystemGenericFileDetails
|
||||
contextId="[contextid-123]"
|
||||
text="[generic-text-123]"
|
||||
browserFields={mockBrowserFields}
|
||||
data={mockEndgameCreationEvent}
|
||||
timelineId="test"
|
||||
/>
|
||||
|
|
|
@ -9,7 +9,6 @@ import { EuiFlexGroup, EuiSpacer } from '@elastic/eui';
|
|||
import { get } from 'lodash/fp';
|
||||
import React from 'react';
|
||||
|
||||
import { BrowserFields } from '../../../../../../common/containers/source';
|
||||
import { Ecs } from '../../../../../../../common/ecs';
|
||||
import { DraggableBadge } from '../../../../../../common/components/draggables';
|
||||
import { OverflowField } from '../../../../../../common/components/tables/helpers';
|
||||
|
@ -251,7 +250,6 @@ export const SystemGenericFileLine = React.memo<Props>(
|
|||
SystemGenericFileLine.displayName = 'SystemGenericFileLine';
|
||||
|
||||
interface GenericDetailsProps {
|
||||
browserFields: BrowserFields;
|
||||
contextId: string;
|
||||
data: Ecs;
|
||||
isDraggable?: boolean;
|
||||
|
|
|
@ -10,8 +10,6 @@ import { cloneDeep } from 'lodash/fp';
|
|||
import React from 'react';
|
||||
|
||||
import { removeExternalLinkText } from '@kbn/securitysolution-io-ts-utils';
|
||||
import { BrowserFields } from '../../../../../../common/containers/source';
|
||||
import { mockBrowserFields } from '../../../../../../common/containers/source/mock';
|
||||
import { Ecs } from '../../../../../../../common/ecs';
|
||||
import {
|
||||
mockDnsEvent,
|
||||
|
@ -118,10 +116,7 @@ describe('GenericRowRenderer', () => {
|
|||
});
|
||||
});
|
||||
test('renders correctly against snapshot', () => {
|
||||
// I cannot and do not want to use BrowserFields mocks for the snapshot tests as they are too heavy
|
||||
const browserFields: BrowserFields = {};
|
||||
const children = connectedToRenderer.renderRow({
|
||||
browserFields,
|
||||
data: system,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -151,7 +146,6 @@ describe('GenericRowRenderer', () => {
|
|||
});
|
||||
test('should render a system row', () => {
|
||||
const children = connectedToRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: system,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -182,10 +176,7 @@ describe('GenericRowRenderer', () => {
|
|||
});
|
||||
|
||||
test('renders correctly against snapshot', () => {
|
||||
// I cannot and do not want to use BrowserFields mocks for the snapshot tests as they are too heavy
|
||||
const browserFields: BrowserFields = {};
|
||||
const children = fileToRenderer.renderRow({
|
||||
browserFields,
|
||||
data: systemFile,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -214,7 +205,6 @@ describe('GenericRowRenderer', () => {
|
|||
|
||||
test('should render a system row', () => {
|
||||
const children = fileToRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: systemFile,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -246,7 +236,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endpointAlertsRowRenderer.isInstance(mockEndpointFileCreationMalwarePreventionAlert) &&
|
||||
endpointAlertsRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointFileCreationMalwarePreventionAlert,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -274,7 +263,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endpointAlertsRowRenderer.isInstance(mockEndpointFileCreationMalwareDetectionAlert) &&
|
||||
endpointAlertsRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointFileCreationMalwareDetectionAlert,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -304,7 +292,6 @@ describe('GenericRowRenderer', () => {
|
|||
mockEndpointFilesEncryptedRansomwarePreventionAlert
|
||||
) &&
|
||||
endpointAlertsRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointFilesEncryptedRansomwarePreventionAlert,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -334,7 +321,6 @@ describe('GenericRowRenderer', () => {
|
|||
mockEndpointFilesEncryptedRansomwareDetectionAlert
|
||||
) &&
|
||||
endpointAlertsRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointFilesEncryptedRansomwareDetectionAlert,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -364,7 +350,6 @@ describe('GenericRowRenderer', () => {
|
|||
mockEndpointFileModificationMalwarePreventionAlert
|
||||
) &&
|
||||
endpointAlertsRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointFileModificationMalwarePreventionAlert,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -394,7 +379,6 @@ describe('GenericRowRenderer', () => {
|
|||
mockEndpointFileModificationMalwareDetectionAlert
|
||||
) &&
|
||||
endpointAlertsRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointFileModificationMalwareDetectionAlert,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -422,7 +406,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endpointAlertsRowRenderer.isInstance(mockEndpointFileRenameMalwarePreventionAlert) &&
|
||||
endpointAlertsRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointFileRenameMalwarePreventionAlert,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -450,7 +433,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endpointAlertsRowRenderer.isInstance(mockEndpointFileRenameMalwareDetectionAlert) &&
|
||||
endpointAlertsRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointFileRenameMalwareDetectionAlert,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -480,7 +462,6 @@ describe('GenericRowRenderer', () => {
|
|||
mockEndpointProcessExecutionMalwarePreventionAlert
|
||||
) &&
|
||||
endpointAlertsRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointProcessExecutionMalwarePreventionAlert,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -510,7 +491,6 @@ describe('GenericRowRenderer', () => {
|
|||
mockEndpointProcessExecutionMalwareDetectionAlert
|
||||
) &&
|
||||
endpointAlertsRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointProcessExecutionMalwareDetectionAlert,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -538,7 +518,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endpointProcessStartRowRenderer.isInstance(mockEndpointProcessExecEvent) &&
|
||||
endpointProcessStartRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointProcessExecEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -564,7 +543,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endpointProcessStartRowRenderer.isInstance(mockEndpointProcessForkEvent) &&
|
||||
endpointProcessStartRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointProcessForkEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -590,7 +568,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endpointProcessStartRowRenderer.isInstance(mockEndpointProcessStartEvent) &&
|
||||
endpointProcessStartRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointProcessStartEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -619,7 +596,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endgameProcessCreationEventRowRenderer.isInstance(endgameCreationEvent) &&
|
||||
endgameProcessCreationEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: endgameCreationEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -645,7 +621,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endpointProcessEndRowRenderer.isInstance(mockEndpointProcessEndEvent) &&
|
||||
endpointProcessEndRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointProcessEndEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -674,7 +649,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endgameProcessTerminationEventRowRenderer.isInstance(endgameTerminationEvent) &&
|
||||
endgameProcessTerminationEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: endgameTerminationEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -703,7 +677,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endgameProcessCreationEventRowRenderer.isInstance(endgameCreationEvent) &&
|
||||
endgameProcessCreationEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: endgameCreationEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -734,7 +707,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endgameProcessCreationEventRowRenderer.isInstance(endgameCreationEvent) &&
|
||||
endgameProcessCreationEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: endgameCreationEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -765,7 +737,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endgameProcessCreationEventRowRenderer.isInstance(endgameCreationEvent) &&
|
||||
endgameProcessCreationEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: endgameCreationEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -791,7 +762,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endpointFileCreationRowRenderer.isInstance(mockEndpointFileCreationEvent) &&
|
||||
endpointFileCreationRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointFileCreationEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -820,7 +790,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endgameFileCreateEventRowRenderer.isInstance(endgameFileCreateEvent) &&
|
||||
endgameFileCreateEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: endgameFileCreateEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -846,7 +815,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endpointFileDeletionRowRenderer.isInstance(mockEndpointFileDeletionEvent) &&
|
||||
endpointFileDeletionRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointFileDeletionEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -872,7 +840,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endpointFileModificationRowRenderer.isInstance(mockEndpointFileModificationEvent) &&
|
||||
endpointFileModificationRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointFileModificationEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -898,7 +865,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endpointFileOverwriteRowRenderer.isInstance(mockEndpointFileOverwriteEvent) &&
|
||||
endpointFileOverwriteRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointFileOverwriteEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -924,7 +890,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endpointFileRenameRowRenderer.isInstance(mockEndpointFileRenameEvent) &&
|
||||
endpointFileRenameRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointFileRenameEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -953,7 +918,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endgameFileDeleteEventRowRenderer.isInstance(endgameFileDeleteEvent) &&
|
||||
endgameFileDeleteEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: endgameFileDeleteEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -982,7 +946,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{fileCreatedEventRowRenderer.isInstance(fimFileCreatedEvent) &&
|
||||
fileCreatedEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: fimFileCreatedEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1009,7 +972,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{fileDeletedEventRowRenderer.isInstance(fimFileDeletedEvent) &&
|
||||
fileDeletedEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: fimFileDeletedEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1038,7 +1000,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endgameFileCreateEventRowRenderer.isInstance(endgameFileCreateEvent) &&
|
||||
endgameFileCreateEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: endgameFileCreateEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1069,7 +1030,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endgameFileCreateEventRowRenderer.isInstance(endgameFileCreateEvent) &&
|
||||
endgameFileCreateEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: endgameFileCreateEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1100,7 +1060,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{fileCreatedEventRowRenderer.isInstance(fimFileCreatedEvent) &&
|
||||
fileCreatedEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: fimFileCreatedEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1128,7 +1087,6 @@ describe('GenericRowRenderer', () => {
|
|||
mockEndpointNetworkConnectionAcceptedEvent
|
||||
) &&
|
||||
endpointConnectionAcceptedRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointNetworkConnectionAcceptedEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1157,7 +1115,6 @@ describe('GenericRowRenderer', () => {
|
|||
mockEndpointRegistryModificationEvent
|
||||
) &&
|
||||
endpointRegistryModificationRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointRegistryModificationEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1185,7 +1142,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endpointLibraryLoadRowRenderer.isInstance(mockEndpointLibraryLoadEvent) &&
|
||||
endpointLibraryLoadRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointLibraryLoadEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1212,7 +1168,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endpointHttpRequestEventRowRenderer.isInstance(mockEndpointNetworkHttpRequestEvent) &&
|
||||
endpointHttpRequestEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointNetworkHttpRequestEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1241,7 +1196,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endgameIpv4ConnectionAcceptEventRowRenderer.isInstance(ipv4ConnectionAcceptEvent) &&
|
||||
endgameIpv4ConnectionAcceptEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: ipv4ConnectionAcceptEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1270,7 +1224,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endgameIpv6ConnectionAcceptEventRowRenderer.isInstance(ipv6ConnectionAcceptEvent) &&
|
||||
endgameIpv6ConnectionAcceptEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: ipv6ConnectionAcceptEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1296,7 +1249,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endpointDisconnectReceivedRowRenderer.isInstance(mockEndpointDisconnectReceivedEvent) &&
|
||||
endpointDisconnectReceivedRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointDisconnectReceivedEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1325,7 +1277,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endgameIpv4DisconnectReceivedEventRowRenderer.isInstance(ipv4DisconnectReceivedEvent) &&
|
||||
endgameIpv4DisconnectReceivedEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: ipv4DisconnectReceivedEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1354,7 +1305,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endgameIpv6DisconnectReceivedEventRowRenderer.isInstance(ipv6DisconnectReceivedEvent) &&
|
||||
endgameIpv6DisconnectReceivedEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: ipv6DisconnectReceivedEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1383,7 +1333,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{socketOpenedEventRowRenderer.isInstance(socketOpenedEvent) &&
|
||||
socketOpenedEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: socketOpenedEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1412,7 +1361,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{socketClosedEventRowRenderer.isInstance(socketClosedEvent) &&
|
||||
socketClosedEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: socketClosedEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1441,7 +1389,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{endgameIpv4ConnectionAcceptEventRowRenderer.isInstance(ipv4ConnectionAcceptEvent) &&
|
||||
endgameIpv4ConnectionAcceptEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: ipv4ConnectionAcceptEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1463,7 +1410,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{securityLogOnRowRenderer.isInstance(mockEndpointSecurityLogOnSuccessEvent) &&
|
||||
securityLogOnRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointSecurityLogOnSuccessEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1485,7 +1431,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{securityLogOnRowRenderer.isInstance(mockEndpointSecurityLogOnFailureEvent) &&
|
||||
securityLogOnRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointSecurityLogOnFailureEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1510,7 +1455,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{userLogonEventRowRenderer.isInstance(userLogonEvent) &&
|
||||
userLogonEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: userLogonEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1535,7 +1479,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{adminLogonEventRowRenderer.isInstance(adminLogonEvent) &&
|
||||
adminLogonEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: adminLogonEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1560,7 +1503,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{explicitUserLogonEventRowRenderer.isInstance(explicitUserLogonEvent) &&
|
||||
explicitUserLogonEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: explicitUserLogonEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1582,7 +1524,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{securityLogOffRowRenderer.isInstance(mockEndpointSecurityLogOffEvent) &&
|
||||
securityLogOffRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointSecurityLogOffEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1607,7 +1548,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{userLogoffEventRowRenderer.isInstance(userLogoffEvent) &&
|
||||
userLogoffEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: userLogoffEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1632,7 +1572,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{userLogonEventRowRenderer.isInstance(userLogonEvent) &&
|
||||
userLogonEventRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: userLogonEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1652,7 +1591,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{dnsRowRenderer.isInstance(mockEndpointNetworkLookupRequestedEvent) &&
|
||||
dnsRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointNetworkLookupRequestedEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1672,7 +1610,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{dnsRowRenderer.isInstance(mockEndpointNetworkLookupResultEvent) &&
|
||||
dnsRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockEndpointNetworkLookupResultEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1696,7 +1633,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{dnsRowRenderer.isInstance(requestEvent) &&
|
||||
dnsRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: requestEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1720,7 +1656,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{dnsRowRenderer.isInstance(dnsEvent) &&
|
||||
dnsRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: dnsEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1750,7 +1685,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{dnsRowRenderer.isInstance(requestEvent) &&
|
||||
dnsRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: requestEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -1778,7 +1712,6 @@ describe('GenericRowRenderer', () => {
|
|||
<TestProviders>
|
||||
{dnsRowRenderer.isInstance(requestEvent) &&
|
||||
dnsRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: requestEvent,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
|
|
@ -38,10 +38,9 @@ export const createGenericSystemRowRenderer = ({
|
|||
action.toLowerCase() === actionName
|
||||
);
|
||||
},
|
||||
renderRow: ({ browserFields, data, isDraggable, timelineId }) => (
|
||||
renderRow: ({ data, isDraggable, timelineId }) => (
|
||||
<RowRendererContainer>
|
||||
<SystemGenericDetails
|
||||
browserFields={browserFields}
|
||||
contextId={`${actionName}-${timelineId}`}
|
||||
data={data}
|
||||
isDraggable={isDraggable}
|
||||
|
@ -70,10 +69,9 @@ export const createEndgameProcessRowRenderer = ({
|
|||
action?.toLowerCase() === actionName
|
||||
);
|
||||
},
|
||||
renderRow: ({ browserFields, data, isDraggable, timelineId }) => (
|
||||
renderRow: ({ data, isDraggable, timelineId }) => (
|
||||
<RowRendererContainer>
|
||||
<SystemGenericFileDetails
|
||||
browserFields={browserFields}
|
||||
data={data}
|
||||
contextId={`endgame-process-${actionName}-${timelineId}`}
|
||||
isDraggable={isDraggable}
|
||||
|
@ -102,10 +100,9 @@ export const createFimRowRenderer = ({
|
|||
action?.toLowerCase() === actionName
|
||||
);
|
||||
},
|
||||
renderRow: ({ browserFields, data, isDraggable, timelineId }) => (
|
||||
renderRow: ({ data, isDraggable, timelineId }) => (
|
||||
<RowRendererContainer>
|
||||
<SystemGenericFileDetails
|
||||
browserFields={browserFields}
|
||||
data={data}
|
||||
contextId={`fim-${actionName}-${timelineId}`}
|
||||
isDraggable={isDraggable}
|
||||
|
@ -152,10 +149,9 @@ export const createEndpointAlertsRowRenderer = ({
|
|||
eventActionMatches
|
||||
);
|
||||
},
|
||||
renderRow: ({ browserFields, data, isDraggable, timelineId }) => (
|
||||
renderRow: ({ data, isDraggable, timelineId }) => (
|
||||
<RowRendererContainer>
|
||||
<SystemGenericFileDetails
|
||||
browserFields={browserFields}
|
||||
contextId={`endpoint-alerts-row-renderer-${eventAction}-${eventCategory}-${eventType}-${timelineId}`}
|
||||
data={data}
|
||||
isDraggable={isDraggable}
|
||||
|
@ -184,10 +180,9 @@ export const createEndpointLibraryRowRenderer = ({
|
|||
dataset?.toLowerCase() === 'endpoint.events.library' && action?.toLowerCase() === actionName
|
||||
);
|
||||
},
|
||||
renderRow: ({ browserFields, data, isDraggable, timelineId }) => (
|
||||
renderRow: ({ data, isDraggable, timelineId }) => (
|
||||
<RowRendererContainer>
|
||||
<SystemGenericFileDetails
|
||||
browserFields={browserFields}
|
||||
contextId={`library-row-renderer-${actionName}-${timelineId}`}
|
||||
data={data}
|
||||
isDraggable={isDraggable}
|
||||
|
@ -217,10 +212,9 @@ export const createGenericFileRowRenderer = ({
|
|||
action.toLowerCase() === actionName
|
||||
);
|
||||
},
|
||||
renderRow: ({ browserFields, data, isDraggable, timelineId }) => (
|
||||
renderRow: ({ data, isDraggable, timelineId }) => (
|
||||
<RowRendererContainer>
|
||||
<SystemGenericFileDetails
|
||||
browserFields={browserFields}
|
||||
contextId={`${actionName}-${timelineId}`}
|
||||
data={data}
|
||||
isDraggable={isDraggable}
|
||||
|
@ -243,10 +237,9 @@ export const createSocketRowRenderer = ({
|
|||
const action: string | null | undefined = get('event.action[0]', ecs);
|
||||
return action != null && action.toLowerCase() === actionName;
|
||||
},
|
||||
renderRow: ({ browserFields, data, isDraggable, timelineId }) => (
|
||||
renderRow: ({ data, isDraggable, timelineId }) => (
|
||||
<RowRendererContainer>
|
||||
<SystemGenericFileDetails
|
||||
browserFields={browserFields}
|
||||
contextId={`socket-${actionName}-${timelineId}`}
|
||||
data={data}
|
||||
isDraggable={isDraggable}
|
||||
|
@ -273,10 +266,9 @@ export const createSecurityEventRowRenderer = ({
|
|||
action?.toLowerCase() === actionName
|
||||
);
|
||||
},
|
||||
renderRow: ({ browserFields, data, isDraggable, timelineId }) => (
|
||||
renderRow: ({ data, isDraggable, timelineId }) => (
|
||||
<RowRendererContainer>
|
||||
<EndgameSecurityEventDetails
|
||||
browserFields={browserFields}
|
||||
contextId={`authentication-${actionName}-${timelineId}`}
|
||||
data={data}
|
||||
isDraggable={isDraggable}
|
||||
|
@ -293,10 +285,9 @@ export const createDnsRowRenderer = (): RowRenderer => ({
|
|||
const dnsQuestionName: string | null | undefined = get('dns.question.name[0]', ecs);
|
||||
return !isNillEmptyOrNotFinite(dnsQuestionType) && !isNillEmptyOrNotFinite(dnsQuestionName);
|
||||
},
|
||||
renderRow: ({ browserFields, data, isDraggable, timelineId }) => (
|
||||
renderRow: ({ data, isDraggable, timelineId }) => (
|
||||
<RowRendererContainer>
|
||||
<DnsRequestEventDetails
|
||||
browserFields={browserFields}
|
||||
contextId={`dns-request-${timelineId}`}
|
||||
data={data}
|
||||
isDraggable={isDraggable}
|
||||
|
|
|
@ -2,596 +2,6 @@
|
|||
|
||||
exports[`ZeekDetails rendering it renders the default ZeekDetails 1`] = `
|
||||
<ZeekDetails
|
||||
browserFields={
|
||||
Object {
|
||||
"agent": Object {
|
||||
"fields": Object {
|
||||
"agent.ephemeral_id": Object {
|
||||
"aggregatable": true,
|
||||
"category": "agent",
|
||||
"description": "Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but \`agent.id\` does not.",
|
||||
"example": "8a4f500f",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "agent.ephemeral_id",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"agent.hostname": Object {
|
||||
"aggregatable": true,
|
||||
"category": "agent",
|
||||
"description": null,
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "agent.hostname",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"agent.id": Object {
|
||||
"aggregatable": true,
|
||||
"category": "agent",
|
||||
"description": "Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id.",
|
||||
"example": "8a4f500d",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "agent.id",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"agent.name": Object {
|
||||
"aggregatable": true,
|
||||
"category": "agent",
|
||||
"description": "Name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. If no name is given, the name is often left empty.",
|
||||
"example": "foo",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "agent.name",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"auditd": Object {
|
||||
"fields": Object {
|
||||
"auditd.data.a0": Object {
|
||||
"aggregatable": true,
|
||||
"category": "auditd",
|
||||
"description": null,
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
],
|
||||
"name": "auditd.data.a0",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"auditd.data.a1": Object {
|
||||
"aggregatable": true,
|
||||
"category": "auditd",
|
||||
"description": null,
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
],
|
||||
"name": "auditd.data.a1",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"auditd.data.a2": Object {
|
||||
"aggregatable": true,
|
||||
"category": "auditd",
|
||||
"description": null,
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
],
|
||||
"name": "auditd.data.a2",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"base": Object {
|
||||
"fields": Object {
|
||||
"@timestamp": Object {
|
||||
"aggregatable": true,
|
||||
"category": "base",
|
||||
"description": "Date/time when the event originated. For log events this is the date/time when the event was generated, and not when it was read. Required field for all events.",
|
||||
"example": "2016-05-23T08:05:34.853Z",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "@timestamp",
|
||||
"readFromDocValues": true,
|
||||
"searchable": true,
|
||||
"type": "date",
|
||||
},
|
||||
"_id": Object {
|
||||
"aggregatable": false,
|
||||
"category": "base",
|
||||
"description": "Each document has an _id that uniquely identifies it",
|
||||
"example": "Y-6TfmcB0WOhS6qyMv3s",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "_id",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"message": Object {
|
||||
"aggregatable": false,
|
||||
"category": "base",
|
||||
"description": "For log events the message field contains the log message, optimized for viewing in a log viewer. For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. If multiple messages exist, they can be combined into one message.",
|
||||
"example": "Hello World",
|
||||
"format": "string",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "message",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"client": Object {
|
||||
"fields": Object {
|
||||
"client.address": Object {
|
||||
"aggregatable": true,
|
||||
"category": "client",
|
||||
"description": "Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the \`.address\` field. Then it should be duplicated to \`.ip\` or \`.domain\`, depending on which one it is.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "client.address",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"client.bytes": Object {
|
||||
"aggregatable": true,
|
||||
"category": "client",
|
||||
"description": "Bytes sent from the client to the server.",
|
||||
"example": "184",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "client.bytes",
|
||||
"searchable": true,
|
||||
"type": "number",
|
||||
},
|
||||
"client.domain": Object {
|
||||
"aggregatable": true,
|
||||
"category": "client",
|
||||
"description": "Client domain.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "client.domain",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"client.geo.country_iso_code": Object {
|
||||
"aggregatable": true,
|
||||
"category": "client",
|
||||
"description": "Country ISO code.",
|
||||
"example": "CA",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "client.geo.country_iso_code",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"cloud": Object {
|
||||
"fields": Object {
|
||||
"cloud.account.id": Object {
|
||||
"aggregatable": true,
|
||||
"category": "cloud",
|
||||
"description": "The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.",
|
||||
"example": "666777888999",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "cloud.account.id",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"cloud.availability_zone": Object {
|
||||
"aggregatable": true,
|
||||
"category": "cloud",
|
||||
"description": "Availability zone in which this host is running.",
|
||||
"example": "us-east-1c",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "cloud.availability_zone",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"container": Object {
|
||||
"fields": Object {
|
||||
"container.id": Object {
|
||||
"aggregatable": true,
|
||||
"category": "container",
|
||||
"description": "Unique container id.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "container.id",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"container.image.name": Object {
|
||||
"aggregatable": true,
|
||||
"category": "container",
|
||||
"description": "Name of the image the container was built on.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "container.image.name",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"container.image.tag": Object {
|
||||
"aggregatable": true,
|
||||
"category": "container",
|
||||
"description": "Container image tag.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "container.image.tag",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"destination": Object {
|
||||
"fields": Object {
|
||||
"destination.address": Object {
|
||||
"aggregatable": true,
|
||||
"category": "destination",
|
||||
"description": "Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the \`.address\` field. Then it should be duplicated to \`.ip\` or \`.domain\`, depending on which one it is.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "destination.address",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"destination.bytes": Object {
|
||||
"aggregatable": true,
|
||||
"category": "destination",
|
||||
"description": "Bytes sent from the destination to the source.",
|
||||
"example": "184",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "destination.bytes",
|
||||
"searchable": true,
|
||||
"type": "number",
|
||||
},
|
||||
"destination.domain": Object {
|
||||
"aggregatable": true,
|
||||
"category": "destination",
|
||||
"description": "Destination domain.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "destination.domain",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"destination.ip": Object {
|
||||
"aggregatable": true,
|
||||
"category": "destination",
|
||||
"description": "IP address of the destination. Can be one or multiple IPv4 or IPv6 addresses.",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "destination.ip",
|
||||
"searchable": true,
|
||||
"type": "ip",
|
||||
},
|
||||
"destination.port": Object {
|
||||
"aggregatable": true,
|
||||
"category": "destination",
|
||||
"description": "Port of the destination.",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "destination.port",
|
||||
"searchable": true,
|
||||
"type": "long",
|
||||
},
|
||||
},
|
||||
},
|
||||
"event": Object {
|
||||
"fields": Object {
|
||||
"event.action": Object {
|
||||
"aggregatable": true,
|
||||
"category": "event",
|
||||
"description": "The action captured by the event. This describes the information in the event. It is more specific than \`event.category\`. Examples are \`group-add\`, \`process-started\`, \`file-created\`. The value is normally defined by the implementer.",
|
||||
"example": "user-password-change",
|
||||
"format": "string",
|
||||
"indexes": Array [
|
||||
"apm-*-transaction*",
|
||||
"traces-apm*",
|
||||
"auditbeat-*",
|
||||
"endgame-*",
|
||||
"filebeat-*",
|
||||
"logs-*",
|
||||
"packetbeat-*",
|
||||
"winlogbeat-*",
|
||||
],
|
||||
"name": "event.action",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"event.category": Object {
|
||||
"aggregatable": true,
|
||||
"category": "event",
|
||||
"description": "This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. \`event.category\` represents the \\"big buckets\\" of ECS categories. For example, filtering on \`event.category:process\` yields all events relating to process activity. This field is closely related to \`event.type\`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories.",
|
||||
"example": "authentication",
|
||||
"format": "string",
|
||||
"indexes": Array [
|
||||
"apm-*-transaction*",
|
||||
"traces-apm*",
|
||||
"auditbeat-*",
|
||||
"endgame-*",
|
||||
"filebeat-*",
|
||||
"logs-*",
|
||||
"packetbeat-*",
|
||||
"winlogbeat-*",
|
||||
],
|
||||
"name": "event.category",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"event.end": Object {
|
||||
"aggregatable": true,
|
||||
"category": "event",
|
||||
"description": "event.end contains the date when the event ended or when the activity was last observed.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"apm-*-transaction*",
|
||||
"traces-apm*",
|
||||
"auditbeat-*",
|
||||
"endgame-*",
|
||||
"filebeat-*",
|
||||
"logs-*",
|
||||
"packetbeat-*",
|
||||
"winlogbeat-*",
|
||||
],
|
||||
"name": "event.end",
|
||||
"searchable": true,
|
||||
"type": "date",
|
||||
},
|
||||
"event.severity": Object {
|
||||
"aggregatable": true,
|
||||
"category": "event",
|
||||
"description": "The numeric severity of the event according to your event source. What the different severity values mean can be different between sources and use cases. It's up to the implementer to make sure severities are consistent across events from the same source. The Syslog severity belongs in \`log.syslog.severity.code\`. \`event.severity\` is meant to represent the severity according to the event source (e.g. firewall, IDS). If the event source does not publish its own severity, you may optionally copy the \`log.syslog.severity.code\` to \`event.severity\`.",
|
||||
"example": 7,
|
||||
"format": "number",
|
||||
"indexes": Array [
|
||||
"apm-*-transaction*",
|
||||
"traces-apm*",
|
||||
"auditbeat-*",
|
||||
"endgame-*",
|
||||
"filebeat-*",
|
||||
"logs-*",
|
||||
"packetbeat-*",
|
||||
"winlogbeat-*",
|
||||
],
|
||||
"name": "event.severity",
|
||||
"searchable": true,
|
||||
"type": "number",
|
||||
},
|
||||
},
|
||||
},
|
||||
"host": Object {
|
||||
"fields": Object {
|
||||
"host.name": Object {
|
||||
"aggregatable": true,
|
||||
"category": "host",
|
||||
"description": "Name of the host. It can contain what \`hostname\` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.",
|
||||
"format": "string",
|
||||
"indexes": Array [
|
||||
"apm-*-transaction*",
|
||||
"traces-apm*",
|
||||
"auditbeat-*",
|
||||
"endgame-*",
|
||||
"filebeat-*",
|
||||
"logs-*",
|
||||
"packetbeat-*",
|
||||
"winlogbeat-*",
|
||||
],
|
||||
"name": "host.name",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"nestedField": Object {
|
||||
"fields": Object {
|
||||
"nestedField.firstAttributes": Object {
|
||||
"aggregatable": false,
|
||||
"category": "nestedField",
|
||||
"description": "",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "nestedField.firstAttributes",
|
||||
"searchable": true,
|
||||
"subType": Object {
|
||||
"nested": Object {
|
||||
"path": "nestedField",
|
||||
},
|
||||
},
|
||||
"type": "string",
|
||||
},
|
||||
"nestedField.secondAttributes": Object {
|
||||
"aggregatable": false,
|
||||
"category": "nestedField",
|
||||
"description": "",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "nestedField.secondAttributes",
|
||||
"searchable": true,
|
||||
"subType": Object {
|
||||
"nested": Object {
|
||||
"path": "nestedField",
|
||||
},
|
||||
},
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"source": Object {
|
||||
"fields": Object {
|
||||
"source.ip": Object {
|
||||
"aggregatable": true,
|
||||
"category": "source",
|
||||
"description": "IP address of the source. Can be one or multiple IPv4 or IPv6 addresses.",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "source.ip",
|
||||
"searchable": true,
|
||||
"type": "ip",
|
||||
},
|
||||
"source.port": Object {
|
||||
"aggregatable": true,
|
||||
"category": "source",
|
||||
"description": "Port of the source.",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "source.port",
|
||||
"searchable": true,
|
||||
"type": "long",
|
||||
},
|
||||
},
|
||||
},
|
||||
"user": Object {
|
||||
"fields": Object {
|
||||
"user.name": Object {
|
||||
"aggregatable": true,
|
||||
"category": "user",
|
||||
"description": "Short name or login of the user.",
|
||||
"example": "albert",
|
||||
"format": "string",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "user.name",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
data={
|
||||
Object {
|
||||
"_id": "4",
|
||||
|
|
|
@ -4,596 +4,6 @@ exports[`zeek_row_renderer renders correctly against snapshot 1`] = `
|
|||
<span>
|
||||
<RowRendererContainer>
|
||||
<ZeekDetails
|
||||
browserFields={
|
||||
Object {
|
||||
"agent": Object {
|
||||
"fields": Object {
|
||||
"agent.ephemeral_id": Object {
|
||||
"aggregatable": true,
|
||||
"category": "agent",
|
||||
"description": "Ephemeral identifier of this agent (if one exists). This id normally changes across restarts, but \`agent.id\` does not.",
|
||||
"example": "8a4f500f",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "agent.ephemeral_id",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"agent.hostname": Object {
|
||||
"aggregatable": true,
|
||||
"category": "agent",
|
||||
"description": null,
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "agent.hostname",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"agent.id": Object {
|
||||
"aggregatable": true,
|
||||
"category": "agent",
|
||||
"description": "Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id.",
|
||||
"example": "8a4f500d",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "agent.id",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"agent.name": Object {
|
||||
"aggregatable": true,
|
||||
"category": "agent",
|
||||
"description": "Name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. If no name is given, the name is often left empty.",
|
||||
"example": "foo",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "agent.name",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"auditd": Object {
|
||||
"fields": Object {
|
||||
"auditd.data.a0": Object {
|
||||
"aggregatable": true,
|
||||
"category": "auditd",
|
||||
"description": null,
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
],
|
||||
"name": "auditd.data.a0",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"auditd.data.a1": Object {
|
||||
"aggregatable": true,
|
||||
"category": "auditd",
|
||||
"description": null,
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
],
|
||||
"name": "auditd.data.a1",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"auditd.data.a2": Object {
|
||||
"aggregatable": true,
|
||||
"category": "auditd",
|
||||
"description": null,
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
],
|
||||
"name": "auditd.data.a2",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"base": Object {
|
||||
"fields": Object {
|
||||
"@timestamp": Object {
|
||||
"aggregatable": true,
|
||||
"category": "base",
|
||||
"description": "Date/time when the event originated. For log events this is the date/time when the event was generated, and not when it was read. Required field for all events.",
|
||||
"example": "2016-05-23T08:05:34.853Z",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "@timestamp",
|
||||
"readFromDocValues": true,
|
||||
"searchable": true,
|
||||
"type": "date",
|
||||
},
|
||||
"_id": Object {
|
||||
"aggregatable": false,
|
||||
"category": "base",
|
||||
"description": "Each document has an _id that uniquely identifies it",
|
||||
"example": "Y-6TfmcB0WOhS6qyMv3s",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "_id",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"message": Object {
|
||||
"aggregatable": false,
|
||||
"category": "base",
|
||||
"description": "For log events the message field contains the log message, optimized for viewing in a log viewer. For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. If multiple messages exist, they can be combined into one message.",
|
||||
"example": "Hello World",
|
||||
"format": "string",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "message",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"client": Object {
|
||||
"fields": Object {
|
||||
"client.address": Object {
|
||||
"aggregatable": true,
|
||||
"category": "client",
|
||||
"description": "Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the \`.address\` field. Then it should be duplicated to \`.ip\` or \`.domain\`, depending on which one it is.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "client.address",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"client.bytes": Object {
|
||||
"aggregatable": true,
|
||||
"category": "client",
|
||||
"description": "Bytes sent from the client to the server.",
|
||||
"example": "184",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "client.bytes",
|
||||
"searchable": true,
|
||||
"type": "number",
|
||||
},
|
||||
"client.domain": Object {
|
||||
"aggregatable": true,
|
||||
"category": "client",
|
||||
"description": "Client domain.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "client.domain",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"client.geo.country_iso_code": Object {
|
||||
"aggregatable": true,
|
||||
"category": "client",
|
||||
"description": "Country ISO code.",
|
||||
"example": "CA",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "client.geo.country_iso_code",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"cloud": Object {
|
||||
"fields": Object {
|
||||
"cloud.account.id": Object {
|
||||
"aggregatable": true,
|
||||
"category": "cloud",
|
||||
"description": "The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.",
|
||||
"example": "666777888999",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "cloud.account.id",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"cloud.availability_zone": Object {
|
||||
"aggregatable": true,
|
||||
"category": "cloud",
|
||||
"description": "Availability zone in which this host is running.",
|
||||
"example": "us-east-1c",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "cloud.availability_zone",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"container": Object {
|
||||
"fields": Object {
|
||||
"container.id": Object {
|
||||
"aggregatable": true,
|
||||
"category": "container",
|
||||
"description": "Unique container id.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "container.id",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"container.image.name": Object {
|
||||
"aggregatable": true,
|
||||
"category": "container",
|
||||
"description": "Name of the image the container was built on.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "container.image.name",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"container.image.tag": Object {
|
||||
"aggregatable": true,
|
||||
"category": "container",
|
||||
"description": "Container image tag.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "container.image.tag",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"destination": Object {
|
||||
"fields": Object {
|
||||
"destination.address": Object {
|
||||
"aggregatable": true,
|
||||
"category": "destination",
|
||||
"description": "Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the \`.address\` field. Then it should be duplicated to \`.ip\` or \`.domain\`, depending on which one it is.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "destination.address",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"destination.bytes": Object {
|
||||
"aggregatable": true,
|
||||
"category": "destination",
|
||||
"description": "Bytes sent from the destination to the source.",
|
||||
"example": "184",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "destination.bytes",
|
||||
"searchable": true,
|
||||
"type": "number",
|
||||
},
|
||||
"destination.domain": Object {
|
||||
"aggregatable": true,
|
||||
"category": "destination",
|
||||
"description": "Destination domain.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "destination.domain",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"destination.ip": Object {
|
||||
"aggregatable": true,
|
||||
"category": "destination",
|
||||
"description": "IP address of the destination. Can be one or multiple IPv4 or IPv6 addresses.",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "destination.ip",
|
||||
"searchable": true,
|
||||
"type": "ip",
|
||||
},
|
||||
"destination.port": Object {
|
||||
"aggregatable": true,
|
||||
"category": "destination",
|
||||
"description": "Port of the destination.",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "destination.port",
|
||||
"searchable": true,
|
||||
"type": "long",
|
||||
},
|
||||
},
|
||||
},
|
||||
"event": Object {
|
||||
"fields": Object {
|
||||
"event.action": Object {
|
||||
"aggregatable": true,
|
||||
"category": "event",
|
||||
"description": "The action captured by the event. This describes the information in the event. It is more specific than \`event.category\`. Examples are \`group-add\`, \`process-started\`, \`file-created\`. The value is normally defined by the implementer.",
|
||||
"example": "user-password-change",
|
||||
"format": "string",
|
||||
"indexes": Array [
|
||||
"apm-*-transaction*",
|
||||
"traces-apm*",
|
||||
"auditbeat-*",
|
||||
"endgame-*",
|
||||
"filebeat-*",
|
||||
"logs-*",
|
||||
"packetbeat-*",
|
||||
"winlogbeat-*",
|
||||
],
|
||||
"name": "event.action",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"event.category": Object {
|
||||
"aggregatable": true,
|
||||
"category": "event",
|
||||
"description": "This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. \`event.category\` represents the \\"big buckets\\" of ECS categories. For example, filtering on \`event.category:process\` yields all events relating to process activity. This field is closely related to \`event.type\`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories.",
|
||||
"example": "authentication",
|
||||
"format": "string",
|
||||
"indexes": Array [
|
||||
"apm-*-transaction*",
|
||||
"traces-apm*",
|
||||
"auditbeat-*",
|
||||
"endgame-*",
|
||||
"filebeat-*",
|
||||
"logs-*",
|
||||
"packetbeat-*",
|
||||
"winlogbeat-*",
|
||||
],
|
||||
"name": "event.category",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
"event.end": Object {
|
||||
"aggregatable": true,
|
||||
"category": "event",
|
||||
"description": "event.end contains the date when the event ended or when the activity was last observed.",
|
||||
"example": null,
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"apm-*-transaction*",
|
||||
"traces-apm*",
|
||||
"auditbeat-*",
|
||||
"endgame-*",
|
||||
"filebeat-*",
|
||||
"logs-*",
|
||||
"packetbeat-*",
|
||||
"winlogbeat-*",
|
||||
],
|
||||
"name": "event.end",
|
||||
"searchable": true,
|
||||
"type": "date",
|
||||
},
|
||||
"event.severity": Object {
|
||||
"aggregatable": true,
|
||||
"category": "event",
|
||||
"description": "The numeric severity of the event according to your event source. What the different severity values mean can be different between sources and use cases. It's up to the implementer to make sure severities are consistent across events from the same source. The Syslog severity belongs in \`log.syslog.severity.code\`. \`event.severity\` is meant to represent the severity according to the event source (e.g. firewall, IDS). If the event source does not publish its own severity, you may optionally copy the \`log.syslog.severity.code\` to \`event.severity\`.",
|
||||
"example": 7,
|
||||
"format": "number",
|
||||
"indexes": Array [
|
||||
"apm-*-transaction*",
|
||||
"traces-apm*",
|
||||
"auditbeat-*",
|
||||
"endgame-*",
|
||||
"filebeat-*",
|
||||
"logs-*",
|
||||
"packetbeat-*",
|
||||
"winlogbeat-*",
|
||||
],
|
||||
"name": "event.severity",
|
||||
"searchable": true,
|
||||
"type": "number",
|
||||
},
|
||||
},
|
||||
},
|
||||
"host": Object {
|
||||
"fields": Object {
|
||||
"host.name": Object {
|
||||
"aggregatable": true,
|
||||
"category": "host",
|
||||
"description": "Name of the host. It can contain what \`hostname\` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.",
|
||||
"format": "string",
|
||||
"indexes": Array [
|
||||
"apm-*-transaction*",
|
||||
"traces-apm*",
|
||||
"auditbeat-*",
|
||||
"endgame-*",
|
||||
"filebeat-*",
|
||||
"logs-*",
|
||||
"packetbeat-*",
|
||||
"winlogbeat-*",
|
||||
],
|
||||
"name": "host.name",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"nestedField": Object {
|
||||
"fields": Object {
|
||||
"nestedField.firstAttributes": Object {
|
||||
"aggregatable": false,
|
||||
"category": "nestedField",
|
||||
"description": "",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "nestedField.firstAttributes",
|
||||
"searchable": true,
|
||||
"subType": Object {
|
||||
"nested": Object {
|
||||
"path": "nestedField",
|
||||
},
|
||||
},
|
||||
"type": "string",
|
||||
},
|
||||
"nestedField.secondAttributes": Object {
|
||||
"aggregatable": false,
|
||||
"category": "nestedField",
|
||||
"description": "",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "nestedField.secondAttributes",
|
||||
"searchable": true,
|
||||
"subType": Object {
|
||||
"nested": Object {
|
||||
"path": "nestedField",
|
||||
},
|
||||
},
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
"source": Object {
|
||||
"fields": Object {
|
||||
"source.ip": Object {
|
||||
"aggregatable": true,
|
||||
"category": "source",
|
||||
"description": "IP address of the source. Can be one or multiple IPv4 or IPv6 addresses.",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "source.ip",
|
||||
"searchable": true,
|
||||
"type": "ip",
|
||||
},
|
||||
"source.port": Object {
|
||||
"aggregatable": true,
|
||||
"category": "source",
|
||||
"description": "Port of the source.",
|
||||
"example": "",
|
||||
"format": "",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "source.port",
|
||||
"searchable": true,
|
||||
"type": "long",
|
||||
},
|
||||
},
|
||||
},
|
||||
"user": Object {
|
||||
"fields": Object {
|
||||
"user.name": Object {
|
||||
"aggregatable": true,
|
||||
"category": "user",
|
||||
"description": "Short name or login of the user.",
|
||||
"example": "albert",
|
||||
"format": "string",
|
||||
"indexes": Array [
|
||||
"auditbeat",
|
||||
"filebeat",
|
||||
"packetbeat",
|
||||
],
|
||||
"name": "user.name",
|
||||
"searchable": true,
|
||||
"type": "string",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
data={
|
||||
Object {
|
||||
"_id": "1",
|
||||
|
|
|
@ -9,7 +9,6 @@ import React from 'react';
|
|||
|
||||
import { removeExternalLinkText } from '@kbn/securitysolution-io-ts-utils';
|
||||
import '../../../../../../common/mock/match_media';
|
||||
import { mockBrowserFields } from '../../../../../../common/containers/source/mock';
|
||||
import { mockTimelineData, TestProviders } from '../../../../../../common/mock';
|
||||
import { useMountAppended } from '../../../../../../common/utils/use_mount_appended';
|
||||
import { ZeekDetails } from './zeek_details';
|
||||
|
@ -39,11 +38,7 @@ describe('ZeekDetails', () => {
|
|||
test('it renders the default ZeekDetails', () => {
|
||||
const wrapper = mount(
|
||||
<TestProviders>
|
||||
<ZeekDetails
|
||||
data={mockTimelineData[2].ecs}
|
||||
browserFields={mockBrowserFields}
|
||||
timelineId="test"
|
||||
/>
|
||||
<ZeekDetails data={mockTimelineData[2].ecs} timelineId="test" />
|
||||
</TestProviders>
|
||||
);
|
||||
expect(wrapper.find('ZeekDetails')).toMatchSnapshot();
|
||||
|
@ -52,11 +47,7 @@ describe('ZeekDetails', () => {
|
|||
test('it returns zeek.connection if the data does contain zeek.connection data', () => {
|
||||
const wrapper = mount(
|
||||
<TestProviders>
|
||||
<ZeekDetails
|
||||
data={mockTimelineData[13].ecs}
|
||||
browserFields={mockBrowserFields}
|
||||
timelineId="test"
|
||||
/>
|
||||
<ZeekDetails data={mockTimelineData[13].ecs} timelineId="test" />
|
||||
</TestProviders>
|
||||
);
|
||||
expect(extractEuiIconText(removeExternalLinkText(wrapper.text()))).toEqual(
|
||||
|
@ -67,11 +58,7 @@ describe('ZeekDetails', () => {
|
|||
test('it returns zeek.dns if the data does contain zeek.dns data', () => {
|
||||
const wrapper = mount(
|
||||
<TestProviders>
|
||||
<ZeekDetails
|
||||
data={mockTimelineData[14].ecs}
|
||||
browserFields={mockBrowserFields}
|
||||
timelineId="test"
|
||||
/>
|
||||
<ZeekDetails data={mockTimelineData[14].ecs} timelineId="test" />
|
||||
</TestProviders>
|
||||
);
|
||||
expect(extractEuiIconText(removeExternalLinkText(wrapper.text()))).toEqual(
|
||||
|
@ -82,11 +69,7 @@ describe('ZeekDetails', () => {
|
|||
test('it returns zeek.http if the data does contain zeek.http data', () => {
|
||||
const wrapper = mount(
|
||||
<TestProviders>
|
||||
<ZeekDetails
|
||||
data={mockTimelineData[15].ecs}
|
||||
browserFields={mockBrowserFields}
|
||||
timelineId="test"
|
||||
/>
|
||||
<ZeekDetails data={mockTimelineData[15].ecs} timelineId="test" />
|
||||
</TestProviders>
|
||||
);
|
||||
expect(extractEuiIconText(removeExternalLinkText(wrapper.text()))).toEqual(
|
||||
|
@ -97,11 +80,7 @@ describe('ZeekDetails', () => {
|
|||
test('it returns zeek.notice if the data does contain zeek.notice data', () => {
|
||||
const wrapper = mount(
|
||||
<TestProviders>
|
||||
<ZeekDetails
|
||||
data={mockTimelineData[16].ecs}
|
||||
browserFields={mockBrowserFields}
|
||||
timelineId="test"
|
||||
/>
|
||||
<ZeekDetails data={mockTimelineData[16].ecs} timelineId="test" />
|
||||
</TestProviders>
|
||||
);
|
||||
expect(extractEuiIconText(removeExternalLinkText(wrapper.text()))).toEqual(
|
||||
|
@ -112,11 +91,7 @@ describe('ZeekDetails', () => {
|
|||
test('it returns zeek.ssl if the data does contain zeek.ssl data', () => {
|
||||
const wrapper = mount(
|
||||
<TestProviders>
|
||||
<ZeekDetails
|
||||
data={mockTimelineData[17].ecs}
|
||||
browserFields={mockBrowserFields}
|
||||
timelineId="test"
|
||||
/>
|
||||
<ZeekDetails data={mockTimelineData[17].ecs} timelineId="test" />
|
||||
</TestProviders>
|
||||
);
|
||||
expect(extractEuiIconText(removeExternalLinkText(wrapper.text()))).toEqual(
|
||||
|
@ -127,11 +102,7 @@ describe('ZeekDetails', () => {
|
|||
test('it returns zeek.files if the data does contain zeek.files data', () => {
|
||||
const wrapper = mount(
|
||||
<TestProviders>
|
||||
<ZeekDetails
|
||||
data={mockTimelineData[18].ecs}
|
||||
browserFields={mockBrowserFields}
|
||||
timelineId="test"
|
||||
/>
|
||||
<ZeekDetails data={mockTimelineData[18].ecs} timelineId="test" />
|
||||
</TestProviders>
|
||||
);
|
||||
expect(wrapper.text()).toEqual('Cu0n232QMyvNtzb75jfilessha1: fa5195a...md5: f7653f1...');
|
||||
|
@ -140,11 +111,7 @@ describe('ZeekDetails', () => {
|
|||
test('it returns null for text if the data contains no zeek data', () => {
|
||||
const wrapper = mount(
|
||||
<TestProviders>
|
||||
<ZeekDetails
|
||||
data={mockTimelineData[0].ecs}
|
||||
browserFields={mockBrowserFields}
|
||||
timelineId="test"
|
||||
/>
|
||||
<ZeekDetails data={mockTimelineData[0].ecs} timelineId="test" />
|
||||
</TestProviders>
|
||||
);
|
||||
expect(wrapper.find('ZeekDetails').children().exists()).toBeFalsy();
|
||||
|
|
|
@ -9,7 +9,6 @@ import { EuiSpacer } from '@elastic/eui';
|
|||
import React from 'react';
|
||||
import styled from 'styled-components';
|
||||
|
||||
import { BrowserFields } from '../../../../../../common/containers/source';
|
||||
import { Ecs } from '../../../../../../../common/ecs';
|
||||
|
||||
import { NetflowRenderer } from '../netflow';
|
||||
|
@ -22,7 +21,6 @@ const Details = styled.div`
|
|||
Details.displayName = 'Details';
|
||||
|
||||
interface ZeekDetailsProps {
|
||||
browserFields: BrowserFields;
|
||||
data: Ecs;
|
||||
isDraggable?: boolean;
|
||||
timelineId: string;
|
||||
|
|
|
@ -10,7 +10,6 @@ import { cloneDeep } from 'lodash/fp';
|
|||
import React from 'react';
|
||||
|
||||
import { removeExternalLinkText } from '@kbn/securitysolution-io-ts-utils';
|
||||
import { mockBrowserFields } from '../../../../../../common/containers/source/mock';
|
||||
import { Ecs } from '../../../../../../../common/ecs';
|
||||
import { mockTimelineData, TestProviders } from '../../../../../../common/mock';
|
||||
import '../../../../../../common/mock/match_media';
|
||||
|
@ -41,7 +40,6 @@ describe('zeek_row_renderer', () => {
|
|||
|
||||
test('renders correctly against snapshot', () => {
|
||||
const children = zeekRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: nonZeek,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
@ -61,7 +59,6 @@ describe('zeek_row_renderer', () => {
|
|||
|
||||
test('should render a zeek row', () => {
|
||||
const children = zeekRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: zeek,
|
||||
isDraggable: true,
|
||||
timelineId: 'test',
|
||||
|
|
|
@ -19,14 +19,9 @@ export const zeekRowRenderer: RowRenderer = {
|
|||
const module: string | null | undefined = get('event.module[0]', ecs);
|
||||
return module != null && module.toLowerCase() === 'zeek';
|
||||
},
|
||||
renderRow: ({ browserFields, data, isDraggable, timelineId }) => (
|
||||
renderRow: ({ data, isDraggable, timelineId }) => (
|
||||
<RowRendererContainer>
|
||||
<ZeekDetails
|
||||
data={data}
|
||||
browserFields={browserFields}
|
||||
isDraggable={isDraggable}
|
||||
timelineId={timelineId}
|
||||
/>
|
||||
<ZeekDetails data={data} isDraggable={isDraggable} timelineId={timelineId} />
|
||||
</RowRendererContainer>
|
||||
),
|
||||
};
|
||||
|
|
|
@ -114,7 +114,6 @@ describe('DefaultCellRenderer', () => {
|
|||
|
||||
expect(mockImplementation.renderColumn).toBeCalledWith({
|
||||
asPlainText: false,
|
||||
browserFields,
|
||||
columnName: header.id,
|
||||
ecsData,
|
||||
eventId,
|
||||
|
|
|
@ -60,7 +60,6 @@ export const DefaultCellRenderer: React.FC<CellValueElementProps> = ({
|
|||
<StyledContent className={styledContentClassName} $isDetails={isDetails}>
|
||||
{getColumnRenderer(header.id, columnRenderers, data).renderColumn({
|
||||
asPlainText, // we want to render value with links as plain text but keep other formatters like badge.
|
||||
browserFields,
|
||||
columnName: header.id,
|
||||
ecsData,
|
||||
eventId,
|
||||
|
|
|
@ -7,18 +7,15 @@
|
|||
|
||||
import { RowRendererId } from '..';
|
||||
import { Ecs } from '../../../ecs';
|
||||
import { BrowserFields } from '../../../search_strategy/index_fields';
|
||||
|
||||
export interface RowRenderer {
|
||||
id: RowRendererId;
|
||||
isInstance: (data: Ecs) => boolean;
|
||||
renderRow: ({
|
||||
browserFields,
|
||||
data,
|
||||
isDraggable,
|
||||
timelineId,
|
||||
}: {
|
||||
browserFields: BrowserFields;
|
||||
data: Ecs;
|
||||
isDraggable: boolean;
|
||||
timelineId: string;
|
||||
|
|
|
@ -161,7 +161,6 @@ const StatefulEventComponent: React.FC<Props> = ({
|
|||
<EventsTrSupplement>
|
||||
<StatefulRowRenderer
|
||||
ariaRowindex={ariaRowindex}
|
||||
browserFields={browserFields}
|
||||
containerRef={containerRef}
|
||||
event={event}
|
||||
lastFocusedAriaColindex={lastFocusedAriaColindex}
|
||||
|
@ -170,15 +169,7 @@ const StatefulEventComponent: React.FC<Props> = ({
|
|||
/>
|
||||
</EventsTrSupplement>
|
||||
),
|
||||
[
|
||||
ariaRowindex,
|
||||
browserFields,
|
||||
containerRef,
|
||||
event,
|
||||
lastFocusedAriaColindex,
|
||||
rowRenderers,
|
||||
timelineId,
|
||||
]
|
||||
[ariaRowindex, containerRef, event, lastFocusedAriaColindex, rowRenderers, timelineId]
|
||||
);
|
||||
|
||||
return (
|
||||
|
|
|
@ -17,7 +17,6 @@ import {
|
|||
import { useStatefulEventFocus } from '../use_stateful_event_focus';
|
||||
|
||||
import * as i18n from '../translations';
|
||||
import type { BrowserFields } from '../../../../../../common/search_strategy/index_fields';
|
||||
import type { TimelineItem } from '../../../../../../common/search_strategy';
|
||||
import type { RowRenderer } from '../../../../../../common/types/timeline';
|
||||
import { getRowRenderer } from '../../renderers/get_row_renderer';
|
||||
|
@ -37,7 +36,6 @@ import { getRowRenderer } from '../../renderers/get_row_renderer';
|
|||
*/
|
||||
export const StatefulRowRenderer = ({
|
||||
ariaRowindex,
|
||||
browserFields,
|
||||
containerRef,
|
||||
event,
|
||||
lastFocusedAriaColindex,
|
||||
|
@ -45,7 +43,6 @@ export const StatefulRowRenderer = ({
|
|||
timelineId,
|
||||
}: {
|
||||
ariaRowindex: number;
|
||||
browserFields: BrowserFields;
|
||||
containerRef: React.MutableRefObject<HTMLDivElement | null>;
|
||||
event: TimelineItem;
|
||||
lastFocusedAriaColindex: number;
|
||||
|
@ -78,7 +75,6 @@ export const StatefulRowRenderer = ({
|
|||
</EuiScreenReaderOnly>
|
||||
<div onKeyDown={onKeyDown}>
|
||||
{rowRenderer.renderRow({
|
||||
browserFields,
|
||||
data: event.ecs,
|
||||
isDraggable: false,
|
||||
timelineId,
|
||||
|
@ -90,7 +86,6 @@ export const StatefulRowRenderer = ({
|
|||
),
|
||||
[
|
||||
ariaRowindex,
|
||||
browserFields,
|
||||
event.ecs,
|
||||
focusOwnership,
|
||||
onFocus,
|
||||
|
|
|
@ -851,7 +851,6 @@ export const BodyComponent = React.memo<StatefulBodyProps>(
|
|||
<EventRenderedView
|
||||
appId={appId}
|
||||
alertToolbar={alertToolbar}
|
||||
browserFields={browserFields}
|
||||
events={data}
|
||||
leadingControlColumns={leadingTGridControlColumns ?? []}
|
||||
onChangePage={onChangePage}
|
||||
|
|
|
@ -9,7 +9,7 @@ import { mount, shallow } from 'enzyme';
|
|||
import { cloneDeep } from 'lodash';
|
||||
import React from 'react';
|
||||
import { Ecs } from '../../../../../common/ecs';
|
||||
import { mockBrowserFields, mockTimelineData } from '../../../../mock';
|
||||
import { mockTimelineData } from '../../../../mock';
|
||||
|
||||
import { plainRowRenderer } from './plain_row_renderer';
|
||||
|
||||
|
@ -21,7 +21,6 @@ describe('plain_row_renderer', () => {
|
|||
|
||||
test('renders correctly against snapshot', () => {
|
||||
const children = plainRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockDatum,
|
||||
isDraggable: false,
|
||||
timelineId: 'test',
|
||||
|
@ -36,7 +35,6 @@ describe('plain_row_renderer', () => {
|
|||
|
||||
test('should render a plain row', () => {
|
||||
const children = plainRowRenderer.renderRow({
|
||||
browserFields: mockBrowserFields,
|
||||
data: mockDatum,
|
||||
isDraggable: false,
|
||||
timelineId: 'test',
|
||||
|
|
|
@ -23,7 +23,7 @@ import styled from 'styled-components';
|
|||
|
||||
import { useUiSetting } from '../../../../../../../src/plugins/kibana_react/public';
|
||||
|
||||
import type { BrowserFields, TimelineItem } from '../../../../common/search_strategy';
|
||||
import type { TimelineItem } from '../../../../common/search_strategy';
|
||||
import type { RowRenderer } from '../../../../common/types';
|
||||
import { RuleName } from '../../rule_name';
|
||||
import { isEventBuildingBlockType } from '../body/helpers';
|
||||
|
@ -62,7 +62,6 @@ const StyledEuiBasicTable = styled(EuiBasicTable as BasicTableType)`
|
|||
export interface EventRenderedViewProps {
|
||||
alertToolbar: React.ReactNode;
|
||||
appId: string;
|
||||
browserFields: BrowserFields;
|
||||
events: TimelineItem[];
|
||||
leadingControlColumns: EuiDataGridControlColumn[];
|
||||
onChangePage: (newActivePage: number) => void;
|
||||
|
@ -85,7 +84,6 @@ export const PreferenceFormattedDate = React.memo(PreferenceFormattedDateCompone
|
|||
const EventRenderedViewComponent = ({
|
||||
alertToolbar,
|
||||
appId,
|
||||
browserFields,
|
||||
events,
|
||||
leadingControlColumns,
|
||||
onChangePage,
|
||||
|
@ -192,7 +190,6 @@ const EventRenderedViewComponent = ({
|
|||
<EventRenderedFlexItem className="eui-xScroll">
|
||||
<div className="eui-displayInlineBlock">
|
||||
{rowRenderer.renderRow({
|
||||
browserFields,
|
||||
data: ecsData,
|
||||
isDraggable: false,
|
||||
timelineId: 'NONE',
|
||||
|
@ -207,7 +204,7 @@ const EventRenderedViewComponent = ({
|
|||
width: '60%',
|
||||
},
|
||||
],
|
||||
[ActionTitle, browserFields, events, leadingControlColumns, rowRenderers, appId]
|
||||
[ActionTitle, events, leadingControlColumns, rowRenderers, appId]
|
||||
);
|
||||
|
||||
const handleTableChange = useCallback(
|
||||
|
|
|
@ -134,7 +134,6 @@ export const tGridIntegratedProps: TGridIntegratedProps = {
|
|||
export const eventRenderedProps: EventRenderedViewProps = {
|
||||
alertToolbar: <></>,
|
||||
appId: '',
|
||||
browserFields: mockBrowserFields,
|
||||
events: mockTimelineData,
|
||||
leadingControlColumns: [],
|
||||
onChangePage: () => null,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue