How nooronclouds/asv works
ASV is an authorized, external attack-surface visibility product: users submit scoped seed domains, then review ranked findings and changes across scans. The documented scan stages are represented separately; the orchestrator owns scope enforcement, pipeline execution, persistence, and diffing. The README documents capabilities beyond the sampled source, so those stages are shown from its architecture description. Frontend-to-API wiring is represented at the product boundary; detailed page request code was not sampled.
Main entry points: orchestrator.py Scan orchestrator · layout.tsx Browser UI · routes_attack_surface.py ASV endpoints · api.ts ASV API client
Components 24
Web application
- Browser UI
frontend/app/layout.tsx - Scan submission
frontend/app/(app)/scan/page.tsx - Posture dashboard
frontend/app/(app)/dashboard/page.tsx - Findings view
frontend/app/(app)/findings/page.tsx - Run history
frontend/app/(app)/runs/page.tsx - ASV API client
frontend/lib/asv/api.ts
API and identity
- FastAPI application
backend/app/main.py - Auth endpoints
backend/app/api/routes_auth.py - ASV endpoints
backend/app/api/routes_attack_surface.py - JWT security
backend/app/core/security.py
Scan pipeline
- Scan orchestrator
backend/app/attack_surface/orchestrator.py - Scope gate
backend/app/attack_surface/scope.py - Asset discovery
backend/app/attack_surface/discovery.py - HTTP and TLS probe
backend/app/attack_surface/probe.py - Service fingerprinting
backend/app/attack_surface/fingerprint.py - Finding scoring
backend/app/attack_surface/scoring.py - Run comparison
backend/app/attack_surface/diff.py
Persistence and history
- SQL datastore
backend/app/db/database.py - Scan snapshot models
backend/app/attack_surface/models.py - User model
backend/app/db/models.py
Other components
- Authorized user
- CT log service
- DNS services
- Authorized hosts
Connections 33
- Authorized user → Browser UI: uses
- Browser UI → Scan submission: opens
- Browser UI → Posture dashboard: opens
- Browser UI → Findings view: opens
- Browser UI → Run history: opens
- Scan submission → ASV API client: submits scan
- Posture dashboard → ASV API client: requests posture
- Findings view → ASV API client: requests findings
- Run history → ASV API client: requests runs
- ASV API client → FastAPI application: HTTP requests
- FastAPI application → Auth endpoints: dispatches auth
- FastAPI application → ASV endpoints: dispatches ASV
- Auth endpoints → JWT security: creates tokens
- Auth endpoints → SQL datastore: reads and writes users
- Auth endpoints → User model: uses model
- ASV endpoints → JWT security: authenticates
- ASV endpoints → Scan orchestrator: starts scan
- ASV endpoints → SQL datastore: queries scan data
- ASV endpoints → Scan snapshot models: queries models
- Scan orchestrator → Scope gate: builds authorization
- Scan orchestrator → Asset discovery: runs pipeline
- Asset discovery → CT log service: queries CT logs
- Asset discovery → DNS services: resolves or enumerates
- Scan orchestrator → HTTP and TLS probe: probes discovered assets
- HTTP and TLS probe → Authorized hosts: checks HTTP and TLS
- Scan orchestrator → Service fingerprinting: interprets services
- Scan orchestrator → Finding scoring: scores fingerprints
- Scan orchestrator → SQL datastore: persists snapshots
- Scan orchestrator → Scan snapshot models: uses snapshot models
- Scan orchestrator → Run comparison: compares prior findings
- Run comparison → SQL datastore: loads prior run data
- Scan orchestrator → ASV endpoints: returns scan summary
- ASV API client → Browser UI: returns API data