Add JSON ingestion indexing extensions#1204
Merged
Merged
Conversation
7bc0045 to
6267113
Compare
024c4ef to
d8c3c70
Compare
040cea2 to
e6a4787
Compare
d8c3c70 to
b78686f
Compare
e6a4787 to
eb21230
Compare
b78686f to
0b3844f
Compare
0b3844f to
65f9a60
Compare
eb21230 to
2afdcd4
Compare
65f9a60 to
6be803f
Compare
b03c1a4 to
a3171ef
Compare
159afa8 to
29e7e8e
Compare
bf0dd3b to
34a576b
Compare
31d7828 to
87c88c1
Compare
34a576b to
5920f3b
Compare
87c88c1 to
e99c65f
Compare
5920f3b to
dbaf8a1
Compare
e99c65f to
6aea7ea
Compare
7cd0f7d to
3d879aa
Compare
01d66b2 to
4d549ec
Compare
myronmarston
approved these changes
May 30, 2026
This was referenced Jun 1, 2026
This was referenced Jun 11, 2026
4d549ec to
d097cc0
Compare
2561384 to
0c1ef88
Compare
myronmarston
approved these changes
Jun 16, 2026
jwils
added a commit
that referenced
this pull request
Jun 16, 2026
## Why Split the JSON ingestion extraction into reviewable steps so the gem packaging can be checked independently before code moves. ## What - Add the `elasticgraph-json_ingestion` gem shell - Wire the new path gem into the bundle without changing runtime behavior - Update generated dependency diagrams and gem READMEs for the new empty gem ## Risk Assessment Low — this only adds an empty extension gem package, lockfile wiring, and generated dependency docs. ## References - First PR in the JSON ingestion extraction stack. - Local spellcheck, lint, type-check, schema artifact, and dependency diagram checks passed. ## Stack Current PR is marked with `->`. - -> [#1199 Add JSON ingestion gem shell](#1199) - [#1200 Add schema definition extension plumbing](#1200) - [#1201 Move JSON schema helpers to json ingestion gem](#1201) - [#1203 Namespace JSON schema helpers under JSON ingestion](#1203) - [#1204 Add JSON ingestion indexing extensions](#1204) - [#1215 Wire JSON ingestion schema extension modules](#1215) - [#1205 Use JSON ingestion as schema definition extension](#1205) - [#1202 Document JSON ingestion schema APIs](#1202) - [#1224 Migrate JSON ingestion specs into gem](#1224) - [#1220 Add configurable indexing event decoder](#1220)
jwils
added a commit
that referenced
this pull request
Jun 16, 2026
## Why Prepare schema definition for ingestion serializer extensions before moving JSON Schema code into its own gem. ## What - Add schema definition `extension_modules` plumbing for APIs, factories, and rake tasks - Apply duplicate extension modules only once - Replace the rake-task sidecar enforcement option with schema-level `schema.enforce_json_schema_version false` - Update project templates, tests, and docs to configure JSON schema enforcement in schema definitions ## Risk Assessment Medium — this touches schema definition setup, but JSON Schema behavior remains in `elasticgraph-schema_definition` in this PR. ## References - Stacked on #1199. - Local spellcheck, lint, type-check, targeted specs, and schema artifact checks passed. ## Stack Current PR is marked with `->`. - [#1199 Add JSON ingestion gem shell](#1199) - -> [#1200 Add schema definition extension plumbing](#1200) - [#1201 Move JSON schema helpers to json ingestion gem](#1201) - [#1203 Namespace JSON schema helpers under JSON ingestion](#1203) - [#1204 Add JSON ingestion indexing extensions](#1204) - [#1215 Wire JSON ingestion schema extension modules](#1215) - [#1205 Use JSON ingestion as schema definition extension](#1205) - [#1202 Document JSON ingestion schema APIs](#1202) - [#1224 Migrate JSON ingestion specs into gem](#1224) - [#1220 Add configurable indexing event decoder](#1220)
jwils
added a commit
that referenced
this pull request
Jun 16, 2026
## Why Keep the first extraction layer reviewable by moving the JSON Schema helper files without changing their contents, so GitHub can render them as renames instead of delete/add rewrites. ## What - Move JSON Schema helper Ruby and RBS files into `elasticgraph-json_ingestion` - Update core requires/type references to load the helpers from the new gem - Keep `elasticgraph-json_ingestion` optional at runtime by using a schema_definition development dependency instead of a runtime dependency - Add the Docker/Apollo build-context wiring needed for bundles that include the new path gem explicitly ## Risk Assessment Low to medium - mostly file moves plus require/dependency wiring. ## References - Stacked on #1200. - `git diff -M --summary` reports the moved helper files as 100% renames, including `json_schema_with_metadata.rb`. - Local bundle install, lint, type check, spellcheck, dependency diagram verification, schema artifact check, and targeted unit specs passed on the restacked branch. ## Stack Current PR is marked with `->`. - [#1199 Add JSON ingestion gem shell](#1199) - [#1200 Add schema definition extension plumbing](#1200) - -> [#1201 Move JSON schema helpers to json ingestion gem](#1201) - [#1203 Namespace JSON schema helpers under JSON ingestion](#1203) - [#1204 Add JSON ingestion indexing extensions](#1204) - [#1215 Wire JSON ingestion schema extension modules](#1215) - [#1205 Use JSON ingestion as schema definition extension](#1205) - [#1202 Document JSON ingestion schema APIs](#1202) - [#1224 Migrate JSON ingestion specs into gem](#1224) - [#1220 Add configurable indexing event decoder](#1220)
0c1ef88 to
8d63094
Compare
jwils
added a commit
that referenced
this pull request
Jun 16, 2026
## Why After the move-only PR preserves rename detection, put the moved helper constants under the `ElasticGraph::JSONIngestion` namespace. ## What - Namespace the moved JSON Schema helper classes and RBS signatures - Update schema_definition references and tests to use the new qualified constants ## Risk Assessment Medium - namespace-only behavior should be unchanged, but it updates call sites across schema_definition. ## References - Stacked on #1201. - Local lint, type check, schema artifact checks, and documentation coverage passed while building this split. ## Stack Current PR is marked with `->`. - [#1199 Add JSON ingestion gem shell](#1199) - [#1200 Add schema definition extension plumbing](#1200) - [#1201 Move JSON schema helpers to json ingestion gem](#1201) - -> [#1203 Namespace JSON schema helpers under JSON ingestion](#1203) - [#1204 Add JSON ingestion indexing extensions](#1204) - [#1215 Wire JSON ingestion schema extension modules](#1215) - [#1205 Use JSON ingestion as schema definition extension](#1205) - [#1202 Document JSON ingestion schema APIs](#1202) - [#1224 Migrate JSON ingestion specs into gem](#1224) - [#1220 Add configurable indexing event decoder](#1220)
d097cc0 to
a906b8f
Compare
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
Keep the JSON ingestion indexing extensions separate from the schema-extension wiring so the indexing behavior is easier to review.
What
Risk Assessment
Low to medium - this changes internal indexing value objects to use the existing MemoizableData wrapper so JSON ingestion can attach extension modules, without changing core mapping behavior.
References
bundle exec rspec elasticgraph-schema_definition/spec/unit/elastic_graph/schema_definition/json_schema_spec.rb elasticgraph-schema_definition/spec/unit/elastic_graph/schema_definition/json_schema_field_metadata_spec.rb elasticgraph-schema_definition/spec/unit/elastic_graph/schema_definition/indexing/json_schema_with_metadata_spec.rb elasticgraph-schema_definition/spec/unit/elastic_graph/schema_definition/factory_spec.rbpassed.script/type_checkpassed.script/lintpassed.Stack
Current PR is marked with
->.