Skip to main content

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

KeyProducerConsumerType
targetsTarget IngestionDiscovery[]Target
discovered_hostsDiscoveryPort Scanner[]Host
open_portsPort ScannerBanner Grab[]Port
bannersBanner GrabFingerprint[]Banner
service_fingerprintsFingerprintAsset Profiler[]Fingerprint
asset_profilesAsset ProfilerVuln Evaluator[]AssetProfile
vulnerabilitiesVuln EvaluatorReporter[]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.