feat(core): OSCAL assessment-results emitter + finding->control linker
CI / Check (push) Skipped
CI / Check (pull_request) Successful in 7m21s
CI / Detect Changes (pull_request) Skipped
CI / Deploy Agent (pull_request) Skipped
CI / Deploy Dashboard (pull_request) Skipped
CI / Deploy Docs (pull_request) Skipped
CI / Deploy MCP (pull_request) Skipped
CI / Check (push) Skipped
CI / Check (pull_request) Successful in 7m21s
CI / Detect Changes (pull_request) Skipped
CI / Deploy Agent (pull_request) Skipped
CI / Deploy Dashboard (pull_request) Skipped
CI / Deploy Docs (pull_request) Skipped
CI / Deploy MCP (pull_request) Skipped
Assess our findings against catalog controls and emit a standard OSCAL 1.1 assessment-results document — the assessment half of the loop (their catalog, our assessment). - ControlLinker maps a Finding's CWE -> catalog control-ids (CRA seed mirrors breakpilot's _CWE_TO_REQ; extensible via ControlLinker::new) - assess() builds an observation per linked finding + a per-control 'not-satisfied' finding; reviewed-controls covers the full catalog set - deterministic: stable uuid5 ids (adds uuid "v5" feature) + caller-supplied timestamp; pure (no DB/network) - 3 lib tests Not yet wired into a scan run — that lands with the control-driven router (PR-4). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
d4884cfe4f
commit
d5ff60d55a
+1
-1
@@ -28,7 +28,7 @@ reqwest = { version = "0.12", features = ["json", "rustls-tls", "multipart", "co
|
||||
thiserror = "2"
|
||||
sha2 = "0.10"
|
||||
hex = "0.4"
|
||||
uuid = { version = "1", features = ["v4", "serde"] }
|
||||
uuid = { version = "1", features = ["v4", "v5", "serde"] }
|
||||
secrecy = { version = "0.10", features = ["serde"] }
|
||||
regex = "1"
|
||||
zip = { version = "2", features = ["aes-crypto", "deflate"] }
|
||||
|
||||
Reference in New Issue
Block a user