MCPcopy Create free account
hub / github.com/ShipSecAI/studio / toNormalisedFinding

Function toNormalisedFinding

worker/src/components/security/prowler-scan.ts:885–915  ·  view source on GitHub ↗
(
  finding: ProwlerFinding,
  index: number,
  runId: string,
)

Source from the content-addressed store, hash-verified

883}
884
885function toNormalisedFinding(
886 finding: ProwlerFinding,
887 index: number,
888 runId: string,
889): NormalisedFinding {
890 const primaryResource =
891 Array.isArray(finding.Resources) && finding.Resources.length > 0
892 ? finding.Resources[0]
893 : undefined;
894 const accountId = finding.AwsAccountId ?? extractAccountId(primaryResource?.Id) ?? null;
895 const region = primaryResource?.Region ?? extractRegionFromArn(primaryResource?.Id) ?? null;
896 const resourceId = primaryResource?.Id ?? null;
897 const severity = normaliseSeverity(finding);
898 const status = normaliseStatus(finding.Compliance?.Status);
899 const remediationText = finding.Remediation?.Recommendation?.Text ?? null;
900 const recommendationUrl = finding.Remediation?.Recommendation?.Url ?? null;
901
902 return {
903 id: finding.Id ?? `${runId}-finding-${index + 1}`,
904 title: finding.Title ?? null,
905 accountId,
906 resourceId,
907 region,
908 severity,
909 status,
910 description: finding.Description ?? null,
911 remediationText,
912 recommendationUrl,
913 rawFinding: finding,
914 };
915}
916
917function normaliseSeverity(finding: ProwlerFinding): NormalisedSeverity {
918 const label = finding.Severity?.Label ?? finding.Severity?.Original ?? '';

Callers 1

normaliseFindingsFunction · 0.85

Calls 4

extractRegionFromArnFunction · 0.85
normaliseSeverityFunction · 0.85
normaliseStatusFunction · 0.85
extractAccountIdFunction · 0.70

Tested by

no test coverage detected