Releases: elastic/elasticsearch-ruby
v8.12.0
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: Setslist_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 totrue
the indices to which the settings are being applied will be closed temporarily and then reopened in order to apply the changes. The default isfalse
.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:
simulate.ingest
- Simulates running ingest with example documents. See: https://www.elastic.co/guide/en/elasticsearch/reference/8.12/simulate-ingest-api.html
Connectors API
Version 8.12 introduces the experimental Connectors API. Use the following APIs to manage connectors:
connector.post
- Creates a connector. See documentationconnector.put
- Creates or updates a connector. See documentationconnector.delete
- Deletes a connector. See documentationconnector.get
- Returns the details about a connector. See documentationconnector.list
- Lists all connectors. See documentationconnector.check_in
- Updates the last_seen timestamp in the connector document. See documentationconnector.update_configuration
- Updates the connector configuration. See documentationconnector.update_error
- Updates the error field in the connector document. See documentationconnector.update_filtering
- Updates the filtering field in the connector document. See documentationconnector.last_sync
- Updates the stats of last sync in the connector document. See documentationconnector.update_name
- Updates the name and/or description fields in the connector document. See documentationconnector.update_pipeline
- Updates the pipeline field in the connector document. See documentationconnector.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 documentationconnector_sync_job.check_in
- Checks in a connector sync job (refreshes 'last_seen'). See documentationconnector_sync_job.delete
- Deletes a connector sync job. See documentationconnector_sync_job.error
- Sets an error for a connector sync job. See documentationconnector_sync_job.get
- Returns the details about a connector sync job. See documentationconnector_sync_job.list
- Lists all connector sync jobs. See documentationconnector_sync_job.post
- Creates a connector sync job. See documentationconnector_sync_job.update_stats
- Updates the stats fields in the connector sync job document. See documentation
v8.11.0
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.
v7.17.10
Backports support for Faraday 2 from elastic-transport
. ¡Gracias santiagorodriguez96!
This version of the gem now supports Faraday v2. If you don't have a locked version of Faraday in your project, when you upgrade your gems, Faraday v2 will be installed. The main change on dependencies when using Faraday v2 is all adapters, except for the default net_http
one, have been moved out of Faraday into separate gems. This means if you're not using the default adapter and you migrate to Faraday v2, you'll need to add the adapter gems to your Gemfile.
These are the gems required for the different adapters with Faraday 2, instead of the libraries on which they were based:
# HTTPCLient
gem 'faraday-httpclient'
# NetHTTPPersistent
gem 'faraday-net_http_persistent'
# Patron
gem 'faraday-patron'
# Typhoeus
gem 'faraday-typhoeus'
Things should work fine if you migrate to Faraday 2 as long as you include the adapter (unless you're using the default one net-http
), but worst case scenario, you can always lock the version of Faraday in your project to 1.x:
gem 'faraday', '~> 1'
Be aware if migrating to Faraday v2 that it requires at least Ruby 2.6
, unlike Faraday v1 which requires 2.4
.
Troubleshooting
If you see a message like:
:adapter is not registered on Faraday::Adapter (Faraday::Error)
Then you probably need to include the adapter library in your gemfile and require it.
Please submit an issue if you encounter any problems.
v7.17.9
- Backports fix from
elastic-transport
: #66 - Manticore transport unable to send custom headers withperform_request
Pull Request.
v8.10.0
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 indicessecurity.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 parameterresource
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
- requiresid
, the id of the synonyms set to be deleted.synonyms.get
=>synonyms.get_synonym
- requiresid
, the name of the synonyms set to be retrieved.synonyms_set.get_synonyms_sets
=>synonyms.get_synonyms_sets
synonyms.put
=>synonyms.put_synonym
- requiresid
of the synonyms set to be created or updated.synonym_rule.put
=>synonyms.put_synonym_rule
- Parameters changed toset_id
(the id of the synonym set to be updated with the synonym rule) andrule_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
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 setsynonyms.get
- Retrieves a synonym setsynonyms.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
- 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 streamsindices.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 argumentignore: 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
- Addinclude_defaults
(Boolean) parameter: Return all default configurations for the component template (default: false).machine_learning.put_trained_model
- Addswait_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
- Addsdeployiment_id
(String) parameter: The Id of the new deployment. Defaults to the model_id if not set.search
- Addsinclude_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
- Addsdelete_dest_index
(Boolean) parameter: Whentrue
, the destination index is deleted together with the transform. The default value isfalse
, meaning that the destination index will not be deleted.
v8.7.1
API Bugfix
- Updates
logstash.get_pipeline
, fixed in the specificationid
is not a required parameter, so removes raisingArgumentError
when id is not present.
v8.7.0
- 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
- Addstimeout
(Time) parameter. Controls the time to wait for the stats.transform.start_transform
- Addsfrom
(String) parameter. Restricts the set of transformed entities to those changed after this time.ml.delete_job
,ml.reset_job
- Adddelete_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.
8.6.0
- 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 addsnone
as an option.ml.start_trained_model_deployment
- New parameter:priority
(String), the deployment priority