mirror of
https://github.com/splunk/security_content.git
synced 2026-08-15 03:37:05 +00:00
Page:
3. Content Structure and Versioning
Pages
1. Home
2. Installation and Usage
3. Content Structure and Versioning
4. Developing ESCU Content
4.1 ‐ Contributing to the Project
4.2 ‐ Customize to Your Environment
5.1 ‐ Detection Naming Convention
5.2 ‐ Detection Types and Status
5.3 ‐ ESCU ‐ JSON Schemas
5.4 ‐ Deprecated Detections
6 ‐ How are risk score calculated for Event Based Detections
7 ‐ Code of Conduct
No results
7
3. Content Structure and Versioning
Nasreddine Bencherchali edited this page 2026-08-14 17:53:35 +02:00
Content Structure and Versioning
This document describes the current structure of the upstream Splunk Security Content repository and how content objects are versioned. The source files are mostly YAML, with JSON schemas in schemas/ defining the supported fields and validation rules.
Schema-Backed Content
| Folder | Purpose |
|---|---|
detections/ |
Detection searches, organized by category: application, cloud, endpoint, network, and web. Deprecated detections live under detections/deprecated. |
baselines/ |
Scheduled searches that establish known-good or historical context, often by populating lookups used by detections. |
stories/ |
Analytic Stories that group related detections around a threat, campaign, technique, or security use case. |
macros/ |
Search macros used by detections, baselines, and dashboards. Filter macros also provide customer-tunable suppression points. |
lookups/csv/ |
CSV lookup metadata and the CSV files they describe. These usually provide static indicators, allowlists, or enrichment values. |
lookups/kvstore/ |
KV Store lookup definitions used for stateful or dynamically updated content. |
data_sources/ |
Data source definitions, including source, sourcetype, supported add-ons, and field-level expectations. Detections reference these by name. |
dashboards/ |
Dashboard metadata. Each dashboard also has a matching JSON dashboard definition. |
playbooks/ |
SOAR playbook metadata and supporting playbook JSON. Supporting custom functions live under playbooks/custom_functions. |
schedules/ |
Reusable schedule definitions, including cron schedule, earliest/latest time, and schedule window. |
removed/ |
Metadata for content that has been removed after deprecation. Removed content is kept for lifecycle tracking and migration guidance. |
Supporting Folders
schemas/: JSON schemas for every supported schema-backed content type.response_templates/: Response template JSON used by response and investigation workflows.workbooks/: Workbook JSON assets.app_template/: Template files used when producing the distributable app.docs/: Repository documentation and static documentation assets.scripts/: Helper scripts for repository maintenance and reporting.deprecated/: Legacy documentation and historical assets. Current deprecated content belongs in each content folder's owndeprecated/subdirectory, or inremoved/after removal.
Release Versioning
Splunk Security Content releases use semantic versioning:
<major>: Increases for incompatible changes, major schema changes, or packaging behavior changes that require consumers to adjust.<minor>: Increases when new content or compatible feature-level content changes are added.<patch>: Increases for fixes to existing content when no new content surface is introduced.
Release versioning is separate from individual content-object versioning. A release version describes the shipped package. A content-object version describes one YAML-defined object.
Detection Content Object Versioning
When updating a detection content object:
- Keep
idstable. - Keep
creation_datestable. - Update
modification_dateto the date of the change. - Increment
versionif the changes touches important fields to how versioning is calculated internally.