Skip to content

Releases: elastic/elasticsearch-ruby

v8.15.0

13 Aug 06:59
Compare
Choose a tag to compare

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

06 Jun 15:41
Compare
Choose a tag to compare

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.

v7.17.11

03 Jun 17:42
Compare
Choose a tag to compare
  • 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 to elasticsearch-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

03 Apr 13:46
Compare
Choose a tag to compare

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

06 Feb 18:00
Compare
Choose a tag to compare

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

v8.11.2

06 Feb 17:58
Compare
Choose a tag to compare

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

v8.12.1

25 Jan 16:06
Compare
Choose a tag to compare

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

25 Jan 16:06
Compare
Choose a tag to compare

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

17 Jan 16:49
Compare
Choose a tag to compare

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.0

07 Nov 18:37
Compare
Choose a tag to compare

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.