A story is a graph of events
In Storyline this is called Story.
There is no program counter. Each action fires on an event and emits an event; branching is a filter on the stream, not an if-statement in a script.
Tines works in stories, and every event in one carries its own lineage. Build a compact story that receives an alert, enriches it and opens a case, reading each event in the viewer to trace where its values came from.
Mission brief · T-101
you, signed in to the automation platform as `eng.you` (build role, not the on-call responder)
You are not on the console watching the queue. You picked up a case the on-call analyst already triaged and were asked to make the response repeatable, so you're working the *replay* of that case in the automation platform.
Automation platform (author + test)
Automation platform
Ticketing (read + work notes)
Ticketing / ITSM
The playbook itself
Owner: SOC manager (approves anything that touches production)
A playbook that contains hosts without an approval gate will do it at 3am, at machine speed, to every host in the batch.
You may act alone
Ask a human first
In a real SOC the analyst works the alert and hands the *pattern* to you. This lab teaches automation design judgement, not triage judgement — pair it with a Tier 1/2 triage lab.
Event-driven, storyboard-style automation makes the data flow obvious and the state implicit. That trade is powerful once you learn to think in events instead of steps.
In Storyline this is called Story.
There is no program counter. Each action fires on an event and emits an event; branching is a filter on the stream, not an if-statement in a script.
In Storyline this is called Event path.
You address the emitting action's payload directly. Rename an action and every downstream reference to it breaks — naming is load-bearing here in a way it is not elsewhere.
Re-running a story replays events. Anything with an external side effect must be safe to replay, or keyed so the second attempt is a no-op.
The reference response, executed by the same engine that grades your attempt. Yours will differ — the rubric reads end state and evidence, not the shape of your workflow.
Gate approved — 100%
11 of 11 rubric rules hold.
Gate denied — 90%
Refusing the consequential action is a defensible choice with a measured cost; the difference is what the lab is teaching.
Cloud storage discovery against an exposed bucket — the reconnaissance that precedes bulk collection.
| Technique | Name | Tactic |
|---|---|---|
| T1580 | Cloud Infrastructure Discovery | Discovery |
| T1530 | Data from Cloud Storage | Collection |
The workflow reached a terminal success state on the graded run.
behavior · weight 20
A reversible action passed through a human approval gate.
safety · weight 15
No non-idempotent operation was retried without an idempotency key.
efficiency · weight 10
Every action node resolves its secret from the vault, never an inline field.
configuration · weight 10
The learner attached at least one linkable piece of evidence to the case.
investigation · weight 10
The case carries an analyst closure note explaining the outcome.
explanation · weight 10
No innocent asset in the alert batch was contained, disabled or revoked.
behavior · weight 15
The playbook survived the integration faults it met and still finished.
configuration · weight 15
Nothing was changed in the estate before evidence had been gathered.
investigation · weight 10
Actions reference event paths rather than duplicated literals.
configuration · weight 20 · T1580 Cloud Infrastructure Discovery (Discovery)
The learner traced the case field back to its originating event.
investigation · weight 20 · T1530 Data from Cloud Storage (Collection)
Vocabulary is generated from the teaching profiles, so it always matches what the consoles render.
| Concept | Cortex Forge | Summit SOAR | Storyline |
|---|---|---|---|
| workflow | Playbook | Playbook | Story |
| context-path | Context path | Datapath | Event path |
The same reference to an enrichment node's verdict, written three ways:
The consoles you practice in use teaching names. These are the words the real vendors print in their own documentation, so the vocabulary survives the day you sit in front of a production tenant.
| Concept | Cortex XSOARXSOAR 8.x | Splunk SOARSplunk SOAR 6.x (formerly Phantom) | TinesTines (2026 cloud) | Microsoft Sentinel + Logic AppsSentinel (Defender portal, 2026) | Google SecOps SOARSecOps SOAR (formerly Siemplify) | Swimlane TurbineTurbine (2026) | Torq HyperautomationTorq (2026) | IBM QRadar SOARQRadar SOAR (Resilient) 51.x | ServiceNow Security OperationsSecOps (Flow Designer era) |
|---|---|---|---|---|---|---|---|---|---|
| workflow | Playbook | Playbook | Story | Playbook (Logic App) | Playbook | Playbook | Workflow | Workflow (BPMN) | Flow / subflow |
| context-path | Context path (${...}) | Datapath | Formula (<<path.to.value>>) | Expression (@{body('step')}) | Placeholder ([Entity.Identifier]) | Reference ($record.field) | Expression ({{ .event.field }}) | Rule/script object (incident.properties) | Data pill |
Scores event-driven thinking: each step is a pure transform of the event it received, so replaying the event reproduces the outcome.
TinesTines
Actions emit events; there is no hidden run state to lean on, which is exactly why re-emitting reproduces the result.
Torq HyperautomationTorq
Steps read {{ .event }}; a step that depends on wall-clock or on a previous side effect is not replayable.
Microsoft Sentinel + Logic AppsMicrosoft
Logic App triggers carry the payload; reading current state mid-run instead is what makes reruns diverge.
Event-driven pipelines behave identically in stream processing and CI systems: fan-out is free, ordering is not guaranteed, replay must be safe.