Data Flow
DataContext
Shared state container passed through DAG:
type DataContext interface {
Get(key string) (interface{}, error)
Set(key string, value interface{}) error
Has(key string) bool
Keys() []string
}
Standard Keys
| Key | Producer | Consumer | Type |
|---|---|---|---|
targets | Target Ingestion | Discovery | []Target |
discovered_hosts | Discovery | Port Scanner | []Host |
open_ports | Port Scanner | Banner Grab | []Port |
banners | Banner Grab | Fingerprint | []Banner |
service_fingerprints | Fingerprint | Asset Profiler | []Fingerprint |
asset_profiles | Asset Profiler | Vuln Evaluator | []AssetProfile |
vulnerabilities | Vuln Evaluator | Reporter | []Vulnerability |
Example Flow
Discovery → Set("discovered_hosts", hosts)
↓
Port Scanner → Get("discovered_hosts") → Scan → Set("open_ports", ports)
↓
Fingerprint → Get("open_ports") → Probe → Set("fingerprints", results)
See DAG Engine for execution orchestration.