Skip to content

Releases: rabbitmq/rabbitmqadmin-ng

v2.7.0

15 Jul 05:44
29a06c9
Compare
Choose a tag to compare

v2.7.0 (Jul 15, 2025)

Enhancements

  • rabbitmqadmin.conf now supports more TLS-related settings: ca_certificate_bundle_path (corresponds to --tls-ca-cert-file on the command line),
    client_certificate_file_path (corresponds to --tls-cert-file), and client_private_key_file_path (corresponds to --tls-key-file).

    As the names suggest, they are used to configure the CA certificate bundle file path, the client certificate file path,
    and the client private key file path, respectively:

     [production]
     hostname = "(redacted)"
     port = 15671
     username = "user-efe1f4d763f6"
     password = "(redacted)"
     tls = true
     ca_certificate_bundle_path = "/path/to/ca_certificate.pem"
     client_certificate_file_path = "/path/to/client_certificate.pem"
     client_private_key_file_path = "/path/to/client_key.pem"

    To learn more, see RabbitMQ's TLS guide.

Bug Fixes

  • Tool version was unintentionally missing from -h output (but present in its long counterpart, --help)
  • The tls setting in rabbitmqadmin.conf, a --use-tls equivalent, was not respected when connecting to a node
    in certain cases

v2.6.0

12 Jul 03:45
a09a7e0
Compare
Choose a tag to compare

v2.6.0 (Jul 12, 2025)

Enhancements

  • New command, passwords salt_and_hash, that implements the password salting and hashing algorithm
    used by RabbitMQ's internal authentication backend:

    rabbitmqadmin passwords salt_and_hash "sEkr37^va1ue"
    # => ┌───────────────┬──────────────────────────────────────────────────┐
    # => │ Result                                                           │
    # => ├───────────────┼──────────────────────────────────────────────────┤
    # => │ key           │ value                                            │
    # => ├───────────────┼──────────────────────────────────────────────────┤
    # => │ password hash │ vRZC0bF0Ut4+6pmcQRSu87S/wRXdHRalgY5DV/5KDd5SzK69 │
    # => └───────────────┴──────────────────────────────────────────────────┘

    This value can be passed as a --password-hash when creating a user with the users declare
    command.

  • users declare now supports a new argument, --hashing-algorithm, that accepts two
    possible values: sha256 (the default) and sha512:

    # RabbitMQ nodes must also be configured to use SHA-512 password hashing,
    # or this user won't be able to authenticate against them
    rabbitmqadmin users declare --username "username43742" --password "example_%^4@8s7" --hashing-algorithm "sha512"

    Target RabbitMQ nodes must be configured to use the same hashing algorithm (SHA-256 is
    used by default).

v2.5.0

11 Jul 04:41
9e308d7
Compare
Choose a tag to compare

v2.5.0 (Jul 11, 2025)

Enhancements

  • definitions export now supports a new transformation: prepare_for_quorum_queue_migration.

    rabbitmqadmin definitions export --transformations prepare_for_quorum_queue_migration,drop_empty_policies --stdout

    This one not only strips off the CMQ-related keys
    but also handles an incompatible "overflow"/"x-overflow" key value
    and "queue-mode"/"x-queue-mode" keys, both not supported
    by quorum queues.

Bug Fixes

  • export definitions CLI interface was unintentionally different from that of definitions export.
    Note that export definitions only exists for better backwards compatibility with rabbitmqadmin v1,
    use definitions export when possible.

v2.4.0

04 Jul 17:22
523aff6
Compare
Choose a tag to compare

v2.4.0 (Jul 4, 2025)

Bug Fixes

  • connections list failed to deserialize a list of connections that included direct connections
    (as in the Erlang AMQP 0-9-1 client), namely local connections of shovels and federation links.

    GitHub issue: #68

Upgrades

  • RabbitMQ HTTP API client was upgraded to 0.36.0

v2.3.0

30 Jun 13:28
a97ce99
Compare
Choose a tag to compare

v2.3.0 (Jun 30, 2025)

  • RabbitMQ HTTP API client was upgraded to 0.35.0 to fix a connections list command
    panic.

v2.2.1

20 Jun 09:17
3ab5eae
Compare
Choose a tag to compare

v2.2.1 (Jun 20, 2025)

Bug Fixes

  • Several rabbitmqadmin.conf settings were not merged correctly with
    the command line arguments.

    GitHub issue: #58

v2.2.0

12 Jun 11:14
d403af9
Compare
Choose a tag to compare

v2.2.0 (Jun 12, 2025)

Enhancements

  • connections is a new command group for operations on connections
  • channels is a new command group for operations on channels
  • operator_policies is a new command group for working with operator policies.
    It matches the policies group but acts on operator policies
  • policies set and policies update are two new aliases for policies declare. The former follows the naming
    used by rabbitmqctl and the latter reflects the fact that the command can be used to update an existing policy,
    in particular, to override its definition
  • policies patch is a new command that updates a policy definition by merging the provided definition with the existing one
  • policies delete_definition_keys is a new command that removes keys from a policy definition
  • policies delete_definition_keys_from_all_in is a new command that removes definition keys from all policies in a virtual host
  • policies update_definition is a new command that updates a policy definition key; for multi-key updates, see `policies patch
  • policies update_definitions_of_all_in is a new command that updates a definition key for all policies in a virtual host
  • policies declare_override is a new command that declares a policy that overrides another policy
  • policies declare_blanket is a new command that declares a low priority policy that matches all objects not matched
    by any other policies
  • parameters list_all is a new command that lists all runtime parameters across all virtual hosts
  • parameters list_in is a new command that lists runtime parameters of a given component (type)
    in a specific virtual host

v2.1.0

08 May 04:18
46b2fd6
Compare
Choose a tag to compare

v2.1.0 (May 8, 2025)

Enhancements

  • bindings is a new command group for operations on bindings
  • exchanges is a new command group for operations on exchanges
  • global_parameters is a new command group for operations on global runtime parameters
  • nodes is a new command group for operations on nodes
  • parameters is a new command group for operations on runtime parameters
  • queues is a new command group for operations on queues
  • streams is a new command group for operations on streams
  • users is a new command group for operations on users
  • vhosts is a new command group for operations on virtual hosts
  • Command groups are now ordered alphabetically

Bug Fixes

  • Both -h and --help now display relevant doc guide URLs.
    Previously it was only the case for --help

Other Changes

  • vhosts declare no longer has a default value for --default-queue-type.
    Instead, the default will be controlled exclusively by RabbitMQ

v2.0.0

31 Mar 20:40
9cd7fcf
Compare
Choose a tag to compare

v2.0.0 (Mar 31, 2025)

Enhancements

Subcommand and Long Option Inference

If the RABBITMQADMIN_NON_INTERACTIVE_MODE is not set to true, this tool
now can infer subcommand and --long-option names.

This means that a subcommand can be referenced with its unique prefix,
that is,

  • 'del queue' will be inferred as 'delete queue'
  • 'del q --nam "a.queue"' will be inferred as 'delete queue --name "a.queue"'

To enable each feature, set the following environment variables to
'true':

  • RABBITMQADMIN_INFER_SUBCOMMANDS
  • RABBITMQADMIN_INFER_LONG_OPTIONS

This feature is only mean to be used interactively. For non-interactive
use, it can be potentially too dangerous to allow.

Intentionally Restricted Environment Variable Support

Environment variables have a number of serious downsides compared to a rabbitmqadmin.conf
and the regular --long-options on the command line:

  1. Non-existent support for value types and validation ("everything is a string")
  2. Subprocess inheritance restrictions that can be very time-consuming to debug
  3. Different syntax for setting them between the classic POSIX-era shells (such as bash, zsh) and modern ones (such as nushell)

For these reasons and others, rabbitmqadmin v2 intentionally uses the configuration file and the
CLI options over the environment variables.

rabbitmqadmin v2 does, however, supports a number of environment variables for a few
global settings that cannot be configured any other way (besides a CLI option),
or truly represent an environment characteristic, e.g. either the non-interactive mode
should be enabled.

These environment variables are as follows:

Environment variable Type When used Description
RABBITMQADMIN_CONFIG_FILE_PATH Local filesystem path Pre-flight (before command execution) Same meaning as the global --confg-file argument
RABBITMQADMIN_NON_INTERACTIVE_MODE Boolean Command execution Enables the non-interactive mode.

Same meaning as the global --non-interactive argument
RABBITMQADMIN_QUIET_MODE
Boolean Command execution Instructs the tool to produce less output.

Same meaning as the global --quiet argument
RABBITMQADMIN_INFER_SUBCOMMANDS Boolean Pre-flight (before command execution) Enables inference (completion of partial names) of subcommands. Does not apply to the non-interactive mode.
RABBITMQADMIN_INFER_LONG_OPTIONS Boolean Pre-flight (before command execution) Enables inference (completion of partial names) of --long-options. Does not apply to the non-interactive mode.
RABBITMQADMIN_NODE_ALIAS String Command execution Same meaning as the global --node argument
RABBITMQADMIN_TARGET_HOST String Command execution Same meaning as the global --host argument
RABBITMQADMIN_TARGET_PORT Positive integer Command execution Same meaning as the global --port argument
RABBITMQADMIN_API_PATH_PREFIX String Command execution Same meaning as the global --path-prefix argument
RABBITMQADMIN_TARGET_VHOST String Command execution Same meaning as the global --vhost argument
RABBITMQADMIN_BASE_URI String Command execution Same meaning as the global --base-uri argument
RABBITMQADMIN_USE_TLS Boolean Command execution Same meaning as the global --tls argument
RABBITMQADMIN_USERNAME String Command execution Same meaning as the global --username argument
RABBITMQADMIN_PASSWORD String Command execution Same meaning as the global --password argument
RABBITMQADMIN_TABLE_STYLE Enum, see --table-style in rabbitmqadmin help Command execution Same meaning as the global --table-style argument

v0.29.0

23 Mar 12:01
b147630
Compare
Choose a tag to compare

v0.29.0 (Mar 23, 2025)

Breaking Changes

  • definitions export's special --file value of - for "standard input" is deprecated. Use --stdout instead:

    rabbitmqadmin definitions export --stdout > definitions.json
    # exports 3.x-era definitions that might contain classic queue mirroring keys, transforms
    # them to not use any CMQ policies, injects an explicit queue type into the matched queues,
    # and drops all the policies that had nothing beyond the CMQ keys,
    # then passes the result to the standard input of
    # 'rabbitmqadmin definitions import --stdin'
    rabbitmqadmin --node "source.node" definitions export --transformations strip_cmq_keys_from_policies,drop_empty_policies --stdout | rabbitmqadmin --node "destination.node" definitions import --stdin

Enhancements

  • definitions import now supports reading definitions from the standard input instead of a file.
    For that, pass --stdin instead of --file "/path/to/definitions.json".

    rabbitmqadmin definitions import --stdin < definitions.json
    cat definitions.json | rabbitmqadmin definitions import --stdin
    # exports 3.x-era definitions that might contain classic queue mirroring keys, transforms
    # them to not use any CMQ policies, injects an explicit queue type into the matched queues,
    # and drops all the policies that had nothing beyond the CMQ keys,
    # then passes the result to the standard input of
    # 'rabbitmqadmin definitions import --stdin'
    rabbitmqadmin --node "source.node" definitions export --transformations strip_cmq_keys_from_policies,drop_empty_policies --stdout | rabbitmqadmin --node "destination.node" definitions import --stdin