<Contributors, please add your changes below this line>
-
2 methods about taskID initially available in the
Index
moved to theClient
. You could get some taskID from the engine without necessarily have an instance of Index, instead of instantiating an index that you won't need, you can now call wait_task and get_task_status on the client. The original methods on the index still work and are not deprecated.client.wait_ask(index_name, taskID) client.get_task_status(index_name, taskID)
🎉 Note to contributors:
Everybody is now able to run the test on Travis, since we moved to temporary credentials.️
-
Deprecation: Keys should not be managed at the Index level but at the Client level
All methods
Index.(list|get|add|update)_api_keys()
are now deprecated. If you already have keys on the Index, it would be best to delete them and regenerate new keys with client, adding theindexes
restriction.Example:
client.add_api_key({ 'acl': 'search', 'indexes': 'my_index_name', })
-
Feat: Let you define all API keys capabilities in one map for
update_api_key
andadd_api_key
Example:
client.add_api_key({ 'acl': ['search'], 'validity': 300, 'maxQueriesPerIPPerHour': 100, 'maxHitsPerQuery': 20, 'indexes': ['dev_*'], 'referers': ['algolia.com/*'], 'queryParameters': 'typoTolerance=strict&ignorePlurals=false', 'description': 'Limited search only API key for algolia.com' })
instead of
client.add_api_key(['search'], 300, 100, 20, ['dev_*'])
-
Fix: Adding a rule with an empty ID failed silently, it will now raise an exception
-
Fix:
Index.get_objects
requires an array forattributes_to_retrieve
strings could be passed before but it would fail silently every time See #299 -
Fix: When browsing, ensure cursor is passed in the body Cursor can become so long that the generated URL fails (error HTTP 414).
-
Chore: Add Python version to the UserAgent
- Remove the
[security]
flair ofrequests
- Add 'page' and 'hitsPerPage' to list_user_ids
- Implement delete_by, an atomic delete_by_query
- Deprecate delete_by_query
- Implement iter_synonyms to browse synonyms
- Implement iter_rules to browse rules
- Implement an optional parameter for copy_index that allows a partial copy of an index
- Fix request_options not always optional
- Add per-request parameters
- Add multi-cluster support
- Add rules endpoints
- Do not ship the certificates anymore
- Decode the README with utf-8 encoding in setup.py
- Add
forward_to_replicas
on top offorward_to_slaves
- Configure DNS resolvinf timeout
- Implement new retry logic
- Add
search_for_facet_value
to supplantsearch_facet
- Add
attribute_to_retrieve
toget_objects
- Add
no_create
withpartial_update_object
- Implement the search in facet API end point
- Fix error on large API keys by including them in the JSON body instead of as a header
- Fix potential parsing error in case of httpCode == 4XX
- Fix the
strategy
parameter ofmutliple_queries
- Add the
forwardToSlaves
parameter ofset_settings
- Implement the new synonym API functions
- Ensure the hosts are chosen randomly when retrying for better balancing
- Upgrade to requests[security]>=2.9.1 to fix the underlying SNI issues
- Add compatibility with Google Appengine
- Remove the retry on 4XX errors
- Add new secured api key
- Fix bug with distinct on the deleteByQuery method
- Catch all exceptions in the retry strategy
- Fix an issue with the handling of connection errors
- Fix an issue with ObjectID that are not string
- Fix an issue with default dict parameter
- The JSON encoder fallback to unicode/str if it raises TypeError
- Fix issue with unicode query
- Search now uses POST request instead of GET
- Fix PyPI build
- Rewrite all the package. The API Client is 100% backward compatible.
- Switch from urllib3 to requests
- Various fix
- Fix browse_all and browse_from methods
- Add the ability to use the api behind a proxy
- Fix issue with non existing facet in the result set for the disjunctive faceting method
- Add browse_from and browse_all methods
- Add new methods to add/update api key
- Add batch method to target multiple indices
- Add strategy parameter for the multipleQueries
- Add new method to generate secured api key from query parameters
- Add method to forward the end user ip
- Better retry strategy using two different provider (Improve high-availability of the solution, retry is done on algolianet.com)
- Read operations are performed to APPID-dsn.algolia.net domain first to leverage Distributed Search Network (select the closest location)
- Improved timeout strategy: increasse timeout after 2 trials & have a different read timeout for search operations
- Fixed ImportError with Python 3.4
- Added timeout (connect timeout = 1s & read timeout = 30s). Can be overridden with set_timeout method
- Moved API calls to algolia.net domain instead of algolia.io domain
- Add more information when hosts are unreachable
- Do not assume that objectIDs are strings.
- Making Client and Index new-style python classes for easier extension
- Fixed resources/ca-bundle.crt inclusion
- Added update_user_key & update_user_key
- Use snake-case everywhere (backward compatible)
- More fixes around bool/json serialization
- Fixed waitTask's sleep
- Fixed boolean-based query parameter encoding
- Added getObjects
- Added deleteByQuery
- Fixed decimal JSON serialization
- Force urllib3>=1.8.1 dependency to work-around a GAE bug (urllib3/urllib3#356)
- Fixed invalid date->timestamp conversion
- Fixed python3 compatibility
- Added deleteObjects
- Added generateSecuredApiKey based on an API Key, tagFilters and optional user token
- Ability to specify a list of indexes targeted by a user API key
- Missing UTF-8 encoding while generating DELETE URL
- Fixed encoding of objectID with slash
- Fallback on str() if JSON encoding fails
- Fixed bug on batch commands introduced in 1.2.3
- Fixed doc strings
- Refactor of batch commands
- Fixed encoding of dates
- Documentation of distinct feature
- Store last exception and raise it instead of generic 'unreachable host' exception
- Improved readability of search & settings parameters
- Added browse method
- Added partialUpdateObjects method
- Encode array-based search params.
- Added clearIndex method
- Added support of maxQueriesPerIPPerHour and maxHitsPerQuery in creation of API keys
- Fixed urlencode problem
- Fixed dependencies
- Make python client compatible with python 2.6+ (including Python 3.x)