"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HostEntityOverview = void 0; var _react = _interopRequireWildcard(require("react")); var _eui = require("@elastic/eui"); var _css = require("@emotion/css"); var _fp = require("lodash/fp"); var _expandableFlyout = require("@kbn/expandable-flyout"); var _context = require("../context"); var _first_last_seen = require("../../../common/components/first_last_seen/first_last_seen"); var _search_strategy = require("../../../../common/search_strategy"); var _empty_value = require("../../../common/components/empty_value"); var _field_renderers = require("../../../timelines/components/field_renderers/field_renderers"); var _page = require("../../../common/components/page"); var _overview_description_list = require("../../../common/components/overview_description_list"); var _common = require("../../../explore/components/risk_score/severity/common"); var _sourcerer = require("../../../common/containers/sourcerer"); var _use_global_time = require("../../../common/containers/use_global_time"); var _risk_score = require("../../../explore/containers/risk_score"); var _details = require("../../../explore/hosts/containers/hosts/details"); var i18n = _interopRequireWildcard(require("../../../overview/components/host_overview/translations")); var _entities_details = require("../../left/components/entities_details"); var _test_ids = require("./test_ids"); var _translations2 = require("./translations"); var _left = require("../../left"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ const HOST_ICON = 'storage'; const CONTEXT_ID = `flyout-host-entity-overview`; /** * Host preview content for the entities preview in right flyout. It contains ip addresses and risk classification */ const HostEntityOverview = ({ hostName }) => { const { eventId, indexName, scopeId } = (0, _context.useRightPanelContext)(); const { openLeftPanel } = (0, _expandableFlyout.useExpandableFlyoutContext)(); const goToEntitiesTab = (0, _react.useCallback)(() => { openLeftPanel({ id: _left.LeftPanelKey, path: { tab: _left.LeftPanelInsightsTab, subTab: _entities_details.ENTITIES_TAB_ID }, params: { id: eventId, indexName, scopeId } }); }, [eventId, openLeftPanel, indexName, scopeId]); const { from, to } = (0, _use_global_time.useGlobalTime)(); const { selectedPatterns } = (0, _sourcerer.useSourcererDataView)(); const timerange = (0, _react.useMemo)(() => ({ from, to }), [from, to]); const filterQuery = (0, _react.useMemo)(() => hostName ? (0, _search_strategy.buildHostNamesFilter)([hostName]) : undefined, [hostName]); const { data: hostRisk, isAuthorized } = (0, _risk_score.useRiskScore)({ filterQuery, riskEntity: _search_strategy.RiskScoreEntity.host, skip: hostName == null, timerange }); const [_, { hostDetails }] = (0, _details.useHostDetails)({ hostName, indexNames: selectedPatterns, startDate: from, endDate: to }); const hostOSFamily = (0, _react.useMemo)(() => [{ title: i18n.FAMILY, description: /*#__PURE__*/_react.default.createElement(_field_renderers.DefaultFieldRenderer, { rowItems: (0, _fp.getOr)([], 'host.os.family', hostDetails), attrName: 'host.os.family', idPrefix: CONTEXT_ID, isDraggable: false }) }], [hostDetails]); const hostLastSeen = (0, _react.useMemo)(() => [{ title: i18n.LAST_SEEN, description: /*#__PURE__*/_react.default.createElement(_first_last_seen.FirstLastSeen, { indexPatterns: selectedPatterns, field: 'host.name', value: hostName, type: _first_last_seen.FirstLastSeenType.LAST_SEEN }) }], [hostName, selectedPatterns]); const { euiTheme } = (0, _eui.useEuiTheme)(); const xsFontSize = (0, _eui.useEuiFontSize)('xs').fontSize; const [hostRiskLevel] = (0, _react.useMemo)(() => { const hostRiskData = hostRisk && hostRisk.length > 0 ? hostRisk[0] : undefined; return [{ title: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, i18n.HOST_RISK_CLASSIFICATION, /*#__PURE__*/_react.default.createElement(_eui.EuiIconTip, { title: _translations2.TECHNICAL_PREVIEW_TITLE, size: "m", type: "iInCircle", content: _translations2.TECHNICAL_PREVIEW_MESSAGE, position: "bottom", iconProps: { className: 'eui-alignTop' }, "data-test-subj": _test_ids.TECHNICAL_PREVIEW_ICON_TEST_ID })), description: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, hostRiskData ? /*#__PURE__*/_react.default.createElement(_common.RiskScore, { severity: hostRiskData.host.risk.calculated_level }) : (0, _empty_value.getEmptyTagValue)()) }]; }, [hostRisk]); return /*#__PURE__*/_react.default.createElement(_eui.EuiFlexGroup, { direction: "column", gutterSize: "s", "data-test-subj": _test_ids.ENTITIES_HOST_OVERVIEW_TEST_ID }, /*#__PURE__*/_react.default.createElement(_eui.EuiFlexItem, null, /*#__PURE__*/_react.default.createElement(_eui.EuiFlexGroup, { gutterSize: "m" }, /*#__PURE__*/_react.default.createElement(_eui.EuiFlexItem, { grow: false }, /*#__PURE__*/_react.default.createElement(_eui.EuiIcon, { type: HOST_ICON })), /*#__PURE__*/_react.default.createElement(_eui.EuiFlexItem, { grow: false }, /*#__PURE__*/_react.default.createElement(_eui.EuiLink, { "data-test-subj": _test_ids.ENTITIES_HOST_OVERVIEW_LINK_TEST_ID, css: (0, _css.css)` font-size: ${xsFontSize}; font-weight: ${euiTheme.font.weight.bold}; `, onClick: goToEntitiesTab }, hostName)))), /*#__PURE__*/_react.default.createElement(_eui.EuiFlexItem, null, /*#__PURE__*/_react.default.createElement(_eui.EuiFlexGroup, null, /*#__PURE__*/_react.default.createElement(_eui.EuiFlexItem, null, /*#__PURE__*/_react.default.createElement(_overview_description_list.OverviewDescriptionList, { dataTestSubj: _test_ids.ENTITIES_HOST_OVERVIEW_OS_FAMILY_TEST_ID, descriptionList: hostOSFamily })), /*#__PURE__*/_react.default.createElement(_eui.EuiFlexItem, null, isAuthorized ? /*#__PURE__*/_react.default.createElement(_page.DescriptionListStyled, { "data-test-subj": _test_ids.ENTITIES_HOST_OVERVIEW_RISK_LEVEL_TEST_ID, listItems: [hostRiskLevel] }) : /*#__PURE__*/_react.default.createElement(_overview_description_list.OverviewDescriptionList, { dataTestSubj: _test_ids.ENTITIES_HOST_OVERVIEW_LAST_SEEN_TEST_ID, descriptionList: hostLastSeen }))))); }; exports.HostEntityOverview = HostEntityOverview; HostEntityOverview.displayName = 'HostEntityOverview';