Commit Graph

4746 Commits

Author SHA1 Message Date
Michael Klishin 526bfecd7a
Error message wording #14545 2025-09-24 16:28:51 -04:00
Sunny Katkuri ef7e772013
Check for protected tag during user update and deletion via management API 2025-09-15 11:02:22 -07:00
Marcial Rosales a809c3000e Test feature flags in management ui with selenium 2025-08-28 11:02:06 +02:00
Michael Klishin 42b3caa964
Cosmetics #14401 2025-08-21 19:08:31 -04:00
Karl Nilsson 87154f9b03 QQ: when invoking drain only shut down small batches at a time
Then wait for elections to complete before shutting further
members down.

This should help avoid election storms when enabling maintenance
mode.

Transfer khepri before queues to ensure meta data store is
ready to accept pid updates.

Some other state related tweaks.
2025-08-21 09:17:55 +01:00
Luke Bakken 5f5bf81e40
Fix error popup text display
When validation fails for a policy parameter, the resulting popup can't
be read due to one extra binary encoding as well as code that escapes
HTML entites. Since the EJS template uses `<%= >` for the popup, it will
display the text as-is, and not render any HTML.
2025-07-23 22:44:17 -07:00
Michal Kuratczyk 175ba70e8c
[skip ci] Remove rabbit_log and switch to LOG_ macros 2025-07-18 08:42:59 +02:00
Michal Kuratczyk e7c2dc5aff
Show current state of deprecated features 2025-07-14 15:56:28 +02:00
David Ansari 23c67304c9 Display AMQP filters in Management UI
## What?

This commit displays effective filters of AMQP receivers in the Management UI.
There is a new column `Filters` for outgoing links.

Solves #13429

 ## Why?

This allows validating if the desired filters set by the receiver are
actually in place by the server.
In addition, it's convenient for a developer to check any filter values
including SQL filter expressions.

 ## How?

The session process stores the the formatted and effective filters in
its state.

The Management UI displays a box containing the filter name. This way
the table for the outgoing links is kept concise. Hovering with the
mouse over a box will show additionally the descriptor and the actual
filter-value/definition.
2025-06-27 15:43:22 +02:00
Michael Davis cfce31ef05
management: Sanitize vhost names in restart forms 2025-06-17 11:54:07 -04:00
Iliia Khaprov f13f99303a
Management part for internal shovels. Experimenting with owner linking 2025-06-15 18:46:42 +02:00
Luke Bakken ca15fa70f7
Run `prettier` on title.js 2025-06-04 15:07:23 -07:00
Luke Bakken 1014183906 Fix issue introduced by #13512
Moves Sammy.Title plugin into its own file
2025-06-04 15:04:31 -07:00
Michael Klishin 3a086e8e78
rabbitmqadmin v1 suite: nuke an environment-sensitive test
(cherry picked from commit bc8c5fc6ab7805a7627771bef70e0f4208da264a)
2025-06-04 17:29:35 +04:00
Diana Parra Corbacho 081dee8883 Tests: sort nested proplists 2025-06-04 11:12:14 +02:00
Michael Klishin e9fc656241
Wrap TLS options password into a function in more places
A follow-up to #13958 #13999.

Pair: @dcorbacho.
2025-06-04 12:24:45 +04:00
Marcial Rosales cc86ffe30a
Fix issue around rendering a mqtt qos0 queue 2025-06-03 16:40:55 +04:00
Michael Davis 2a1b65df17
Clear management auth storage when redirecting to login
This branch redirects the client to the login page when the cookie
expires. To complete the logout process we should also clear any auth
data stored in local storage: local storage has no built-in expiration
mechanism.

To test this locally you can use `make run-broker`, set the session
timeout to one minute for quick testing:

    application:set_env(rabbitmq_management, login_session_timeout, 1)

go to the management page (`http://localhost:15672/#/`), login with
default credentials and wait a minute. After this change the local
storage only contains info like `rabbitmq.vhost` and `rabbitmq.version`.
2025-05-28 12:42:53 -04:00
Marcial Rosales 70ec8dffdd Selenium test with SAC 2025-05-27 14:00:18 +02:00
Iliia Khaprov 8dcad8a4fd
Run rabbit_ct_hook for management, and mqtt 2025-05-26 16:57:40 +02:00
Iliia Khaprov 180e7b1c1c
Queues with plugins - switch to get_queue_type in Management UI 2025-05-18 23:52:58 +02:00
Iliia Khaprov de17a77df4
Queues with plugins - Enable adding queues with plugins, Management UI 2025-05-18 23:52:58 +02:00
Iliia Khaprov 5fd3bddcfe
Protected queues - do not render Delete button for internal queues
with fix for rabbit_mgmt_wm_queue by MK
2025-05-18 23:50:53 +02:00
Michael Davis 314e4261fc
minor: Avoid flake in `rabbit_mgmt_http_health_checks_SUITE`
The `below_node_connection_limit_test` and `ready_to_serve_clients_test`
cases could possibly flake because `is_quorum_critical_single_node_test`
uses the channel manager in `rabbit_ct_client_helpers` to open a
connection. This can cause the line

     true = lists:all(fun(E) -> is_pid(E) end, Connections),

to fail to match. The last connection could have been rejected if the
channel manager kept its connection open, so instead of being a pid the
element would have been `{error, not_allowed}`.

With `rabbit_ct_client_helpers:close_channels_and_connection/2` we can
reset the connection manager and force it to close its connection.
2025-05-13 10:50:14 -04:00
Michael Davis 3f53e0172d
Remove connection counts and limits from public API health checks
Returning the connection limit and active count are not really necessary
for these checks. Instead of returning them in the response to the
health check we log a warning when the connection limit is exceeded.
2025-05-12 19:59:25 -04:00
Michael Davis 67bdc011cb
Add a health check for testing readiness to serve clients 2025-05-09 11:36:07 -04:00
Michael Davis 028b69213e
Add a health check for testing the node connection limit 2025-05-09 11:28:11 -04:00
Michael Klishin a4afc2a44a
Merge pull request #13872 from rabbitmq/md/health-check-is-in-service
Add an 'is-in-service' health check wrapping `rabbit:is_serving/0`
2025-05-08 21:42:27 +04:00
Michael Davis 07fe6307c6
Add an 'is-in-service' health check wrapping `rabbit:is_serving/0`
This is useful for a load balancer, for example, to be able to avoid
sending new connections to a node which is running and has listeners
bound to TCP ports but is being drained for maintenance.
2025-05-08 11:11:52 -04:00
Michael Davis 5d319be3f9
Accept multiple protocols in protocol listener health check
This updates the health check for protocol listeners to accept a set of
protocols, comma-separated. The check only returns 200 OK when all
requested protocols have active listeners.
2025-05-08 11:01:59 -04:00
Michael Davis 0d692fa161
Prefer node-local listeners helper in protocol-listener health check
This is a minor change that avoids a cluster-wide query for active
listeners. The old code called `rabbit_networking:active_listeners/0`
and then filtered the results by ones available on the local node. This
caused an RPC and concatenation of all other cluster members' listeners
and then in the next line filtered down to local nodes. Equivalently we
can use `rabbit_networking:node_listeners(node())` which dumps a local
ETS table.

This is not a very impactful change but it's nice to keep the latency of
the health-check handlers low and reduce some unnecessary cluster noise.
2025-05-08 10:43:33 -04:00
Michael Klishin 53f511fa15
Merge pull request #13837 from rabbitmq/dqt-export-fix
Modify default queue type injection logic
2025-05-05 21:20:24 +04:00
Marcial Rosales 7003fefa44 Select columns of vhosts 2025-05-02 13:05:25 +02:00
Michal Kuratczyk 0e743b5fe7
Adjust tests to the new behaviour 2025-05-01 17:28:32 +02:00
Michal Kuratczyk 3c95bf32e7
vhost inherits DQT from node
Rather than injecting node-level DQT when exporting definitions,
inject it into vhost's metadata when a vhost is created.
2025-05-01 17:28:32 +02:00
Michal Kuratczyk 5eb65f5f72
Remove vhost.default_queue_type from HTTP defs export 2025-05-01 17:28:32 +02:00
Marcial Rosales 01ca72edc0 Test adding vhost 2025-04-30 18:08:58 +02:00
Michael Klishin 467601a62d
Merge pull request #13822 from rabbitmq/lukebakken/delete-unused-js
Remove unused Javascript functions
2025-04-29 03:09:10 +04:00
Luke Bakken 61b0f152fd
Remove unused Javascript functions
A security scanner flagged the use of `RegExp` with unsanitized input.
Turns out, these functions are no longer used and can be deleted.
2025-04-28 12:18:06 -07:00
Michael Klishin c9b2b7fb22
Naming #13809 2025-04-26 18:40:50 -04:00
Razvan Grigore 09c546a1c8
Add Socket SSL column to management UI 2025-04-26 18:40:50 -04:00
Marcial Rosales 0cb63bb544 Add queues and streams page and test suite 2025-04-25 17:04:40 +02:00
Michael Klishin 20188a770e
rabbitmq.conf schema and tests for #13698 2025-04-09 02:02:47 -04:00
Loïc Hoguin 400e8006e5
Add new option require_auth_for_api_desc_page to mgmt
This allows restricting access to the /api/index.html and
the /cli/index.html page to authenticated users should the
user really want to. This can be enabled via advanced.config.
2025-04-07 15:59:13 +02:00
Marcial Rosales 8dfcfa61e4 Use relative path for the path linked to the cookie
used by mangement ui oauth logic to store the
token until it is moved onto the local storage
2025-04-01 14:02:51 +02:00
Michael Klishin 3756775ebe
Revert "Redirect to end_session_endpoint for idp_initiated logon when it is configured" 2025-03-28 02:31:09 -04:00
Michael Klishin ab8799a739
Redirect to end_session_endpoint for idp-initiated logon
Conflicts:
	selenium/bin/components/fakeportal
2025-03-27 19:01:01 -04:00
Karl Nilsson 4fe96dfd27 Ra 2.16.5 - bug fixes and minor improvements
Ra improvements:

* Don't allow a non-voter to start elections
* Register with ra directory before initialising ra server.
* Trigger tick_timeout immediately after entering leader state.
* Set a configurable segment max size

This commit also includes a change to turn the quorum queue
become leader callback to become a noop and instead rely on
the more promptly tick_handler to handle the meta data store
update after a leader election.

This more prompt tick update means there should be a much shorter
gap between the queue metrics being deleted from the old leader
node to them being available again on the new node resulting
in smoother message count metrics.

Fix test that relied on waiting on too simplistic a property
before asserting.
2025-03-27 17:06:31 +00:00
Loïc Hoguin 0a7c86b480
Fix the exception logged by Cowboy caused by double reply (#13612)
Issue introduced in 383ddb1634.

Authored-by: @lhoguin.
2025-03-25 17:12:57 -04:00
Iliia Khaprov 8ae0163643 Switch is_<queue_type> to using queue.type field
Also, since queue.type field rendered by QueueMod:format and all queues had it hard-coded here,
I unhardcode them here to use Type name.
2025-03-24 19:15:20 +01:00