Skip to content

Releases: elastic/elastic-transport-python

8.1.1

30 Mar 22:40
Compare
Choose a tag to compare

Fixed

  • Fixed JsonSerializer to return None if a response using Content-Type: application/json is empty instead of raising an error.

8.1.0

09 Mar 20:09
Compare
Choose a tag to compare

Fixed

  • Fixed Urllib3HttpNode and RequestsHttpNode to never require a valid certificate chain when using ssl_assert_fingerprint. Instead the internal HTTP client libraries will explicitly disable verifying the certificate chain and instead rely only on the certificate fingerprint for verification.

8.0.1

11 Feb 15:52
Compare
Choose a tag to compare

Fixed

  • Fixed AiohttpHttpNode to close TLS connections that aren't properly shutdown by the server instead of leaking them
  • Fixed Urllib3HttpNode to respect path_prefix setting in NodeConfig

8.0.0

09 Feb 18:37
Compare
Choose a tag to compare

Added

  • Added support for asyncio with AsyncTransport and AiohttpHttpNode
  • Added JsonSerializer, NdjsonSerializer
  • Added connections_per_node parameter to RequestsHttpNode
  • Added support for ssl_assert_fingerprint to RequestsHttpNode
  • Added experimental support for pinning non-leaf certificates
    via ssl_assert_fingerprint when using CPython 3.10+
  • Added support for node discovery via "sniffing" using the
    sniff_callback transport parameter
  • Added ability to specify ssl_version via ssl.TLSVersion enum
    instead of ssl.PROTOCOL_TLSvX for Python 3.7+
  • Added elastic_transport.client_utils module to help writing API clients
  • Added elastic_transport.debug_logging method to enable all logging for debugging purposes
  • Added option to set requests.Session.auth within RequestsHttpNode via NodeConfig._extras['requests.session.auth']

Changed

  • Changed *Connection classes to use *Node terminology
  • Changed connection_class to node_class
  • Changed ConnectionPool to NodePool
  • Changed ConnectionSelector to NodeSelector
  • Changed NodeSelector(randomize_hosts) parameter to randomize_nodes
  • Changed NodeSelector.get_connection() method to get()
  • Changed elastic_transport.connection logger name to elastic_transport.node
  • Changed Urllib3HttpNode(connections_per_host) parameter to connections_per_node
  • Changed return type of BaseNode.perform_request() to NamedTuple(meta=ApiResponseMeta, body=bytes)
  • Changed return type of Transport.perform_request() to NamedTuple(meta=ApiResponseMeta, body=Any)
  • Changed name of Deserializer into SerializersCollection
  • Changed ssl_version to denote the minimum TLS version instead of the only TLS version
  • Changed the base class for ApiError to be Exception instead of TransportError.
    TransportError is now only for errors that occur at the transport layer.
  • Changed Urllib3HttpNode to block on new connections when the internal connection pool is exhausted

Removed

  • Removed support for Python 2.7
  • Removed DummyConnectionPool and EmptyConnectionPool in favor of NodePool.

Fixed

  • Fixed a work-around with AiohttpHttpNode where method="HEAD" requests wouldn't mark the internal connection as reusable. This work-around is no longer needed when aiohttp>=3.7.0 is installed.
  • Fixed logic for splitting aiohttp.__version__ when determining if HEAD bug is fixed.

8.0.0-beta1

03 Feb 00:50
Compare
Choose a tag to compare
8.0.0-beta1 Pre-release
Pre-release

Added

  • Added support for asyncio with AsyncTransport and AiohttpHttpNode
  • Added JsonSerializer, NdjsonSerializer
  • Added connections_per_node parameter to RequestsHttpNode
  • Added support for ssl_assert_fingerprint to RequestsHttpNode
  • Added experimental support for pinning non-leaf certificates
    via ssl_assert_fingerprint when using CPython 3.10+
  • Added support for node discovery via "sniffing" using the
    sniff_callback transport parameter
  • Added ability to specify ssl_version via ssl.TLSVersion enum
    instead of ssl.PROTOCOL_TLSvX for Python 3.7+
  • Added elastic_transport.client_utils module to help writing API clients
  • Added elastic_transport.debug_logging method to enable all logging for debugging purposes
  • Added option to set requests.Session.auth within RequestsHttpNode via NodeConfig._extras['requests.session.auth']

Changed

  • Changed *Connection classes to use *Node terminology
  • Changed connection_class to node_class
  • Changed ConnectionPool to NodePool
  • Changed ConnectionSelector to NodeSelector
  • Changed NodeSelector(randomize_hosts) parameter to randomize_nodes
  • Changed NodeSelector.get_connection() method to get()
  • Changed elastic_transport.connection logger name to elastic_transport.node
  • Changed Urllib3HttpNode(connections_per_host) parameter to connections_per_node
  • Changed return type of BaseNode.perform_request() to NamedTuple(meta=ApiResponseMeta, body=bytes)
  • Changed return type of Transport.perform_request() to NamedTuple(meta=ApiResponseMeta, body=Any)
  • Changed name of Deserializer into SerializersCollection
  • Changed ssl_version to denote the minimum TLS version instead of the only TLS version
  • Changed the base class for ApiError to be Exception instead of TransportError.
    TransportError is now only for errors that occur at the transport layer.
  • Changed Urllib3HttpNode to block on new connections when the internal connection pool is exhausted

Removed

  • Removed support for Python 2.7
  • Removed DummyConnectionPool and EmptyConnectionPool in favor of NodePool.

Fixed

  • Fixed a work-around with AiohttpHttpNode where method="HEAD" requests wouldn't mark the internal connection as reusable. This work-around is no longer needed when aiohttp>=3.7.0 is installed.
  • Fixed logic for splitting aiohttp.__version__ when determining if HEAD bug is fixed.

8.0.0-alpha7

28 Dec 20:08
Compare
Choose a tag to compare
8.0.0-alpha7 Pre-release
Pre-release
v8.0.0a7

v8.0.0a7

7.16.0

13 Dec 21:00
Compare
Choose a tag to compare
  • Release created to be compatible with 7.16 clients
  • Deprecated Python 2.7, 3.4, and 3.5. Support will be removed in 8.0.0.

7.15.0

20 Sep 19:01
Compare
Choose a tag to compare

Release created to be compatible with 7.15 clients

No changes since 7.14.0

7.14.0

02 Aug 21:13
Compare
Choose a tag to compare

Release created to be compatible with 7.14 clients

No changes since 7.13.0

7.13.0

24 May 19:15
Compare
Choose a tag to compare

No changes since 7.12.0