Defaults & mappings¶
defaults
¶
Consistent defaults, the class registry, and enum mappings for OCSF events.
Everything version- or product-specific lives here, so that pinning/bumping the
OCSF schema version and adjusting our house defaults is a one-file change. The
per-class identity registry and activity vocabularies come from the generated
_catalog module.
ClassSpec
dataclass
¶
ClassSpec(
ocsf_class: OcsfClass,
class_uid: int,
category_uid: int,
class_name: str,
category_name: str,
model_name: str,
action: type[IntEnum],
)
Fixed OCSF identity for one class (uids, sibling name fields, model, activity).
type_uid
¶
Activity
¶
Bases: Enum
Our finding activity vocabulary (Findings classes). Maps to OCSF activity_id.
Shared by Detection Finding (2004) and Compliance Finding (2003), whose activity_id enums are identical: 1 Create, 2 Update, 3 Close.
class_spec_by_uid
¶
Return the :class:ClassSpec for a class_uid int, or None if unsupported.
configure_product
¶
configure_product(
*,
name: str,
vendor_name: str,
version: str | None = None,
uid: str | None = None,
) -> Product
Set the process-wide default Product stamped onto findings.
Call once at startup. version defaults to the pinned OCSF schema version
if omitted. Returns the constructed Product for convenience.
Source code in src/ocsf_emitter/defaults.py
make_product
¶
make_product(
*,
name: str,
vendor_name: str,
version: str | None = None,
uid: str | None = None,
) -> Product
Construct an OCSF Product block from our fields (does not set the default).
Source code in src/ocsf_emitter/defaults.py
default_product
¶
default_metadata
¶
Metadata block carrying the pinned schema version and the given product.
severity_id
¶
status_id
¶
activity_id
¶
confidence_id
¶
confidence_id(confidence: Confidence) -> int
risk_level_id
¶
type_uid
¶
type_uid_int
¶
class_identity
¶
Return (class_uid, category_uid, class_name, category_name) for a class.
Source code in src/ocsf_emitter/defaults.py
type_uid_for
¶
Compute type_uid = class_uid * 100 + activity_id for a class.