([]);
-
- const {
- fetchData,
- searchBarProps,
- indexPattern,
- fetchFilters,
- defaultTableColumns,
- } = props;
-
- useEffect(() => {
- if (!indexPattern) {
- return;
- }
- fetchData({
- query: searchBarProps.query,
- filters: fetchFilters,
- pagination,
- sorting,
- dateRange: searchBarProps.absoluteDateRange,
- })
- .then(results => {
- setResults(results);
- })
- .catch(error => {
- const searchError = ErrorFactory.create(HttpError, {
- error,
- message: 'Error fetching data',
- });
- ErrorHandler.handleError(searchError);
- });
- }, [
- JSON.stringify(fetchFilters),
- JSON.stringify(searchBarProps.query),
- JSON.stringify(pagination),
- JSON.stringify(sorting),
- JSON.stringify(searchBarProps.absoluteDateRange),
- ]);
-
- return (
-
- setPagination(pagination)}
- onChangeSorting={sorting => {
- setSorting(sorting);
- }}
- dateRange={searchBarProps?.absoluteDateRange}
- />
-
- );
-}
diff --git a/plugins/main/public/components/overview/github/panel/config/drilldown-organization.tsx b/plugins/main/public/components/overview/github/panel/config/drilldown-organization.tsx
index 37b5427ae2..6cdac16307 100644
--- a/plugins/main/public/components/overview/github/panel/config/drilldown-organization.tsx
+++ b/plugins/main/public/components/overview/github/panel/config/drilldown-organization.tsx
@@ -10,19 +10,9 @@
* Find more information about this on the LICENSE file.
*/
-import React, { useState, useMemo, useEffect } from 'react';
-import {
- EuiFlexItem,
- EuiPanel,
- EuiToolTip,
- EuiButtonIcon,
- EuiDataGridCellValueElementProps,
- EuiDataGrid,
- EuiLink,
-} from '@elastic/eui';
-import { SecurityAlerts } from '../../../../visualize/components';
+import React from 'react';
import { ViewMode } from '../../../../../../../../src/plugins/embeddable/public';
-import { getPlugins, getCore } from '../../../../../kibana-services';
+import { getPlugins } from '../../../../../kibana-services';
import { DashboardPanelState } from '../../../../../../../../src/plugins/dashboard/public/application';
import { EmbeddableInput } from '../../../../../../../../src/plugins/embeddable/public';
import {
@@ -33,14 +23,6 @@ import {
getVisStateTopActions,
} from './visualizations';
import { ModuleConfigProps } from './module-config';
-import {
- ErrorFactory,
- HttpError,
- ErrorHandler,
-} from '../../../../../react-services/error-management';
-import DrillDownDataGrid from './drilldown-data-grid';
-import { rules } from '../../../../../utils/applications';
-import { RedirectAppLinks } from '../../../../../../../../src/plugins/opensearch_dashboards_react/public';
const DashboardByRenderer =
getPlugins().dashboard.DashboardContainerByValueRenderer;
@@ -167,38 +149,6 @@ export const DrilldownConfigOrganization = (
},
],
},
- {
- columns: [
- {
- width: 100,
- component: () => {
- const defaultTableColumns = [
- {
- id: 'timestamp',
- isSortable: true,
- defaultSortDirection: 'desc',
- },
- { id: 'rule.description' },
- { id: 'data.github.repo', displayAsText: 'Repository' },
- { id: 'data.github.actor', displayAsText: 'Actor' },
- { id: 'data.github.action', displayAsText: 'Action' },
- { id: 'rule.level' },
- { id: 'rule.id' },
- ];
-
- return (
-
- );
- },
- },
- ],
- },
],
};
};
diff --git a/plugins/main/public/components/overview/github/panel/config/drilldown-repository.tsx b/plugins/main/public/components/overview/github/panel/config/drilldown-repository.tsx
index 83639b34fb..c2a5e01a92 100644
--- a/plugins/main/public/components/overview/github/panel/config/drilldown-repository.tsx
+++ b/plugins/main/public/components/overview/github/panel/config/drilldown-repository.tsx
@@ -11,9 +11,8 @@
*/
import React from 'react';
-import { EuiLink } from '@elastic/eui';
import { ViewMode } from '../../../../../../../../src/plugins/embeddable/public';
-import { getPlugins, getCore } from '../../../../../kibana-services';
+import { getPlugins } from '../../../../../kibana-services';
import { DashboardPanelState } from '../../../../../../../../src/plugins/dashboard/public/application';
import { EmbeddableInput } from '../../../../../../../../src/plugins/embeddable/public';
import {
@@ -24,13 +23,6 @@ import {
getVisStateTopOrganizations,
} from './visualizations';
import { ModuleConfigProps } from './module-config';
-import {
- ErrorFactory,
- HttpError,
- ErrorHandler,
-} from '../../../../../react-services/error-management';
-import DrillDownDataGrid from './drilldown-data-grid';
-import { rules } from '../../../../../utils/applications';
const DashboardByRenderer =
getPlugins().dashboard.DashboardContainerByValueRenderer;
@@ -157,47 +149,6 @@ export const DrilldownConfigRepository = (
},
],
},
- {
- columns: [
- {
- width: 100,
- component: () => {
- const defaultTableColumns = [
- {
- id: 'timestamp',
- isSortable: true,
- defaultSortDirection: 'desc',
- },
- { id: 'rule.description' },
- { id: 'data.github.org', displayAsText: 'Organization' },
- { id: 'data.github.actor', displayAsText: 'Actor' },
- { id: 'data.github.action', displayAsText: 'Action' },
- { id: 'rule.level' },
- {
- id: 'rule.id',
- render: value => (
-
- {value}
-
- ),
- },
- ];
-
- return (
-
- );
- },
- },
- ],
- },
],
};
};
diff --git a/plugins/main/public/components/overview/office/panel/config/drilldown-ip-config.tsx b/plugins/main/public/components/overview/office/panel/config/drilldown-ip-config.tsx
index c0946559b7..837f6cd0b0 100644
--- a/plugins/main/public/components/overview/office/panel/config/drilldown-ip-config.tsx
+++ b/plugins/main/public/components/overview/office/panel/config/drilldown-ip-config.tsx
@@ -13,9 +13,8 @@
*/
import React from 'react';
-import { EuiFlexItem, EuiLink } from '@elastic/eui';
import { ViewMode } from '../../../../../../../../src/plugins/embeddable/public';
-import { getPlugins, getCore } from '../../../../../kibana-services';
+import { getPlugins } from '../../../../../kibana-services';
import { DashboardPanelState } from '../../../../../../../../src/plugins/dashboard/public/application';
import { EmbeddableInput } from '../../../../../../../../src/plugins/embeddable/public';
import {
@@ -24,9 +23,6 @@ import {
getVisStateOfficeUserOperationLevel,
getVisStateOfficeAlertsEvolutionByUser,
} from './visualizations';
-import DrillDownDataGrid from '../../../github/panel/config/drilldown-data-grid';
-import { rules } from '../../../../../utils/applications';
-import { RedirectAppLinks } from '../../../../../../../../src/plugins/opensearch_dashboards_react/public';
const DashboardByRenderer =
getPlugins().dashboard.DashboardContainerByValueRenderer;
@@ -99,7 +95,7 @@ const getDashboardPanels = (
};
export const drilldownIPConfig = props => {
- const { fetchData, fetchFilters, searchBarProps, indexPattern } = props;
+ const { fetchFilters, searchBarProps, indexPattern } = props;
return {
rows: [
@@ -108,33 +104,6 @@ export const drilldownIPConfig = props => {
{
width: 100,
component: props => {
- const defaultTableColumns = [
- {
- id: 'timestamp',
- isSortable: true,
- defaultSortDirection: 'desc',
- },
- { id: 'rule.description', displayAsText: 'Description' },
- { id: 'data.office365.UserId', displayAsText: 'User ID' },
- {
- id: 'data.office365.Operation',
- displayAsText: 'Operation',
- },
- { id: 'rule.level', displayAsText: 'Level' },
- {
- id: 'rule.id',
- render: value => (
-
-
- {value}
-
-
- ),
- },
- ];
-
return (
{
}}
onInputUpdated={() => {}}
/>
-
-
-
);
},
diff --git a/plugins/main/public/components/overview/office/panel/config/drilldown-operations-config.tsx b/plugins/main/public/components/overview/office/panel/config/drilldown-operations-config.tsx
index 4a700d8b28..f12d4c42bb 100644
--- a/plugins/main/public/components/overview/office/panel/config/drilldown-operations-config.tsx
+++ b/plugins/main/public/components/overview/office/panel/config/drilldown-operations-config.tsx
@@ -12,9 +12,8 @@
*/
import React from 'react';
-import { EuiFlexItem, EuiLink } from '@elastic/eui';
import { ViewMode } from '../../../../../../../../src/plugins/embeddable/public';
-import { getPlugins, getCore } from '../../../../../kibana-services';
+import { getPlugins } from '../../../../../kibana-services';
import { DashboardPanelState } from '../../../../../../../../src/plugins/dashboard/public/application';
import { EmbeddableInput } from '../../../../../../../../src/plugins/embeddable/public';
import {
@@ -22,9 +21,6 @@ import {
getVisStateOfficeCountryTagCloud,
getVisStateOfficeAlertsEvolutionByUserID,
} from './visualizations';
-import DrillDownDataGrid from '../../../github/panel/config/drilldown-data-grid';
-import { rules } from '../../../../../utils/applications';
-import { RedirectAppLinks } from '../../../../../../../../src/plugins/opensearch_dashboards_react/public';
const DashboardByRenderer =
getPlugins().dashboard.DashboardContainerByValueRenderer;
@@ -83,7 +79,7 @@ const getDashboardPanels = (
};
export const drilldownOperationsConfig = props => {
- const { fetchData, fetchFilters, searchBarProps, indexPattern } = props;
+ const { fetchFilters, searchBarProps, indexPattern } = props;
return {
rows: [
@@ -92,32 +88,6 @@ export const drilldownOperationsConfig = props => {
{
width: 100,
component: props => {
- const defaultTableColumns = [
- {
- id: 'timestamp',
- isSortable: true,
- defaultSortDirection: 'desc',
- },
- { id: 'rule.description', displayAsText: 'Description' },
- { id: 'data.office365.UserId', displayAsText: 'User ID' },
- {
- id: 'data.office365.ClientIP',
- displayAsText: 'Client IP address',
- },
- { id: 'rule.level', displayAsText: 'Level' },
- {
- id: 'rule.id',
- render: value => (
-
-
- {value}
-
-
- ),
- },
- ];
return (
{
}}
onInputUpdated={() => {}}
/>
-
-
-
);
},
diff --git a/plugins/main/public/components/overview/office/panel/config/drilldown-rules-config.tsx b/plugins/main/public/components/overview/office/panel/config/drilldown-rules-config.tsx
index 04fba33db7..7990b1a64c 100644
--- a/plugins/main/public/components/overview/office/panel/config/drilldown-rules-config.tsx
+++ b/plugins/main/public/components/overview/office/panel/config/drilldown-rules-config.tsx
@@ -12,9 +12,8 @@
*/
import React from 'react';
-import { EuiFlexItem, EuiLink } from '@elastic/eui';
import { ViewMode } from '../../../../../../../../src/plugins/embeddable/public';
-import { getPlugins, getCore } from '../../../../../kibana-services';
+import { getPlugins } from '../../../../../kibana-services';
import { DashboardPanelState } from '../../../../../../../../src/plugins/dashboard/public/application';
import { EmbeddableInput } from '../../../../../../../../src/plugins/embeddable/public';
import {
@@ -23,9 +22,6 @@ import {
getVisStateOfficeCountryTagCloud,
getVisStateOfficeAlertsEvolutionByUserID,
} from './visualizations';
-import DrillDownDataGrid from '../../../github/panel/config/drilldown-data-grid';
-import { rules } from '../../../../../utils/applications';
-import { RedirectAppLinks } from '../../../../../../../../src/plugins/opensearch_dashboards_react/public';
const DashboardByRenderer =
getPlugins().dashboard.DashboardContainerByValueRenderer;
@@ -98,7 +94,7 @@ const getDashboardPanels = (
};
export const drilldownRulesConfig = props => {
- const { fetchData, fetchFilters, searchBarProps, indexPattern } = props;
+ const { fetchFilters, searchBarProps, indexPattern } = props;
return {
rows: [
@@ -107,37 +103,6 @@ export const drilldownRulesConfig = props => {
{
width: 100,
component: props => {
- const defaultTableColumns = [
- {
- id: 'timestamp',
- isSortable: true,
- defaultSortDirection: 'desc',
- },
- { id: 'rule.description', displayAsText: 'Description' },
- { id: 'data.office365.UserId', displayAsText: 'User ID' },
- {
- id: 'data.office365.ClientIP',
- displayAsText: 'Client IP address',
- },
- {
- id: 'data.office365.Operation',
- displayAsText: 'Operation',
- },
- { id: 'rule.level', displayAsText: 'Level' },
- {
- id: 'rule.id',
- render: value => (
-
-
- {value}
-
-
- ),
- },
- ];
-
return (
{
}}
onInputUpdated={() => {}}
/>
-
-
-
);
},
diff --git a/plugins/main/public/components/overview/office/panel/config/drilldown-user-config.tsx b/plugins/main/public/components/overview/office/panel/config/drilldown-user-config.tsx
index 6e7ec543c8..4e91891993 100644
--- a/plugins/main/public/components/overview/office/panel/config/drilldown-user-config.tsx
+++ b/plugins/main/public/components/overview/office/panel/config/drilldown-user-config.tsx
@@ -13,9 +13,8 @@
*/
import React from 'react';
-import { EuiFlexItem, EuiLink } from '@elastic/eui';
import { ViewMode } from '../../../../../../../../src/plugins/embeddable/public';
-import { getPlugins, getCore } from '../../../../../kibana-services';
+import { getPlugins } from '../../../../../kibana-services';
import { DashboardPanelState } from '../../../../../../../../src/plugins/dashboard/public/application';
import { EmbeddableInput } from '../../../../../../../../src/plugins/embeddable/public';
import {
@@ -24,9 +23,6 @@ import {
getVisStateOfficeTopsEventsPie,
getVisStateOfficeMetricStats,
} from './visualizations';
-import DrillDownDataGrid from '../../../github/panel/config/drilldown-data-grid';
-import { rules } from '../../../../../utils/applications';
-import { RedirectAppLinks } from '../../../../../../../../src/plugins/opensearch_dashboards_react/public';
const DashboardByRenderer =
getPlugins().dashboard.DashboardContainerByValueRenderer;
@@ -99,7 +95,7 @@ const getDashboardPanels = (
};
export const drilldownUserConfig = props => {
- const { fetchData, fetchFilters, searchBarProps, indexPattern } = props;
+ const { fetchFilters, searchBarProps, indexPattern } = props;
return {
rows: [
@@ -108,36 +104,6 @@ export const drilldownUserConfig = props => {
{
width: 100,
component: props => {
- const defaultTableColumns = [
- {
- id: 'timestamp',
- isSortable: true,
- defaultSortDirection: 'desc',
- },
- { id: 'rule.description', displayAsText: 'Description' },
- {
- id: 'data.office365.ClientIP',
- displayAsText: 'Client IP address',
- },
- {
- id: 'data.office365.Operation',
- displayAsText: 'Operation',
- },
- { id: 'rule.level', displayAsText: 'Level' },
- {
- id: 'rule.id',
- render: value => (
-
-
- {value}
-
-
- ),
- },
- ];
-
return (
{
}}
onInputUpdated={() => {}}
/>
-
-
-
);
},
diff --git a/plugins/main/public/components/overview/threat-hunting/dashboard/dashboard.tsx b/plugins/main/public/components/overview/threat-hunting/dashboard/dashboard.tsx
index ba380ff059..bad298ebfa 100644
--- a/plugins/main/public/components/overview/threat-hunting/dashboard/dashboard.tsx
+++ b/plugins/main/public/components/overview/threat-hunting/dashboard/dashboard.tsx
@@ -1,5 +1,5 @@
-import React, { useState, useEffect, useMemo } from 'react';
-import { getPlugins, getWazuhCorePlugin } from '../../../../kibana-services';
+import React, { useState, useEffect } from 'react';
+import { getPlugins } from '../../../../kibana-services';
import { ViewMode } from '../../../../../../../src/plugins/embeddable/public';
import { SearchResponse } from '../../../../../../../src/core/server';
import { IndexPattern } from '../../../../../../../src/plugins/data/common';
@@ -7,39 +7,14 @@ import { getDashboardPanels } from './dashboard_panels';
import { I18nProvider } from '@osd/i18n/react';
import useSearchBar from '../../../common/search-bar/use-search-bar';
import { getKPIsPanel } from './dashboard_panels_kpis';
-import {
- EuiFlexGroup,
- EuiFlexItem,
- EuiButtonIcon,
- EuiDataGrid,
- EuiToolTip,
- EuiDataGridCellValueElementProps,
- EuiFlyout,
- EuiFlyoutBody,
- EuiFlyoutHeader,
- EuiTitle,
- EuiButtonEmpty,
-} from '@elastic/eui';
import {
ErrorFactory,
ErrorHandler,
HttpError,
} from '../../../../react-services/error-management';
-import {
- MAX_ENTRIES_PER_QUERY,
- exportSearchToCSV,
- getAllCustomRenders,
-} from '../../../common/data-grid/data-grid-service';
-import { useDocViewer } from '../../../common/doc-viewer/use-doc-viewer';
-import { useDataGrid } from '../../../common/data-grid/use-data-grid';
-import DocViewer from '../../../common/doc-viewer/doc-viewer';
import { withErrorBoundary } from '../../../common/hocs/error-boundary/with-error-boundary';
import './threat_hunting_dashboard.scss';
import { SampleDataWarning } from '../../../visualize/components/sample-data-warning';
-import {
- threatHuntingTableAgentColumns,
- threatHuntingTableDefaultColumns,
-} from '../events/threat-hunting-columns';
import {
AlertsDataSourceRepository,
ThreatHuntingDataSource,
@@ -51,11 +26,7 @@ import {
import { DiscoverNoResults } from '../../../common/no-results/no-results';
import { LoadingSearchbarProgress } from '../../../common/loading-searchbar-progress/loading-searchbar-progress';
import { useReportingCommunicateSearchContext } from '../../../common/hooks/use-reporting-communicate-search-context';
-import { wzDiscoverRenderColumns } from '../../../common/wazuh-discover/render-columns';
import { WzSearchBar } from '../../../common/search-bar';
-import DiscoverDataGridAdditionalControls from '../../../common/wazuh-discover/components/data-grid-additional-controls';
-
-import DocDetailsHeader from '../../../common/wazuh-discover/components/doc-details-header';
const plugins = getPlugins();
@@ -75,7 +46,6 @@ const DashboardTH: React.FC = () => {
DataSource: ThreatHuntingDataSource,
repository: AlertsRepository,
});
-
const [results, setResults] = useState({} as SearchResponse);
const { searchBarProps } = useSearchBar({
@@ -84,64 +54,10 @@ const DashboardTH: React.FC = () => {
setFilters,
});
const { query, absoluteDateRange } = searchBarProps;
-
- const [inspectedHit, setInspectedHit] = useState(undefined);
- const [isExporting, setIsExporting] = useState(false);
-
- const sideNavDocked = getWazuhCorePlugin().hooks.useDockedSideNav();
-
- const onClickInspectDoc = useMemo(
- () => (index: number) => {
- const rowClicked = results.hits.hits[index];
- setInspectedHit(rowClicked);
- },
- [results],
- );
-
- const DocViewInspectButton = ({
- rowIndex,
- }: EuiDataGridCellValueElementProps) => {
- const inspectHintMsg = 'Inspect document details';
- return (
-
- onClickInspectDoc(rowIndex)}
- iconType='inspect'
- aria-label={inspectHintMsg}
- />
-
- );
- };
-
- const dataGridProps = useDataGrid({
- ariaLabelledBy: 'Threat Hunting Table',
- defaultColumns: threatHuntingTableDefaultColumns,
- renderColumns: wzDiscoverRenderColumns,
- results,
- indexPattern: dataSource?.indexPattern as IndexPattern,
- DocViewInspectButton,
- filters,
- setFilters,
- });
-
- const { pagination, sorting, columnVisibility } = dataGridProps;
-
- const docViewerProps = useDocViewer({
- doc: inspectedHit,
- indexPattern: dataSource?.indexPattern as IndexPattern,
- });
-
const pinnedAgent =
PatternDataSourceFilterManager.getPinnedAgentFilter(dataSource?.id!)
.length > 0;
- useEffect(() => {
- const currentColumns = !pinnedAgent
- ? threatHuntingTableDefaultColumns
- : threatHuntingTableAgentColumns;
- columnVisibility.setVisibleColumns(currentColumns.map(({ id }) => id));
- }, [pinnedAgent]);
-
useReportingCommunicateSearchContext({
isSearching: isDataSourceLoading,
totalResults: results?.hits?.total ?? 0,
@@ -157,8 +73,6 @@ const DashboardTH: React.FC = () => {
}
fetchData({
query,
- pagination,
- sorting,
dateRange: absoluteDateRange,
})
.then(results => {
@@ -174,37 +88,9 @@ const DashboardTH: React.FC = () => {
}, [
JSON.stringify(fetchFilters),
JSON.stringify(query),
- JSON.stringify(pagination),
- JSON.stringify(sorting),
JSON.stringify(absoluteDateRange),
]);
- const onClickExportResults = async () => {
- const params = {
- indexPattern: dataSource?.indexPattern,
- filters: fetchFilters ?? [],
- query,
- fields: columnVisibility.visibleColumns,
- pagination: {
- pageIndex: 0,
- pageSize: results.hits.total,
- },
- sorting,
- };
- try {
- setIsExporting(true);
- await exportSearchToCSV(params);
- } catch (error) {
- const searchError = ErrorFactory.create(HttpError, {
- error,
- message: 'Error downloading csv report',
- });
- ErrorHandler.handleError(searchError);
- } finally {
- setIsExporting(false);
- }
- };
-
return (
{isDataSourceLoading && !dataSource ? (
@@ -275,50 +161,6 @@ const DashboardTH: React.FC = () => {
hidePanelTitles: false,
}}
/>
-
- {!isDataSourceLoading ? (
-
-
- >
- ),
- }}
- />
- ) : null}
-
- {inspectedHit && (
- setInspectedHit(undefined)} size='m'>
-
-
-
-
-
-
-
-
-
-
-
- )}
>