Which scans are possible depends on the target type and which artifacts are present: SAST needs code/artifact, DAST needs a runtime or binary, active pentest needs a reachable running target.
Scope
Encode the applicability matrix (TargetType × artifacts present) → applicable {SAST sub-scans, DAST, Pentest} as a table-driven registry (one row per target type), each cell carrying a short rationale string.
Expose a function applicable_scans(target) -> Vec<ScanOption { scan, enabled_by_default, rationale, blocked_reason }> for the wizard to render.
Acceptance criteria
Matrix covers all 9 target types.
A web app with git+URL offers SAST+DAST+pentest; a PLC project offers SAST(control-logic) only; firmware image offers SAST(firmware) + SBOM/CVE.
Each offered/blocked scan carries a human-readable rationale.
Depends on
ONB-01. Informs ONB-08.
Part of #118.
## Context
Which scans are possible depends on the target type and which artifacts are present: SAST needs code/artifact, DAST needs a runtime or binary, active pentest needs a reachable running target.
## Scope
- Encode the applicability matrix `(TargetType × artifacts present) → applicable {SAST sub-scans, DAST, Pentest}` as a table-driven registry (one row per target type), each cell carrying a short rationale string.
- SAST umbrella = existing sub-scans (SBOM, CVE, secrets, patterns, lint, code-review, graph) + firmware-static (EMBA/binwalk/cve-bin-tool) + PLC control-logic rules, gated by artifact availability.
- Expose a function `applicable_scans(target) -> Vec<ScanOption { scan, enabled_by_default, rationale, blocked_reason }>` for the wizard to render.
## Acceptance criteria
- Matrix covers all 9 target types.
- A web app with git+URL offers SAST+DAST+pentest; a PLC project offers SAST(control-logic) only; firmware image offers SAST(firmware) + SBOM/CVE.
- Each offered/blocked scan carries a human-readable rationale.
## Depends on
ONB-01. Informs ONB-08.
sharang
added this to the Onboarding v1 milestone 2026-07-10 08:34:43 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of #118.
Context
Which scans are possible depends on the target type and which artifacts are present: SAST needs code/artifact, DAST needs a runtime or binary, active pentest needs a reachable running target.
Scope
(TargetType × artifacts present) → applicable {SAST sub-scans, DAST, Pentest}as a table-driven registry (one row per target type), each cell carrying a short rationale string.applicable_scans(target) -> Vec<ScanOption { scan, enabled_by_default, rationale, blocked_reason }>for the wizard to render.Acceptance criteria
Depends on
ONB-01. Informs ONB-08.