From f676ca9078c2c5ab3e69a2054a1e79d0e1076a62 Mon Sep 17 00:00:00 2001 From: Sophia Dao Date: Tue, 20 Aug 2024 08:30:36 -0500 Subject: [PATCH] Compliance Page & Compliance Card (#40) * feat(compliance): Add in initial shell for Compliance page * feat(compliance): Mock data in the same way as Services and Providers, create files for rest of page and card structure * feat(compliance): Add in more data to json, continue building Compliance Card * feat(compliance): Add in icons for Compliance types, update Compliance skeleton * feat(compliance): Compliance card/page - add in colors for progress bar, styling * feat(compliance): Add image definitions to fix CI * feat(compliance): Add in aws.svg instead of .png * Fix file suffix * feat(compliance) remove duplicate spacer --- actions/compliance.ts | 39 ++ app/(prowler)/compliance/page.tsx | 48 +- app/api/compliance/route.ts | 10 + components/compliance/ComplianceCard.tsx | 85 ++++ .../compliance/ComplianceSkeletonGrid.tsx | 18 + components/compliance/index.ts | 2 + .../filters/CustomCheckboxMutedFindings.tsx | 18 +- components/filters/FilterControls.tsx | 12 +- .../icons/compliance/IconCompliance.tsx | 63 +++ components/icons/compliance/aws.svg | 38 ++ components/icons/compliance/cis.svg | 9 + components/icons/compliance/cisa.svg | 2 + components/icons/compliance/ens.png | Bin 0 -> 97549 bytes components/icons/compliance/fedramp.svg | 9 + components/icons/compliance/ffiec.svg | 9 + components/icons/compliance/gdpr.svg | 9 + components/icons/compliance/gxp-aws.svg | 455 ++++++++++++++++++ components/icons/compliance/hipaa.svg | 9 + components/icons/compliance/iso-27001.svg | 9 + components/icons/compliance/mitre-attack.svg | 315 ++++++++++++ components/icons/compliance/nist.svg | 1 + components/icons/compliance/pci-dss.svg | 9 + components/icons/compliance/rbi.svg | 1 + components/icons/compliance/soc2.svg | 9 + components/icons/index.ts | 1 + dataCompliance.json | 438 +++++++++++++++++ images.d.ts | 29 ++ tsconfig.json | 8 +- 28 files changed, 1644 insertions(+), 11 deletions(-) create mode 100644 actions/compliance.ts create mode 100644 app/api/compliance/route.ts create mode 100644 components/compliance/ComplianceCard.tsx create mode 100644 components/compliance/ComplianceSkeletonGrid.tsx create mode 100644 components/compliance/index.ts create mode 100644 components/icons/compliance/IconCompliance.tsx create mode 100644 components/icons/compliance/aws.svg create mode 100644 components/icons/compliance/cis.svg create mode 100644 components/icons/compliance/cisa.svg create mode 100644 components/icons/compliance/ens.png create mode 100644 components/icons/compliance/fedramp.svg create mode 100644 components/icons/compliance/ffiec.svg create mode 100644 components/icons/compliance/gdpr.svg create mode 100644 components/icons/compliance/gxp-aws.svg create mode 100644 components/icons/compliance/hipaa.svg create mode 100644 components/icons/compliance/iso-27001.svg create mode 100644 components/icons/compliance/mitre-attack.svg create mode 100644 components/icons/compliance/nist.svg create mode 100644 components/icons/compliance/pci-dss.svg create mode 100644 components/icons/compliance/rbi.svg create mode 100644 components/icons/compliance/soc2.svg create mode 100644 dataCompliance.json create mode 100644 images.d.ts diff --git a/actions/compliance.ts b/actions/compliance.ts new file mode 100644 index 0000000000..76064ebb33 --- /dev/null +++ b/actions/compliance.ts @@ -0,0 +1,39 @@ +"use server"; + +import { revalidatePath } from "next/cache"; +import { redirect } from "next/navigation"; + +import { parseStringify } from "@/lib"; + +export const getCompliance = async ({ page = 1 }) => { + if (isNaN(Number(page)) || page < 1) redirect("/compliance"); + const keyServer = process.env.LOCAL_SITE_URL; + + try { + const compliance = await fetch( + `${keyServer}/api/compliance?page%5Bnumber%5D=${page}`, + ); + const data = await compliance.json(); + const parsedData = parseStringify(data); + revalidatePath("/compliance"); + return parsedData; + } catch (error) { + console.error("Error fetching Compliance:", error); + return undefined; + } +}; + +export const getErrorMessage = (error: unknown): string => { + let message: string; + + if (error instanceof Error) { + message = error.message; + } else if (error && typeof error === "object" && "message" in error) { + message = String(error.message); + } else if (typeof error === "string") { + message = error; + } else { + message = "Wops! Something when wrong."; + } + return message; +}; diff --git a/app/(prowler)/compliance/page.tsx b/app/(prowler)/compliance/page.tsx index 59b39ea737..e610187e06 100644 --- a/app/(prowler)/compliance/page.tsx +++ b/app/(prowler)/compliance/page.tsx @@ -1,13 +1,53 @@ -import React from "react"; +import { Spacer } from "@nextui-org/react"; +import { redirect } from "next/navigation"; +import { Suspense } from "react"; +import { getCompliance } from "@/actions/compliance"; +import { + ComplianceCard, + ComplianceSkeletonGrid, +} from "@/components/compliance"; +import { FilterControls } from "@/components/filters"; import { Header } from "@/components/ui"; +import { searchParamsProps } from "@/types"; -export default function Compliance() { +export default async function Compliance({ searchParams }: searchParamsProps) { return ( <>
- -

Hi hi from Compliance page

+ + + + }> + + ); } + +const SSRComplianceGrid = async ({ searchParams }: searchParamsProps) => { + const page = searchParams.page ? parseInt(searchParams.page) : 1; + const compliancesData = await getCompliance({ page }); + const [compliances] = await Promise.all([compliancesData]); + + if (compliances?.errors) redirect("/compliance"); + + return ( +
+ {compliances.compliance?.data.map((compliance: any) => ( + + ))} +
+ ); +}; diff --git a/app/api/compliance/route.ts b/app/api/compliance/route.ts new file mode 100644 index 0000000000..b2e4a01d9f --- /dev/null +++ b/app/api/compliance/route.ts @@ -0,0 +1,10 @@ +import { NextResponse } from "next/server"; + +import data from "../../../dataCompliance.json"; + +export async function GET() { + // Simulate fetching data with a delay + await new Promise((resolve) => setTimeout(resolve, 2000)); + + return NextResponse.json({ compliance: data }); +} diff --git a/components/compliance/ComplianceCard.tsx b/components/compliance/ComplianceCard.tsx new file mode 100644 index 0000000000..32e8004377 --- /dev/null +++ b/components/compliance/ComplianceCard.tsx @@ -0,0 +1,85 @@ +import { Card, CardBody, Progress } from "@nextui-org/react"; +import Image from "next/image"; +import React from "react"; + +import { getComplianceIcon } from "../icons"; + +interface ComplianceCardProps { + title: string; + passingRequirements: number; + totalRequirements: number; + prevPassingRequirements: number; + prevTotalRequirements: number; +} + +export const ComplianceCard: React.FC = ({ + title, + passingRequirements, + totalRequirements, + prevPassingRequirements, + prevTotalRequirements, +}) => { + const ratingPercentage = Math.floor( + (passingRequirements / totalRequirements) * 100, + ); + + const prevRatingPercentage = Math.floor( + (prevPassingRequirements / prevTotalRequirements) * 100, + ); + + const getScanChange = () => { + const scanDifference = ratingPercentage - prevRatingPercentage; + if (scanDifference < 0 && scanDifference <= -1) { + return `${scanDifference}% from last scan`; + } + if (scanDifference > 0 && scanDifference >= 1) { + return `+${scanDifference}% from last scan`; + } + return "No change from last scan"; + }; + + const getRatingColor = (ratingPercentage: number) => { + if (ratingPercentage <= 10) { + return "danger"; + } + if (ratingPercentage <= 40) { + return "warning"; + } + return "success"; + }; + + return ( + + +
+ {`${title} +
+

{title}

+ +
+ + + {passingRequirements} / {totalRequirements} + + Passing Requirements + + {getScanChange()} +
+
+
+
+
+ ); +}; diff --git a/components/compliance/ComplianceSkeletonGrid.tsx b/components/compliance/ComplianceSkeletonGrid.tsx new file mode 100644 index 0000000000..c16d3edca9 --- /dev/null +++ b/components/compliance/ComplianceSkeletonGrid.tsx @@ -0,0 +1,18 @@ +import { Card, Skeleton } from "@nextui-org/react"; +import React from "react"; + +export const ComplianceSkeletonGrid = () => { + return ( + +
+ {[...Array(28)].map((_, index) => ( +
+ +
+
+
+ ))} +
+
+ ); +}; diff --git a/components/compliance/index.ts b/components/compliance/index.ts new file mode 100644 index 0000000000..6f025f2ca5 --- /dev/null +++ b/components/compliance/index.ts @@ -0,0 +1,2 @@ +export * from "./ComplianceCard"; +export * from "./ComplianceSkeletonGrid"; diff --git a/components/filters/CustomCheckboxMutedFindings.tsx b/components/filters/CustomCheckboxMutedFindings.tsx index 0ebfcb7755..62715403fe 100644 --- a/components/filters/CustomCheckboxMutedFindings.tsx +++ b/components/filters/CustomCheckboxMutedFindings.tsx @@ -1,10 +1,20 @@ import { Checkbox } from "@nextui-org/react"; import React from "react"; -export const CustomCheckboxMutedFindings = () => { +interface CustomCheckboxMutedFindingsProps { + mutedFindings?: boolean; +} + +export const CustomCheckboxMutedFindings: React.FC< + CustomCheckboxMutedFindingsProps +> = ({ mutedFindings }) => { return ( - - Include Muted Findings - + <> + {mutedFindings && ( + + Include Muted Findings + + )} + ); }; diff --git a/components/filters/FilterControls.tsx b/components/filters/FilterControls.tsx index 5ec7fe418a..e087d3c108 100644 --- a/components/filters/FilterControls.tsx +++ b/components/filters/FilterControls.tsx @@ -1,15 +1,23 @@ +import React from "react"; + import { CustomAccountSelection } from "./CustomAccountSelection"; import { CustomCheckboxMutedFindings } from "./CustomCheckboxMutedFindings"; import { CustomDatePicker } from "./CustomDatePicker"; import { CustomSelectProvider } from "./CustomSelectProvider"; -export const FilterControls = () => { +interface FilterControlsProps { + mutedFindings?: boolean; +} + +export const FilterControls: React.FC = ({ + mutedFindings = true, +}) => { return (
- +
); }; diff --git a/components/icons/compliance/IconCompliance.tsx b/components/icons/compliance/IconCompliance.tsx new file mode 100644 index 0000000000..543f6c68c8 --- /dev/null +++ b/components/icons/compliance/IconCompliance.tsx @@ -0,0 +1,63 @@ +import AWSLogo from "./aws.svg"; +import CISLogo from "./cis.svg"; +import CISALogo from "./cisa.svg"; +import ENSLogo from "./ens.png"; +import FedRAMPLogo from "./fedramp.svg"; +import FFIECLogo from "./ffiec.svg"; +import GDPRLogo from "./gdpr.svg"; +import GxPLogo from "./gxp-aws.svg"; +import HIPAALogo from "./hipaa.svg"; +import ISOLogo from "./iso-27001.svg"; +import MITRELogo from "./mitre-attack.svg"; +import NISTLogo from "./nist.svg"; +import PCILogo from "./pci-dss.svg"; +import RBILogo from "./rbi.svg"; +import SOC2Logo from "./soc2.svg"; + +export const getComplianceIcon = (complianceTitle: string) => { + if (complianceTitle.toLowerCase().includes("aws")) { + return AWSLogo; + } + if (complianceTitle.toLowerCase().includes("cisa")) { + return CISALogo; + } + if (complianceTitle.toLowerCase().includes("cis")) { + return CISLogo; + } + if (complianceTitle.toLowerCase().includes("ens")) { + return ENSLogo; + } + if (complianceTitle.toLowerCase().includes("ffiec")) { + return FFIECLogo; + } + if (complianceTitle.toLowerCase().includes("fedramp")) { + return FedRAMPLogo; + } + if (complianceTitle.toLowerCase().includes("gdpr")) { + return GDPRLogo; + } + if (complianceTitle.toLowerCase().includes("gxp")) { + return GxPLogo; + } + if (complianceTitle.toLowerCase().includes("hipaa")) { + return HIPAALogo; + } + if (complianceTitle.toLowerCase().includes("iso")) { + return ISOLogo; + } + if (complianceTitle.toLowerCase().includes("mitre")) { + return MITRELogo; + } + if (complianceTitle.toLowerCase().includes("nist")) { + return NISTLogo; + } + if (complianceTitle.toLowerCase().includes("pci")) { + return PCILogo; + } + if (complianceTitle.toLowerCase().includes("rbi")) { + return RBILogo; + } + if (complianceTitle.toLowerCase().includes("soc2")) { + return SOC2Logo; + } +}; diff --git a/components/icons/compliance/aws.svg b/components/icons/compliance/aws.svg new file mode 100644 index 0000000000..4715937ff0 --- /dev/null +++ b/components/icons/compliance/aws.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + diff --git a/components/icons/compliance/cis.svg b/components/icons/compliance/cis.svg new file mode 100644 index 0000000000..013f35a75e --- /dev/null +++ b/components/icons/compliance/cis.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/components/icons/compliance/cisa.svg b/components/icons/compliance/cisa.svg new file mode 100644 index 0000000000..c26f681d51 --- /dev/null +++ b/components/icons/compliance/cisa.svg @@ -0,0 +1,2 @@ + + diff --git a/components/icons/compliance/ens.png b/components/icons/compliance/ens.png new file mode 100644 index 0000000000000000000000000000000000000000..c3e6433f31c087c14a09e9a4cbf06eb21578d332 GIT binary patch literal 97549 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¥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

w80jRaG@VNRu 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 z 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 Q0sP2HDN5!)F?{!b0IN+lq5uE@ literal 0 HcmV?d00001 diff --git a/components/icons/compliance/fedramp.svg b/components/icons/compliance/fedramp.svg new file mode 100644 index 0000000000..7706bd4eff --- /dev/null +++ b/components/icons/compliance/fedramp.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/components/icons/compliance/ffiec.svg b/components/icons/compliance/ffiec.svg new file mode 100644 index 0000000000..40951851e9 --- /dev/null +++ b/components/icons/compliance/ffiec.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/components/icons/compliance/gdpr.svg b/components/icons/compliance/gdpr.svg new file mode 100644 index 0000000000..31175e9afe --- /dev/null +++ b/components/icons/compliance/gdpr.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/components/icons/compliance/gxp-aws.svg b/components/icons/compliance/gxp-aws.svg new file mode 100644 index 0000000000..7b22b53de3 --- /dev/null +++ b/components/icons/compliance/gxp-aws.svg @@ -0,0 +1,455 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/icons/compliance/hipaa.svg b/components/icons/compliance/hipaa.svg new file mode 100644 index 0000000000..b9537032f6 --- /dev/null +++ b/components/icons/compliance/hipaa.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/components/icons/compliance/iso-27001.svg b/components/icons/compliance/iso-27001.svg new file mode 100644 index 0000000000..109c19521d --- /dev/null +++ b/components/icons/compliance/iso-27001.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/components/icons/compliance/mitre-attack.svg b/components/icons/compliance/mitre-attack.svg new file mode 100644 index 0000000000..c546eedd83 --- /dev/null +++ b/components/icons/compliance/mitre-attack.svg @@ -0,0 +1,315 @@ + + + + + + + + + + + + + + + diff --git a/components/icons/compliance/nist.svg b/components/icons/compliance/nist.svg new file mode 100644 index 0000000000..4231017c94 --- /dev/null +++ b/components/icons/compliance/nist.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/components/icons/compliance/pci-dss.svg b/components/icons/compliance/pci-dss.svg new file mode 100644 index 0000000000..52f93be38b --- /dev/null +++ b/components/icons/compliance/pci-dss.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/components/icons/compliance/rbi.svg b/components/icons/compliance/rbi.svg new file mode 100644 index 0000000000..ce1d81f83d --- /dev/null +++ b/components/icons/compliance/rbi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/components/icons/compliance/soc2.svg b/components/icons/compliance/soc2.svg new file mode 100644 index 0000000000..d2b8782541 --- /dev/null +++ b/components/icons/compliance/soc2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/components/icons/index.ts b/components/icons/index.ts index c057522527..7912d466fd 100644 --- a/components/icons/index.ts +++ b/components/icons/index.ts @@ -1,3 +1,4 @@ +export * from "./compliance/IconCompliance"; export * from "./Icons"; export * from "./prowler/ProwlerIcons"; export * from "./services/IconServices"; diff --git a/dataCompliance.json b/dataCompliance.json new file mode 100644 index 0000000000..a1bdd62831 --- /dev/null +++ b/dataCompliance.json @@ -0,0 +1,438 @@ +{ + "links": { + "first": "http://localhost:8080/api/v1/compliance?page%5Bnumber%5D=1", + "last": "http://localhost:8080/api/v1/compliance?page%5Bnumber%5D=1", + "next": null, + "prev": null + }, + "data": [ + { + "id": "001", + "attributes": { + "title": "AWS Account Security Onboarding", + "passingRequirements": 28, + "totalRequirements": 83, + "regions": ["us-east-1", "us-east-2"] + }, + "lastScan": { + "attributes": { + "passingRequirements": 28, + "totalRequirements": 83 + } + } + }, + { + "id": "002", + "attributes": { + "title": "AWS Audit Manager Control Tower Guardrails", + "passingRequirements": 10, + "totalRequirements": 14, + "regions": ["us-west-1", "us-west-2"] + }, + "lastScan": { + "attributes": { + "passingRequirements": 14, + "totalRequirements": 14 + } + } + }, + { + "id": "003", + "attributes": { + "title": "AWS Foundational Security Best Practices", + "passingRequirements": 22, + "totalRequirements": 37, + "regions": ["eu-west-1", "eu-west-2"] + }, + "lastScan": { + "attributes": { + "passingRequirements": 22, + "totalRequirements": 37 + } + } + }, + { + "id": "004", + "attributes": { + "title": "AWS Foundational Technical Review", + "passingRequirements": 3, + "totalRequirements": 45, + "regions": ["ap-southeast-1", "ap-southeast-2"] + }, + "lastScan": { + "attributes": { + "passingRequirements": 25, + "totalRequirements": 45 + } + } + }, + { + "id": "005", + "attributes": { + "title": "AWS Well Architected Framework Reliability Pillar", + "passingRequirements": 2, + "totalRequirements": 3, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 0, + "totalRequirements": 3 + } + } + }, + { + "id": "006", + "attributes": { + "title": "AWS Well Architected Framework Security Pillar", + "passingRequirements": 19, + "totalRequirements": 57, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 24, + "totalRequirements": 57 + } + } + }, + { + "id": "007", + "attributes": { + "title": "CIS 1.4", + "passingRequirements": 43, + "totalRequirements": 58, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 40, + "totalRequirements": 58 + } + } + }, + { + "id": "008", + "attributes": { + "title": "CIS 1.5", + "passingRequirements": 48, + "totalRequirements": 63, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 50, + "totalRequirements": 63 + } + } + }, + { + "id": "009", + "attributes": { + "title": "CIS 2.0", + "passingRequirements": 47, + "totalRequirements": 64, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 64, + "totalRequirements": 64 + } + } + }, + { + "id": "010", + "attributes": { + "title": "CIS 3.0", + "passingRequirements": 45, + "totalRequirements": 62, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 48, + "totalRequirements": 62 + } + } + }, + { + "id": "011", + "attributes": { + "title": "CISA", + "passingRequirements": 4, + "totalRequirements": 16, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 4, + "totalRequirements": 16 + } + } + }, + { + "id": "012", + "attributes": { + "title": "ENS RD2022 Categoría ALTA", + "passingRequirements": 89, + "totalRequirements": 189, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 82, + "totalRequirements": 189 + } + } + }, + { + "id": "013", + "attributes": { + "title": "FFIEC", + "passingRequirements": 8, + "totalRequirements": 44, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 40, + "totalRequirements": 44 + } + } + }, + { + "id": "014", + "attributes": { + "title": "FedRAMP Low Revision 4", + "passingRequirements": 4, + "totalRequirements": 18, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 4, + "totalRequirements": 18 + } + } + }, + { + "id": "015", + "attributes": { + "title": "FedRamp Moderate Revision 4", + "passingRequirements": 11, + "totalRequirements": 64, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 28, + "totalRequirements": 64 + } + } + }, + { + "id": "016", + "attributes": { + "title": "GDPR", + "passingRequirements": 0, + "totalRequirements": 3, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 0, + "totalRequirements": 3 + } + } + }, + { + "id": "017", + "attributes": { + "title": "GxP 21 CFR Part 11", + "passingRequirements": 1, + "totalRequirements": 11, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 11, + "totalRequirements": 11 + } + } + }, + { + "id": "018", + "attributes": { + "title": "GxP EU Annex 11", + "passingRequirements": 5, + "totalRequirements": 14, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 5, + "totalRequirements": 14 + } + } + }, + { + "id": "019", + "attributes": { + "title": "HIPAA", + "passingRequirements": 2, + "totalRequirements": 32, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 9, + "totalRequirements": 32 + } + } + }, + { + "id": "020", + "attributes": { + "title": "ISO27001 2013", + "passingRequirements": 55, + "totalRequirements": 79, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 66, + "totalRequirements": 79 + } + } + }, + { + "id": "021", + "attributes": { + "title": "MITRE ATTACK", + "passingRequirements": 7, + "totalRequirements": 46, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 19, + "totalRequirements": 46 + } + } + }, + { + "id": "022", + "attributes": { + "title": "NIST 800 171 Revision 2", + "passingRequirements": 3, + "totalRequirements": 50, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 3, + "totalRequirements": 50 + } + } + }, + { + "id": "023", + "attributes": { + "title": "NIST 800 53 Revision 4", + "passingRequirements": 21, + "totalRequirements": 64, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 21, + "totalRequirements": 64 + } + } + }, + { + "id": "024", + "attributes": { + "title": "NIST 800 53 Revision 5", + "passingRequirements": 75, + "totalRequirements": 288, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 75, + "totalRequirements": 288 + } + } + }, + { + "id": "025", + "attributes": { + "title": "NIST CSF 1.1", + "passingRequirements": 15, + "totalRequirements": 56, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 46, + "totalRequirements": 56 + } + } + }, + { + "id": "026", + "attributes": { + "title": "PCI 3.2.1", + "passingRequirements": 11, + "totalRequirements": 19, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 19, + "totalRequirements": 19 + } + } + }, + { + "id": "027", + "attributes": { + "title": "RBI Cyber Security Framework", + "passingRequirements": 3, + "totalRequirements": 9, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 3, + "totalRequirements": 9 + } + } + }, + { + "id": "028", + "attributes": { + "title": "SOC2", + "passingRequirements": 7, + "totalRequirements": 56, + "regions": [] + }, + "lastScan": { + "attributes": { + "passingRequirements": 7, + "totalRequirements": 56 + } + } + } + ], + "meta": { + "pagination": { + "page": 1, + "pages": 1, + "count": 28 + }, + "version": "v1" + } +} diff --git a/images.d.ts b/images.d.ts new file mode 100644 index 0000000000..ad238adbf8 --- /dev/null +++ b/images.d.ts @@ -0,0 +1,29 @@ +declare module "*.png" { + const value: string; + export default value; +} + +declare module "*.jpg" { + const value: string; + export default value; +} + +declare module "*.jpeg" { + const value: string; + export default value; +} + +declare module "*.gif" { + const value: string; + export default value; +} + +declare module "*.svg" { + const content: any; + export default content; +} + +declare module "*.webp" { + const value: string; + export default value; +} diff --git a/tsconfig.json b/tsconfig.json index f204766d1b..0a3c1cf1de 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -25,5 +25,11 @@ "target": "es5" }, "exclude": ["node_modules"], - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"] + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + "images.d.ts" + ] }