Michael Klishin
5bd8b3d09f
Merge pull request #13752 from rabbitmq/use-env-var-list-plugins
...
Selenium suites: use RABBITMQ_ENABLED_PLUGINS over RABBITMQ_ENABLED_PLUGINS_FILE
2025-04-25 18:56:41 +04:00
Marcial Rosales
0b1a4d283b
Remove commented out exchange
2025-04-25 16:34:09 +02:00
Marcial Rosales
9e69496c85
Remove event exchange
2025-04-25 14:23:07 +02:00
Marcial Rosales
b6d2ff85b2
Parse multi-line enabled_plugins
...
Use only needed required plugins for basic auth suite
2025-04-25 14:23:07 +02:00
Marcial Rosales
ceb7b244f2
Convert multiline enabled_plugins to single value
2025-04-25 14:23:07 +02:00
Marcial Rosales
6262c849a2
Use RABBITMQ_ENABLED_PLUGINS instead of RABBITMQ_ENABLED_PLUGINS_FILE
...
gmake was ignoring the former env var.
2025-04-25 14:23:07 +02:00
Michael Klishin
a22fa85784
Merge pull request #13792 from rabbitmq/dependabot/github_actions/main/google-github-actions/auth-2.1.9
...
Bump google-github-actions/auth from 2.1.8 to 2.1.9
2025-04-24 23:11:08 +04:00
dependabot[bot]
0ea1b4b5e6
Bump google-github-actions/auth from 2.1.8 to 2.1.9
...
Bumps [google-github-actions/auth](https://github.com/google-github-actions/auth ) from 2.1.8 to 2.1.9.
- [Release notes](https://github.com/google-github-actions/auth/releases )
- [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md )
- [Commits](https://github.com/google-github-actions/auth/compare/v2.1.8...v2.1.9 )
---
updated-dependencies:
- dependency-name: google-github-actions/auth
dependency-version: 2.1.9
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-04-24 18:59:17 +00:00
Jean-Sébastien Pédron
d84d3a1491
Merge pull request #13781 from rabbitmq/cleanup-rabbit_khepri
...
Khepri: Clean up the setup/clustering code of the integration code
2025-04-24 18:27:32 +02:00
Jean-Sébastien Pédron
5300076e33
Khepri: Clean up the proxy functions of the integration code
...
[Why]
The `rabbit_khepri` module grew during the work to add Khepri support to
RabbitMQ and while Khepri was itself written. The current code is
therefore unorganized.
[How]
This commit tries to change proxy functions to be close to their Khepri
equivalent.
The module continues to set non-default options for write functions. We
also add the variants that take an option map to be consistent and not
have to deal with that in the future.
Several legacy functions were removed, either because they were no
longer called or because they were replace by a regular Khepri call.
2025-04-24 16:06:20 +02:00
Jean-Sébastien Pédron
bd3aee35b4
Khepri: Clean up the setup/clustering code of the integration code
...
[Why]
The `rabbit_khepri` module grew during the work to add Khepri support to
RabbitMQ and while Khepri was itself written. The current code is
therefore unorganized.
[How]
This commit tries to sort the code that manages the setup of Khepri and
the functions tha deal with the Khepri cluster. It also groups functions
which provide support for CLI commands.
It also adds documentation to several functions.
Finally, when a node joins a cluster, we stop displaying the content of
the Khepri tree.
2025-04-24 11:57:51 +02:00
Jean-Sébastien Pédron
d2b5f51bfd
release-notes/4.2.0: Mention Khepri enabled by default
2025-04-23 15:10:20 +02:00
David Ansari
229edb1827
Fix links in 4.2.0 release notes
2025-04-23 14:10:40 +02:00
David Ansari
77e73deede
Intercept outgoing just before conversion
...
Intercept outgoing message just before conversion to target protocol as
this will give most flexibility to 3rd party plugins.
2025-04-23 14:01:42 +02:00
David Ansari
f447e84e93
Add 4.2.0 release notes
...
[skip ci]
2025-04-23 14:01:42 +02:00
David Ansari
a24ba55d45
Store message interceptor context in MQTT proc state
...
It's a tradeoff between building the map for each incoming and outgoing
message (now that there are also outgoing interceptors) vs increased
memory usage for the MQTT proc state.
Connecting with MQTT 5.0 and client ID "xxxxxxxx", the number of words
are 201 before this commit vs 235 after this commit as determined by:
```
S = sys:get_state(MQTTConnectionPid),
erts_debug:size(S).
```
Therefore, this commit requires 34 word * 8 bytes = 272 bytes more per MQTT
connection, that is 272 MB more for 1,000,000 MQTT connections.
2025-04-23 14:01:42 +02:00
David Ansari
21bd300d61
Support outgoing message interceptors
2025-04-23 14:01:42 +02:00
David Ansari
6ade94f50b
Improve message interceptors
...
1. Force the config for timestamp and routing node message interceptors
to be configured with the overwrite boolean() to avoid defining
multiple default values throughout the code.
2. Add type specs
3. Extend existing test case for new MQTT client ID interceptor
4. routing node and timestamp should only set the annotation for
incoming_message_interceptors group
5. Fix `rabbitmq.conf`.
Prior to this commit there were several issue:
a.) Setting the right configuration was too user unfriendly, e.g. the user has to set
```
message_interceptor.incoming.rabbit_mqtt_message_interceptor_client_id.annotation_key = x-opt-mqtt-client-id
```
just to enable the MQTT message interceptor.
b.) The code that parses was too difficult to understand
c.) MQTT plugin was setting the env for app rabbit, which is an anti-pattern
d.) disabling a plugin (e.g. MQTT), left its message interceptors still in place
This is now all fixed, the user sets the rabbitmq.conf as follows:
```
message_interceptors.incoming.set_header_timestamp.overwrite = true
message_interceptors.incoming.set_header_routing_node.overwrite = false
mqtt.message_interceptors.incoming.set_client_id_annotation.enabled = true
```
Note that the first two lines use the same format as for RabbitMQ 4.0
for backwards compatiblity. The last line (MQTT) follows a similar
pattern.
2025-04-23 14:01:42 +02:00
Lois Soto Lopez
9936b8de69
Add incoming message interceptors
...
This commit enables users to provide custom message interceptor modules,
i.e. modules to process incoming and outgoing messages. The
`rabbit_message_interceptor` behaviour defines a `intercept/4` callback,
for those modules to implement.
Co-authored-by: Péter Gömöri <gomoripeti@users.noreply.github.com>
2025-04-23 14:01:42 +02:00
Jean-Sébastien Pédron
f28963c0f9
Merge pull request #12682 from rabbitmq/mark-khepri_db-as-stable
...
Khepri: Mark `khepri_db` feature flag as stable
2025-04-23 12:40:29 +02:00
Jean-Sébastien Pédron
a34ce08f8f
rabbitmq_cli: Adapt `force_reset_command_test.exs` testsuites
...
[Why]
`force_reset` is unsupported with Khepri.
2025-04-23 11:34:37 +02:00
Jean-Sébastien Pédron
0541996b30
rabbitmq_4_0_deprecations_SUITE: Add more assertions to ram node tests
2025-04-23 11:34:36 +02:00
Jean-Sébastien Pédron
a528a415d3
Khepri: Mark `khepri_db` as stable
...
[Why]
The intent is to have it stable and enabled by default for new
deployment in RabbitMQ 4.1.x.
To prepare for this goal, it is time to mark the feature flag as stable
to let us iron out the library and its integration into RabbitMQ.
This is not a commitment at this stage: we will revisit this near the
beginning of the release cycle and commit to it or revert to
experimental.
2025-04-23 11:34:32 +02:00
Jean-Sébastien Pédron
d6a9c63cd2
Merge pull request #13779 from rabbitmq/use-rabbitmq-4.0.9-for-mixed-version-testing
...
GitHub Actions: Use RabbitMQ 4.0.9 for mixed-version testing
2025-04-23 11:34:05 +02:00
Jean-Sébastien Pédron
ac90d13af6
GitHub Actions: Use RabbitMQ 4.0.9 for mixed-version testing
...
[Why]
We used a 4.0.x snapshot so far because we needed RabbitMQ 4.0.x to use
khepri_mnesia_migration 0.7.2.
RabbitMQ 4.0.9 was released with this update of khepri_mnesia_migration,
thus we don't need the snapshot anymore.
2025-04-23 10:45:50 +02:00
Michael Klishin
d265fdd889
Drop the 4.0.x alphas workflow
...
Now that 4.1.0 is out, 4.0.x binary releases will
no longer be available publicly.
(cherry picked from commit cf98ba5a8c )
Conflicts:
.github/workflows/release-4.0.x-alphas.yaml
(cherry picked from commit 4dc2395d63 )
2025-04-19 14:25:41 -04:00
Michael Klishin
d3ffe65f3f
Merge pull request #13771 from rabbitmq/loic-fix-rare-msg-store-eof
...
CQ: Fix rare eof crash of message store with fanout
2025-04-19 12:11:18 +04:00
Loïc Hoguin
7138e8a0cc
CQ: Fix rare eof crash of message store with fanout
2025-04-18 13:50:57 +02:00
Michael Klishin
813f1e9b3d
Merge pull request #13765 from rabbitmq/dashboard-update-rmq-4.1
...
[skip ci] Grafana: update dashboards for RabbitMQ 4.1.x
2025-04-16 19:51:54 +04:00
Michal Kuratczyk
c0368a0d24
[skip ci] Update dashboards for RabbitMQ 4.1
...
Key changes:
- endpoint variable to handle scraping multiple endpoints
- message size panels (new metric in 4.1)
- panels at the top of the Overview dashboard should be more up to date
(they show the latest value)
- values should be accurate if multiple endpoints are scraped
(previously, many would be doubled)
- Nodes table shows fewer volumns and shows node uptime
2025-04-16 17:48:21 +02:00
Michal Kuratczyk
e90b47f7e1
[skip ci] Add new versions to GH Discussion template
2025-04-16 14:15:32 +02:00
Michael Klishin
2592dff63a
One more 4.1.0 release notes update
2025-04-15 15:49:50 -04:00
Michael Klishin
beb7e83aa7
4.1.0 release notes: update a compatible amqplib release link
...
(cherry picked from commit a68af5a98883aac352ff1e7e079889dcb23a713f)
2025-04-15 15:14:15 -04:00
Michael Klishin
52fcd15bef
Merge pull request #13756 from rabbitmq/4.1-release-notes-prometheus
...
[skip-ci] Additional Prometheus-related release notes
2025-04-15 21:18:37 +04:00
Michael Klishin
4d162257b4
4.1.0 release notes edits
2025-04-15 13:17:54 -04:00
Michal Kuratczyk
b03b3cabf3
[skip-ci] Additional Prometheus-related release notes
2025-04-15 18:46:57 +02:00
Michael Klishin
cb4676da88
4.1.0 release notes: prepare for 4.1.0 GA
2025-04-15 01:03:04 -04:00
Michael Klishin
95332ddad1
Use a functional token for rabbitmq/server-packages event dispatch
2025-04-15 01:00:20 -04:00
Michael Klishin
596e3ef41a
Cosmetics
2025-04-15 00:57:39 -04:00
Michael Klishin
118236b1dd
Another 4.0.9 release notes update
2025-04-14 10:49:30 -04:00
Michael Klishin
97b98c1f5f
4.0.9 release notes
2025-04-14 08:54:53 -04:00
Michael Klishin
b11d853880
Merge commit '228cbf9776'
2025-04-14 08:38:15 -04:00
Michael Klishin
228cbf9776
Naming, docs #13747
2025-04-14 08:38:03 -04:00
Anh Nguyen
e557ab37a3
Add quorum queue config in INI style
2025-04-14 18:55:09 +07:00
Michael Klishin
1aa3342590
Merge pull request #13739 from rabbitmq/dependabot/maven/deps/rabbit/test/amqp_jms_SUITE_data/main/dev-deps-2c123be8b9
...
[skip ci] Bump the dev-deps group across 5 directories with 4 updates
2025-04-13 00:20:54 +04:00
Michael Klishin
e31daa65d9
Merge pull request #13740 from rabbitmq/dependabot/maven/deps/rabbit/test/amqp_jms_SUITE_data/main/prod-deps-68a44efc4f
...
[skip ci] Bump the prod-deps group across 4 directories with 1 update
2025-04-13 00:20:47 +04:00
dependabot[bot]
578552e765
[skip ci] Bump the prod-deps group across 4 directories with 1 update
...
Bumps the prod-deps group with 1 update in the /deps/rabbit/test/amqp_jms_SUITE_data directory: [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless ).
Bumps the prod-deps group with 1 update in the /deps/rabbitmq_mqtt/test/java_SUITE_data directory: [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless ).
Bumps the prod-deps group with 1 update in the /deps/rabbitmq_stream/test/rabbit_stream_SUITE_data directory: [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless ).
Bumps the prod-deps group with 1 update in the /deps/rabbitmq_stream_management/test/http_SUITE_data directory: [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless ).
Updates `com.diffplug.spotless:spotless-maven-plugin` from 2.44.3 to 2.44.4
- [Release notes](https://github.com/diffplug/spotless/releases )
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md )
- [Commits](https://github.com/diffplug/spotless/compare/maven/2.44.3...maven/2.44.4 )
Updates `com.diffplug.spotless:spotless-maven-plugin` from 2.44.3 to 2.44.4
- [Release notes](https://github.com/diffplug/spotless/releases )
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md )
- [Commits](https://github.com/diffplug/spotless/compare/maven/2.44.3...maven/2.44.4 )
Updates `com.diffplug.spotless:spotless-maven-plugin` from 2.44.3 to 2.44.4
- [Release notes](https://github.com/diffplug/spotless/releases )
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md )
- [Commits](https://github.com/diffplug/spotless/compare/maven/2.44.3...maven/2.44.4 )
Updates `com.diffplug.spotless:spotless-maven-plugin` from 2.44.3 to 2.44.4
- [Release notes](https://github.com/diffplug/spotless/releases )
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md )
- [Commits](https://github.com/diffplug/spotless/compare/maven/2.44.3...maven/2.44.4 )
---
updated-dependencies:
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
dependency-version: 2.44.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: prod-deps
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
dependency-version: 2.44.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: prod-deps
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
dependency-version: 2.44.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: prod-deps
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
dependency-version: 2.44.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: prod-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-04-12 18:22:42 +00:00
dependabot[bot]
dee14f21a3
[skip ci] Bump the dev-deps group across 5 directories with 4 updates
...
Bumps the dev-deps group with 1 update in the /deps/rabbit/test/amqp_jms_SUITE_data directory: [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5 ).
Bumps the dev-deps group with 1 update in the /deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_spring_boot directory: [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5 ).
Bumps the dev-deps group with 1 update in the /deps/rabbitmq_mqtt/test/java_SUITE_data directory: [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit5 ).
Bumps the dev-deps group with 2 updates in the /deps/rabbitmq_stream/test/rabbit_stream_SUITE_data directory: [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5 ) and [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5 ).
Bumps the dev-deps group with 3 updates in the /deps/rabbitmq_stream_management/test/http_SUITE_data directory: [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5 ), [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5 ) and [com.google.code.gson:gson](https://github.com/google/gson ).
Updates `org.junit.jupiter:junit-jupiter-engine` from 5.12.1 to 5.12.2
- [Release notes](https://github.com/junit-team/junit5/releases )
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2 )
Updates `org.junit.jupiter:junit-jupiter-params` from 5.12.1 to 5.12.2
- [Release notes](https://github.com/junit-team/junit5/releases )
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2 )
Updates `org.junit.jupiter:junit-jupiter` from 5.12.1 to 5.12.2
- [Release notes](https://github.com/junit-team/junit5/releases )
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2 )
Updates `org.junit.jupiter:junit-jupiter-engine` from 5.12.1 to 5.12.2
- [Release notes](https://github.com/junit-team/junit5/releases )
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2 )
Updates `org.junit.jupiter:junit-jupiter-params` from 5.12.1 to 5.12.2
- [Release notes](https://github.com/junit-team/junit5/releases )
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2 )
Updates `org.junit.jupiter:junit-jupiter-params` from 5.12.1 to 5.12.2
- [Release notes](https://github.com/junit-team/junit5/releases )
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2 )
Updates `org.junit.jupiter:junit-jupiter-engine` from 5.12.1 to 5.12.2
- [Release notes](https://github.com/junit-team/junit5/releases )
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2 )
Updates `org.junit.jupiter:junit-jupiter-params` from 5.12.1 to 5.12.2
- [Release notes](https://github.com/junit-team/junit5/releases )
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2 )
Updates `org.junit.jupiter:junit-jupiter-params` from 5.12.1 to 5.12.2
- [Release notes](https://github.com/junit-team/junit5/releases )
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2 )
Updates `com.google.code.gson:gson` from 2.12.1 to 2.13.0
- [Release notes](https://github.com/google/gson/releases )
- [Changelog](https://github.com/google/gson/blob/main/CHANGELOG.md )
- [Commits](https://github.com/google/gson/compare/gson-parent-2.12.1...gson-parent-2.13.0 )
---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
dependency-version: 5.12.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-params
dependency-version: 5.12.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter
dependency-version: 5.12.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-engine
dependency-version: 5.12.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-params
dependency-version: 5.12.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-params
dependency-version: 5.12.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-engine
dependency-version: 5.12.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-params
dependency-version: 5.12.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-deps
- dependency-name: org.junit.jupiter:junit-jupiter-params
dependency-version: 5.12.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-deps
- dependency-name: com.google.code.gson:gson
dependency-version: 2.13.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: dev-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-04-12 18:21:52 +00:00
Michael Klishin
983b4d3d7c
4.1.0 release notes updates
2025-04-11 19:00:47 -04:00
Michael Klishin
9b4dd0fbd8
4.1.0 release notes updates
2025-04-11 18:59:55 -04:00