[unreleased bugs] Vuln details page: missing cards, incorrect link (#17495)
This commit is contained in:
@@ -17,6 +17,10 @@ const DEFAULT_VULNERABILITY: IVulnerability = {
|
||||
cve_description:
|
||||
"Microsoft Windows Support Diagnostic Tool (MSDT) Remote Code Execution Vulnerability.", // Available in Fleet Premium
|
||||
resolved_in_version: "", // Available in Fleet Premium
|
||||
};
|
||||
|
||||
const DEFAULT_VULNERABILITY_DETAILS: IVulnerabilityResponse = {
|
||||
vulnerability: DEFAULT_VULNERABILITY,
|
||||
os_versions: [
|
||||
{
|
||||
os_version_id: 1,
|
||||
@@ -130,9 +134,9 @@ const DEFAULT_VULNERABILITIES_RESPONSE: IVulnerabilitiesResponse = {
|
||||
};
|
||||
|
||||
export const createMockVulnerabilityResponse = (
|
||||
overrides?: Partial<IVulnerability>
|
||||
overrides?: Partial<IVulnerabilityResponse>
|
||||
): IVulnerabilityResponse => {
|
||||
return { vulnerability: { ...DEFAULT_VULNERABILITY, ...overrides } };
|
||||
return { ...DEFAULT_VULNERABILITY_DETAILS, ...overrides };
|
||||
};
|
||||
|
||||
// eslint-disable-next-line import/prefer-default-export
|
||||
|
||||
@@ -19,6 +19,4 @@ export interface IVulnerability {
|
||||
cve_published?: string | null; // premium
|
||||
cve_description?: string; // premium
|
||||
resolved_in_version?: string; // premium
|
||||
os_versions: IVulnerabilityOSVersion[];
|
||||
software: IVulnerabilitySoftware[];
|
||||
}
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@ import React, { useCallback, useMemo } from "react";
|
||||
import { InjectedRouter } from "react-router";
|
||||
|
||||
import PATHS from "router/paths";
|
||||
import { IVulnerability } from "interfaces/vulnerability";
|
||||
import { IVulnerabilityResponse } from "services/entities/vulnerabilities";
|
||||
import { buildQueryStringFromParams } from "utilities/url";
|
||||
import Card from "components/Card";
|
||||
import TableContainer from "components/TableContainer";
|
||||
@@ -15,7 +15,7 @@ import generateColumnConfigs from "./SwVulnOSTableConfig";
|
||||
const baseClass = "software-vuln-os-versions";
|
||||
|
||||
interface ISoftwareVulnOSVersions {
|
||||
osVersions: IVulnerability["os_versions"];
|
||||
osVersions: IVulnerabilityResponse["os_versions"];
|
||||
isPremiumTier: boolean;
|
||||
router: InjectedRouter;
|
||||
teamIdForApi?: number;
|
||||
|
||||
+2
-2
@@ -4,7 +4,7 @@ import React, { useCallback, useMemo } from "react";
|
||||
|
||||
import { InjectedRouter } from "react-router";
|
||||
|
||||
import { IVulnerability } from "interfaces/vulnerability";
|
||||
import { IVulnerabilityResponse } from "services/entities/vulnerabilities";
|
||||
|
||||
import PATHS from "router/paths";
|
||||
import { buildQueryStringFromParams } from "utilities/url";
|
||||
@@ -17,7 +17,7 @@ import generateColumnConfigs from "./SwVulnSwTableConfig";
|
||||
const baseClass = "software-vuln-software-versions";
|
||||
|
||||
interface ISoftwareVulnSoftwareVersions {
|
||||
vulnSoftware: IVulnerability["software"];
|
||||
vulnSoftware: IVulnerabilityResponse["software"];
|
||||
isPremiumTier: boolean;
|
||||
router: InjectedRouter;
|
||||
teamIdForApi?: number;
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@ const SoftwareVulnSummary = ({
|
||||
<CustomLink url={details_link} text="Visit NVD page" newTab />
|
||||
<ViewAllHostsLink
|
||||
customText="View affected hosts"
|
||||
queryParams={{ cve, team_id: teamIdForApi }}
|
||||
queryParams={{ vulnerability: cve, team_id: teamIdForApi }}
|
||||
/>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
+5
-7
@@ -10,7 +10,6 @@ import useTeamIdParam from "hooks/useTeamIdParam";
|
||||
|
||||
import { AppContext } from "context/app";
|
||||
|
||||
import { IVulnerability } from "interfaces/vulnerability";
|
||||
import softwareVulnAPI, {
|
||||
IGetVulnerabilityQueryKey,
|
||||
IVulnerabilityResponse,
|
||||
@@ -29,7 +28,7 @@ import DetailsNoHosts from "../components/DetailsNoHosts";
|
||||
const baseClass = "software-vulnerability-details-page";
|
||||
|
||||
interface ISoftwareVulnerabilityDetailsRouteParams {
|
||||
vulnerability: string;
|
||||
cve: string;
|
||||
team_id?: string;
|
||||
}
|
||||
|
||||
@@ -65,13 +64,13 @@ const SoftwareVulnerabilityDetailsPage = ({
|
||||
} = useQuery<
|
||||
IVulnerabilityResponse,
|
||||
AxiosError,
|
||||
IVulnerability,
|
||||
IVulnerabilityResponse,
|
||||
IGetVulnerabilityQueryKey[]
|
||||
>(
|
||||
[
|
||||
{
|
||||
scope: "softwareVulnByCVE",
|
||||
vulnerability: routeParams.vulnerability,
|
||||
vulnerability: routeParams.cve,
|
||||
teamId: teamIdForApi,
|
||||
},
|
||||
],
|
||||
@@ -79,7 +78,6 @@ const SoftwareVulnerabilityDetailsPage = ({
|
||||
return softwareVulnAPI.getVulnerability(queryKey[0]);
|
||||
},
|
||||
{
|
||||
select: (data) => data.vulnerability,
|
||||
onError: (error) => {
|
||||
if (!ignoreAxiosError(error, [403, 404])) {
|
||||
handlePageError(error);
|
||||
@@ -95,10 +93,10 @@ const SoftwareVulnerabilityDetailsPage = ({
|
||||
[handleTeamChange]
|
||||
);
|
||||
|
||||
const renderCards = (v: IVulnerability) => (
|
||||
const renderCards = (v: IVulnerabilityResponse) => (
|
||||
<>
|
||||
<SoftwareVulnSummary
|
||||
vuln={v}
|
||||
vuln={v.vulnerability}
|
||||
isPremiumTier={isPremiumTier ?? false}
|
||||
teamIdForApi={teamIdForApi}
|
||||
/>
|
||||
|
||||
@@ -3,6 +3,8 @@ import sendRequest from "services";
|
||||
import endpoints from "utilities/endpoints";
|
||||
import { IVulnerability } from "interfaces/vulnerability";
|
||||
import { buildQueryStringFromParams } from "utilities/url";
|
||||
import { IVulnerabilityOSVersion } from "interfaces/operating_system";
|
||||
import { IVulnerabilitySoftware } from "interfaces/software";
|
||||
|
||||
export interface IGetVulnerabilitiesQueryParams {
|
||||
teamId?: number;
|
||||
@@ -40,6 +42,8 @@ export interface IVulnerabilitiesResponse {
|
||||
|
||||
export interface IVulnerabilityResponse {
|
||||
vulnerability: IVulnerability;
|
||||
os_versions: IVulnerabilityOSVersion[];
|
||||
software: IVulnerabilitySoftware[];
|
||||
}
|
||||
|
||||
export const getVulnerabilities = ({
|
||||
|
||||
Reference in New Issue
Block a user