Releases: elastic/elasticsearch-ruby
v8.17.0
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
- Removeskeep_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
- Addsallow_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.0
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
- Addslocal_only
boolean parameter: True if only the node being called should be considered.cluster.stats
- Removesflat_settings
parameter, addsinclude_remotes
boolean parameter: Include remote cluster data into the response (default: false)indices.get_data_stream
- Addsverbose
boolean parameter: Whether the maximum timestamp for each data stream should be calculated and returned (default: false). Addsmaster_timeout
(see below).query_rules.delete_ruleset
- Acceptsignore: 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
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
- Addswait_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
andconnector_id
no longer required parameters.machine_learning.update_trained_model_deployment
has been promoted to stable from Beta. Adds Integer parameternumber_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 fromquery_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 fromquery_ruleset.get
, promoted from experimental to stable.query_rules.list_rulesets
- Renamed fromquery_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 fromquery_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
- Added a build using es-test-runner-ruby and Elasticsearch Clients Tests which will replace the Elasticsearch YAML test runner.
v8.14.0
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
- Parameterinference_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.
v7.17.11
- Ruby 3.3 added to the test matrix. Tested versions of Ruby for 7.17.11: Ruby (MRI) 3.0, 3.1, 3.2, 3.3, JRuby 9.3, JRuby 9.4.
- Adds
base64
dependency toelasticsearch-transport
: 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, #2400
v8.13.0
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 newall_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 DSLtext_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 asynchronouslyesql.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
todebug
. - Added extra testing for OpenTelemetry.
v8.12.2
v8.11.2
v8.12.1
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.1
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.