Problem
Scans can take several minutes (especially large repos). If a user starts a scan by mistake or it's taking too long, there's no way to cancel it. The UI just waits or the user has to refresh/close.
Expected behavior
- Backend:
POST /jobs/{job_id}/cancel that sets a cancellation flag.
- The scanning process (SAST, dependency, secrets) should periodically check this flag and abort cleanly.
- Frontend: Add "Cancel Scan" button on the dashboard while scanning is in progress.
- After cancellation, job status becomes
"cancelled".
Technical hints
- Use
asyncio cancellation or a shared cancel_event dict.
- Modify scanner functions to accept a
cancel_event and check it between major steps.
- Update frontend to poll job status and show cancel button when status is
"running".
Labels: enhancement, good first issue, SSoC26
Problem
Scans can take several minutes (especially large repos). If a user starts a scan by mistake or it's taking too long, there's no way to cancel it. The UI just waits or the user has to refresh/close.
Expected behavior
POST /jobs/{job_id}/cancelthat sets a cancellation flag."cancelled".Technical hints
asynciocancellation or a sharedcancel_eventdict.cancel_eventand check it between major steps."running".Labels:
enhancement,good first issue,SSoC26