Releases: rabbitmq/rabbitmqadmin-ng
v2.7.1
v2.7.1 (in development)
Bug Fixes
-
Improved handling of missing or impossible to load/parse
--tls-ca-cert-file
on the command line.The tool now properly handles cases where a CA certificate file path is not provided, making
CA certificate loading optional rather than required, which prevents crashes when TLS is used
without a custom CA certificate bundle -
show overview
could panic when run against a freshly booted RabbitMQ node that did not have certain
metrics/rates initialized and available. Now those metrics will use the default values for their types,
such as0
and0.0
for the counters, gauges, rates
Upgrades
- RabbitMQ HTTP API client was upgraded to
0.40.0
v2.7.0
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
), andclient_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 inrabbitmqadmin.conf
, a--use-tls
equivalent, was not respected when connecting to a node
in certain cases
v2.6.0
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 theusers declare
command. -
users declare
now supports a new argument,--hashing-algorithm
, that accepts two
possible values:sha256
(the default) andsha512
:# 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
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 ofdefinitions export
.
Note thatexport definitions
only exists for better backwards compatibility withrabbitmqadmin
v1,
usedefinitions export
when possible.
v2.4.0
v2.3.0
v2.2.1
v2.2.0
v2.2.0 (Jun 12, 2025)
Enhancements
connections
is a new command group for operations on connectionschannels
is a new command group for operations on channelsoperator_policies
is a new command group for working with operator policies.
It matches thepolicies
group but acts on operator policiespolicies set
andpolicies update
are two new aliases forpolicies declare
. The former follows the naming
used byrabbitmqctl
and the latter reflects the fact that the command can be used to update an existing policy,
in particular, to override its definitionpolicies patch
is a new command that updates a policy definition by merging the provided definition with the existing onepolicies delete_definition_keys
is a new command that removes keys from a policy definitionpolicies delete_definition_keys_from_all_in
is a new command that removes definition keys from all policies in a virtual hostpolicies update_definition
is a new command that updates a policy definition key; for multi-key updates, see `policies patchpolicies update_definitions_of_all_in
is a new command that updates a definition key for all policies in a virtual hostpolicies declare_override
is a new command that declares a policy that overrides another policypolicies declare_blanket
is a new command that declares a low priority policy that matches all objects not matched
by any other policiesparameters list_all
is a new command that lists all runtime parameters across all virtual hostsparameters list_in
is a new command that lists runtime parameters of a given component (type)
in a specific virtual host
v2.1.0
v2.1.0 (May 8, 2025)
Enhancements
bindings
is a new command group for operations on bindingsexchanges
is a new command group for operations on exchangesglobal_parameters
is a new command group for operations on global runtime parametersnodes
is a new command group for operations on nodesparameters
is a new command group for operations on runtime parametersqueues
is a new command group for operations on queuesstreams
is a new command group for operations on streamsusers
is a new command group for operations on usersvhosts
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
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:
- Non-existent support for value types and validation ("everything is a string")
- Subprocess inheritance restrictions that can be very time-consuming to debug
- Different syntax for setting them between the classic POSIX-era shells (such as
bash
,zsh
) and modern ones (such asnushell
)
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 |