Skip to content

v1.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 23 Jan 01:44
· 20 commits to main since this release

ElasticGraph v1.1.0 has been released! This release includes new gems for data warehouse integration, Ruby 4.0 support, significant performance optimizations, and bug fixes.

New Features

Data Warehouse Integration

Two new gems have been added to support data warehouse integration:

elasticgraph-warehouse: An extension that generates Data Warehouse table configurations from ElasticGraph schemas. This enables seamless integration with data warehouse systems like Apache Hive, AWS Athena, and similar SQL-based analytical platforms by automatically generating DDL and configuration files. After adding it to an ElasticGraph project, run bundle exec rake schema_artifacts:dump and a data_warehouse.yaml file will be generated containing SQL CREATE TABLE statements for each indexed type.

elasticgraph-warehouse_lambda: An AWS Lambda integration for warehouse data export. This gem enables export of indexing operations to S3 as gzipped JSONL files, with features like deterministic S3 keys with versioning, date partitioning, and UUIDs.

Ruby 4.0 Support

ElasticGraph now supports Ruby 4.0 (and uses Bundler 4.0).

JSON Schema Improvements

  • Generated JSON schemas now include field description fields, useful for documentation and code generation tools (#875)
  • JSON schema strictness can now be configured with allow_omitted_fields and allow_extra_fields options (#876)

Query Registry Improvements

  • Added extension_data to QueryDetailsTracker enabling GraphQL extensions to log additional data. The query registry uses this to log query_registration_status (#981)
  • Improved operation name handling by preferring selected_operation_name over operation_name, which is safer when a query has only one operation (#986)

Version Validation for Schema Artifacts

ElasticGraph now validates that the schema artifacts version matches the runtime version, raising an error on mismatch (#874)

Upgrade notes

If you use sourced_from in your schema definition, you must now configure your index with i.has_had_multiple_sources! within the t.index block. This ensures the elasticgraph-graphql query engine correctly filters on multi-source documents while avoiding some additional queries ElasticGraph used to make for this case. Once added, this configuration should be retained even if sourced_from fields are later removed, as it remains true forever that the index has had multiple sources.

What's Changed

New Features

Performance Optimizations

  • Implement grouping_missing_value_placeholder for optimized aggregation subaggregations. Previously, when grouping by multiple fields, ElasticGraph created exponentially many subaggregations to handle missing values. The new approach achieves linear scaling, significantly improving performance for queries that group by many fields. by @mmarston and @myronmarston in #890, #893, #894, #895, #903
  • Omit Elasticsearch API calls on indexer boot by @ayousufi in #857
  • Optimize searches_could_hit_incomplete_docs? to avoid datastore queries by @ayousufi in #911

Bug Fixes

  • Resolve range query filter bugs where filters were being overridden due to deep_merge and Ruby hash merging by @ayousufi in #912
  • Fix site:doctest by @jwils in #918

Other Improvements

Dependency Upgrades

The datastore versions we build against have been upgraded:

  • Elasticsearch: 9.1 -> 9.2.0 (#896, #980)
  • OpenSearch: 3.2.x -> 3.3.0 (#896, #980)

The following Ruby gems have been upgraded:

The following GitHub actions have been upgraded:

The following NPM packages have been upgraded:

The following Python packages have been upgraded:

New Contributors


Full Changelog: v1.0.2...v1.1.0