The ICS probe targets a device's OT ports (Modbus 502, OPC UA 4840,
EtherNet/IP 44818) via the target's LiveUrl artifact. The wizard's
client-side validation only accepted http(s):// refs, so a PLC endpoint
like modbus://plc:502 was rejected and the probe could never be
onboarded. parse_endpoint already understands the modbus:// scheme;
this just lets the ref through the wizard.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The ICS probe (ScanType::IcsProbe) and other default-off scans are
applicable to a target but excluded from a run unless the target's
scan_config.enabled_scans lists them — build_scan_plan only includes a
scan when default_on || enabled_scans.contains(scan). Until now the
wizard had no way to enable them, so they could never be triggered.
Add a checkbox per applicable-but-default-off scan on the success step,
and a new enable_target_scans server fn that PATCHes
/api/v1/targets/{id} with { scan_config: { enabled_scans } }. Run scan
now persists the ticked scans (serde names, e.g. "icsprobe") before
triggering, so the first run includes them.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>