name: "WithSecure Elements Incidents → OCSF" description: "Maps a WithSecure Elements incident (Broad Context Detection / BCD) from GET /incidents/v1/incidents (results_path = items) to OCSF finding fields. Field paths validated against the WithSecure Connect Elements API OpenAPI spec (connect.withsecure.com/specs/elements). The incidents list object carries only incident-level metadata — device / user / process / file / MITRE fields live on the separate /incidents/v1/detections endpoint and are not present here." field_mappings: title: "name" severity: "severity = 'critical' ? 5 : (severity = 'high' ? 4 : (severity = 'medium' ? 3 : (severity = 'low' ? 2 : 1)))" description: "$join(categories, ', ')" # results_path = items; source_path is JSONata over ONE incident (BCD) object. # Paths absent from a given incident are skipped at ingestion, so extra entries are safe. ocsf: # ── Finding identity ────────────────────────────────────────────── - { source_path: "incidentId", ocsf_field: "finding_info.uid" } - { source_path: "name", ocsf_field: "finding_info.title" } # ── Timestamps ──────────────────────────────────────────────────── - { source_path: "createdTimestamp", ocsf_field: "finding_info.created_time" } - { source_path: "updatedTimestamp", ocsf_field: "finding_info.modified_time" } # ── State ───────────────────────────────────────────────────────── - { source_path: "severity", ocsf_field: "severity" } - { source_path: "status", ocsf_field: "status" } - { source_path: "resolution", ocsf_field: "finding_info.desc" }