Wire VulnerabilitiesResolver into the ES Execution Fallback framework
# Problem Statement
The `VulnerabilitiesResolver` is currently tightly coupled to direct Elasticsearch execution.
This means any new filter that is not yet supported by ES blocks frontend delivery or forces risky, one-off workarounds. There is no safe integration point to prepare the resolver for fallback-based execution.
Without wiring the resolver into the fallback pipeline:
- Frontend and backend remain sequentially coupled
- ES migrations become all-or-nothing
- Multi-version compatibility is harder to guarantee
- Introducing fallback filters later becomes more invasive
### Solution
Route `VulnerabilitiesResolver` through the execution fallback pipeline by:
- Wrapping its execution with
`ExecutionFallback::VulnerabilitiesResolver.fetch_with_filter_fallback`
- Introducing a resolver-specific fallback class that:
- Defines a safe result cap (`RESULT_MAX_RECORDS`)
- Defines a standard overfetch window
- Wires an enrichment namespace
- Provides a unified fallback configuration entry point
- Adding a dedicated vulnerabilities enrichment namespace
- Adding specs to verify:
- Delegation from the GraphQL resolver
- Correct pagination bounds
- Correct enrichment wiring
No fallback filters are enabled yet.
Behaviour remains unchanged, but the resolver becomes fully fallback-ready.
This is a structural change that prepares vulnerabilities search for:
- Parallel frontend/backend development
- Multi-version compatibility
- Safe, incremental ES -> PG filter migrations
- Future fallback filter enablement behind feature flags
issue