GVM Vulnerability Scanning — full end-to-end integration of Greenbone Vulnerability Management (GVM/OpenVAS) into the RedAmon pipeline:
Python scanner module (gvm_scan/) with GVMScanner class wrapping the GMP protocol for headless API-based scanning
Orchestrator endpoints (/gvm/{id}/start, /gvm/{id}/status, /gvm/{id}/stop, /gvm/{id}/logs) with SSE log streaming
Webapp API routes, useGvmStatus polling hook, useGvmSSE streaming hook, toolbar buttons, and log drawer on the Graph page
Neo4j graph integration — GVM findings stored as Vulnerability nodes (source="gvm") linked to IP/Subdomain via HAS_VULNERABILITY, with associated CVE nodes
JSON result download from the Graph page toolbar
GitHub Secret Hunt — automated secret and credential detection across GitHub organizations and user repositories:
Python scanner module (github_secret_hunt/) with GitHubSecretHunter class supporting 40+ regex patterns for AWS, Azure, GCP, GitHub, Slack, Stripe, database connection strings, CI/CD tokens, cryptographic keys, JWT/Bearer tokens, and more
High-entropy string detection via Shannon entropy to catch unknown secret formats
gvm_scan/project_settings.py mirrors the recon/agentic settings pattern (fetch from webapp API, fallback to defaults)
Defaults served via orchestrator /defaults endpoint using importlib to avoid module name collision
5 new Prisma schema fields (gvm_scan_config, gvm_scan_targets, gvm_task_timeout, gvm_poll_interval, gvm_cleanup_after_scan)
Changed
Webapp Dockerfile — embedded Prisma CLI in the production image; entrypoint now runs prisma db push automatically on startup, eliminating the separate webapp-init container
Dev Compose — docker-compose.dev.yml now runs prisma db push before npm run dev to ensure schema is always in sync
Docker Compose — removed webapp-init service and webapp_prisma_cache volume; webapp handles its own schema migration
Removed
webapp-init service — replaced by automatic migration in the webapp entrypoint (both production and dev modes)
gvm_scan/params.py — hardcoded GVM settings replaced by per-project project_settings.py