DSLs#
A DSL is a small, focused language designed for a narrow problem.
The operator meets them everywhere: regex on a log line, jq on an
API response, YARA on a sample, Sigma on a SIEM, SPL on splunk,
cron on a scheduler, Dockerfile on a build host. Pattern
matching, querying, schema definition, text processing, build
automation, detection content, and diagrams all live here.
A DSL trades generality for fluency: the syntax is awkward outside its domain and unbeatable inside it. Fluency in the major DSLs is most of what makes the operator fluent in the toolchain.
Pattern Languages#
The operator’s bread-and-butter pattern language. Log triage, indicator extraction, packet filters.
The simpler cousin of regex for matching filenames.
Shells, .gitignore, rsync, find.
Five- or six-field schedule DSL. Unix cron,
Kubernetes CronJob, GitHub Actions, EventBridge.
Query and Filter#
Structured Query Language. The declarative query DSL behind nine relational engines out of ten.
Schema-defined query language for HTTP APIs. Queries, mutations, subscriptions, the SDL.
Standard CLI and language for querying and transforming JSON.
Query language for XML and HTML. Standard for scraping and test automation.
Query language for graph databases. Neo4j and the wider openCypher ecosystem.
Schema, Grammar, and IDL#
Backus-Naur Form and variants. The standard notation for formal language syntax.
Google’s schema and IDL for typed structured data with codegen across languages.
Text Processing#
Pattern-action language for line-oriented text. POSIX, everywhere.
The stream editor. Editing commands applied line by line.
Build, Config, and Infrastructure#
The original build DSL. Targets, prerequisites, recipes.
Small declarative DSL describing how to build a container image.
HashiCorp Configuration Language. Behind Terraform, OpenTofu, Packer, Vault, Consul, Nomad.
Security and Policy#
Pattern-matching swiss knife for malware research. Textual and binary patterns.
Vendor-agnostic detection rule language. Write once, convert to SIEM-native queries.
Snort and Suricata rule DSL for network packet patterns.
Open Policy Agent’s policy language. Declarative,
Datalog-derived is this allowed? decisions.
AWS-released authorization policy language. Simpler than Rego, formally analyzable.
Kusto Query Language. Microsoft’s DSL for Azure Data Explorer, Sentinel, M365 Defender.
Splunk’s Search Processing Language. Pipeline-shaped query DSL.
Prometheus Query Language. Time-series metrics across the Prometheus-compatible stack.
Cloud-native runtime security. YAML DSL describing suspicious behavior at the syscall level.
Documents and Diagrams#
Text-as-diagram DSLs. DOT (Graphviz), Mermaid, PlantUML.