EntryWidgetNCSCResultsD

This script populates results for the dynamic content shown in the incident layout.

python · NCSC Cyber Asssessment Framework

Source

import demistomock as demisto  # noqa: F401
from CommonServerPython import *  # noqa: F401

incident = demisto.incidents()
cafdresult = incident[0].get("CustomFields", {}).get("cafdresultraw", {})
if type(cafdresult) is not dict:
    cafdresult = json.loads(cafdresult)
total = len(cafdresult)
non_compliant_count = len([x for x in cafdresult if x["Result"] != "Achieved"]) if cafdresult else None
medium = int(round(total / 3, 0))
high = int(round(total / 3 * 2, 0))
data = {
    "Type": 17,
    "ContentsFormat": "number",
    "Contents": {
        "stats": non_compliant_count,
        "params": {
            "layout": "horizontal",
            "name": "Unachieved items",
            "sign": "",
            "colors": {
                "items": {
                    "#00CD33": {"value": -1},
                    "#FF9000": {"value": medium},
                    "#FF1744": {"value": high},
                }
            },
            "type": "above",
        },
    },
}

demisto.results(data)