Fix DnsSecurityExecutor and HttpHeadersExecutor not creating noun connections
Resolved 💬 3 comments Opened Jan 4, 2026 by TarkinLarson Closed Feb 12, 2026
Problem
DNS Security and HTTP Headers scans were defaulting to "verb only" mode - they weren't creating noun connections when persisting scan results. This meant:
- Frontend showed "(verb-only scan)" instead of the noun ID
- Scan results weren't being persisted to nouns
- The scanned domains/endpoints list wasn't updating
Root Cause
Unlike SslScannerExecutor which has EnsureEndpointNounAsync() to find/create nouns and connections, DnsSecurityExecutor and HttpHeadersExecutor only updated existing connections but never created them.
Fix
Added noun creation logic to both executors:
DnsSecurityExecutor
- Added
INounServicedependency - Added
EnsureDomainNounAsync()method that: - Finds or creates a domain noun by
domain:fqdn - Creates a
VerbConnectionwithconnection:role = patient - Attaches noun entity for VerbWorker to persist
HttpHeadersExecutor
- Added
INounServicedependency - Added
EnsureEndpointNounAsync()method that: - Parses URL to extract host/port
- Finds or creates an endpoint noun by
endpoint:url - Creates a
VerbConnectionwithconnection:role = patient - Attaches noun entity for VerbWorker to persist
Files Changed
src/Modules/OmniCore.Modules.DnsSecurity/Services/DnsSecurityExecutor.cssrc/Modules/OmniCore.Modules.HttpHeaders/Services/HttpHeadersExecutor.cs
Testing
- [ ] DNS scan with "Save to Database" shows domain noun ID (not "verb-only scan")
- [ ] HTTP Headers scan with "Save to Database" shows endpoint noun ID
- [ ] Scanned domains list updates after DNS scan
- [ ] Scanned endpoints list updates after HTTP Headers scan
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗