Add Elastic reference class for vulnerability_reads index
Summary
- Add a new Elastic reference class (
Search::Elastic::References::Vulnerabilities::Read) for thevulnerability_readsindex, following the same patterns as the existingVulnerabilityreference class. - Add a BBM guard (
BackfillOccurrenceIdToVulnerabilityReads) onpreload_indexing_datato skip preloading until the backfill is complete. - Preload
vulnerability_occurrenceassociation inVulnerabilities::Read.preload_indexing_datascope to avoid N+1 queries forcreated_at/updated_at. - Use
VulnerabilityRead::EnhancedProxyinstead ofVulnerability::EnhancedProxyfor preloading. - Source
created_atandupdated_atfromvulnerability_occurrenceinstead ofvulnerability. - Use the reference class index method in the type class instead of duplicating index name logic.
Changed files
| File | Change |
|---|---|
ee/lib/search/elastic/references/vulnerabilities/read.rb |
New reference class with DIRECT_FIELDS, PRELOADED_FIELDS, FIELDS_WITH_MIGRATIONS, SCHEMA_VERSIONS, set_field/waiting_on_migration? pattern, and backfill_occurrence_id_completed? guard |
ee/spec/lib/search/elastic/references/vulnerabilities/read_spec.rb |
Specs for serialization, indexing JSON, preloading, BBM guard, N+1 queries, and field attributes |
ee/app/models/vulnerabilities/read.rb |
Add :vulnerability_occurrence to preload_indexing_data scope |
ee/lib/search/elastic/reference.rb |
Register new reference class |
ee/lib/search/elastic/types/vulnerabilities/read.rb |
Use reference class index method |
ee/spec/lib/search/elastic/reference_spec.rb |
Add specs for new reference class registration |
Relates to
Edited by Rushik Subba