Skip to content

Releases: michaelklishin/rabbit-hole

2.8.0

14 Apr 13:04
Compare
Choose a tag to compare

Changes Between 2.7.0 and 2.8.0 (Apr 12, 2021)

Global Runtime Parameters

The library now supports global runtime parameters:

// list all global parameters
params, err := rmqc.ListGlobalParameters()
// => []GlobalRuntimeParameter, error
// get a global parameter
p, err := rmqc.GetGlobalParameter("name")
// => *GlobalRuntimeParameter, error
// declare or update a global parameter
resp, err := rmqc.PutGlobalParameter("name", map[string]interface{
    endpoints: "amqp://server-name",
})
// => *http.Response, error
// delete a global parameter
resp, err := rmqc.DeleteGlobalParameter("name")
// => *http.Response, error

Contributed by @ChunyiLyu.

GitHub issue: #180

v2.7.0

30 Mar 17:04
Compare
Choose a tag to compare

Changes Between 2.6.0 and 2.7.0 (Mar 30, 2021)

This release contains minor breaking public API changes
and targets RabbitMQ 3.8.x (the only supported version at the time of writing)
exclusively.

Support for Modern Health Check Endpoints

The client now supports modern health check endpoints
(same checks as provided by rabbitmq-diagnostics):

import (
       "github.com/michaelklishin/rabbit-hole/v2"
)

rmqc, _ = NewClient("http://127.0.0.1:15672", "username", "$3KrEƮ")

res1, err1 := rmqc.HealthCheckAlarms()

res2, err2 := rmqc.HealthCheckLocalAlarms()

res3, err3 := rmqc.HealthCheckCertificateExpiration(1, DAYS)

res4, err4 := rmqc.HealthCheckPortListener(5672)

res5, err5 := rmqc.HealthCheckProtocolListener(AMQP091)

res6, err6 := rmqc.HealthCheckVirtualHosts()

res7, err7 := rmqc.HealthCheckNodeIsMirrorSyncCritical()

res8, err8 := rmqc.HealthCheckNodeIsQuorumCritical()

Contributed by Martin @mkrueger-sabio Krueger.

GitHub issue: #173

Support for Inspecting Shovel Status

ListShovelStatus is a new function that returns a list of
Shovel status reports for a virtual host:

res, err := rmqc.ListShovelStatus("a-virtual-host")

Contributed by Martin @mkrueger-sabio Krueger.

GitHub issue: #178

Support for Lists of Shovel URIs

Shovel definition now uses a dedicated type, ShovelURISet, to represent
a set of URIs that will be tried sequentially until the Shovel
can successfully connect and authenticate:

sDef := ShovelDefinition{
            SourceURI:         ShovelURISet([]string{"amqp://host2/%2f", "amqp://host3/%2f"}),
            SourceQueue:       "mySourceQueue",
            DestinationURI:    ShovelURISet([]string{"amqp://host1/%2f"}),
            DestinationQueue:  "myDestQueue",
            AddForwardHeaders: true,
            AckMode:           "on-confirm",
            DeleteAfter:       "never",
        }

Source and destination URI sets are only supported by the Shovel plugin in
RabbitMQ 3.8.x.

Originally suggested by @pathcl in #172.

Definition Export

rabbithole.ListDefinitions is a new function that retuns
exported definitions from a cluster
as a typed Go data structure.

Contributed by @pathcl.

GitHub issue: #170

User Tags as Array

For forward compatibility with RabbitMQ 3.9, as of this
version the list of user tags is returned as an array
intead of a comma-separated string.

Compatibility with earlier RabbitMQ HTTP API versions, such as 3.8,
has been preserved.

Optional Federation Parameters are Now Marked with omitempty

Contributed by Michał @michalkurzeja Kurzeja.

GitHub issue: #177

v2.6.0

01 Dec 18:56
Compare
Choose a tag to compare

Changes Between 2.5.0 and 2.6.0 (Nov 25, 2020)

Feature Flag Management

The client now can list and enable feature flags
using the ListFeatureFlags and EnableFeatureFlag functions.

Contributed by David Ansari.

GitHub issue: #167

v2.5.0

28 Sep 06:53
c91a692
Compare
Choose a tag to compare

Changes Between 2.4.0 and 2.5.0 (Sep 28th, 2020)

Shovels: Support for Numerical Delete-After Values

The delete-after Shovel parameter now can be deserialised to
a numerical TTL value as well as special string values such as "never".

Contributed by Michal @mkuratczyk Kuratczyk.

GitHub issue: #164

v2.4.0

04 Aug 08:13
Compare
Choose a tag to compare

Changes Between 2.3.0 and 2.4.0 (Aug 4th, 2020)

More Thorough Error Checking of HTTP[S] Requests

Suggested by @mammothbane.

GitHub issue: #158

Salt Generation Helper Now Uses crypto/rand Instead of math/rand

Suggested by @mammothbane.

GitHub issue: #160

More Standardized Response Errors

Error responses (40x with the exception of 404 in response to DELETE operations,
50x) HTTP API response errors are now always wrapped intoErrorResponse,
even if they do not carry a JSON payload.

v2.3.0

11 Jul 07:20
3c0ab18
Compare
Choose a tag to compare

Changes Between 2.2.0 and 2.3.0 (July 11th, 2020)

New Endpoints for Listing Federation Links

Contributed by @niclic.

GitHub issue: #155

Support for More Shovel Parameters (e.g. for AMQP 1.0 Sources and Destinations)

Contributed by @akurz.

GitHub issue: #155

Conditional Exclusion of Expiration Field

Contributed by @niclic.

GitHub issue: #154

v2.2.0

25 Jun 15:01
Compare
Choose a tag to compare

Changes Between 2.1.0 and 2.2.0 (May 21st, 2020)

Runtime Parameter and Federation Upstream Management

Contributed by @niclic.

GitHub issue: #150

Improved Error Reporting

Contributed by @niclic.

GitHub issue: michaelklishin/rabbit-hole#152

Fixed a null Pointer in HTTP Response Handling

Contributed by @justabaka.

GitHub issue: #148

v1.4.0

13 Sep 18:14
Compare
Choose a tag to compare

Enhancements

  • HTTP operations now have a timeout. Contributed by Pierre Durand.

    GitHub issue: #102.

  • Support for cluster name operations. Contributed by @sheepkiller.

    GitHub issue: #104.

  • Allow empty passwords in PUT /api/users/{name}. Contributed by @jeandeaual.

    GitHub issue: #101.