feat(pipeline): unified run_target execution behind UNIFIED_PIPELINE (#133 part 2)
CI / Check (pull_request) Successful in 5m27s
CI / Detect Changes (pull_request) Has been skipped
CI / Deploy Agent (pull_request) Has been skipped
CI / Deploy Dashboard (pull_request) Has been skipped
CI / Deploy Docs (pull_request) Has been skipped
CI / Deploy MCP (pull_request) Has been skipped

Wire the scan-plan builder into a runnable pipeline that scans an OnboardedTarget:
- AgentConfig.unified_pipeline (env UNIFIED_PIPELINE, default off). agent.run_scan
  dispatches to run_target when set, else the legacy run().
- orchestrator::run_target: loads the target from onboarded_targets, creates a
  ScanRun, and runs run_target_pipeline; run_target_pipeline builds the scan plan
  and, for a code (git) artifact, reuses the full legacy pipeline via a
  TrackedRepository view (clone → SAST umbrella → triage → persist → issues →
  DAST) then syncs findings_count + the git watermark back to the target.
  Firmware/PLC/mobile scanners are follow-ups (#128/#129/#130); URL-only targets
  attempt DAST.
- repo_view_from_target: inverse of the migration's repo_to_target, _id-preserving.

Additive + flag-gated: the legacy path is unchanged and default. Unit tests for
repo_view_from_target (+ the part-1 build_scan_plan tests). Full E2E verification
is via UNIFIED_PIPELINE=1 on a running instance.

Closes #133.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Sharang Parnerkar
2026-07-12 23:24:45 +02:00
co-authored by Claude Fable 5
parent 27d20ed11c
commit cbe07261b1
6 changed files with 236 additions and 1 deletions
+1
View File
@@ -70,6 +70,7 @@ impl TestServer {
pentest_imap_password: None,
admin_api_token: None,
tenant_registry_url: None,
unified_pipeline: false,
};
let agent = ComplianceAgent::new(config, db_pool);