## Phase 3 — ZAP DAST Integration & Reliability **Depends on:** Phase 2 ### Drips Wave alignment - Mirrors Wave [#1034 health check automation](https://www.drips.network/wave/stellar/issues/b6dc5386-c56c-4c79-9b71-ece7b61d43e8) for scanner dependency readiness - Graceful degradation when ZAP unavailable (similar to dependency-unavailable error contracts) ### Deliverables - [ ] ZAP spider/AJAX spider timeout hardening in `zap_client.py` - [ ] Passive scan wait optimisation with progress callbacks - [ ] Active scan policy profiles: `quick` / `standard` / `deep` - [ ] `/ready` includes ZAP connectivity check when `SCANNER_MODE=zap` - [ ] Structured `DEPENDENCY_UNAVAILABLE` error when ZAP down - [ ] Integration tests with mocked ZAP API ### Acceptance criteria - Full lab scan (`./start-lab.sh full`) completes without timeout on DVWA - Fallback to `builtin` logged clearly when ZAP unreachable - Contract test for dependency-unavailable envelope - `docker compose ps` documented in runbook ### References - `docker-compose.yml` — ZAP on :8081 - Drips [#159 API contract tests](https://www.drips.network/wave/stellar/issues/c495ac8a-b875-4d03-a8a4-a6f59065dc6d)
Activity
huangji6693-max commentedon Oct 27, 2026
Submitted PR #7 implementing Phase 3 ZAP DAST integration & reliability hardening (spider/AJAX spider graceful timeout stop, adaptive passive scan progress callbacks,
quick/standard/deepactive scan policy profiles,/readyZAP connectivity check withDEPENDENCY_UNAVAILABLEenvelope, fallback logging, and mocked ZAP integration tests): #7