Skip to content

Roadmap

Last updated: 2026-09-09

This roadmap outlines shipped, in-development, and planned features for NetVuln Tool and the Bullium Consulting collection portal. Items are prioritized by business impact and implementation feasibility. Portal-side companion work ships in the separate netvuln-portal repository.

Completed (v2.8.0 through v4.20.0)

VersionFeatureStatus
v2.8.0Risk scoring engine (A-F grades, severity-weighted)Shipped
v2.8.0Email security assessment (SPF/DKIM/DMARC)Shipped
v2.8.0Remediation tracking (cross-session, first_seen)Shipped
v2.8.0Scan diff CLI (terminal/JSON, CI exit codes)Shipped
v2.8.0Multi-channel alerts (email, Slack, webhook)Shipped
v2.9.0Executive summary generation and uploadShipped
v2.9.0Alert results capture in session JSONShipped
v2.10.0Scheduled scan metadata injection, health endpoint, E2E smoke testsShipped
v2.11.0Cross-platform support (macOS + Linux/Debian/Raspberry Pi)Shipped
v2.12.0Platform validation (pi_validate.sh), missed-scan detection (schedule_monitor.sh)Shipped
v2.13.0Multi-target schedule management (schedule_list.sh, schedule_status.sh)Shipped
v2.14.0Report white-labeling and CLIENT_ID multi-tenancy scopingShipped
v2.15.0Executive summary template engine, remediation progress, PDF exportShipped
v3.0.0Persistent scheduling daemon with retry, heartbeats, and systemdShipped
v3.1.0Synthetic collection generator, exception/accept-liability workflow, dual scoring modelShipped
v3.2.0Compliance mapping (CIS v8, NIST CSF, PCI-DSS v4.0, SOC 2), network topology visualizationShipped
v3.3.0Python orchestrator: full CLI, native scoring engine, native HTTP upload + diff, strict mypyShipped
v3.4.0Pipeline plugin hooks, license soft gate, progress callbacks, status --remote, pip console scriptShipped
v3.5.0Parallel module execution (ThreadPoolExecutor), pre-push test hook splitShipped
v4.0.0Automated CI versioning (VERSION file, bump_version.sh, release.yml auto-tag), Python quality CIShipped
v4.0.1-v4.0.4Release-pipeline hardening (workflow_dispatch fallback, heredoc YAML fix, workflow YAML validation)Shipped
v4.1.0Unified license model (online validation, cache + grace), ORC 9.64 framework, BATS assertion lintShipped
v4.2.0Containerization: Alpine image published to a container registry (publish-image.yml)Shipped
v4.2.1Container publish hardening (lowercase tags, registry-secret preflight)Shipped
v4.2.2Pinned bats runner (v1.13.0) in ci/release to fix flaky heredoc test extractionShipped
v4.2.3Session license metadata + business-tier gating (#46), NV_VERSION from VERSION file (#52)Shipped
v4.2.4E2E smoke test share round-trip fix (#62)Shipped
v4.3.0End-user installer (install.sh), VitePress docs site, WiFi discovery (#71), appliance design (#74), docker-compose (#65), C2 session push (#84, #86)Shipped
v4.3.1Docs site CI auto-deploy; Portal nav link fix (#96)Shipped
v4.3.2E2E smoke-test whitespace-strip fixShipped
v4.3.3Docs custom domain + SEO (#101); doc version-drift guard + auto-sync (#102, #104)Shipped
v4.3.4Public docs site sanitized of remaining internal infrastructure references (#109, #110)Shipped
v4.3.5Docs deploy build fix; roadmap restructured into Shipped / Next / Later (#115, #116, #114)Shipped
v4.3.6Python orchestrator findings and session-permission fixes (#111, #112, #121)Shipped
v4.3.7House style checker enforced on published docs (#129, #130)Shipped
v4.3.8Dead refresh_reports.sh doc examples repointed at the portal; docs drift guard hardened (#143)Shipped
v4.3.9Identity JWT sent in the correct header from netvuln status --remote and api_debug.sh (#147)Shipped
v4.3.10Identity JWT header fix extended to the e2e suite and published docs; hardcoded test counts removed (#150, #79)Shipped
v4.4.0Portal session-listing client (lib/portal_api.sh) and hardened bulk refresh in refresh_reports.sh (#145)Shipped
v4.4.1CI apt-lock race fix; PEP 668 virtualenv install path for install.sh (#168, #171)Shipped
v4.4.2Doc test-count guard extended to published site mirrors; colorized CLI output and api_debug.sh status-handling fixes (#179, #174, #173)Shipped
v4.4.3Docs site operator runbook; Netlify build-config cleanup (#186, #188)Shipped
v4.4.4Banned-author-identity guard (check_git_identity.sh); daemon status-dump reliability fixes (#191, #194)Shipped
v4.4.5Unified, stable portal agent id derivation; C2 run_scan "Scanner not found" fix (#193, #199)Shipped
v4.4.6Agent id keyed off machine id instead of hostname, fixing churn across restarts (#206)Shipped
v4.5.0Full toolchain install by default; rootless privileged nmap scans; ANSI-clean C2 output (#208, #209, #210)Shipped
v4.6.0Daemon-uploaded sessions include a generated report; raw-scan capability survives nmap upgrades (#217, #215)Shipped
v4.7.0C2 run_scan post-scan modules: compliance, topology, executive summary (#229)Shipped
v4.8.0C2 push_session post-scan module regeneration (#239)Shipped
v4.8.1C2 command dedup for at-least-once delivery (#243)Shipped
v4.8.2C2 commands opened to the business license tier (#246)Shipped
v4.8.3License e2e tier-gate assertion fix; documentation sync (#250)Shipped
v4.8.4ANSI-clean CLI output in non-interactive contexts; visible OS-detection-skipped warning (#255, #256)Shipped
v4.8.5C2 update/restart re-exec the daemon so updated code takes effect immediately (#205)Shipped
v4.8.6C2 tag-ref fix; per-command scan timeout; scheduled-upload retry with backoff; clickable Compliance finding IDs; consultation-upsell suppression (#266, #267, #268, #269, #270)Shipped
v4.8.7Daemon troubleshooting runbook (#281)Shipped
v4.8.8C2 run_scan target-list whitespace fix (#286)Shipped
v4.8.9Interrupted or timed-out scans upload a populated summary instead of zeros (#290)Shipped
v4.8.10Daemon troubleshooting guidance narrowed to avoid a C2 self-update trap (#294)Shipped
v4.9.0Dedicated nvt service account and /opt/netvuln-tool install layout (#297)Shipped
v4.9.1All tracked shell scripts committed executable, guarded in CI (#302)Shipped
v4.9.2C2 scan-timeout finalize hardening; daemon base-directory fix (#306, #307)Shipped
v4.9.3E2E Identity login credential percent-encoding fix (#311)Shipped
v4.10.0Community Edition export pipeline to the public GitLab mirror (#315)Shipped
v4.20.0Posture-steered demo report pipeline; first Community Edition release (#323, #333, #334)Shipped

In development (unreleased)

dev and the latest stable tag (v4.20.0) are in sync, so no feature work is merged and awaiting release. Active hardening and follow-up work is in flight against open issues:

  • Community Edition export hardening: non-blocking follow-ups from the initial export pipeline review, covering binary-file handling in the export gate (a future non-text file carrying text would pass the replacement map and leak gate unexamined, #324), further pipeline-robustness fixes (#325), and two open product decisions on the docs site's secrets-management mirror and default outbound mailboxes (#326).
  • Report renderer hardening (#328): guard null iterations and unbound arithmetic in the Compliance and Topology sections of the report renderer, so a minimal or hand-built session JSON cannot crash it.
  • C2 reliability: the daemon's update command runs git with no enforced timeout, so a hung fetch or pull can wedge the command loop (#263); the API debug tool's download subcommand still authenticates with the license key alone instead of the Identity JWT the endpoint requires (#230).
  • Demo report pipeline follow-on (#323): the synthetic posture steering, demo report builder, and portal seeding shipped in v4.20.0; a further phase (screenshot capture for the marketing site) remains open.

See the Changelog for what has already shipped.

Planned

Portal push notifications

Priority: Medium | Effort: Medium

Server-side notifications from the portal to reduce reliance on users checking the dashboard.

  • Email digest: weekly summary of new sessions, risk trends, and expiring reports
  • Configurable notification preferences per user
  • Webhook integration for external notification systems
  • Digest template customization

API v2 / webhook events (Phase 4)

Priority: Low | Effort: Medium

Phases 1 through 3 of the webhook event system have shipped (subscription CRUD, HMAC-SHA256 signing, the scan_completed / status_changed / session_deleted / report_expiring events, and the admin management UI). Phase 4 remains planned:

  • Event types: scan_started (scripts-side), finding_new and finding_resolved (cross-session diff)
  • Delivery logs and retry history in the portal UI
  • Integration guides for SyncroMSP, ConnectWise, and Datto

Later

Items on the horizon, not yet scheduled:

  • Secrets vault migration Phases 2-3: evaluate vault options and migrate the highest-risk secrets, then automatic rotation via vault policies. See Secrets Management.
  • Appliance SKU: hardware pricing under evaluation.

Contributing to the roadmap

Feature requests and feedback are welcome. File issues on the repository. When picking up a roadmap item:

  1. Create a feature/* branch from dev.
  2. Reference the roadmap item in commit messages.
  3. Update this file when work begins and when it completes.
  4. Follow the cross-project change checklist in the API Contract for portal-touching changes.

See Contributing for the full development workflow.

Apache-2.0 licensed (appliance subtree proprietary)