Use JSON ingestion as schema definition extension#1205
Merged
Conversation
jwils
force-pushed
the
joshuaw/json-ingestion-default-extension
branch
from
May 20, 2026 20:03
f9fb615 to
edc42c3
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-extension-modules
branch
2 times, most recently
from
May 20, 2026 20:15
024c4ef to
d8c3c70
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-default-extension
branch
from
May 20, 2026 20:15
edc42c3 to
62013f0
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-extension-modules
branch
from
May 21, 2026 02:49
d8c3c70 to
b78686f
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-default-extension
branch
2 times, most recently
from
May 21, 2026 13:43
1eec3a6 to
f13769d
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-extension-modules
branch
from
May 21, 2026 13:43
b78686f to
0b3844f
Compare
jwils
marked this pull request as ready for review
May 22, 2026 18:24
jwils
requested review from
BrianSigafoos-SQ,
ayousufi,
bsorbo,
jwondrusch and
myronmarston
as code owners
May 22, 2026 18:24
jwils
force-pushed
the
joshuaw/json-ingestion-default-extension
branch
from
May 22, 2026 22:41
f13769d to
ee7fe58
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-extension-modules
branch
from
May 22, 2026 22:41
0b3844f to
65f9a60
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-default-extension
branch
from
May 24, 2026 13:33
ee7fe58 to
4170e75
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-extension-modules
branch
from
May 24, 2026 13:33
65f9a60 to
6be803f
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-default-extension
branch
from
May 24, 2026 14:09
4170e75 to
a49a787
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-extension-modules
branch
from
May 24, 2026 14:09
6be803f to
159afa8
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-default-extension
branch
from
May 24, 2026 14:24
a49a787 to
68bd00b
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-extension-modules
branch
from
May 24, 2026 14:24
159afa8 to
29e7e8e
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-default-extension
branch
from
May 24, 2026 14:51
68bd00b to
d4a6dcf
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-extension-modules
branch
2 times, most recently
from
May 24, 2026 15:00
31d7828 to
87c88c1
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-default-extension
branch
from
May 24, 2026 15:00
d4a6dcf to
05163d1
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-extension-modules
branch
from
May 24, 2026 15:36
87c88c1 to
e99c65f
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-default-extension
branch
from
May 24, 2026 15:36
05163d1 to
97557eb
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-api-polish
branch
from
May 28, 2026 19:01
5b67eda to
28d3b58
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-default-extension
branch
from
May 28, 2026 19:01
82a633c to
16b791e
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-api-polish
branch
from
May 28, 2026 19:13
28d3b58 to
4f85649
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-default-extension
branch
3 times, most recently
from
May 28, 2026 20:36
8f4a490 to
ee6f074
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-api-polish
branch
from
May 30, 2026 14:07
4f85649 to
fd4651f
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-default-extension
branch
from
May 30, 2026 14:07
ee6f074 to
5984788
Compare
jwils
force-pushed
the
joshuaw/json-ingestion-api-polish
branch
from
May 30, 2026 14:26
fd4651f to
c1898a3
Compare
This was referenced Jun 1, 2026
myronmarston
requested changes
Jun 5, 2026
myronmarston
left a comment
Collaborator
There was a problem hiding this comment.
I'm not done reviewing but wanted to submit what I had so far.
myronmarston
reviewed
Jun 9, 2026
Collaborator
There was a problem hiding this comment.
Next round of feedback (still haven't made it through the whole PR given how big it is!).
Regarding doc_comment--definitely feel free to keep it on the eg-schema_definition objects if there's not a cleaner way to pass it through to the JSON schema logic that uses it.
myronmarston
reviewed
Jun 9, 2026
myronmarston
requested changes
Jun 10, 2026
myronmarston
approved these changes
Jun 10, 2026
This was referenced Jun 11, 2026
myronmarston
approved these changes
Jun 16, 2026
- Make core `json_schema_version`, `enforce_json_schema_version`, and `json_schema_strictness` raise a clear error pointing at `elasticgraph-json_ingestion` instead of silently no-oping, so apps that upgrade without adding the extension module fail fast rather than silently dumping stale JSON schema artifacts. A new `API#supports_json_schema_versioning?` predicate lets test support, the doctest helper, and other callers detect whether an extension provides the real behavior. - Remove the `State#json_schema_version` nil stub now that nothing needs it. - Restore the explanatory comment for why core infers no grouping placeholder for `long`/`unsigned_long` mappings. - Drop the `:nocov:` around `Indexing::Index#initialize`'s block handling and cover the no-block path with a test instead. - Inline `validate_json_schema_configuration!` into `finalize_json_schema_configuration!` (its only caller), removing a redundant `graphql_only?` guard. - Deduplicate the optional-extension bootstrap between `spec_helper.rb` and `schema_definition_helpers.rb`, and collapse the `define_schema` overrides to keyword splats (also fixing `reload_schema_artifacts` being silently dropped). - Revert the unrelated `profiling.rb` change and the `api.rb` require reordering. - Drop redundant `ElasticGraph::` prefixes inside `module ElasticGraph`. - Add the JSON ingestion extension to the example Rakefiles that have their own `Rakefile` (music, schema_customization_rake_tasks).
The acceptance spec drives the repo's own `config/schema.rb` (which calls `schema.json_schema_version`) through `Local::RakeTasks`, so it needs the JSON ingestion extension now that the core API raises without it.
The embedded Rakefile diffs in the apollo and warehouse READMEs wrote blank context lines as a single space (rendering as a no-op remove/re-add of a blank line plus trailing whitespace), and the warehouse example removed and re-added a blank line instead of just inserting the new extension line.
Keeps the api.rbs and state.rbs diffs minimal: the JSON schema method signatures stay in their original positions and the `output` accessor keeps its original position, with only the genuinely new signatures added.
Per review feedback: `elasticgraph-schema_definition` should not know about JSON schema at all, so `json_schema_version`, `enforce_json_schema_version`, and `json_schema_strictness` no longer exist on the core API (calling them without `elasticgraph-json_ingestion` raises `NoMethodError`). Test support and the doctest helper feature-detect the extension with `respond_to?`.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Complete the extraction by loading JSON ingestion through the schema-definition extension API and removing the duplicated core JSON Schema implementation.
What
ElasticGraph::JSONIngestion::SchemaDefinition::APIExtensioninto app, template, doctest, and spec-helper schema definition setupRisk Assessment
Medium to high - this is the behavior-transfer layer, but it sits after the move/namespace/wrapper/wiring PRs so the remaining diff is mostly deletion and wiring.
References
script/quick_buildpassed before the generated diagram update;script/update_dependency_diagrams --verifyand README spellcheck passed after it.Stack
Current PR is marked with
->.