How ace-haxxed/reconpipeline works
ReconPipeline takes an authorized target and engagement name, runs staged reconnaissance, stores normalized per-tool findings, correlates them into a prioritized attack-surface summary, and presents progress and results in a web dashboard with PDF export. The README documents additional scan stages and optional tools beyond the excerpts; the graph preserves these documented capabilities without inventing unsampled call paths. Verification is an additional read-only assessment capability. The frontend communicates with the backend over HTTP; source excerpts show backend route ownership and UI composition, but not every runtime detail.
Main entry points: orchestrator.py Stage orchestrator · App.tsx Dashboard shell · EngagementDetail.tsx Engagement detail · main.py FastAPI routes
Components 28
Web interface
- Dashboard shell
frontend/src/App.tsx - Engagement form
frontend/src/components/NewEngagement.tsx - Engagement detail
frontend/src/components/EngagementDetail.tsx - Findings dashboard
frontend/src/components/Dashboard.tsx - Tool progress
frontend/src/components/ToolProgress.tsx - Summary view
frontend/src/components/LlmSummary.tsx - Tool availability
frontend/src/components/ToolBanner.tsx - Typed API client
frontend/src/api/client.ts - Finding extraction
frontend/src/api/findings.ts
API and persistence
- FastAPI routes
backend/app/main.py - Engagement store
backend/app/database.py - Common schemas
backend/app/schemas.py
Recon pipeline
- Stage orchestrator
backend/app/orchestrator.py - Subdomain enumeration
backend/app/tools/subfinder.py - DNS resolution
backend/app/tools/dnsx.py - Port scanning
backend/app/tools/naabu.py - Service scanning
backend/app/tools/nmap.py - Web fingerprinting
backend/app/tools/whatweb.py - Web URL derivation
backend/app/tools/weburls.py - Crawl and archives
backend/app/tools/katana.py - Content discovery
backend/app/tools/ffuf.py - Extended tool runners
backend/app/tools - Subprocess harness
backend/app/tools/base.py
Analysis and reporting
- Finding correlation
backend/app/llm.py - Finding verification
backend/app/verify.py - PDF report
backend/app/report.py
Other components
- Operator
- OpenRouter
Connections 34
- Operator → Dashboard shell: uses
frontend/src/App.tsx - Dashboard shell → Engagement form: renders
frontend/src/App.tsx - Dashboard shell → Engagement detail: renders
frontend/src/App.tsx - Dashboard shell → Tool availability: renders
frontend/src/App.tsx - Engagement form → Typed API client: creates via
frontend/src/App.tsx - Dashboard shell → Typed API client: lists via
frontend/src/App.tsx - Engagement detail → Findings dashboard: renders
frontend/src/components/EngagementDetail.tsx - Engagement detail → Tool progress: renders
frontend/src/components/EngagementDetail.tsx - Engagement detail → Summary view: renders
frontend/src/components/EngagementDetail.tsx - Findings dashboard → Finding extraction: extracts with
frontend/src/components/Dashboard.tsx - Typed API client → FastAPI routes: HTTP requests
frontend/src/api/client.ts - FastAPI routes → Engagement store: creates and reads
backend/app/main.py - FastAPI routes → Stage orchestrator: starts background
backend/app/main.py - FastAPI routes → PDF report: builds PDF
backend/app/main.py - FastAPI routes → Common schemas: validates input
backend/app/main.py - Stage orchestrator → Engagement store: persists runs
backend/app/orchestrator.py - Stage orchestrator → Subdomain enumeration: dispatches stages
backend/app/orchestrator.py - Stage orchestrator → DNS resolution: dispatches stages
backend/app/orchestrator.py - Stage orchestrator → Port scanning: dispatches stages
backend/app/orchestrator.py - Stage orchestrator → Service scanning: dispatches stages
backend/app/orchestrator.py - Stage orchestrator → Web fingerprinting: dispatches stages
backend/app/orchestrator.py - Stage orchestrator → Crawl and archives: dispatches stages
backend/app/orchestrator.py - Stage orchestrator → Content discovery: dispatches stages
backend/app/orchestrator.py - Stage orchestrator → Extended tool runners: dispatches stages
backend/app/orchestrator.py - Stage orchestrator → Subprocess harness: runs tools through
backend/app/orchestrator.py - Web fingerprinting → Web URL derivation: derives endpoints with
backend/app/tools/whatweb.py - Crawl and archives → Web URL derivation: derives endpoints with
backend/app/tools/katana.py - Subprocess harness → Common schemas: wraps findings
backend/app/tools/base.py - Stage orchestrator → Finding correlation: aggregates findings
backend/app/orchestrator.py - Finding correlation → OpenRouter: correlates via
backend/app/llm.py - Stage orchestrator → Engagement store: stores summary
backend/app/orchestrator.py - Finding verification → Engagement store: reads scan data
backend/app/verify.py - PDF report → Engagement store: uses run data
backend/app/main.py - Engagement detail → Typed API client: loads details
frontend/src/components/EngagementDetail.tsx