Splunk Common Information Model
Version: 8.5.0
CIM is organized around data models. Each data model contains datasets,
historically called data model objects. Datasets inherit fields and constraints
from parent datasets. Event datasets ultimately inherit from BaseEvent; search
datasets inherit from BaseSearch. All Splunk data model datasets can use the
base fields _time, host, source, and sourcetype.
- Tags and constraints decide which events belong in a dataset.
- Fields describe the effective normalized shape that searches, dashboards,
pivots, and downstream apps expect. Each field entry states whether it is
base,declared,calculated, orinherited. - Calculated field entries include a
calculationblock because they create or normalize fields at search time. - Lookup files document expected values, translations, and enrichments, such as actions, protocols, HTTP statuses, DNS reply codes, endpoint statuses, and severities.
Data files
- Use data/catalog.yaml to choose a data model and find the generated files.
- Use
data/models/<model>.yamlto inspect datasets, tags, constraints, and the effectivefieldsmap for one CIM data model. - Use data/fields.yaml to find field-specific files.
- Use
data/fields/<field>.yamlto inspect lookup links and where a field is declared or calculated across models and datasets. - Use data/lookups.yaml and
data/lookups/<lookup>.yamlfor lookup-backed values, translations, and enrichments. - Use docs/index.md and
docs/pages/*.mdfor Splunk CIM 8.5 workflow guidance, examples, and explanatory prose. - Use source.md for provenance and generation counts.
Treat docs/ as additional context only. Do not use docs pages as the
authority for fields, tags, constraints, datasets, or lookup values when a
generated data/ file exists.
Mapping rules
- Start from the event semantics, choose the closest CIM data model in data/catalog.yaml, then choose the dataset whose tags and constraints match the event.
- Apply all required tags and parent dataset tags implied by the dataset parent chain.
- Populate useful app-documented fields first, especially fields marked
recommendedorrequired. - Treat fields with
source: calculatedor acalculationblock as app-provided normalizations; when mapping a source, still populate the underlying source fields needed by those calculations when possible. - Prefer specific fields such as
src_ip,dest_ip,user,signature, orvendor_productover broad fields when the data source provides them. - Use lookup files to normalize, translate, or enrich values when a lookup documents semantics for a field.
- Preserve source-specific details outside CIM fields when the app-derived reference has no normalized CIM field.
Question routing
- Which CIM model should this log map to? data/catalog.yaml, then the closest model file.
- What tags or constraints identify a dataset?
data/models/<model>.yaml. - What fields does a dataset include?
fieldsindata/models/<model>.yaml. - What does field X mean? data/fields.yaml, then
data/fields/<field>.yaml. - What values are expected for a field? Field
expected_values, then data/lookups.yaml. - What does Splunk say about CIM workflows? docs/index.md.
- What source produced this skill? source.md.