Repository navigation
Link incidents to Strata: targets on steps, reports back, an assets section in the report - #21
Merged
Conversation
An incident can be declared with a Strata IS, the assets hit and
parameters (a CVE). Playbook steps get optional `targets` (selectors
Strata resolves on its map) and decisions optional `effects` (an answer
marks assets); both are validated with the draft, edited in the step
inspector and written to the YAML export. PB-001, PB-003, PB-006 and
PB-010 ship with them.
POST /api/incidents/{id}/strata (analyst) takes what Strata reports
back: the state of the assets and log entries, which land in the
timeline. The incident page shows a Strata block. Both backends (server
and Claude artifact) accept the link.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ke7yEW5dhDYFVpV2cdgs87
Signed-off-by: Claude <noreply@anthropic.com>
The report of an incident linked to Strata lists each asset with its state as Strata last reported it, on screen, in the PDF and in Markdown. The section is left out for incidents that are not linked. Templates saved before it existed get it after Key decisions when read, so the template editor and its checks keep working. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ke7yEW5dhDYFVpV2cdgs87 Signed-off-by: Claude <noreply@anthropic.com>
0b3l1X-SolidGeeks
force-pushed
the
claude/strata-incident-muster-entlk7
branch
from
October 27, 2026 21:35
5557c5b to
5f040bc
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Muster side of Strata's incident mode. Strata (the map of the information systems) signs in to Muster with an analyst account, opens linked incidents on its map, runs them from there, and reports back. Strata side: SolidGeeks/strata, PRs for the incident mode and the Muster connection.
What changes
An incident can be linked to Strata. The declare form has a collapsed Link to Strata section: Strata IS id, assets hit (names or Strata ids), and a CVE for
{cve}targets. Stored asincident.strata={site, assets, params, marks, names}, validated bycleanStratainpackages/core/src/strata.ts. Both backends (server and Claude artifact) accept it. The incident list includesstrataso Strata can tell which incidents belong to which IS.Steps say what they act on in Strata.
PNodegets two optional fields:targets: selectors Strata resolves on its map (affected,compromised,id:<asset>,type:dc,role:backup,vuln:{cve},exposed:internet, plusreach:,consumers:,flows:,business:,contacts:around another selector).effectson a decision: answer →[state, selector]. For example, answering Yes to Exposed assets found? marks the assets carrying the CVE as suspected.Both are checked by
checkGraphShape, so a draft with an unknown selector is refused. They can be edited in the step inspector (Strata targets) and are written to the YAML export. PB-001, PB-003, PB-006 and PB-010 ship with them. Playbooks without them behave as before.Strata reports back. New route
POST /api/incidents/{id}/strata(analyst) takes{site, marks, names, assets, params, log}:marksreplace the state of the assets.logentries land in the timeline asStrata: …, written by the Strata account with the person's name, for exampleInès Benali (alice).The incident page shows a Strata block with the IS, the assets and their state, and what the current step points at.
Report: Assets hit (Strata). The report of a linked incident gets a section listing each asset with its state, on screen, in the PDF and in Markdown. It is left out for incidents that are not linked (
reportSections). Templates saved before this section existed get it after Key decisions when read (withAllSections), so the template editor and its "every section" check keep working.Compatibility
X-Musterheader with a regular analyst account.Tests
npm run typecheck: clean.npm test: 15 pass. The new API test covers:/strata(marks, unknown states dropped, viewers refused, log author);An existing test now also checks that an unlinked incident's report has no Strata section.
npm run test:e2e: all checks pass locally. I pointed Playwright at the Chromium already installed in this environment; nothing in the test changed.End to end with a real Strata server connected: a ransomware incident run from Strata, with tasks, decisions and flow cuts appearing in Muster's timeline, and a PB-010 decision answered in Muster marking the assets in Strata. Rendered report checked.
Generated by Claude Code