|
| 1 | +# CHANGELOG |
| 2 | + |
| 3 | +### UNRELEASED |
| 4 | + |
| 5 | + |
| 6 | +<Contributors, please add your changes below this line> |
| 7 | + |
| 8 | +### 1.16.0 - 2018-06-07 |
| 9 | + |
| 10 | +🎉 Note to contributors: |
| 11 | +Everybody is now able to run the test on Travis, since we moved to temporary credentials.️ ⤵️ |
| 12 | +https://blog.algolia.com/travis-encrypted-variables-external-contributions/ |
| 13 | + |
| 14 | +* **Deprecation**: Keys should not be managed at the Index level but at the Client level |
| 15 | + |
| 16 | + All methods `Index.(list|get|add|update)_api_keys()` are now |
| 17 | + deprecated. If you already have keys on the Index, it would be best |
| 18 | + to delete them and regenerate new keys with client, adding the `indexes` |
| 19 | + restriction. |
| 20 | + |
| 21 | + Example: |
| 22 | + ```python |
| 23 | + client.add_api_key({ |
| 24 | + 'acl': 'search', |
| 25 | + 'indexes': 'my_index_name', |
| 26 | + }) |
| 27 | + ``` |
| 28 | + |
| 29 | +* Feat: Let you define all API keys capabilities in one map for `update_api_key` and `add_api_key` |
| 30 | + |
| 31 | + Example: |
| 32 | + ```python |
| 33 | + client.add_api_key({ |
| 34 | + 'acl': ['search'], |
| 35 | + 'validity': 300, |
| 36 | + 'maxQueriesPerIPPerHour': 100, |
| 37 | + 'maxHitsPerQuery': 20, |
| 38 | + 'indexes': ['dev_*'], |
| 39 | + 'referers': ['algolia.com/*'], |
| 40 | + 'queryParameters': 'typoTolerance=strict&ignorePlurals=false', |
| 41 | + 'description': 'Limited search only API key for algolia.com' |
| 42 | + }) |
| 43 | + ``` |
| 44 | + instead of |
| 45 | + ```python |
| 46 | + client.add_api_key(['search'], 300, 100, 20, ['dev_*']) |
| 47 | + ``` |
| 48 | + |
| 49 | +* Fix: Adding a rule with an empty ID failed silently, it will now raise an exception |
| 50 | + |
| 51 | +* Fix: `Index.get_objects` requires an array for `attributes_to_retrieve` |
| 52 | + strings could be passed before but it would fail silently every time |
| 53 | + See [#299](https://github.com/algolia/algoliasearch-client-python/issues/299) |
| 54 | + |
| 55 | +* Fix: When browsing, ensure cursor is passed in the body |
| 56 | + Cursor can become so long that the generated URL fails (error HTTP 414). |
| 57 | + |
| 58 | +* Chore: Add Python version to the UserAgent |
| 59 | + |
| 60 | +### 1.15.3 - 2018-03-15 |
| 61 | + |
| 62 | +* Remove the `[security]` flair of `requests` |
| 63 | + |
| 64 | +### 1.15.2 - 2017-12-18 |
| 65 | + |
| 66 | +* Add 'page' and 'hitsPerPage' to list_user_ids |
| 67 | + |
| 68 | +### 1.15.1 - 2017-12-05 |
| 69 | + |
| 70 | +* Implement delete_by, an atomic delete_by_query |
| 71 | +* Deprecate delete_by_query |
| 72 | + |
| 73 | +### 1.15.0 - 2017-12-05 |
| 74 | + |
| 75 | +* Implement iter_synonyms to browse synonyms |
| 76 | +* Implement iter_rules to browse rules |
| 77 | +* Implement an optional parameter for copy_index that allows a partial copy of an index |
| 78 | + |
| 79 | +### 1.14.1 - 2017-11-06 |
| 80 | + |
| 81 | +* Fix request_options not always optional |
| 82 | + |
| 83 | +### 1.14.0 - 2017-10-29 |
| 84 | + |
| 85 | +* Add per-request parameters |
| 86 | +* Add multi-cluster support |
| 87 | + |
| 88 | +### 1.13.0 - 2017-01-31 |
| 89 | + |
| 90 | +* Add rules endpoints |
| 91 | + |
| 92 | +### 1.12.0 - 2017-01-31 |
| 93 | + |
| 94 | +* Do not ship the certificates anymore |
| 95 | + |
| 96 | +### 1.11.2 - 2017-01-31 |
| 97 | + |
| 98 | +* Decode the README with utf-8 encoding in setup.py |
| 99 | + |
| 100 | +### 1.11.1 - 2017-01-02 |
| 101 | + |
| 102 | +* Add `forward_to_replicas` on top of `forward_to_slaves` |
| 103 | + |
| 104 | +### 1.11.0 - 2016-12-02 |
| 105 | + |
| 106 | +* Configure DNS resolvinf timeout |
| 107 | +* Implement new retry logic |
| 108 | + |
| 109 | +### 1.10.1 - 2016-11-29 |
| 110 | + |
| 111 | +* Add `search_for_facet_value` to supplant `search_facet` |
| 112 | + |
| 113 | +### 1.10.0 - 2016-10-19 |
| 114 | + |
| 115 | +* Add `attribute_to_retrieve` to `get_objects` |
| 116 | +* Add `no_create` with `partial_update_object` |
| 117 | +* Implement the search in facet API end point |
| 118 | + |
| 119 | +### 1.9.2 - 2016-08-08 |
| 120 | + |
| 121 | +* Fix error on large API keys by including them in the JSON body instead of as a header |
| 122 | +* Fix potential parsing error in case of httpCode == 4XX |
| 123 | + |
| 124 | +### 1.9.1 - 2016-07-05 |
| 125 | + |
| 126 | +* Fix the `strategy` parameter of `mutliple_queries` |
| 127 | +* Add the `forwardToSlaves` parameter of `set_settings` |
| 128 | + |
| 129 | +### 1.9.0 - 2016-06-15 |
| 130 | + |
| 131 | +* Implement the new synonym API functions |
| 132 | +* Ensure the hosts are chosen randomly when retrying for better balancing |
| 133 | + |
| 134 | +### 1.8.0 - 2016-02-11 |
| 135 | + |
| 136 | +* Upgrade to requests[security]>=2.9.1 to fix the underlying SNI issues |
| 137 | + |
| 138 | +### 1.7.1 - 2015-10-23 |
| 139 | + |
| 140 | +* Add compatibility with Google Appengine |
| 141 | + |
| 142 | +### 1.7.0 - 2015-10-16 |
| 143 | + |
| 144 | +* Remove the retry on 4XX errors |
| 145 | +* Add new secured api key |
| 146 | +* Fix bug with distinct on the deleteByQuery method |
| 147 | + |
| 148 | +### 1.6.8 - 2015-10-07 |
| 149 | + |
| 150 | +* Catch all exceptions in the retry strategy |
| 151 | + |
| 152 | +### 1.6.7 - 2015-10-06 |
| 153 | + |
| 154 | +* Fix an issue with the handling of connection errors |
| 155 | + |
| 156 | +### 1.6.6 - 2015-09-08 |
| 157 | + |
| 158 | +* Fix an issue with ObjectID that are not string |
| 159 | +* Fix an issue with default dict parameter |
| 160 | + |
| 161 | +### 1.6.4 - 2015-08-17 |
| 162 | + |
| 163 | +* The JSON encoder fallback to unicode/str if it raises TypeError |
| 164 | + |
| 165 | +### 1.6.3 - 2015-08-13 |
| 166 | + |
| 167 | +* Fix issue with unicode query |
| 168 | + |
| 169 | +### 1.6.2 - 2015-08-02 |
| 170 | + |
| 171 | +* Search now uses POST request instead of GET |
| 172 | + |
| 173 | +### 1.6.1 - 2015-07-30 |
| 174 | + |
| 175 | +* Fix PyPI build |
| 176 | + |
| 177 | +### 1.6.0 - 2015-07-30 |
| 178 | + |
| 179 | +* Rewrite all the package. The API Client is 100% backward compatible. |
| 180 | +* Switch from urllib3 to requests |
| 181 | +* Various fix |
| 182 | + |
| 183 | +### 1.5.9 - 2015-07-23 |
| 184 | + |
| 185 | +* Fix browse_all and browse_from methods |
| 186 | + |
| 187 | +### 1.5.8 - 2015-07-10 |
| 188 | + |
| 189 | +* Add the ability to use the api behind a proxy |
| 190 | + |
| 191 | +### 1.5.5 - 2015-06-16 |
| 192 | + |
| 193 | +* Fix issue with non existing facet in the result set for the disjunctive faceting method |
| 194 | +* Add browse_from and browse_all methods |
| 195 | + |
| 196 | +### 1.5.4 - 2015-05-04 |
| 197 | +* Add new methods to add/update api key |
| 198 | +* Add batch method to target multiple indices |
| 199 | +* Add strategy parameter for the multipleQueries |
| 200 | +* Add new method to generate secured api key from query parameters |
| 201 | + |
| 202 | +### 1.5.3 - 2015-04-24 |
| 203 | + |
| 204 | +* Add method to forward the end user ip |
| 205 | + |
| 206 | +### 1.5.2 - 2015-04-09 |
| 207 | + |
| 208 | +* Better retry strategy using two different provider (Improve high-availability of the solution, retry is done on algolianet.com) |
| 209 | +* Read operations are performed to APPID-dsn.algolia.net domain first to leverage Distributed Search Network (select the closest location) |
| 210 | +* Improved timeout strategy: increasse timeout after 2 trials & have a different read timeout for search operations |
| 211 | + |
| 212 | +### 1.5.1 - 2015-03-13 |
| 213 | + |
| 214 | +* Fixed ImportError with Python 3.4 |
| 215 | + |
| 216 | +### 1.5.0 - 2014-12-26 |
| 217 | + |
| 218 | +* Added timeout (connect timeout = 1s & read timeout = 30s). Can be overridden with set_timeout method |
| 219 | + |
| 220 | +### 1.4.0 - 2014-11-29 |
| 221 | + |
| 222 | +* Moved API calls to algolia.net domain instead of algolia.io domain |
| 223 | + |
| 224 | +### 1.3.11 - 2014-10-22 |
| 225 | + |
| 226 | +* Add more information when hosts are unreachable |
| 227 | + |
| 228 | +### 1.3.10 - 2014-10-11 |
| 229 | + |
| 230 | +* Do not assume that objectIDs are strings. |
| 231 | + |
| 232 | +### 1.3.9 - 2014-09-17 |
| 233 | + |
| 234 | +* Making Client and Index new-style python classes for easier extension |
| 235 | + |
| 236 | +### 1.3.{2,3,4,5,6,7,8} - 2014-09-15 |
| 237 | + |
| 238 | +* Fixed resources/ca-bundle.crt inclusion |
| 239 | + |
| 240 | +### 1.3.1 - 2014-09-14 |
| 241 | + |
| 242 | +* Added update_user_key & update_user_key |
| 243 | + |
| 244 | +### 1.3.0 - 2014-08-25 |
| 245 | + |
| 246 | +* Use snake-case everywhere (backward compatible) |
| 247 | + |
| 248 | +### 1.2.14 - 2014-08-22 |
| 249 | + |
| 250 | +* More fixes around bool/json serialization |
| 251 | + |
| 252 | +### 1.2.13 - 2014-08-21 |
| 253 | + |
| 254 | +* Fixed waitTask's sleep |
| 255 | + |
| 256 | +### 1.2.12 - 2014-08-20 |
| 257 | + |
| 258 | +* Fixed boolean-based query parameter encoding |
| 259 | + |
| 260 | +### 1.2.11 - 2014-07-17 |
| 261 | + |
| 262 | +* Added getObjects |
| 263 | +* Added deleteByQuery |
| 264 | + |
| 265 | +### 1.2.10 - 2014-04-18 |
| 266 | + |
| 267 | +* Fixed decimal JSON serialization |
| 268 | +* Force urllib3>=1.8.1 dependency to work-around a GAE bug (https://github.com/shazow/urllib3/issues/356) |
| 269 | + |
| 270 | +### 1.2.9 - 2014-03-30 |
| 271 | + |
| 272 | +* Fixed invalid date->timestamp conversion |
| 273 | + |
| 274 | +### 1.2.8 - 2014-02-24 |
| 275 | + |
| 276 | +* Fixed python3 compatibility |
| 277 | + |
| 278 | +### 1.2.7 - 2014-02-24 |
| 279 | + |
| 280 | +* Added deleteObjects |
| 281 | +* Added generateSecuredApiKey based on an API Key, tagFilters and optional user token |
| 282 | +* Ability to specify a list of indexes targeted by a user API key |
| 283 | +* Missing UTF-8 encoding while generating DELETE URL |
| 284 | + |
| 285 | +### 1.2.6 - 2014-02-01 |
| 286 | + |
| 287 | +* Fixed encoding of objectID with slash |
| 288 | + |
| 289 | +### 1.2.5 - 2014-01-30 |
| 290 | + |
| 291 | +* Fallback on str() if JSON encoding fails |
| 292 | + |
| 293 | +### 1.2.4 - 2014-01-11 |
| 294 | + |
| 295 | +* Fixed bug on batch commands introduced in 1.2.3 |
| 296 | + |
| 297 | +### 1.2.3 - 2014-01-11 |
| 298 | + |
| 299 | +* Fixed doc strings |
| 300 | +* Refactor of batch commands |
| 301 | + |
| 302 | +### 1.2.2 - 2013-12-23 |
| 303 | + |
| 304 | +* Fixed encoding of dates |
| 305 | + |
| 306 | +### 1.2.1 - 2013-12-1 |
| 307 | + |
| 308 | +* Documentation of distinct feature |
| 309 | +* Store last exception and raise it instead of generic 'unreachable host' exception |
| 310 | + |
| 311 | +### 1.1.6 - 2013-12-10 |
| 312 | + |
| 313 | +* Improved readability of search & settings parameters |
| 314 | + |
| 315 | +### 1.1.5 - 2013-12-06 |
| 316 | + |
| 317 | +* Added browse method |
| 318 | + |
| 319 | +### 1.1.3 - 2013-12-06 |
| 320 | + |
| 321 | +* Added partialUpdateObjects method |
| 322 | + |
| 323 | +### 1.1.1 - 2013-11-08 |
| 324 | + |
| 325 | +* Encode array-based search params. |
| 326 | + |
| 327 | +### 1.1.0 - 2013-11-07 |
| 328 | + |
| 329 | +* Added clearIndex method |
| 330 | +* Added support of maxQueriesPerIPPerHour and maxHitsPerQuery in creation of API keys |
| 331 | + |
| 332 | +### 1.0.2 - 2013-10-11 |
| 333 | + |
| 334 | +* Fixed urlencode problem |
| 335 | + |
| 336 | +### 1.0.1 - 2013-10-09 |
| 337 | + |
| 338 | +* Fixed dependencies |
| 339 | + |
| 340 | +### 1.0.0 - 2013-10-09 |
| 341 | +* Make python client compatible with python 2.6+ (including Python 3.x) |
0 commit comments