Releases: elastic/elasticsearch-ruby
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
v7.17.8
- Patch releases back to being detached from Elastic stack releases.
- Tested compatibility with Elasticsearch v7.17 APIs.
- Tested versions of Ruby for 7.17.8: Ruby (MRI) 2.7, 3.0, 3.1, 3.2, JRuby 9.3, JRuby 9.4.
- Bugfix in elasticsearch-transport: Fixes enforcing UTF-8 in Response body, causing an error when the string is frozen, particularly when using webmock: issue #63.
8.5.2
API Bugfix
Fixes security.create_service_token
API, uses POST
when token name isn't present.
Thanks @carlosdelest for reporting in #1961.
8.5.1
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.
8.5.0
- Tested versions of Ruby for 8.5.0: Ruby (MRI) 2.7, 3.0 and 3.1, JRuby 9.3.
Client
With the latest release of elastic-transport
- v8.1.0
- this gem now supports Faraday v2. Elasticsearch Ruby has an open dependency on elastic-transport
('elastic-transport', '~> 8'
), so when you upgrade your gems, 8.1.0
will be installed. This supports both Faraday v1 and Faraday v2. 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.
API
New APIs
machine_learning.clear_trained_model_deployment_cache
- Clear the cached results from a trained model deployment (Beta).security.bulk_update_api_keys
- Updates the attributes of multiple existing API keys.
API Changes
-
rollup.rollup
renamed toindices.downsample
. The method now receives theindex
to downsample (Required) and instead ofrollup_index
, use target_index as the index to store downsampled data. -
security.get_api_key
andsecurity.query_api_keys
add:with_limited_by
flag to show the limited-by role descriptors of API Keys. -
security.get_user
adds:with_profile_uid
flag to retrieve profile uid (if exists) associated to the user. -
security.get_user_profile
now retrieves user profiles for given unique ID(s).:uid
is now a list of comma-separated list of unique identifier for user profiles. -
text_structure.find_structure
adds:ecs_compatibility
, optional parameter to specify the compatibility mode with ECS Grok patterns - may be either 'v1' or 'disabled'.
Machine learning APIs promoted from Experimental to Beta:
machine_learning.clear_trained_model_deployment_cache.rb
machine_learning.infer_trained_model.rb
machine_learning.put_trained_model_definition_part.rb
machine_learning.put_trained_model_vocabulary.rb
machine_learning.start_trained_model_deployment.rb
machine_learning.stop_trained_model_deployment.rb
Security usef profile APIs promoted from Experimental to Stable:
security/activate_user_profile
security/disable_user_profile
security/enable_user_profile
security/get_user_profile
security/has_privileges_user_profile
security/suggest_user_profile
security/update_user_profile_data
7.17.7
- Compatibility with Elasticsearch v7.17.7 APIs.
- Tested versions of Ruby for 7.17.7: Ruby (MRI) 2.6, 2.7, 3.0 and 3.1, JRuby 9.3.
8.4.0
- Tested versions of Ruby for 8.4.0: Ruby (MRI) 2.7, 3.0 and 3.1, JRuby 9.3.
API
New APIs
security.update_api_key
- Updates attributes of an existing API key. Documentation.
API Changes
get
- Adds new parameterforce_synthetic_source
(Boolean) Should this request force synthetic _source? Use this to test if the mapping supports synthetic _source and to get a sense of the worst case performance. Fetches with this enabled will be slower the enabling synthetic source natively in the index.machine_learning.start_trained_model_deployment
- Adds new parametercache_size
(String) A byte-size value for configuring the inference cache size. For example, 20mb.mget
- Adds new parameterforce_synthetic_source
(Boolean) Should this request force synthetic _source? Use this to test if the mapping supports synthetic _source and to get a sense of the worst case performance. Fetches with this enabled will be slower the enabling synthetic source natively in the index.search
- Adds new parameterforce_synthetic_source
(Boolean) Should this request force synthetic _source? Use this to test if the mapping supports synthetic _source and to get a sense of the worst case performance. Fetches with this enabled will be slower the enabling synthetic source natively in the index.snapshot.get
- Adds new parameters:sort
(String) Allows setting a sort order for the result. Defaults to start_time (options: start_time, duration, name, repository, index_count, shard_count, failed_shard_count).size
(Integer) Maximum number of snapshots to return. Defaults to 0 which means return all that match without limit.order
(String) Sort order (options: asc, desc).from_sort_value
(String) Value of the current sort column at which to start retrieval.after
(String) Offset identifier to start pagination from as returned by the 'next' field in the response body.offset
(Integer) Numeric offset to start pagination based on the snapshots matching the request. Defaults to 0.slm_policy_filter
(String) Filter snapshots by a comma-separated list of SLM policy names that snapshots belong to. Accepts wildcards. Use the special pattern '_none' to match snapshots without an SLM policy.
8.3.0
- Tested versions of Ruby for 8.3.0: Ruby (MRI) 2.7, 3.0 and 3.1, JRuby 9.3.
API
- Added build hash to auto generated code. The code generator obtains the git hash from the Elasticsearch specification and adds it as a comment in the code. This allows us to track the version for each generated class.
- Updated for compatibility with Elasticsearch 8.3's API.
API Changes
cluster.delete_voting_config_exclusions
,cluster.post_voting_config_exclusions
- Add new parametermaster_timeout
(Time) Timeout for submitting request to master.machine_learning.infer_trained_model_deployment
is renamed tomachine_learning.infer_trained_model
. The url/_ml/trained_models/{model_id}/deployment/_infer
is deprecated since 8.3, use/_ml/trained_models/{model_id}/_infer
instead.machine_learning.preview_datafeed
- Adds new parameters:start
(String) The start time from where the datafeed preview should beginend
(String) The end time when the datafeed preview should stop
machine_learning.start_trained_model_deployment
- Adds new parameters:number_of_allocations
(Integer) The number of model allocations on each node where the model is deployed.threads_per_allocation
(Integer) The number of threads used by each model allocation during inference.queue_capacity
(Integer) Controls how many inference requests are allowed in the queue at a time.
search_mvt
- Adds new parameter:with_labels
(Boolean) If true, the hits and aggs layers will contain additional point features with suggested label positions for the original featuressnapshot.get
- Adds new parameter:index_names
(Boolean) Whether to include the name of each index in the snapshot. Defaults to true.
New Experimental APIs
security.has_privileges_user_profile
Determines whether the users associated with the specified profile IDs have all the requested privileges
8.2.2
- Updates dependency on
elastic-transport
to~> 8.0