Skip to content

Latest commit

 

History

History
1013 lines (869 loc) · 70.8 KB

CHANGELOG.md

File metadata and controls

1013 lines (869 loc) · 70.8 KB

Release 8.15.0

Updated the APIs to Elasticsearch 8.15.0 and added the support of OpenTelemetry. Read the elastic-transport-php README for more information about OpenTelemetry support.

Release 8.14.0

This release introduces 3 new APIs and 10 EXPERIMENTAL APIs.

Release 8.13.0

  • Added the mapTo($class) function to Elasticsearch response for mapping the result of ES|QL query to an object of stdClass or of a specific class #1398

This release introduces 6 new APIs and 6 EXPERIMENTAL APIs.

Release 8.12.0

Release 8.11.0

Release 8.10.0

Release 8.9.0

Release 8.8.0

Release 8.7.0

  • Added 2 new endpoints:
  • Added the delete_user_annotations boolean parameter in Ml.deleteJob. Should annotations added by the user be deleted
  • Added the delete_user_annotations boolean parameter in Ml.resetJob. Should annotations added by the user be deleted
  • Added the timeout time parameter in Transform.getTransformStats. Controls the time to wait for the stats
  • Added the from string parameter in Transform.startTransform. Restricts the set of transformed entities to those changed after this time
  • Allow plugin for php-http/discovery library #1294

Release 8.6.1

Release 8.5.0

  • Added 2 new endpoints:
  • Added 1 new experimental endpoint:
  • Added the with_limited_by boolean parameter in the endpoint Security.getApiKey. Flag to show the limited-by role descriptors of API Keys.
  • Added the with_profile_uid boolean parameter in the endpoint Security.getUser. Flag to retrieve profile uid (if exists) associated to the user.
  • Changed the description of uid parameter in the endpoint Security.getUserProfile. A comma-separated list of unique identifier for user profiles.
  • Added the with_limited_by boolean parameter in the endpoint Security.queryApiKeys. Flag to show the limited-by role descriptors of API Keys.
  • Added the ecs_compatibility string parameter in the endpoint TextStructure.findStructure. Optional parameter to specify the compatibility mode with ECS Grok patterns - may be either 'v1' or 'disabled'.

Release 8.4.0

  • Added a ClientInterface to simplify the mock of the Client, this is a fix for #1227 #1249
  • Added the support of Symfony HTTP client, fixing the issue #1241 #1243
  • Added the API compatibility header #1233
  • Updated APIs for Elasticsearch 8.4 7815caa

Release 8.3.0

Release 8.2.0

Release 8.1.0

Release 8.0.1

  • Fixed NoNodeAvailableException exception in endpoints e7d448d

Release 8.0.0

  • Finally released 8.0.0 GA.

Release 8.0.0-rc2

  • Added the common parameters in all the endpoints 6427f8c

Release 8.0.0-rc1

  • Fixed query string in API endpoints + added a first integration test e404235
  • Added AdapterOptions class and setNodePool() in ClientBuilder 9150f71
  • Fixed urlencode in params, Exception in test code generation 142327b
  • Improved client/server response exception messages 50de3e6

Release 8.0.0-alpha

First alpha release of elasticsearch-php 8.0.0.

This major release is a complete new PHP client for Elasticsearch. We build it from scratch! We tried to reduce the BC breaks as much as possible but there are some (big) differences:

Architectural changes:

  • we changed the namespace, now everything is under Elastic\Elasticsearch
  • we used the elastic-transport-php library for HTTP communications;
  • we changed the Exception model, using the namespace Elastic\Elasticsearch\Exception. All the exceptions extends the ElasticsearchException interface, as in 7.x
  • we changed the response type of each endpoints using an Elasticsearch response class. This class wraps a a PSR-7 response allowing the access of the body response as array or object. This means you can access the API response as in 7.x, no BC break here! 👼
  • we changed the ConnectionPool in NodePool. The connection naming was ambigous since the objects are nodes (hosts)

You can have a look at the BREAKING_CHANGES file for more information.

Release 7.17.0

Release 7.16.0

  • Added support of includePortInHostHeader in ClientBuilder::fromConfig #1181
  • Fixed UTF-16 issue in SmartSerializer with single unpaired surrogate in unicode escape #1179
  • Replace trait with abstract class to avoid Deprecated Functionality issue in PHP 8.1 #1175

Release 7.15.0

  • Updated endpoints for Elasticsearch 7.15.0 995f6d4

Release 7.14.0

  • Usage of psr/log version 2 #1154
  • Update search iterators to send scroll_id inside the request body #1134
  • Added the ingest.geoip.downloader.enabled=false setting for ES 5867351
  • Removed phpcs for autogenerated files (endpoints) 651c57b

Release 7.13.1

  • Added port in url for trace and logger messages #1126

Release 7.13.0

  • (DOCS) Added the HTTP meta data section #1143
  • Added support for API Compatibility Header #1142
  • (DOCS) Added Helpers section to PHP book #1129
  • Added the API description in phpdoc section for each endpoint 9e05c81
  • Usage of PHPUnit 9 only + migrated xml configurations 038b5dd

Release 7.12.0

  • Updated the endpoints for ES 7.12 + removed cpliakas/git-wrapper in favor of symplify/git-wrapper 136d5b9
  • Fixed warning header as array in YAML tests generator 0d81be1
  • Refactored TEST_SUITE with free, platinum + removed old YamlRunnerTest f69d96f

Release 7.11.0

  • Added the X-Elastic-Client-Meta header which is used by Elastic Cloud and can be disabled with ClientBuilder::setElasticMetaHeader(false) #1089
  • Replaced array_walk with array_map in Connection::getURI for PHP 8 compatibility #1075
  • Remove unnecessary InvalidArgumentExceptions #1069
  • Introducing PHP 8 compatibility #1063
  • Replace Sami by Doctum and fix .gitignore #1062

Release 7.10.0

  • Updated endpoints and namespaces for Elasticsearch 7.10 3ceb748
  • Fixed ClientBuilder::fromConfig allowing multiple function parameters (e.g. setApiKey) #1076
  • Refactored the YAML tests using generated PHPUnit code 85fadc2

Release 7.9.1

  • Fixed using object instead of array in onFailure transport event #1066
  • Fixed reset custom header after endpoint call #1065
  • Show generic error messages when server returns no response #1056

Release 7.9.0

  • Updated endpoints and namespaces for Elasticsearch 7.9 28bf0ed
  • Moved scroll_id into body for search operations in the documentation #1052
  • Fixed PHP 7.4 preloading feature for autoload.php #1051
  • Improved message of JSON errors using json_last_error_msg() #1045

Release 7.8.0

Release 7.7.0

  • Removed setId() into endpoints, fixed util/GenerateEndpoints.php #1026
  • Fixes JsonErrorException with code instead of message #1022
  • Better exception message for Could not parse URI #1016
  • Added JUnit log for PHPUnit 88b7e1c
  • Added the XPack endpoints 763d91a

Release 7.6.1

  • Fixed issue with guzzlehttp/ringphp and guzzle/streams using forks ezimuel/ringphp and ezimuel/guzzlestreams 92a6a4a

Release 7.6.0

  • Generated the new endpoints for Elasticsearch 7.6.0 be31f31

Release 7.5.1

  • Fixes port missing in log #925 75e0888
  • Added ClientBuilder::includePortInHostHeader() to add the port in the Host header. This fixes #993. By default the port is not included in the Host header. #997
  • Replace abandoned packages: ringphp, streams and phpstan-shim #996
  • Fixed gzip compression when setting Cloud Id #986

Release 7.5.0

  • Fixed Client::extractArgument iterable casting to array; this allows passing a Traversable body for some endpoints (e.g. Bulk, Msearch, MsearchTemplate) #983
  • Fixed the Response Exception if the reason field is null #980
  • Added support for PHP 7.4 #976

Release 7.4.1

  • We added the suppress operator @ for the deprecation messages @trigger_error(). With this approach we don't break existing application that convert PHP errors in Exception (e.g. using Laravel with issue https://github.com/babenkoivan/scout-elasticsearch-driver/issues/297) Using the @ operator is still possible to intercept the deprecation message using a custom error handler. #973
  • Add missing leading slash in the URL of put mapping endpoint #970
  • Fix pre 7.2 endpoint class name with aliases + reapply fix #947. This PR solved the unexpected BC break introduce in 7.4.0 with the code generation tool #968

Release 7.4.0

Release 7.3.0

  • Added support for simplified access to the X-Opaque-Id header #952
  • Added the HTTP port in the log messages #950
  • Fixed hostname with underscore (ClientBuilder::prependMissingScheme) #949
  • Removed unused Monolog in ClientBuilder #948

Release 7.2.2

  • Reintroduced the optional parameter in Elasticsearch\Namespaces\IndicesNamespace::getAliases(). This fixes the BC break introduced in 7.2.0 and 7.2.1. #947

Release 7.2.1

  • Reintroduced Elasticsearch\Namespaces\IndicesNamespace::getAliases() as proxy to IndicesNamespace::getAlias() to prevent BC breaks. The getAliases() is marked as deprecated and it will be removed from elasticsearch-php 8.0 #943

Docs

  • Fixed missing put mapping code snippet in code examples #938

Release 7.2.0

  • Updated the API endpoints for working with Elasticsearch 7.2.0:
    • added wait_for_active_shards parameter to indices.close API;
    • added expand_wildcards parameter to cluster.health API;
    • added include_unloaded_segments, expand_wildcards, forbid_closed_indicesparameters toindices.stats` API. [27d721b]
  • Updated the phpdoc parameters for all the API endpoints [27d721b]
  • Improved the Travis CI speed using cache feature with composer #929
  • Fixed php_uname() usage checking if it is disabled #927
  • Added support of Elastic Cloud ID and API key authentication #923

Release 7.1.1

  • Fixed ClientBuilder::setSSLVerification() to accept string or boolean #917
  • Fix type hinting for setBody in Elasticsearch\Endpoints\Ingest\Pipeline\Put #913

Release 7.1.0

  • Added warning log for Elasticsearch response containing the Warning header #911
  • Fixed #838 hosting company is blocking ports because of YamlRunnerTest.php #844
  • Specialized inheritance of NoNodesAvailableException to extend ServerErrorResponseException instead of the generic \Exception #607
  • Fixed scroll TTL is extracted but not set as a body param #907

Testing

  • Improved the speed of integration tests removing snapshots delete from YamlRunnerTest::clean #911
  • Reduced the number of skipping YAML integration tests from 20 to 6 #911

Docs

  • Documentation updated for Elasticsearch 7 #904

Release 7.0.2

  • Fixed incorrect return type hint when using async requests/futures #905

Release 7.0.1

  • Fixed SniffingConnectionPool removing the return type of Connection::sniff() #899

Release 7.0.0

  • Requirement of PHP 7.1 instead of 7.0 that is not supported since 1 Jan 2019. #897
  • Code refactoring using type hints and return type declarations where possible #897
  • Update vendor libraries (PHPUnit 7.5, Symfony YAML 4.3, etc) #897
  • Updated all the API endpoints using the latest 7.0.0 specs of Elasticsearch #897
  • Added the User-Agent in each HTTP request #898
  • Simplified the logging methods logRequestFail($request, $response, $exception) and logRequestSuccess($request, $response) in Elasticsearch\Connections\Connection #876
  • Fix json_encode for unicode(emoji) characters 856
  • Fix HTTP port specification using CURLOPT_PORT, not anymore in the host 782

Release 6.7.1

  • Added track_total_hits in search endpoint 0c9ff47

Release 6.7.0

  • Removed requirement of {type} part in indices.put_mapping, see new API specification here
  • Added seq_no_primary_term parameter in bulk endpoint #884
  • Added include_type_name, if_primary_term, if_seq_no in delete endpoint #884
  • Added include_type_name in get, index, indices.create, indices.field.get, indices.get, indices.mapping.get, indices.mapping.getfield, indices.mapping.put, indices.rollover, indices.template.get, indices.template.put endpoints #884
  • Added seq_no_primary_term in search endpoint #884
  • Added if_primary_term', 'if_seq_noin update endpoint #884

Testing

  • Fix tests for PHP 7 with ES 6.7 [5401479

Docs

Release 6.5.0

  • Remove _suggest endpoint, which has disappeared from ES6 #763
  • Fix SearchHitIterator key duplicates #872
  • Fixing script get and delete by removing lang from endpoint url #814
  • Fix SearchResponseIterator is scrolling the first page twice #871, issue #595

Docs

  • [DOCS] Add reference to parse_url() for Extended Host Configuration #778
  • [DOCS] Update php version requirement #757
  • [DOCS] Update community.asciidoc, added ElasticSearchQueryDSL project #749
  • [DOCS] Proper return type array for get method for IndicesNamespace #651
  • [DOCS] Fix full docs link #862
  • [DOCS] Update breaking-changes.asciidoc, removal of ClientBuilder::defaultLogger() 879

Testing

  • Fix integration tests using docker #867

Release 6.1.0

  • Add 'wait_for_no_initializing_shards' to Cluster\Health whitelist [98a372c]
  • Add 'wait_for_active_shards' to Indices\Open whitelist [0275fe5]
  • Add 'max_concurrent_searches' to msearch whitelist [5624123]
  • Add 'max_concurrent_shard_requests' param to MSearch endpoint [00800c1]
  • Add ReloadSecureSettings endpoint [75b32b2]
  • Remove obsolete Shutdown API [c75d690]
  • Fix: Restore::setBody() does not throw exceptions (#828) [a96bb9c]
  • Fixed php 7.3 compatibility for elasticsearch 6 (#827) [77916b2]
  • Fix issue with getting status of respository and snapshots. (#719) [2d11682]
  • fix DeleteByQuery param white list (#748) [8d963c6]

Docs

  • [Docs] Update elasticsearch version (#743) [043ad4f]
  • [DOCS] reuqest → request typo fix (#728) [68db9f0]
  • [DOCS] Fix documentation example of upsert (#730) [805329b]
  • [DOCS] Replace deprecated string type with keyword type for index operations (#736) [a550507]

Testing

Release 6.0.1

  • Fix imports [0106351]
  • ClientBuilder: setLogger() and setTracer() only accept \Psr\Log\LoggerInterface (#673) [0270c4f]
  • fix for invalid GET /_aliases route. (#663) [6d467fa]
  • Remove PutTemplate endpoint, lang param of PutScript no longer used [a13544f] Note: I'm considering PutTemplate removal a bugfix, since the API doesn't exist in ES Core anymore. Using the endpoint throws an error, so the removal is just fixing an existing bug, hence 6.0.1 instead of 6.1.0

Docs

  • [DOCS] Add note about separate X-Pack library to README (#694) [6ffdef8]
  • [DOCS] add link to community index helper (#681) [644f7f7]
  • [DOCS] Add missing content for breaking changes page [5a515ac]
  • [DOCS] update autogenerated api docs [7f2cd0b]
  • [DOCS] Update version tables [b824bb7]

Release 6.0.0

  • Add Ingest\ProcessorGrok endpoint [800b1ec]
  • Add Cluster\RemoteInfo endoint [dfd8c3c]
  • Add Unauthorized401Exception [cc68efd]
  • Add verify as acceptable query string parameter for createRepository (#665) [885bfea]
  • Fix parsing of NodesInfo for Sniffing [e22f67f]
  • Do not schedule connection pool checks on 4xx level errors [fd75e99]
  • Add 'terminate_after' to Count endpoint whitelist (#634) [c3cacd7]

Docs

  • [DOCS] Flip Branch / PHP Version table (#656) [fa7bfb3]

Testing

  • [TEST] use proper TestCase parent clsas [766b440]
  • [TEST] add PHPStan to build (#628) [946cd65]
  • [TEST] Fix some PHPCS violations in tests [18a38dd]
  • [src] add PHP_CodeSniffer (#647) [24900ef]
  • [TEST] add PHP_CodeSniffer to build (#638) [088a509]
  • [TEST] Use tests from corresponding ES version (#649) [75c6680]
  • [TEST] Add support for bad_request in yaml runner [ad86f91]
  • [TEST] max_compilations_per_minute is now max_compilations_rate [ebdba06]
  • [TEST] print elasticsearch.log if cluster fails to start [fe796aa]
  • [TEST] move integration test to dedicated test file [71ccfc1]
  • [TEST] Client does not support accepting Yaml format responses [fc9a9f9]

Release 6.0.0-beta1

Woo!

  • Use upper-case "Host" header [045aac4]
  • Add 'allow_no_indices' param to Indices\Delete whitelist [3a3a5ab]
  • Add 'verbose' param to Snapshot\Get whitelist [b70b933]
  • Add 'pre_filter_shard_size' param to Search whitelist [f708d9d]
  • Add 'ignore_unavailable' param to Indices\Delete whitelist [8133021]
  • Add 'include_defaults' param to Cluster\Settings\Get whitelist [8e5ab38]

Docs

  • [DOCS] Remove Sami from composer.json and update docs (#619) [fcd5ff1]
  • [Docs] recommend composer/ca-bundle instead of Kdyby/CurlCaBundle (#613) [7f43b2e]

Testing

  • [TEST] Fix content-type assertions in test to match case [5b37117]
  • Capitalize 'Content-Type' for maximum compatibility [b8ad96c]
  • [TEST] Use percentage watermarks to be compatible with default flood [95d2f89]
  • [TEST] remove watermark flood from static config [9b71940]
  • Shrink API was not setting body correctly [e0f0985]
  • [TEST] Add some missing and required static configs [38febbe]
  • [TEST] Allow skipping individual tests inside of test file [51b9b9b]
  • Travis: add PHP 7.2 + ES 6.0 to build matrix (#622) [061f100]
  • [TEST] tests code cleanup (#618) [dc5d18c]
  • [TEST] Fix RoundRobinSelector Tests (#617) [23a0ba8]
  • [TEST] skip new percentile tests for now [b5d9613]
  • [TEST] drop HHVM from build [#611] (#616) [21a2d24]
  • [TEST] Skip cat.aliases/20_headers.yml [c83ca74]
  • [TEST] YamlRunnerTest should run both .yml and .yaml files [98c2646]
  • [TEST] build against ES 6 on Travis [b5886a8]
  • [TEST] drop HHVM from build [#611] [0a7b402]
  • [TEST] test tweaks to appease stricter types [51f189e]
  • Fix ClientBuilder - pass correct argument for Elasticsearch\Endpoints\MsearchTemplate::__construct. (#605) [5f83b52]
  • [TEST] improve code quality of tests (#610) [9ea2156]
  • [TEST] Support headers in yaml runner, do some bad-comment cleaning [57b5489]
  • [TEST] fix handling of format for Cat tests [a24b7d1]
  • [TEST] test files are now .yml instead of .yaml [ceac5bd]