# v7.17.10 ## Transport * Fixed an issue with subdirectory in url during retry. (#657) * Fixed a deadlock in transport (#603 & #640) # v7.17.7 ## Client * Added the option to override the `Content-Type` to enable usage of alternative serialization. ([#542](https://github.com/elastic/go-elasticsearch/pull/542)) * API is compatible with Elasticsearch 7.17.7 # v7.17.1 ## Client * Fixed serialisation of the `routing` parameter for the `BulkIndexerItem` routing property. # v7.17.0 ## Client * Fixed a race condition on metrics in transport [#397](https://github.com/elastic/go-elasticsearch/pull/397), thanks @mainliufeng ! * The client will now return an error if a required arguments is passed as a nil value. [#201](https://github.com/elastic/go-elasticsearch/issues/201) * API is compatible with Elasticsearch 7.17.0 # v8.0.0-alpha ## Client ### Elastic Transport * This is the first release using the all new `elastictransport` which now lives in the [elastic-transport-go](https://github.com/elastic/elastic-transport-go/) repository. The goal is to allow for reuse between this and future Go clients. ### API * Changed the `Body` parameter for `BulkIndexerItem` in favor of `io.ReadSeeker` to lower memory consumption when using the `esutil.BulkIndexer`. * Replaced the `Config` option `RetryOnTimeout` in favor of a new `RetryOnError` function which allows to dynamically chose what error should be retried." # v7.16.0 # Client * Adds versioning and routing options to the `BulkIndexer`. Thanks to @mehran-prs and @munkyboy ! * Adds CA fingerprinting. You can configure the client to only trust certificates that are signed by a specific CA certificate (CA certificate pinning) by providing a ca_fingerprint option. This will verify that the fingerprint of the CA certificate that has signed the certificate of the server matches the supplied value: ```go elasticsearch.NewClient(Config{ Addresses: []string{\"https://elastic:changeme@localhost:9200\"}, CertificateFingerprint: \"A6FB224A4386...\" }) ``` # API * New APIs: * ModifyDataStream, [documentation](https://www.elastic.co/guide/en/elasticsearch/reference/master/data-streams.html) * TransformUpgradeTransforms, [documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/upgrade-transforms.html) * Migration.GetFeatureUpgradeStatus, [documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/migration-api-feature-upgrade.html) * Migration.PostFeatureUpgrade, [documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/migration-api-feature-upgrade.html) * New **Experimental** API: * FleetSearch, [documentation](https://www.elastic.co/guide/en/elasticsearch/reference/7.16/fleet-search.html) * FleetMsearch, [documentation](https://www.elastic.co/guide/en/elasticsearch/reference/7.16/fleet-multi-search.html) * Changes: * DeleteByQuery * Removed _source, _source_excludes, _source_includes parameters. * UpdateByQuery * Removed _source, _source_excludes, _source_includes parameters. * OpenPointInTime * The parameter keep_alive is now required. * SearchMvt * Added TrackTotalHits, Indicate if the number of documents that match the query should be tracked. A number can also be specified, to accurately track the total hit count up to the number. * IngestPutPipeline * Added WithIfVersion, required version for optimistic concurrency control for pipeline updates. * IndicesGetIndexTemplate * WithName, a pattern that returned template names must match. * NodesHotThreads * WithSort, the sort order for 'cpu' type (default: total). * MLPutTrainedModel * WithDeferDefinitionDecompression, if set to `true` and a `compressed_definition` is provided, the request defers definition decompression and skips relevant validations. * TransformDeleteTransform * WithTimeout, controls the time to wait for the transform deletion. * TransformPutTransform * WithTimeout, controls the time to wait for the transform to start. * TransformUpdateTransform * WithTimeout, controls the time to wait for the update. * Promoted to stable: * FleetGlobalCheckpoints * GetScriptContext * GetScriptLanguages * IndicesResolveIndex * MonitoringBulk * RankEval * SearchableSnapshotsMount * SearchableSnapshotsStats * SecurityClearCachedServiceTokens * SecurityCreateServiceToken * SecurityDeleteServiceToken * SecurityGetServiceAccounts * SecurityGetServiceCredentials * ShutdownDeleteNode * ShutdownGetNode * ShutdownPutNode * TermsEnum" # v7.15.1 # Client * Allow User-Agent override via the `userAgentHeader` header. Credit goes to @aleksmaus! " # v7.15.0 # Client * Body compression can now be enabled in the client via the `CompressRequestBody` config option. Thank you @bschofield for this contribution ! * # API * New APIs: * Security * QueryAPIKeys [documentation](https://www.elastic.co/guide/en/elasticsearch/reference/7.15/security-api-query-api-key.html) * New **Experimental** API: * Indices * DiskUsage [documentation](https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-disk-usage.html) * FieldUsageStats [documentation](https://www.elastic.co/guide/en/elasticsearch/reference/master/field-usage-stats.html) * Nodes * ClearRepositoriesMeteringArchive [documentation](https://www.elastic.co/guide/en/elasticsearch/reference/7.15/clear-repositories-metering-archive-api.html) * GetRepositoriesMeteringInfo [documentation](https://www.elastic.co/guide/en/elasticsearch/reference/7.15/get-repositories-metering-api.html) * SearchMvt [documentation](https://www.elastic.co/guide/en/elasticsearch/reference/master/search-vector-tile-api.html)" # v7.14.0 # Client Starting in v7.14.0 the client performs a required product check before the first API call is executed. This product check allows the client to establish that it’s communicating with a supported Elasticsearch cluster. The product check requires a single HTTP request to the `info` API. In most cases this request will succeed quickly and then no further product check HTTP requests will be sent. # API * New APIs: * ILM * MigrateToDataTiers * ML * ResetJob * SAML * SamlAuthenticate * SamlCompleteLogout * SamlInvalidate * SamlLogout * SamlPrepareAuthentication * SamlServiceProviderMetadata * SQL * DeleteAsync * GetAsync * GetAsyncStatus * New **Beta** API: * TermsEnum, [see documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-terms-enum.html) # v7.13.1 # X-Pack * New API: * `SnapshotRepositoryAnalyze`" # v7.13.0 # Client * Adds support for compatibility header for Elasticsearch. If the environment variable 'ELASTIC_CLIENT_APIVERSIONING' is set to true or 1, the client will send the headers Accept and Content-Type with the following value: application/vnd.elasticsearch+json;compatible-with=7. * Favor `POST` method when only `GET` & `POST` method are available to prevent goroutine leak. https://github.com/elastic/go-elasticsearch/issues/250 * Filter master only nodes in discovery. https://github.com/elastic/go-elasticsearch/issues/256 # API * New APIs: * `FeaturesResetFeatures` * `IngestGeoIPStats` * New experimental APIs: * `ShutdownGetNode` * `ShutdownPutNode` * `ShutdownDeleteNode` # X-Pack * New APIs: * `MLDeleteTrainedModelAlias` * `MLPreviewDataFrameAnalytics` * `MLPutTrainedModelAlias` * APIs promoted to stable: * `TextStructureFindStructure` * `MLDeleteDataFrameAnalytics` * `MLDeleteTrainedModel` * `MLEvaluateDataFrame` * `MLExplainDataFrameAnalytics` * `MLGetDataFrameAnalytics` * `MLGetDataFrameAnalyticsStats` * `MLGetTrainedModels` * `MLGetTrainedModelsStats` * `MLPutDataFrameAnalytics` * `MLPutTrainedModel` * `MLStartDataFrameAnalytics` * `MLStopDataFrameAnalytics` * `MLUpdateDataFrameAnalytics` * New Beta APIs: * `SecurityCreateServiceToken` * `SecurityClearCachedServiceTokens` * `SecurityDeleteServiceToken` * `SecurityGetServiceAccounts` * `SecurityGetServiceCredentials` * New experimental APIs: * `SearchableSnapshotsCacheStats` # v7.12.0 # Transport * Added the `X-Elastic-Client-Meta` HTTP header (#240) * Fixed of by one error in the retry mechanism of the client (#242) # API ## New * `GetFeatures` within `Snapshot.GetFeatures` & `FeaturesGetFeatures` ## Added * `Search` with `MinCompatibleShardNode` - the minimum compatible version that all shards involved in search should have for this request to be successful. # X-Pack ## New * `EqlGetStatus` - Returns the status of a previously submitted async or stored Event Query Language (EQL) search * `Logstash` with `LogstashGetPipeline` `LogstashPutPipeline` and `LogstashDeletePipeline` [More info](https://www.elastic.co/guide/en/elasticsearch/reference/current/logstash-apis.html) * `TextStructureFindStructure` - Finds the structure of a text file. The text file must contain data that is suitable to be ingested into Elasticsearch. * `AutoscalingGetAutoscalingPolicy`, `AutoscalingPutAutoscalingPolicy`, `AutoscalingDeleteAutoscalingPolicy` and `AutoscalingGetAutoscalingCapacity` are promoted `stable` ## Added * `SearchableSnapshotsStats` with `WithLevel` - return stats aggregated at cluster, index or shard level. * `SearchableSnapshotsMount` with `WithStorage` - selects the kind of local storage used to accelerate searches. experimental, and defaults to `full_copy`. # v7.11.0 * Updated APIs for Elasticsearch 7.11" # v7.10.0 * Updated APIs for Elasticsearch 7.10 * Fixed capitalization of UUID values" # v7.9.0 * Updated APIs for Elasticsearch 7.9 * Util: Reinstate item.Body after it is consumed in BulkIndexer * Transport: Fix memory leak when retrying 5xx responses * Fixes and improvements to the test generator # v7.8.0 * Updated APIs for Elasticsearch 7.8.0 # v7.7.0 * API: Add convenience method for accessing the deprecation warnings in the response headers * Transport: Add the CACert global configuration option * Transport: Add support for global request headers * Util: Add the BulkIndexer helper; see [example](https://github.com/elastic/go-elasticsearch/tree/master/_examples/bulk#indexergo) * Examples: Add examples and benchmarks for the BulkIndexer helper * CI: Add workflows for Github Actions * CI: Remove Travis CI * Generator: Tests: Fixes and improvements * Generator: Source: Updates and improvements" # v7.6.0 * Ignore the ELASTICSEARCH_URL variable when address is passed in configuration * Retry on EOF errors" # v6.8.5 * Support for Elasticsearch 6.8.5 APIs * Add support for request retries * Add connection state management * Add support for node discovery in client # v7.5.0 * Support for Elasticsearch 7.5 APIs * Add support for request retries * Add connection state management * Add support for node discovery in client