Skip to content

Latest commit

 

History

History
296 lines (166 loc) · 6.29 KB

ChangeLog.md

File metadata and controls

296 lines (166 loc) · 6.29 KB

Changes Between 1.11.0 and 1.12.0 (unreleased)

No changes yet.

Changes Between 1.10.0 and 1.11.0 (Dec 25th, 2018)

effin_utf8 Dependency Dropped

This library no longer supports Ruby 1.8 and thus doesn't need to depend on the effin_utf8 gem.

Contributed by Luciano Sousa.

Changes Between 1.9.0 and 1.10.0 (Nov 27th, 2018)

Improved Resource Deserialisation

Bodies of responses with content length of 0 will no longer be deserialised.

This improves compatibility with future versions of RabbitMQ that will use Cowboy 2.7.0 or later, which doesn't include the content-type header for blank responses (e.g. PUTs).

Changes Between 1.9.0 and 1.9.1 (Oct 19th, 2017)

Spec files and development/CI scripts are no longer included into the gem.

Changes Between 1.8.0 and 1.9.0 (July 30th, 2017)

Make it Possible to Pass Faraday Adapter as Option

GitHub issue: #30

Contributed by Mrinmoy Das.

Changes Between 1.7.0 and 1.8.0 (Feb 1st, 2017)

Correct URI Path Segment Encoding

URI path segment encoding (e.g. vhosts, queue names, etc) in this client now correctly encodes spaces.

GitHub issue: #28.

Changes Between 1.6.0 and 1.7.0

Blank Tags by Default

The :tags attribute is no longer required by Client#update_user. If not provided, a blank list of tags will be used.

Changes Between 1.5.0 and 1.6.0

Definition Upload Support

The client now can upload definitions (of queues, exchanges, etc):

defs = {
        :queues => [{
          :name => 'my-definition-queue',
          :vhost => '/',
          :durable => true,
          :auto_delete =>  false,
          :arguments => {
             "x-dead-letter-exchange" => 'dead'
          }
        }]
      }.to_json

c.upload_definitions(defs)

Contributed by Pol Miro.

Changes Between 1.4.0 and 1.5.0

Support for URIs containing a path

If provided endpoint contains a path, it will be used instead of /api.

Contributed by Pol Miro.

Changes Between 1.3.0 and 1.4.0

Protocol Ports for Non-Administrators

Client#protocol_ports no longer fails with a nil pointer exception for non-administrators.

Hashie Upgrade

The library now depends on hashie ~> 3.2.

Contributed by Damon Morgan.

MultiJSON Upgrade

The library now depends on multi_json ~> 1.9.

Contributed by Damon Morgan.

Changes Between 1.2.0 and 1.3.0

Faraday Upgrade

The project now depends on Faraday 0.9.x.

Contributed by John Murphy.

Exchange Deletion

RabbitMQ::HTTP::Client#delete_exchange is a new function that deletes exchanges:

c.delete_exchange("/", "an.exchange")

Contributed by Matt Bostock.

Changes Between 1.1.0 and 1.2.0

Ruby 1.8 Compatibility Restored

The library no longer uses 1.9-specific hash syntax.

Changes Between 1.0.0 and 1.1.0

declare_exchange

It is now possible to declare an exchange over HTTP API using RabbitMQ::HTTP::Client#declare_exchange:

c.declare_exchange("/", exchange_name, :durable => false, :type => "fanout")

Contributed by Jake Davis (Simple).

Changes Between 0.9.0 and 1.0.0

Hashi Upgrade

The library now depends on hashie ~> 2.0.5.

Faraday Upgrade

The library now depends on faraday ~> 0.8.9.

MultiJSON Upgrade

The library now depends on multi_json ~> 1.8.4.

Changes Between 0.8.0 and 0.9.0

New Queue Binding Methods

RabbitMQ::HTTP::Client#queue_binding_info, RabbitMQ::HTTP::Client#bind_queue, and RabbitMQ::HTTP::Client#delete_queue_binding are new methods that operate on queue bindings:

c = RabbitMQ::HTTP::Client.new("http://guest:guest@127.0.0.1:15672")

c.bind_queue("/", "a.queue", "an.exchange", "routing.key")
c.queue_binding_info("/", "a.queue", "an.exchange", "properties.key")
c.delete_queue_binding("/", "a.queue", "an.exchange", "properties.key")

Contributed by Noah Magram.

Changes Between 0.7.0 and 0.8.0

Client#protocol_ports

RabbitMQ::HTTP::Client#enabled_protocols is a new method that returns a hash of enabled protocols to their ports. The keys are the same as returned by Client#enabled_protocols:

# when TLS and MQTT plugin is enabled
c.protocol_ports # => {"amqp" => 5672, "amqp/ssl" => 5671, "mqtt" => 1883}

Client#enabled_protocols

RabbitMQ::HTTP::Client#enabled_protocols is a new method that returns a list of enabled protocols. Some common values are:

  • amqp (AMQP 0-9-1)
  • amqp/ssl (AMQP 0-9-1 with TLS enabled)
  • mqtt
  • stomp
# when TLS and MQTT plugin is enabled
c.enabled_protocols # => ["amqp", "amqp/ssl", "mqtt"]

Changes Between 0.6.0 and 0.7.0

Support for Basic HTTP Auth Credentials in URI

It is now possible to pass credentials in the endpoint URI:

c = RabbitMQ::HTTP::Client.new("https://guest:guest@127.0.0.1:15672/")

Changes Between 0.5.0 and 0.6.0

Support for Advanced Connection Options

It is now possible to pass more options to Faraday connection, for example, HTTPS related ones:

c = RabbitMQ::HTTP::Client.new("https://127.0.0.1:15672/", username: "guest", password: "guest", ssl: {
  client_cer: ...,
  client_key: ...,
  ca_file:    ...,
  ca_path:    ...,
  cert_store: ...
})

Any options other than username and password will be passed on to Faraday::Connection.

Changes Between 0.4.0 and 0.5.0

Endpoint Reader

RabbitMQ::HTTP::Client#endpoint is a new reader (getter) that makes it possible to access the URI a client instance uses.

Changes Between 0.3.0 and 0.4.0

Meaningful Exceptions for 4xx and 5xx Responses

4xx and 5xx responses now will result in meaningful exceptions being raised. For example, 404 responses will raise Faraday::Error::ResourceNotFound.

Changes Between 0.2.0 and 0.3.0

MultiJSON Upgrade

The library now depends on multi_json ~> 1.7.0.

Changes Between 0.1.0 and 0.2.0

Support for more HTTP API operations

  • Operations on queues
  • Operations on users
  • Operations on permissions
  • Operations on parameters
  • Operations on policies

Original Release: 0.1.0

Support for many HTTP API operations

  • Status overview
  • Cluster nodes information
  • Operations on exchanges, queues, bindings
  • Operations on connections