cybersecurity-attack-paths: fix p.relationships label handling (1.17+ format), pin 1.21.1#99
cybersecurity-attack-paths: fix p.relationships label handling (1.17+ format), pin 1.21.1#99rygao wants to merge 1 commit into
Conversation
…nalai 1.21.1
p.relationships changed format in relationalai 1.17: from a decorated
string ("-<rel>->") to the dotted relationship name ("Asset.exploit_to").
The 1.15-era decoration stripping no longer stripped anything and mangled
every printed technique (e.g. "Asset.exploit"). Print the raw label
as-is, update README/runbook expected output to match, and bump the pin
1.15.0 -> 1.21.1 (verified end-to-end against a live engine).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
|
||
| - Python >= 3.10. | ||
| - `relationalai` SDK >= 1.15 (path enumeration with multi-edge patterns is a preview capability) and the `rai` CLI, both installed by the Quickstart steps below. | ||
| - `relationalai` SDK >= 1.21 (path enumeration with multi-edge patterns is a preview capability) and the `rai` CLI, both installed by the Quickstart steps below. |
There was a problem hiding this comment.
I don't understand the part of the PR comment:
no substantive changes needed — each was run end-to-end on 1.21.1 with its current (1.15-pinned) code and passes unchanged. Their pins/doc version references can move when there's a real reason to touch them.
Seems like we should update their pins too, right? Otherwise the AIs learning from these examples will think they need to run on older versions?
There was a problem hiding this comment.
Question for @cafzal: Is it better to leave these minimum bounds more permissive, or to keep things updated to encourage the AIs that are reading these files to use the latest version?
There was a problem hiding this comment.
just focus on supporting 1.21+. we'll make that clear in skills repo readme and setup skill
| @@ -157,16 +157,12 @@ def load_csv(filename): | |||
| hop_df = hop_df.drop_duplicates(["path_id", "hop"]).sort_values(["path_id", "hop"]) | |||
There was a problem hiding this comment.
Why do we need to drop duplicates? There shouldn't be any, right?
And similarly I guess the data is also sorted by path_id, hop.
Sacha0
left a comment
There was a problem hiding this comment.
LGTM modulo Nathan's good questions, thanks Ryan!
Follow-up to #87, narrowed to the one path template that needs a code fix for post-1.15 PyRel changes.
Change
p.relationshipschanged format in relationalai 1.17 — from a decorated string (-⟨exploit_to⟩→) to the dotted relationship name (Asset.exploit_to). This template's 1.15-era decoration-stripping no longer stripped anything and chopped the wrong characters, so every printed kill-chain technique came out asAsset.exploit/Asset.cred/Asset.pivot. The template now prints the raw label as-is (zero parsing), the README/runbook expected outputs are updated to match, and the pin moves1.15.0→1.21.1.Verification
Run end-to-end on
relationalai==1.21.1against a live engine; printed kill-chains match the updated docs:Deliberately not included
std/pathsdoc path) and book_slate_recommendation (pins 1.1.0; imports the deprecatedrelationalai.semantics.std.paths): pre-paths templates: 3 incorporations + 2 new (it-dependency-mapping, cybersecurity-attack-paths), on relationalai 1.15 #87 path templates, flagged for separate follow-up.🤖 Generated with Claude Code