block / block/elasticgraph

Support JSON ingestion from concrete subtypes of abstract sourced_from sources

Open
#1,386 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.