mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-04-15 00:57:55 +00:00
chore(outputs): adapt to new metadata specification (#8651)
This commit is contained in:
committed by
GitHub
parent
f4530b21d2
commit
c4ba061f30
@@ -105,7 +105,9 @@ class TestASFF:
|
||||
resource_uid="test-arn",
|
||||
resource_tags={"key1": "value1"},
|
||||
)
|
||||
finding.metadata.Remediation.Recommendation.Url = ""
|
||||
finding.metadata.Remediation.Recommendation.Url = (
|
||||
"https://hub.prowler.com/check/check-id"
|
||||
)
|
||||
|
||||
timestamp = timestamp_utc.strftime("%Y-%m-%dT%H:%M:%SZ")
|
||||
|
||||
@@ -147,7 +149,7 @@ class TestASFF:
|
||||
Remediation=Remediation(
|
||||
Recommendation=Recommendation(
|
||||
Text=finding.metadata.Remediation.Recommendation.Text,
|
||||
Url="https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html",
|
||||
Url="https://hub.prowler.com/check/check-id",
|
||||
)
|
||||
),
|
||||
Description=finding.status_extended,
|
||||
@@ -170,7 +172,9 @@ class TestASFF:
|
||||
resource_name="test-resource",
|
||||
resource_uid="test-arn",
|
||||
)
|
||||
finding.metadata.Remediation.Recommendation.Url = ""
|
||||
finding.metadata.Remediation.Recommendation.Url = (
|
||||
"https://hub.prowler.com/check/check-id"
|
||||
)
|
||||
|
||||
timestamp = timestamp_utc.strftime("%Y-%m-%dT%H:%M:%SZ")
|
||||
|
||||
@@ -212,7 +216,7 @@ class TestASFF:
|
||||
Remediation=Remediation(
|
||||
Recommendation=Recommendation(
|
||||
Text=finding.metadata.Remediation.Recommendation.Text,
|
||||
Url="https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html",
|
||||
Url="https://hub.prowler.com/check/check-id",
|
||||
)
|
||||
),
|
||||
Description=finding.status_extended,
|
||||
@@ -238,7 +242,9 @@ class TestASFF:
|
||||
resource_uid="test-arn",
|
||||
resource_tags={"key1": "value1"},
|
||||
)
|
||||
finding.metadata.Remediation.Recommendation.Url = ""
|
||||
finding.metadata.Remediation.Recommendation.Url = (
|
||||
"https://hub.prowler.com/check/check-id"
|
||||
)
|
||||
finding.metadata.Remediation.Recommendation.Text = "x" * 513
|
||||
|
||||
timestamp = timestamp_utc.strftime("%Y-%m-%dT%H:%M:%SZ")
|
||||
@@ -281,7 +287,7 @@ class TestASFF:
|
||||
Remediation=Remediation(
|
||||
Recommendation=Recommendation(
|
||||
Text=f"{'x' * 509}...",
|
||||
Url="https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html",
|
||||
Url="https://hub.prowler.com/check/check-id",
|
||||
)
|
||||
),
|
||||
Description=finding.status_extended,
|
||||
@@ -517,7 +523,9 @@ class TestASFF:
|
||||
resource_uid="test-arn",
|
||||
resource_tags={"key1": "value1"},
|
||||
)
|
||||
finding.metadata.Remediation.Recommendation.Url = ""
|
||||
finding.metadata.Remediation.Recommendation.Url = (
|
||||
"https://hub.prowler.com/check/check-id"
|
||||
)
|
||||
|
||||
timestamp = timestamp_utc.strftime("%Y-%m-%dT%H:%M:%SZ")
|
||||
|
||||
@@ -560,7 +568,7 @@ class TestASFF:
|
||||
"Remediation": {
|
||||
"Recommendation": {
|
||||
"Text": "",
|
||||
"Url": "https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html",
|
||||
"Url": "https://hub.prowler.com/check/check-id",
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
@@ -40,6 +40,10 @@ class TestCSV:
|
||||
categories=["categorya", "categoryb"],
|
||||
depends_on=["dependency"],
|
||||
related_to=["related"],
|
||||
additional_urls=[
|
||||
"https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-operations-integration/best-practices.html",
|
||||
"https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-operations-integration/introduction.html",
|
||||
],
|
||||
notes="Notes about the finding",
|
||||
)
|
||||
]
|
||||
@@ -97,6 +101,10 @@ class TestCSV:
|
||||
assert output_data["CATEGORIES"] == "categorya | categoryb"
|
||||
assert output_data["DEPENDS_ON"] == "dependency"
|
||||
assert output_data["RELATED_TO"] == "related"
|
||||
assert (
|
||||
output_data["ADDITIONAL_URLS"]
|
||||
== "https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-operations-integration/best-practices.html | https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-operations-integration/introduction.html"
|
||||
)
|
||||
assert output_data["NOTES"] == "Notes about the finding"
|
||||
assert output_data["PROWLER_VERSION"] == prowler_version
|
||||
|
||||
@@ -113,7 +121,7 @@ class TestCSV:
|
||||
output.batch_write_data_to_file()
|
||||
|
||||
mock_file.seek(0)
|
||||
expected_csv = f"AUTH_METHOD;TIMESTAMP;ACCOUNT_UID;ACCOUNT_NAME;ACCOUNT_EMAIL;ACCOUNT_ORGANIZATION_UID;ACCOUNT_ORGANIZATION_NAME;ACCOUNT_TAGS;FINDING_UID;PROVIDER;CHECK_ID;CHECK_TITLE;CHECK_TYPE;STATUS;STATUS_EXTENDED;MUTED;SERVICE_NAME;SUBSERVICE_NAME;SEVERITY;RESOURCE_TYPE;RESOURCE_UID;RESOURCE_NAME;RESOURCE_DETAILS;RESOURCE_TAGS;PARTITION;REGION;DESCRIPTION;RISK;RELATED_URL;REMEDIATION_RECOMMENDATION_TEXT;REMEDIATION_RECOMMENDATION_URL;REMEDIATION_CODE_NATIVEIAC;REMEDIATION_CODE_TERRAFORM;REMEDIATION_CODE_CLI;REMEDIATION_CODE_OTHER;COMPLIANCE;CATEGORIES;DEPENDS_ON;RELATED_TO;NOTES;PROWLER_VERSION\r\nprofile: default;{datetime.now()};123456789012;123456789012;;test-organization-id;test-organization;test-tag:test-value;test-unique-finding;aws;service_test_check_id;service_test_check_id;test-type;PASS;;False;service;;high;test-resource;;;;;aws;eu-west-1;check description;test-risk;test-url;;;;;;;test-compliance: test-compliance;test-category;test-dependency;test-related-to;test-notes;{prowler_version}\r\n"
|
||||
expected_csv = f"AUTH_METHOD;TIMESTAMP;ACCOUNT_UID;ACCOUNT_NAME;ACCOUNT_EMAIL;ACCOUNT_ORGANIZATION_UID;ACCOUNT_ORGANIZATION_NAME;ACCOUNT_TAGS;FINDING_UID;PROVIDER;CHECK_ID;CHECK_TITLE;CHECK_TYPE;STATUS;STATUS_EXTENDED;MUTED;SERVICE_NAME;SUBSERVICE_NAME;SEVERITY;RESOURCE_TYPE;RESOURCE_UID;RESOURCE_NAME;RESOURCE_DETAILS;RESOURCE_TAGS;PARTITION;REGION;DESCRIPTION;RISK;RELATED_URL;REMEDIATION_RECOMMENDATION_TEXT;REMEDIATION_RECOMMENDATION_URL;REMEDIATION_CODE_NATIVEIAC;REMEDIATION_CODE_TERRAFORM;REMEDIATION_CODE_CLI;REMEDIATION_CODE_OTHER;COMPLIANCE;CATEGORIES;DEPENDS_ON;RELATED_TO;NOTES;PROWLER_VERSION;ADDITIONAL_URLS\r\nprofile: default;{datetime.now()};123456789012;123456789012;;test-organization-id;test-organization;test-tag:test-value;test-unique-finding;aws;service_test_check_id;service_test_check_id;test-type;PASS;;False;service;;high;test-resource;;;;;aws;eu-west-1;check description;test-risk;test-url;;;;;;;test-compliance: test-compliance;test-category;test-dependency;test-related-to;test-notes;{prowler_version};https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-operations-integration/best-practices.html | https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-operations-integration/introduction.html\r\n"
|
||||
content = mock_file.read()
|
||||
|
||||
assert content == expected_csv
|
||||
@@ -191,7 +199,7 @@ class TestCSV:
|
||||
with patch.object(temp_file, "close", return_value=None):
|
||||
csv.batch_write_data_to_file()
|
||||
|
||||
expected_csv = f"AUTH_METHOD;TIMESTAMP;ACCOUNT_UID;ACCOUNT_NAME;ACCOUNT_EMAIL;ACCOUNT_ORGANIZATION_UID;ACCOUNT_ORGANIZATION_NAME;ACCOUNT_TAGS;FINDING_UID;PROVIDER;CHECK_ID;CHECK_TITLE;CHECK_TYPE;STATUS;STATUS_EXTENDED;MUTED;SERVICE_NAME;SUBSERVICE_NAME;SEVERITY;RESOURCE_TYPE;RESOURCE_UID;RESOURCE_NAME;RESOURCE_DETAILS;RESOURCE_TAGS;PARTITION;REGION;DESCRIPTION;RISK;RELATED_URL;REMEDIATION_RECOMMENDATION_TEXT;REMEDIATION_RECOMMENDATION_URL;REMEDIATION_CODE_NATIVEIAC;REMEDIATION_CODE_TERRAFORM;REMEDIATION_CODE_CLI;REMEDIATION_CODE_OTHER;COMPLIANCE;CATEGORIES;DEPENDS_ON;RELATED_TO;NOTES;PROWLER_VERSION\nprofile: default;{datetime.now()};123456789012;123456789012;;test-organization-id;test-organization;test-tag:test-value;test-unique-finding;aws;service_test_check_id;service_test_check_id;test-type;PASS;;False;service;;high;test-resource;;;;;aws;eu-west-1;check description;test-risk;test-url;;;;;;;test-compliance: test-compliance;test-category;test-dependency;test-related-to;test-notes;{prowler_version}\n"
|
||||
expected_csv = f"AUTH_METHOD;TIMESTAMP;ACCOUNT_UID;ACCOUNT_NAME;ACCOUNT_EMAIL;ACCOUNT_ORGANIZATION_UID;ACCOUNT_ORGANIZATION_NAME;ACCOUNT_TAGS;FINDING_UID;PROVIDER;CHECK_ID;CHECK_TITLE;CHECK_TYPE;STATUS;STATUS_EXTENDED;MUTED;SERVICE_NAME;SUBSERVICE_NAME;SEVERITY;RESOURCE_TYPE;RESOURCE_UID;RESOURCE_NAME;RESOURCE_DETAILS;RESOURCE_TAGS;PARTITION;REGION;DESCRIPTION;RISK;RELATED_URL;REMEDIATION_RECOMMENDATION_TEXT;REMEDIATION_RECOMMENDATION_URL;REMEDIATION_CODE_NATIVEIAC;REMEDIATION_CODE_TERRAFORM;REMEDIATION_CODE_CLI;REMEDIATION_CODE_OTHER;COMPLIANCE;CATEGORIES;DEPENDS_ON;RELATED_TO;NOTES;PROWLER_VERSION;ADDITIONAL_URLS\nprofile: default;{datetime.now()};123456789012;123456789012;;test-organization-id;test-organization;test-tag:test-value;test-unique-finding;aws;service_test_check_id;service_test_check_id;test-type;PASS;;False;service;;high;test-resource;;;;;aws;eu-west-1;check description;test-risk;test-url;;;;;;;test-compliance: test-compliance;test-category;test-dependency;test-related-to;test-notes;{prowler_version};https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-operations-integration/best-practices.html | https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-operations-integration/introduction.html\n"
|
||||
|
||||
temp_file.seek(0)
|
||||
|
||||
|
||||
@@ -36,6 +36,10 @@ def generate_finding_output(
|
||||
depends_on: list[str] = ["test-dependency"],
|
||||
related_to: list[str] = ["test-related-to"],
|
||||
notes: str = "test-notes",
|
||||
additional_urls: list[str] = [
|
||||
"https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-operations-integration/best-practices.html",
|
||||
"https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-operations-integration/introduction.html",
|
||||
],
|
||||
service_name: str = "service",
|
||||
check_id: str = "service_test_check_id",
|
||||
check_title: str = "service_test_check_id",
|
||||
@@ -90,6 +94,7 @@ def generate_finding_output(
|
||||
RelatedTo=related_to,
|
||||
Categories=categories,
|
||||
Notes=notes,
|
||||
AdditionalURLs=additional_urls,
|
||||
),
|
||||
prowler_version=prowler_version,
|
||||
)
|
||||
|
||||
@@ -40,7 +40,7 @@ pass_html_finding = """
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><p class="show-read-more">test-risk</p></td>
|
||||
<td><p class="show-read-more"></p> <a class="read-more" href=""><i class="fas fa-external-link-alt"></i></a></td>
|
||||
<td><p class="show-read-more"></p> <a class="read-more" href="https://hub.prowler.com/check/check-id"><i class="fas fa-external-link-alt"></i></a></td>
|
||||
<td><p class="show-read-more">
|
||||
•test-compliance: test-compliance
|
||||
</p></td>
|
||||
@@ -62,7 +62,7 @@ fail_html_finding = """
|
||||
</td>
|
||||
<td>test-status-extended</td>
|
||||
<td><p class="show-read-more">test-risk</p></td>
|
||||
<td><p class="show-read-more">test-remediation-recommendation-text</p> <a class="read-more" href=""><i class="fas fa-external-link-alt"></i></a></td>
|
||||
<td><p class="show-read-more">test-remediation-recommendation-text</p> <a class="read-more" href="https://hub.prowler.com/check/check-id"><i class="fas fa-external-link-alt"></i></a></td>
|
||||
<td><p class="show-read-more">
|
||||
•test-compliance: test-compliance
|
||||
</p></td>
|
||||
@@ -80,7 +80,7 @@ muted_html_finding = """
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><p class="show-read-more">test-risk</p></td>
|
||||
<td><p class="show-read-more"></p> <a class="read-more" href=""><i class="fas fa-external-link-alt"></i></a></td>
|
||||
<td><p class="show-read-more"></p> <a class="read-more" href="https://hub.prowler.com/check/check-id"><i class="fas fa-external-link-alt"></i></a></td>
|
||||
<td><p class="show-read-more">
|
||||
•test-compliance: test-compliance
|
||||
</p></td>
|
||||
@@ -98,7 +98,7 @@ manual_html_finding = """
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><p class="show-read-more">test-risk</p></td>
|
||||
<td><p class="show-read-more"></p> <a class="read-more" href=""><i class="fas fa-external-link-alt"></i></a></td>
|
||||
<td><p class="show-read-more"></p> <a class="read-more" href="https://hub.prowler.com/check/check-id"><i class="fas fa-external-link-alt"></i></a></td>
|
||||
<td><p class="show-read-more">
|
||||
•test-compliance: test-compliance
|
||||
</p></td>
|
||||
@@ -573,6 +573,7 @@ class TestHTML:
|
||||
status_extended="test-status-extended",
|
||||
risk="test-risk",
|
||||
remediation_recommendation_text="test-remediation-recommendation-text",
|
||||
remediation_recommendation_url="https://hub.prowler.com/check/check-id",
|
||||
compliance={"test-compliance": "test-compliance"},
|
||||
)
|
||||
]
|
||||
@@ -583,21 +584,35 @@ class TestHTML:
|
||||
assert output_data == fail_html_finding
|
||||
|
||||
def test_transform_pass_finding(self):
|
||||
findings = [generate_finding_output()]
|
||||
findings = [
|
||||
generate_finding_output(
|
||||
remediation_recommendation_url="https://hub.prowler.com/check/check-id"
|
||||
)
|
||||
]
|
||||
html = HTML(findings)
|
||||
output_data = html.data[0]
|
||||
assert isinstance(output_data, str)
|
||||
assert output_data == pass_html_finding
|
||||
|
||||
def test_transform_muted_finding(self):
|
||||
findings = [generate_finding_output(muted=True)]
|
||||
findings = [
|
||||
generate_finding_output(
|
||||
muted=True,
|
||||
remediation_recommendation_url="https://hub.prowler.com/check/check-id",
|
||||
)
|
||||
]
|
||||
html = HTML(findings)
|
||||
output_data = html.data[0]
|
||||
assert isinstance(output_data, str)
|
||||
assert output_data == muted_html_finding
|
||||
|
||||
def test_transform_manual_finding(self):
|
||||
findings = [generate_finding_output(status="MANUAL")]
|
||||
findings = [
|
||||
generate_finding_output(
|
||||
status="MANUAL",
|
||||
remediation_recommendation_url="https://hub.prowler.com/check/check-id",
|
||||
)
|
||||
]
|
||||
html = HTML(findings)
|
||||
output_data = html.data[0]
|
||||
assert isinstance(output_data, str)
|
||||
@@ -605,7 +620,11 @@ class TestHTML:
|
||||
|
||||
def test_batch_write_data_to_file(self):
|
||||
mock_file = StringIO()
|
||||
findings = [generate_finding_output()]
|
||||
findings = [
|
||||
generate_finding_output(
|
||||
remediation_recommendation_url="https://hub.prowler.com/check/check-id"
|
||||
)
|
||||
]
|
||||
output = HTML(findings)
|
||||
output._file_descriptor = mock_file
|
||||
provider = set_mocked_aws_provider(audited_regions=[AWS_REGION_EU_WEST_1])
|
||||
@@ -623,7 +642,11 @@ class TestHTML:
|
||||
|
||||
def test_write_header(self):
|
||||
mock_file = StringIO()
|
||||
findings = [generate_finding_output()]
|
||||
findings = [
|
||||
generate_finding_output(
|
||||
remediation_recommendation_url="https://hub.prowler.com/check/check-id"
|
||||
)
|
||||
]
|
||||
output = HTML(findings)
|
||||
output._file_descriptor = mock_file
|
||||
provider = set_mocked_aws_provider(audited_regions=[AWS_REGION_EU_WEST_1])
|
||||
@@ -637,7 +660,11 @@ class TestHTML:
|
||||
|
||||
def test_write_footer(self):
|
||||
mock_file = StringIO()
|
||||
findings = [generate_finding_output()]
|
||||
findings = [
|
||||
generate_finding_output(
|
||||
remediation_recommendation_url="https://hub.prowler.com/check/check-id"
|
||||
)
|
||||
]
|
||||
output = HTML(findings)
|
||||
output._file_descriptor = mock_file
|
||||
|
||||
@@ -648,7 +675,11 @@ class TestHTML:
|
||||
assert content == html_footer
|
||||
|
||||
def test_aws_get_assessment_summary(self):
|
||||
findings = [generate_finding_output()]
|
||||
findings = [
|
||||
generate_finding_output(
|
||||
remediation_recommendation_url="https://hub.prowler.com/check/check-id"
|
||||
)
|
||||
]
|
||||
output = HTML(findings)
|
||||
provider = set_mocked_aws_provider(audited_regions=[AWS_REGION_EU_WEST_1])
|
||||
|
||||
@@ -657,7 +688,11 @@ class TestHTML:
|
||||
assert summary == aws_html_assessment_summary
|
||||
|
||||
def test_azure_get_assessment_summary(self):
|
||||
findings = [generate_finding_output()]
|
||||
findings = [
|
||||
generate_finding_output(
|
||||
remediation_recommendation_url="https://hub.prowler.com/check/check-id"
|
||||
)
|
||||
]
|
||||
output = HTML(findings)
|
||||
provider = set_mocked_azure_provider()
|
||||
|
||||
@@ -666,7 +701,11 @@ class TestHTML:
|
||||
assert summary == summary
|
||||
|
||||
def test_gcp_get_assessment_summary(self):
|
||||
findings = [generate_finding_output()]
|
||||
findings = [
|
||||
generate_finding_output(
|
||||
remediation_recommendation_url="https://hub.prowler.com/check/check-id"
|
||||
)
|
||||
]
|
||||
output = HTML(findings)
|
||||
provider = set_mocked_gcp_provider(project_ids=[GCP_PROJECT_ID])
|
||||
|
||||
@@ -675,7 +714,11 @@ class TestHTML:
|
||||
assert summary == gcp_html_assessment_summary
|
||||
|
||||
def test_kubernetes_get_assessment_summary(self):
|
||||
findings = [generate_finding_output()]
|
||||
findings = [
|
||||
generate_finding_output(
|
||||
remediation_recommendation_url="https://hub.prowler.com/check/check-id"
|
||||
)
|
||||
]
|
||||
output = HTML(findings)
|
||||
provider = set_mocked_kubernetes_provider()
|
||||
|
||||
@@ -684,7 +727,11 @@ class TestHTML:
|
||||
assert summary == kubernetes_html_assessment_summary
|
||||
|
||||
def test_m365_get_assessment_summary(self):
|
||||
findings = [generate_finding_output()]
|
||||
findings = [
|
||||
generate_finding_output(
|
||||
remediation_recommendation_url="https://hub.prowler.com/check/check-id"
|
||||
)
|
||||
]
|
||||
output = HTML(findings)
|
||||
provider = set_mocked_m365_provider()
|
||||
|
||||
@@ -695,7 +742,11 @@ class TestHTML:
|
||||
|
||||
def test_github_personal_access_token_get_assessment_summary(self):
|
||||
"""Test GitHub HTML assessment summary generation with Personal Access Token authentication."""
|
||||
findings = [generate_finding_output()]
|
||||
findings = [
|
||||
generate_finding_output(
|
||||
remediation_recommendation_url="https://hub.prowler.com/check/check-id"
|
||||
)
|
||||
]
|
||||
output = HTML(findings)
|
||||
provider = set_mocked_github_provider(auth_method="Personal Access Token")
|
||||
|
||||
@@ -710,7 +761,11 @@ class TestHTML:
|
||||
|
||||
def test_github_app_get_assessment_summary(self):
|
||||
"""Test GitHub HTML assessment summary generation with GitHub App authentication."""
|
||||
findings = [generate_finding_output()]
|
||||
findings = [
|
||||
generate_finding_output(
|
||||
remediation_recommendation_url="https://hub.prowler.com/check/check-id"
|
||||
)
|
||||
]
|
||||
output = HTML(findings)
|
||||
|
||||
provider = set_mocked_github_provider(
|
||||
|
||||
@@ -104,6 +104,7 @@ class TestOCSF:
|
||||
"categories": findings[0].metadata.Categories,
|
||||
"depends_on": findings[0].metadata.DependsOn,
|
||||
"related_to": findings[0].metadata.RelatedTo,
|
||||
"additional_urls": findings[0].metadata.AdditionalURLs,
|
||||
"notes": findings[0].metadata.Notes,
|
||||
"compliance": findings[0].compliance,
|
||||
}
|
||||
@@ -189,6 +190,10 @@ class TestOCSF:
|
||||
"categories": ["test-category"],
|
||||
"depends_on": ["test-dependency"],
|
||||
"related_to": ["test-related-to"],
|
||||
"additional_urls": [
|
||||
"https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-operations-integration/best-practices.html",
|
||||
"https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-operations-integration/introduction.html",
|
||||
],
|
||||
"notes": "test-notes",
|
||||
"compliance": {"test-compliance": "test-compliance"},
|
||||
},
|
||||
@@ -316,6 +321,7 @@ class TestOCSF:
|
||||
"categories": finding_output.metadata.Categories,
|
||||
"depends_on": finding_output.metadata.DependsOn,
|
||||
"related_to": finding_output.metadata.RelatedTo,
|
||||
"additional_urls": finding_output.metadata.AdditionalURLs,
|
||||
"notes": finding_output.metadata.Notes,
|
||||
"compliance": finding_output.compliance,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user