Support JSON ingestion from concrete subtypes of abstract sourced_from sources
- Dominant language
- Ruby
- Stars
- 88
- Forks
- 36
- Avg merge
- 5d 10h
- Merged PRs (30d)
- 18
Description
A `sourced_from` relationship can reference an interface or union. When that source has no index, the JSON event envelope excludes both the abstract type and its otherwise unindexed concrete subtypes. Publishers therefore cannot send JSON events for those concrete source types.
Allow concrete subtypes of abstract source types in the JSON event envelope. Verify that their events trigger the appropriate sourced updates; widening the envelope alone may not be sufficient because update targets are currently keyed by the related abstract type’s name.
## Acceptance criteria
- Cover interface and union sources with unindexed concrete subtypes.
- Verify concrete events pass validation and update the destination’s sourced fields.
- Keep abstract names and derived indexing types excluded from directly publishable JSON events.
Context: https://github.com/block/elasticgraph/pull/1380#issuecomment-5654586829
Contributor guide
Research direction
Start with the JSON event envelope logic and the update-target handling for sourced_from relationships. Add coverage for interface and union sources with unindexed concrete subtypes, then verify concrete events validate and update sourced fields while abstract and derived indexing types remain excluded.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- elasticsearch, graphql, ruby
- Domain
- backend-api-design, search
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 65/100