Skip to content

Commit 0186cea

Browse files
committed
examples/README: correct source-format note to reflect console exports
The note claimed every example is generated by bin/convert_catalog_to_yaml.py, which is no longer true — several examples are now direct Falcon console exports (the definitive import/export format). Documents both sources, marks console export as preferred/definitive, and keeps the deterministic converter as the fallback for catalog records. No example is hand-translated.
1 parent 6283b56 commit 0186cea

1 file changed

Lines changed: 26 additions & 23 deletions

File tree

skills/authoring/examples/README.md

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -75,26 +75,29 @@ values are preserved exactly as they appear in the source playbooks.
7575

7676
## A note on the source format
7777

78-
These workflows were sourced from CrowdStrike Content Library catalog records (JSON)
79-
and converted to YAML for developer readability. Node labels and condition names are
80-
derived from the original graph, so `${data['...']}` references between actions stay
81-
consistent.
82-
83-
The YAML here matches the Falcon console's own **import/export** format (a flat
84-
`trigger` + `actions` map with `next` edges), which is a strict superset of what the
85-
catalog record carried — YAML loses nothing the platform needs. Every example is
86-
verified against the live import API (`import_definition` with `validate_only`).
87-
88-
**Authoring guardrail — always ground new examples in a real export.** The catalog
89-
record is not the import format, and hand-conversion is lossy: an early version of
90-
these examples dropped the Signal trigger's required `event:` field and invented a
91-
trigger `id`, which broke import. To add or fix an example, either export a working
92-
workflow from the console (or `export_definition`) and adapt that real YAML, or run
93-
the deterministic converter `bin/convert_catalog_to_yaml.py` on a catalog record —
94-
do not hand-translate. The converter resolves the Signal `event:` from the trigger
95-
catalog automatically. A Signal trigger must carry `event:` (the trigger category,
96-
e.g. `Investigatable/NGSIEM`); discover values with `trigger_search.py --events`.
97-
98-
Every example here is generated by `bin/convert_catalog_to_yaml.py` and verified to
99-
import cleanly (`import_definition` with `validate_only`), so regenerating them is
100-
reproducible rather than a manual re-typing pass.
78+
These workflows are real Falcon Fusion playbooks from the CrowdStrike Content
79+
Library, in the Falcon console's own **import/export** format: a flat `trigger`
80+
plus an `actions` map with `next` edges, `conditions`, and `loops`. Every example
81+
is verified against the live import API (`import_definition` with `validate_only`).
82+
83+
Examples come from one of two sources, noted in each file's header:
84+
85+
- **Console export (preferred, definitive).** Installed from the Content Library
86+
and exported unmodified from the console. This is ground truth — it round-trips
87+
through Fusion's own serializer, so it imports cleanly by construction. Newer
88+
examples (e.g. the VirusTotal, AbuseIPDB, phishing-ITP, and LLM-enrichment
89+
playbooks) use this path.
90+
- **Deterministic conversion.** Some examples were produced by running
91+
`bin/convert_catalog_to_yaml.py` on a Content Library catalog record (JSON).
92+
The converter resolves the Signal `event:` from the trigger catalog
93+
automatically. Prefer a console export when one is available; the catalog record
94+
is not the import format and conversion is a best-effort reproduction of it.
95+
96+
**Authoring guardrail — always ground new examples in a real workflow.** Never
97+
hand-translate a catalog record: an early version of these examples dropped the
98+
Signal trigger's required `event:` field and invented a trigger `id`, which broke
99+
import. To add or fix an example, either export a working workflow from the console
100+
(`export_definition`) — the preferred path — or run
101+
`bin/convert_catalog_to_yaml.py` on a catalog record. A Signal trigger must carry
102+
`event:` (the trigger category, e.g. `Investigatable/NGSIEM`); discover values with
103+
`trigger_search.py --events`.

0 commit comments

Comments
 (0)