Skip to content

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented May 4, 2025

This PR contains the following updates:

Package Change Age Confidence
elasticsearch (source, changelog) '~> 7.17.0' -> '~> 9.1.0' age confidence

Release Notes

elastic/elasticsearch-ruby (elasticsearch)

v9.1.2

Compare Source

  • Fixes 2758 - msearch, bulk and other NDJSON endpoints overriding headers for content-type and accept. Pull Request.
  • Adds transform.set_upgrade_mode.
  • Updates source code documentation from latest 9.1 Elasticsearch specification.

v9.1.1

Compare Source

Elasticsearch API

  • Updates source code documentation to latest 9.1 specification.
  • New API: inference.put_amazonsagemaker.

v9.1.0

Compare Source

Gem

Tested versions of Ruby for 9.1.0: Ruby (MRI) 3.2, 3.3, 3.4, head, JRuby 9.3, JRuby 9.4 and JRuby 10.

Elasticsearch API

  • Source code documentation and code has been updated with better formatting, updated links. It's also been updated to support common parameters and common cat parameters in APIs that support it (error_trace, filter_path, human, pretty). The API reference documentation can be generated with rake doc.

  • esql.async_query, esql.query - adds allow_partial_results boolean parameter. If true, partial results will be returned if there are shard failures, but the query can continue to execute on other clusters and shards. If false, the query will fail if there are any failures. To override the default behavior, you can set the esql.query.allow_partial_results cluster setting to false. Server default: true.

  • indices.get_field_mapping - removes local parameter.

  • synonyms.put_synonym, synonyms.put_synonym_rule - add refresh boolean parameter. If true, the request will refresh the analyzers with the new synonym rule and wait for the new synonyms to be available before returning.

New APIs

  • esql.get_query (Experimental) - Get a specific running ES|QL query information.
  • esql.list_queries (Experimental) - Get running ES|QL queries information.
  • indices.delete_data_stream_options - Removes the data stream options from a data stream.
  • indices.get_data_stream_options - Get the data stream options configuration of one or more data streams.
  • indices.get_data_stream_settings - Get setting information for one or more data streams.
  • indices.put_data_stream_options - Update the data stream options of the specified data streams.
  • indices.put_data_stream_settings - Update data stream settings.
  • indices.remove_block - Remove an index block from an index.
  • inference.put_custom - Create a custom inference endpoint.
  • inference.put_deepseek - Create a DeepSeek inference endpoint.
  • snapshot.repository_verify_integrity (Experimental) - Verify the integrity of the contents of a snapshot repository. NOTE: This API is intended for exploratory use by humans. You should expect the request parameters and the response format to vary in future versions.
  • streams.logs_disable - Disable the Logs Streams feature for this cluster.
  • streams.logs_enable - Enable the Logs Streams feature for this cluster.
  • streams.status - Return the current status of the streams feature for each streams type.

v9.0.5

Compare Source

  • Fixes 2758 - msearch, bulk and other NDJSON endpoints overriding headers for content-type and accept. Pull Request.
  • Adds transform.set_upgrade_mode.

v9.0.4

Compare Source

  • Source code documentation and code has been updated to support common parameters and common cat parameters in APIs that support it (error_trace, filter_path, human, pretty). The API reference documentation can be generated with rake doc.
  • New API: inference.put_custom

v9.0.3

Compare Source

  • Adds ccr alias for cross_cluster_replication and slm alias for snapshot_lifecycle_management.
  • Tested for JRuby 10.0.0.
  • General updates in source code docs.

v9.0.2

Compare Source

  • Udpates setting 'Accept' and 'Content-Type' headers as to not duplicate or overwrite user set headers #​2666.

v9.0.0

Compare Source

Ruby 3.2 and up are tested and supported for 9.0. Older versions of Ruby have reached their end of life. We follow Ruby’s own maintenance policy and officially support all currently maintained versions per Ruby Maintenance Branches. The required Ruby version is set to 2.6 to keep compatiblity wit JRuby 9.3. However, we only test the code against currently supported Ruby versions.

Gem

The size of both elasticsearch and elasticsearch-api gems is smaller than in previous versions. Some unnecessary files that were being included in the gem have now been removed. There has also been a lot of old code cleanup for the 9.x branch.

Elasticsearch Serverless

With the release of 9.0, the Elasticsearch Serverless client has been discontinued. You can use this client to build your Elasticsearch Serverless Ruby applications. The Elasticsearch Serverless API is fully supported. The CI build for Elasticsearch Ruby runs tests to ensure compatibility with Elasticsearch Serverless.

Elasticsearch API

  • The source code is now generated from elasticsearch-specification, so the API documentation is much more detailed and extensive. The value Elasticsearch::ES_SPECIFICATION_COMMIT is updated with the commit hash of elasticsearch-specification in which the code is based every time it's generated.
  • The API code has been updated for compatibility with Elasticsearch API v 9.0.
  • indices.get_field_mapping - :fields is a required parameter.
  • knn_search - This API has been removed. It was only ever experimental and was deprecated in v8.4. It isn't supported in 9.0, and only works when the header compatible-with=8 is set. The search API should be used for all knn queries.
  • The functions in utils.rb that had names starting with double underscore have been renamed to remove these (e.g. __listify to listify).
  • Namespaces clean up: The API namespaces are now generated dynamically based on the elasticsearch-specification. As such, some deprecated namespace files have been removed from the codebase:
    • The rollup namespace was removed. The rollup feature was never GA-ed, it has been deprecated since 8.11.0 in favor of downsampling.
    • The data_frame_deprecated, remote namespace files have been removed, no APIs were available.
    • The shutdown namespace was removed. It is designed for indirect use by ECE/ESS and ECK. Direct use is not supported.

Scroll APIs need to send scroll_id in request body

Sending the scroll_id as a parameter has been deprecated since version 7.0.0. It needs to be specified in the request body for clear_scroll and scroll.

Impact

Client code using clear_scroll or scroll APIs and the deprecated scroll_id as a parameter needs to be updated.

Action

If you are using the clear_scroll or scroll APIs, and sending the scroll_id as a parameter, you need to update your code to send the scroll_id as part of the request body:

v8.19.1

Compare Source

  • Updated source code documentation links to Elasticsearch documentation to 8.19
  • Adds transform.set_upgrade_mode - Sets a cluster wide upgrade_mode setting that prepares transform indices for an upgrade.

v8.19.0

Compare Source

Client

Tested versions of Ruby for 8.19.0: Ruby (MRI) 3.1, 3.2, 3.3, 3.4. JRuby 9.3, JRuby 9.4 and JRuby 10.

API changes
  • cluster.get_component_template - Adds flat_settings boolean parameter, return settings in flat format (default: false). Adds settings_filter String parameter, filter out results, for example to filter out sensitive information.
  • cluster.put_component_template - Removes timeout parameter, adds cause String parameter, used defined reason for creation.
  • create - Adds require_alias and require_data_stream boolean parameters, to specify required type to be created.
  • eql.search - Adds ccs_minimize_roundtrips, ignore_unavailable, allow_no_indices boolean parameters and expand_wildcards String parameter.
  • esql.async_query - Adds allow_partial_results boolean parameter.
  • esql.async_query_get - Adds format String parameter (e.g. json, yaml).
  • esql.query - Adds allow_partial_results boolean parameter.
  • indices.recovery - Adds ignore_unavailable, allow_no_indices boolean parameters and expand_wildcards String parameter.
  • msearch - Adds ignore_unavailable, ignore_throttled, allow_no_indices, include_named_queries_score boolean parameters, expand_wildcards String parameter and routing, a comma-separated list of specific routing values.
  • open_point_in_time - Adds max_concurrent_shard_requests parameter, the number of concurrent shard requests per node executed concurrently when opening this point-in-time
  • reindex - Adds require_alias boolean parameter.
  • search_mvt - Adds grid_agg String parameter, aggregation used to create a grid for field.
  • snapshot.repository_analyze - Adds register_operation_count parameter, the minimum number of linearizable register operations to perform in total.

Time parameters master_timeout and timeout have been added to the following APIs:

  • index_lifecycle_management:

    • delete_lifecycle
    • get_lifecycle
    • put_lifecycle
    • start
    • stop
    • explain_lifecycle - Only master_timeout
  • ingest:

    • delete_geoip_database
    • delete_ip_location_database
    • put_geoip_database
    • put_ip_location_database
New APIs
  • indices.delete_data_stream_options - Deletes the data stream options of the selected data streams.
  • indices.get_data_stream_options - Returns the data stream options of the selected data streams.
  • indices.get_data_stream_settings - Gets a data stream's settings.
  • indices.put_data_stream_options - Updates the data stream options of the selected data streams.
  • indices.put_data_stream_settings - Updates a data stream's settings.
  • inference.put_amazonsagemaker - Configure an Amazon SageMaker inference endpoint.
  • inference.put_custom - Configure a custom inference endpoint.
  • inference.put_deepseek - Configure a DeepSeek inference endpoint.

v8.18.1

Compare Source

  • Updates API code to the latest Elasticsearch 8.18 specification.
  • Adds inference.put_custom - Configure a custom inference endpoint.
  • Adds transform.set_upgrade_mode - Sets a cluster wide upgrade_mode setting that prepares transform indices for an upgrade.

v8.18.0

Compare Source

API
New APIs:
  • esql.async_query_stop - Stops a previously submitted async query request given its ID and collects the results.
  • inference.chat_completion_unified - Perform chat completion inference
  • inference.completion - Perform completion inference
  • inference.put_alibabacloud - Configure an AlibabaCloud AI Search inference endpoint
  • inference.put_amazonbedrock - Configure an Amazon Bedrock inference endpoint
  • inference.put_anthropic - Configure an Anthropic inference endpoint
  • inference.put_azureaistudio - Configure an Azure AI Studio inference endpoint
  • inference.put_azureopenai - Configure an Azure OpenAI inference endpoint
  • inference.put_cohere - Configure a Cohere inference endpoint
  • inference.put_elasticsearch - Configure an Elasticsearch inference endpoint
  • inference.put_elser - Configure an ELSER inference endpoint
  • inference.put_googleaistudio - Configure a Google AI Studio inference endpoint
  • inference.put_googlevertexai - Configure a Google Vertex AI inference endpoint
  • inference.put_hugging_face - Configure a HuggingFace inference endpoint
  • inference.put_jinaai - Configure a JinaAI inference endpoint
  • inference.put_mistral - Configure a Mistral inference endpoint
  • inference.put_openai - Configure an OpenAI inference endpoint
  • inference.put_voyageai - Configure a VoyageAI inference endpoint
  • inference.put_watsonx - Configure a Watsonx inference endpoint
  • inference.rerank - Perform reranking inference
  • inference.sparse_embedding - Perform sparse embedding inference
  • inference.stream_inference renamed to inference.stream_completion - Perform streaming completion inference.
  • inference.text_embedding - Perform text embedding inference
Updated APIs:
  • bulk, create, index, update - Add Boolean parameter :include_source_on_error, if to include the document source in the error message in case of parsing errors (defaults to true).
  • cat.segments
    • Adds Boolean parameter :local, return local information, do not retrieve the state from master node (default: false).
    • Adds Time parameter :master_timeout, explicit operation timeout for connection to master node.
  • cat.tasks
    • Adds Time parameter :timeout, period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error.
    • Adds Boolean parameter :wait_for_completion, if true, the request blocks until the task has completed.
  • eql.search
    • Adds Boolean parameter :allow_partial_search_results, control whether the query should keep running in case of shard failures, and return partial results.
    • Adds Boolean parameter :allow_partial_sequence_results, control whether a sequence query should return partial results or no results at all in case of shard failures. This option has effect only if [allow_partial_search_results] is true.
  • index_lifecycle_management.delete_lifecycle, index_lifecycle_management.explain_lifecycle, index_lifecycle_management.get_lifecycle, index_lifecycle_management.put_lifecycle, index_lifecycle_management.start, index_lifecycle_management.stop, remove :master_timeout, :timeout parameters.
  • indices.resolve_cluster - Adds :timeout parameter, :name no longer a required parameter.
  • indices.rollover - Removes target_failure_store parameter.
  • ingest.delete_geoip_database, ingest.delete_ip_location_database, put_geoip_database, put_ip_location_database remove :master_timeout, :timeout parameters.
  • machine_learning.start_trained_model_deployment - Adds body request parameter, the settings for the trained model deployment.

v8.17.2

Compare Source

API

New APIs:

  • esql.async_query_delete
  • indices.get_data_lifecycle_stats
  • inference.update
  • security.delegate_pki

Updates APIs:

  • async_search.submit - Adds keep_alive Time parameter.
  • indices.put_template - Adds cause String parameter.
  • xpack.info - Adds human parameter for human-readable information.
  • Timeout parameters updated:
    • :master_timeout (Time), explicit operation timeout for connection to master node.
    • :timeout (Time), explicit operation timeout.
      • Added to:
        • index_lifecycle_management.delete_lifecycle - adds both.
        • index_lifecycle_management.delete_lifecycle - adds master_timeout.
        • index_lifecycle_management.get_lifecycle - adds both.
        • index_lifecycle_management.put_lifecycle - adds both.
        • index_lifecycle_management.start - adds both.
        • index_lifecycle_management.stop - adds both.
        • ingest.delete_geoip_database - adds both.
        • ingest.delete_geoip_location_database - adds both.
        • ingest.put_geoip_database - adds both.
        • ingest.put_ip_location_database - adds both.
        • license.post_start_trial - removes timeout.
        • shutdown.delete_node - adds both.
        • shutdown.put_node - adds both.
        • snapshot_lifecycle_management.delete_lifecycle - adds both.
        • snapshot_lifecycle_management.execute_lifecycle - adds both.
        • snapshot_lifecycle_management.execute_retention - adds both.
        • snapshot_lifecycle_management.get_lifecycle - adds both.
        • snapshot_lifecycle_management.get_stats - adds both.
        • snapshot_lifecycle_management.get_status - adds both.
        • snapshot_lifecycle_management.put_lifecycle - adds both.

APIs promoted from Experimental to Stable:

  • inference.delete
  • inference.get
  • inference.inference
  • inference.put
  • inference.stream_inference

v8.17.1

Compare Source

  • Fixes ScrollHelper issue #​2556 - There was a bug where an additional search (with scroll) request was made to Elasticsearch for each resulting hit. It was rewritten so that the docs are retrieved as needed and the Helper instance doesn't store documents internally, with big savings in memory and requests to Elasticsearch.

v8.17.0

Compare Source

Client
  • Tested versions of Ruby for 8.17.0: Ruby (MRI) 3.1, 3.2 and 3.3. JRuby 9.3 and JRuby 9.4.
API
API changes
  • async_search.submit - Removes keep_alive parameter. Adds:
    • ccs_minimize_roundtrips (Boolean): When doing a cross-cluster search, setting it to true may improve overall search latency, particularly when searching clusters with a large number of shards. However, when set to true, the progress of searches on the remote clusters will not be received until the search finishes on all clusters.
    • rest_total_hits_as_int (Boolean): Indicates whether hits.total should be rendered as an integer or an object in the rest search response.
  • open_point_in_time - Adds allow_partial_search_results (Boolean) parameter: Specify whether to tolerate shards missing when creating the point-in-time, or otherwise throw an exception (default: false).

v8.16.1

Compare Source

  • Fixes ScrollHelper issue #​2556 - There was a bug where an additional search (with scroll) request was made to Elasticsearch for each resulting hit. It was rewritten so that the docs are retrieved as needed and the Helper instance doesn't store documents internally, with big savings in memory and requests to Elasticsearch.

v8.16.0

Compare Source

Client
  • Tested versions of Ruby for 8.16.0: Ruby (MRI) 3.1, 3.2 and 3.3. JRuby 9.3 and JRuby 9.4.
API
API changes
  • capabilities - Adds local_only boolean parameter: True if only the node being called should be considered.
  • cluster.stats- Removes flat_settings parameter, adds include_remotes boolean parameter: Include remote cluster data into the response (default: false)
  • indices.get_data_stream - Adds verbose boolean parameter: Whether the maximum timestamp for each data stream should be calculated and returned (default: false). Adds master_timeout (see below).
  • query_rules.delete_ruleset - Accepts ignore: 404 common parameter.
Timeout parameters:

These parameters have been added to several APIs:

  • master_timeout timeout for processing on master node.
  • timeout timeout for acknowledgement of update from all nodes in cluster parameters.

Added in:

  • indices.create_data_stream - both.
  • indices.delete_data_stream - master_timeout.
  • indices.get_data_lifecycle - master_timeout.
  • indices.get_data_stream - master_timeout.
  • indices.migrate_to_data_stream - both.
  • indices.promote_data_stream - master_timeout.
  • search_shards - master_timeout.
APIs Promoted from Experimental to Stable:
  • indices.delete_data_lifecycle
  • indices.explain_data_lifecycle
  • indices.get_data_lifecycle
  • indices.put_data_lifecycle
  • security.create_cross_cluster_api_key
  • security.update_cross_cluster_api_key
New APIs
  • ingest.delete_ip_location_database - Deletes an ip location database configuration.
  • ingest.get_ip_location_database - Returns the specified ip location database configuration.
  • ingest.put_ip_location_database - Puts the configuration for a ip location database to be downloaded.
New Experimental APIs
  • inference.stream_inference - Perform streaming inference.
  • query_rules.test - Tests a query ruleset to identify the rules that would match input criteria.

v8.15.0

Compare Source

Client
  • Tested versions of Ruby for 8.15.0: Ruby (MRI) 3.0, 3.1, 3.2 and 3.3. JRuby 9.3 and JRuby 9.4.
API changes
  • snapshot.delete - Adds wait_for_completion Boolean parameter, should this request wait until the operation has completed before returning.
  • cluster.allocation_explain - body is no longer a required parameter.
  • connector.put - (experimental API) body and connector_id no longer required parameters.
  • machine_learning.update_trained_model_deployment has been promoted to stable from Beta. Adds Integer parameter number_of_allocations, updates the model deployment to this number of allocations.
master_timeout and timeout parameters

These parameters have been added to several APIs:

  • master_timeout timeout for processing on master node.
  • timeout timeout for acknowledgement of update from all nodes in cluster parameters.

The APIs:

  • autoscaling.delete_autoscaling_policy - both.
  • autoscaling.get_autoscaling_capacity- master_timeout.
  • get_autoscaling_policy - master_timeout.
  • put_autoscaling_policy - both.
  • enrich.delete_policy - master_timeout.
  • enrich.execute_policy - master_timeout.
  • enrich.get_policy - master_timeout.
  • enrich.put_policy - master_timeout.
  • enrich.stats - master_timeout.
  • features.reset_features - master_timeout.
  • license.delete - both.
  • license.post - both.
  • license.post_start_basic - both.
  • license.post_start_trial - both.
  • security.get_settings - master_timeout.
  • security.update_settings - both.
  • shutdown.get_node - master_timeout.
  • snapshot_lifecycle_management.start - both.
  • snapshot_lifecycle_management.stop - both.
  • watcher.get_settings - master_timeout.
  • watcher.start - master_timeout.
  • watcher.stop - master_timeout.
  • watcher.update_settings - both.
Inference APIs have been renamed:
  • inference.delete_model => inference.delete. Also adds two new parameters:
    • dry_run (Boolean), if true the endpoint will not be deleted and a list of ingest processors which reference this endpoint will be returned.
    • force (Boolean), if true the endpoint will be forcefully stopped (regardless of whether or not it is referenced by any ingest processors or semantic text fields).
  • inference.get_model => inference.get
  • inference.put_model => inference.put
Query Rules parameters consolidated

Changes in query_ruleset and query_rules APIs, these have been combined into the query_rules namespace:

  • query_rules.delete_ruleset - Renamed from query_ruleset.delete, promoted from experimental to stable.
  • query_rules.delete_rule - Deletes an individual query rule within a ruleset.
  • query_rules.get_rule - Returns the details about an individual query rule within a ruleset.
  • query_rules.get_ruleset - Renamed from query_ruleset.get, promoted from experimental to stable.
  • query_rules.list_rulesets - Renamed from query_ruleset.list, promoted from experimental to stable.
  • query_rules.put_rule - Creates or updates a query rule within a ruleset.
  • query_rules.put_ruleset - Renamed from query_ruleset.put_ruleset, promoted from experimental to stable.
New APIs:
  • ingest.delete_geoip_database - Deletes a geoip database configuration.
  • ingest.get_geoip_database - Returns geoip database configuration.
  • ingest.put_geoip_database - Puts the configuration for a geoip database to be downloaded.
  • security.bulk_delete_role - Bulk delete roles in the native realm.
  • security.bulk_put_role - Bulk adds and updates roles in the native realm.
  • security.query_role - Retrieves information for Roles using a subset of query DSL.
  • transform.get_node_stats - Retrieves transform usage information for transform nodes.
New Experimental APIs:
  • connector.sync_job_claim - Claims a connector sync job.
  • connector.update_features - Updates the connector features in the connector document.
Development

v8.14.0

Compare Source

Client
  • Tested versions of Ruby for 8.14.0: Ruby (MRI) 3.0, 3.1, 3.2 and 3.3. JRuby 9.3 and JRuby 9.4.
API

API changes:

  • All Connector APIs have been migrated to one common namespace connector:

    • connector_secret.delete -> connector.secret_delete
    • connector_secret.get -> connector.secret_get
    • connector_secret.post -> connector.secret_post
    • connector_secret.put -> connector.secret_put
    • connector_sync_job.cancel -> connector.sync_job_cancel
    • connector_sync_job.check_in -> connector.sync_job_check_in
    • connector_sync_job.delete -> connector.sync_job_delete
    • connector_sync_job.error -> connector.sync_job_error
    • connector_sync_job.get -> connector.sync_job_get
    • connector_sync_job.post -> connector.sync_job_post
    • connector_sync_job.update_stats -> connector.sync_job_update_stats
  • connector.delete - Adds Boolean parameter :delete_sync_jobs: Determines whether associated sync jobs are also deleted.

  • cross_cluster_replication.delete_auto_follow_pattern, cross_cluster_replication.follow, cross_cluster_replication.follow_info, cross_cluster_replication.get_auto_follow_pattern, cross_cluster_replication.pause_auto_follow_pattern, cross_cluster_replication.pause_follow, cross_cluster_replication.put_auto_follow_pattern, cross_cluster_replication.resume_auto_follow_pattern, cross_cluster_replication.resume_follow, cross_cluster_replication.stats, cross_cluster_replication.unfollow - Add Time parameter :master_timeout: Explicit operation timeout for connection to master node.

  • cross_cluster_replication.follow_stats, cross_cluster_replication.forget_follower, cross_cluster_replication.stats - Add Time parameter :timeout: Explicit operation timeout.

  • indices/rollover - Adds Boolean parameter :target_failure If set to true, the rollover action will be applied on the failure store of the data stream.

  • inference.get_model - Parameter inference_id no longer required.

  • search_application.search - Adds Boolean parameter :typed_keys: Specify whether aggregation and suggester names should be prefixed by their respective types in the response.

  • security.get_api_key, security.query_api_keys - Add Boolean parameter :with_profile_uid: flag to also retrieve the API Key's owner profile uid, if it exists.

New APIs:

  • profiling.topn_functions - Extracts a list of topN functions from Universal Profiling.
  • text_structure.find_field_structure - Finds the structure of a text field in an index.
  • text_structure/find_message_structure- Finds the structure of a list of messages. The messages must contain data that is suitable to be ingested into Elasticsearch.

APIs Migrated from experimental to stable:

  • esql.async_query
  • esql.query

New Experimental APIs:

  • connector.update_active_filtering - Activates the draft filtering rules if they are in a validated state.
  • connector.update_filtering_validation - Updates the validation info of the draft filtering rules.

v8.13.0

Compare Source

Client
  • Tested versions of Ruby for 8.13.0: Ruby (MRI) 3.0, 3.1, 3.2 and 3.3. JRuby 9.3 and JRuby 9.4.
Experimental ES|QL Helper

This version provides a new experimental Helper for the ES|QL query API. The helper returns an array of hashes with the columns as keys and the respective values instead of the default JSON value. Additionally, you can iterate through the response values and transform the data in by passing in a Hash of column => Proc values. You could use this for example to convert a @timestamp column value into a DateTime object. Please check out the documentation and open an issue if you encounter any problems or have any feedback.

API

API Changes:

  • async_search.status - adds Time :keep_alive parameter: Specify the time interval in which the results (partial or final) for this search will be available.
  • bulk - adds boolean :require_data_stream parameter: When true, requires the destination to be a data stream (existing or to-be-created). Default is false.
  • connector.list - Adds the following parameters:
    • :index_name (List): A comma-separated list of connector index names to fetch connector documents for.
    • :connector_name (List): A comma-separated list of connector names to fetch connector documents for.
    • :service_type (List): A comma-separated list of connector service types to fetch connector documents for.
    • :query (String): A search string for querying connectors, filtering results by matching against connector names, descriptions, and index names.
  • esql.query - adds boolean :drop_null_columns parameter: Should entirely null columns be removed from the results? Their name and type will be returning in a new all_columns section.
  • field_caps - Adds :include_empty_fields boolean parameter: Include empty fields in result.
  • index - adds boolean :require_data_stream parameter: When true, requires the destination to be a data stream (existing or to-be-created). Default is false.
  • indices.rollover - adds boolean :lazy parameter: If set to true, the rollover action will only mark a data stream to signal that it needs to be rolled over at the next write. Only allowed on data streams.
  • connector_sync_job.list - adds List :job_type parameter: A comma-separated list of job types.
  • inference.delete_model, inference.get_model, inference.inference, inference.put_model: renames :model_id parameter to :inference_id.
  • termvector will show a warning since it's been deprecated. Please use the plural version, termvectors.

New APIs:

  • indices.resolve_cluster - Resolves the specified index expressions to return information about each cluster, including the local cluster, if included.
  • profiling.flamegraph - Extracts a UI-optimized structure to render flamegraphs from Universal Profiling.
  • profiling.stacktraces - Extracts raw stacktrace information from Universal Profiling.
  • security.query_user - Retrieves information for Users using a subset of query DSL
  • text_structure.test_grok_pattern - Tests a Grok pattern on some text.

APIs Migrated from experimental to stable:

  • synonyms.delete_synonym
  • synonyms.delete_synonym_rule
  • synonyms.get_synonym
  • synonyms.get_synonym_rule
  • synonyms.get_synonyms_sets
  • synonyms.put_synonym
  • synonyms.put_synonym_rule

New Experimental APIs:

  • connector.update_api_key_id - Updates the API key id and/or API key secret id fields in the connector document.
  • connector.update_index_name - Updates the index name of the connector.
  • connector.update_native - Updates the is_native flag of the connector.
  • connector.update_service_type - Updates the service type of the connector.
  • connector.update_status - Updates the status of the connector.
  • esql.async_query - Executes an ESQL request asynchronously
  • esql.async_query_get - Retrieves the results of a previously submitted async query request given its ID.

New Experimental namespace connector_secret:

  • connector_secret.delete - Deletes a connector secret.
  • connector_secret.get - Retrieves a secret stored by Connectors.
  • connector_secret.post - Creates a secret for a Connector.
  • connector_secret.put - Creates or updates a secret for a Connector.
Development
  • Migrated from byebug to debug.
  • Added extra testing for OpenTelemetry.

v8.12.2

Compare Source

Drops runtime dependency on base64. Thanks Earlopain! Pull Request: #​2295.

v8.12.1

Compare Source

Adds base64 dependency: base64 was added to the gemspec, since starting in Ruby 3.4.0, base64 will no longer be part of the default gems and will no longer be in the standard library.

Base64 is used for API key and Cloud ID. The dependency used to be declared in transport, but it's not needed there since the implementation using it is in this codebase. It was removed from transport in the latest patch releases: 8.1.3, 8.2.5 and 8.3.1.

v8.12.0

Compare Source

Client

  • Tested versions of Ruby for 8.12.0: Ruby (MRI) 3.0, 3.1, 3.2 and 3.3. JRuby 9.3 and JRuby 9.4.

API

API Changes:

  • bulk - Adds boolean :list_executed_pipelines parameter: Sets list_executed_pipelines for all incoming documents. Defaults to unset (false).
  • indices.put_settings - Adds boolean :reopen parameter: Whether to close and reopen the index to apply non-dynamic settings. If set to true the indices to which the settings are being applied will be closed temporarily and then reopened in order to apply the changes. The default is false.
  • open_point_in_time - Adds Hash :body parameter: an index_filter specified with the Query DSL.
  • security.get_api_key - Adds boolean :active_only parameter: flag to limit response to only active (not invalidated or expired) API keys.

New APIs

New API for Universal profiling:

  • profiling.status - Returns basic information about the status of Universal Profiling.

New experimental API:

Connectors API

Version 8.12 introduces the experimental Connectors API. Use the following APIs to manage connectors:

  • connector.post - Creates a connector. See documentation
  • connector.put - Creates or updates a connector. See documentation
  • connector.delete - Deletes a connector. See documentation
  • connector.get - Returns the details about a connector. See documentation
  • connector.list - Lists all connectors. See documentation
  • connector.check_in - Updates the last_seen timestamp in the connector document. See documentation
  • connector.update_configuration - Updates the connector configuration. See documentation
  • connector.update_error - Updates the error field in the connector document. See documentation
  • connector.update_filtering - Updates the filtering field in the connector document. See documentation
  • connector.last_sync - Updates the stats of last sync in the connector document. See documentation
  • connector.update_name - Updates the name and/or description fields in the connector document. See documentation
  • connector.update_pipeline - Updates the pipeline field in the connector document. See documentation
  • connector.update_scheduling - Updates the scheduling field in the connector document. See documentation

Use the following APIs to manage sync jobs:

  • connector_sync_job.cancel - Cancels a connector sync job. See documentation
  • connector_sync_job.check_in - Checks in a connector sync job (refreshes 'last_seen'). See documentation
  • connector_sync_job.delete - Deletes a connector sync job. See documentation
  • connector_sync_job.error - Sets an error for a connector sync job. See documentation
  • connector_sync_job.get - Returns the details about a connector sync job. See documentation
  • connector_sync_job.list - Lists all connector sync jobs. See documentation
  • connector_sync_job.post - Creates a connector sync job. See documentation
  • connector_sync_job.update_stats - Updates the stats fields in the connector sync job document. See documentation

v8.11.2

Compare Source

Drops runtime dependency on base64. Thanks Earlopain! Pull Request: #​2295.

v8.11.1

Compare Source

Adds base64 dependency: base64 was added to the gemspec, since starting in Ruby 3.4.0, base64 will no longer be part of the default gems and will no longer be in the standard library.

Base64 is used for API key and Cloud ID. The dependency used to be declared in transport, but it's not needed there since the implementation using it is in this codebase. It was removed from transport in the latest patch releases: 8.1.3, 8.2.5 and 8.3.1.

v8.11.0

Compare Source

Client
  • Tested versions of Ruby for 8.11.0: Ruby (MRI) 3.0, 3.1 and 3.2. JRuby 9.3 and JRuby 9.4.
  • Adds native support for Open Telemetry. See Open Telemetry for documentation.
  • Improved documentation, now you can find more examples in Ruby in the REST API reference.
API

New Experimental APIs:

  • esql.query - Executes an ESQL request.
  • inference.delete_model - Delete model in the Inference API.
  • inference.get_model - Get a model in the Inference API.
  • inference.inference - Perform inference on a model.
  • inference.put_model - Configure a model for use in the Inference API.

v8.10.0

Compare Source

Client
  • Tested versions of Ruby for 8.10.0: Ruby (MRI) 3.0, 3.1 and 3.2. JRuby 9.3 and JRuby 9.4.
API
New Experimental APIs, for internal use:
  • fleet.delete_secret
  • fleet.get_secret
  • fleet.post_secret
New stable APIs:
  • security.get_settings - Retrieve settings for the security system indices
  • security.update_settings - Update settings for the security system indices
New Experimental API:
  • query_ruleset.list List query rulesets.
API Changes:
  • indices.reload_search_analyzers - Adds parameter resource changed resource to reload analyzers from if applicable

Promoted from Experimental to Beta:

  • security.create_cross_cluster_api_key
  • security.update_cross_cluster_api_key
Synonyms namespace update:

All synonym related APIs have been moved to the synonyms namespace and some of the endpoints have been renamed, as well as their parameters:

  • synonyms.delete => synonyms.delete_synonym - requires id, the id of the synonyms set to be deleted.
  • synonyms.get => synonyms.get_synonym - requires id, the name of the synonyms set to be retrieved.
  • synonyms_set.get_synonyms_sets => synonyms.get_synonyms_sets
  • synonyms.put => synonyms.put_synonym - requires id of the synonyms set to be created or updated.
  • synonym_rule.put => synonyms.put_synonym_rule - Parameters changed to set_id (the id of the synonym set to be updated with the synonym rule) and rule_id (the id of the synonym rule to be updated or created).
  • New Experimental API synonyms.delete_synonym_rule - Deletes a synonym rule in a synonym set
  • New Experimental API synonyms.get_synonym_rule - Retrieves a synonym rule from a synonym set

v8.9.0

Compare Source

Client
  • Tested versions of Ruby for 8.9.0: Ruby (MRI) 3.0, 3.1 and 3.2. JRuby 9.3 and JRuby 9.4.
  • Updated product validation. The code for the product validation was refactored in a few ways:
    • Just check header, does not check the version of the server.
    • Warns only once when there's a general server error.
    • Removes the call to '/' (client.info) when doing the first request, checking on the first actual request from the client.
  • Fixes User-Agent code. In the migration to 8.x, the user agent code was extracted into transport, since we're now using that library in other projects. So for the Elasticsearch Client, the user-agent would be reported as the one defined in elastic-transport. This release fixes the issue and brings back the user agent in the format that was being used in 7.x
Helpers

This release introduces two new Helpers in the client:

  • BulkHelper - This helper provides a better developer experience when using the Bulk API. At its simplest, you can send it a collection of hashes in an array, and it will bulk ingest them into {es}.
  • ScrollHelper - This helper provides an easy way to get results from a Scroll.

See Helpers to read more about them.

API
New APIs
  • cluster.info - Returns different information about the cluster.
New Experimental APIs and namespaces:

This functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features.

  • New namespace: query_ruleset
    • query_ruleset.delete - Deletes a query ruleset.
    • query_ruleset.get - Returns the details about a query ruleset.
    • query_ruleset.put - Creates or updates a query ruleset.
  • New API: search_application.render_query Renders a query for given search application search parameters.
  • New API: security.create_cross_cluster_api_key - Creates a cross-cluster API key for API key based remote cluster access.
  • New API: security.upate_cross_cluster_api_key - Updates attributes of an existing cross-cluster API key.
  • New namespace: synonyms
    • synonyms.delete- Deletes a synonym set
    • synonyms.get - Retrieves a synonym set
    • synonyms.put - Creates or updates a synonyms set
  • New namespace: synonym_rule
    • synonym_rule.put - Creates or updates a synonym rule in a synonym set
  • New namespace: synonyms
    • synonyms_set.get - Retrieves a summary of all defined synonym sets

v8.8.0

Compare Source

  • Tested versions of Ruby for 8.8.0: Ruby (MRI) 3.0, 3.1 and 3.2. JRuby 9.3 and JRuby 9.4.
API
  • Updates development dependency minitest-reporters to >= 1.6 to include showing failures at the end of the test run.
New APIs
  • watcher.get_settings - Retrieve settings for the watcher system index.
  • watcher.update_settings - Update settings for the watcher system index.
New Experimental APIs
  • indices.delete_data_lifecycle- Deletes the data lifecycle of the selected data streams
  • indices.explain_data_lifecycle - Retrieves information about the index's current DLM lifecycle, such as any potential encountered error, time since creation etc.
  • indices.get_data_lifecycle - Returns the data lifecycle of the selected data streams.
  • indices.put_data_lifecycle - Updates the data lifecycle of the selected data streams.
  • search_application.delete - Deletes a search application.
  • search_application.delete_behavioral_analytics - Delete a behavioral analytics collection.
  • search_application.get - Returns the details about a search application.
  • search_application.get_behavioral_analytics - Returns the existing behavioral analytics collections.
  • search_application.list - Returns the existing search applications.
  • search_application.post_behavioral_analytics_event - Creates a behavioral analytics event for existing collection.
  • search_application.put - Creates or updates a search application.
  • search_application.put_behavioral_analytics - Creates a behavioral analytics collection.
  • search_application.search - Perform a search against a search application.
API Changes
  • clear_scroll now works with the argument ignore: 404. Issue on GitHub.
  • The code generator was updated to fix a bug for ignore: 404. APIs that were supposed to support this wouldn't parse the parameters correctly. The support it now: security.get_role, watcher.delete_watch
  • cluster.get_component_template, indices.get_data_stream, indices.get_index_template, indices.simulate_index_template, indices.simulate_template - Add include_defaults (Boolean) parameter: Return all default configurations for the component template (default: false).
  • machine_learning.put_trained_model - Adds wait_for_completion (Boolean) parameter: Whether to wait for all child operations(e.g. model download) to complete, before returning or not (default: false).
  • machine_learning.start_trained_model_deployment - Adds deployiment_id (String) parameter: The Id of the new deployment. Defaults to the model_id if not set.
  • search - Adds include_named_queries_score (Boolean) parameter: Indicates whether hit.matched_queries should be rendered as a map that includes the name of the matched query associated with its score (true) or as an array containing the name of the matched queries (false).
  • transform.delete_transform - Adds delete_dest_index (Boolean) parameter: When true, the destination index is deleted together with the transform. The default value is false, meaning that the destination index will not be deleted.

v8.7.1

Compare Source

API Bugfix
  • Updates logstash.get_pipeline, fixed in the specification id is not a required parameter, so removes raising ArgumentError when id is not present.

v8.7.0

Compare Source

  • Tested versions of Ruby for 8.6.0: Ruby (MRI) 2.7, 3.0, 3.1 and 3.2. JRuby 9.3 and JRuby 9.4. Ruby 2.7's end of life is coming in a few days, so this will probably be the last release to test for Ruby 2.7.
New APIs
  • health_report - Returns the health of the cluster.
  • transform.schedule_now_transform - Schedules now a transform.
API Changes
  • transform.get_transform_stats - Adds timeout (Time) parameter. Controls the time to wait for the stats.
  • transform.start_transform - Adds from (String) parameter. Restricts the set of transformed entities to those changed after this time.
  • ml.delete_job, ml.reset_job - Add delete_user_annotations (Boolean) parameter. Should annotations added by the user be deleted.
  • ml.clear_trained_model_deployment_cache, ml.infer_trained_model, ml.put_trained_model_definition_part, ml.put_trained_model_vocabulary, ml.start_trained_model_deployment, ml.stop_trained_model_deployment - These APIs are no longer in Beta.

v8.6.0: 8.6.0

Compare Source

  • Tested versions of Ruby for 8.6.0: Ruby (MRI) 2.7, 3.0, 3.1 and 3.2. JRuby 9.3 and JRuby 9.4.
New APIs
  • update_trained_model_deployment - Updates certain properties of trained model deployment (This functionality is in Beta and is subject to change).
API Changes
  • cluster.reroute - :metric parameter adds none as an option.
  • ml.start_trained_model_deployment - New parameter :priority (String), the deployment priority

v8.5.2: 8.5.2

Compare Source

API Bugfix

Fixes security.create_service_token API, uses POST when token name isn't present.
Thanks @​carlosdelest for reporting in #​1961.

v8.5.1: 8.5.1

Compare Source

Bugfix

Fixes bug when instantiating client with api_key: When passing in api_key and transport_options that don't include headers to the client, the api_key code would overwrite the arguments passed in for transport_options. This was fixed in this Pull Request.
Thanks svdasein for reporting in #​1940.

v8.5.0: 8.5.0

[Compare Source](https://redirect.github.com/elastic/elasticsearch-ruby/com


Configuration

📅 Schedule: Branch creation - "on sunday" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/major-elasticsearch-packages branch 2 times, most recently from 7c66554 to a72877d Compare August 8, 2025 07:32
@renovate renovate bot force-pushed the renovate/major-elasticsearch-packages branch from a72877d to 4222d20 Compare September 3, 2025 16:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants