Go to file
Michael Klishin f62d46c286
Introduce a way to protect a virtual host from deletion
Accidental "fat finger" virtual deletion accidents
would be easier to avoid if there was a protection mechanism
that would apply equally even to CLI tools and external
applications that do not use confirmations for deletion
operations.

This introduce the following changes:

 * Virtual host metadata now supports a new queue,
   'protected_from_deletion', which, when set,
   will be considered by key virtual host deletion function(s)
 * DELETE /api/vhosts/{name} was adapted to handle
   such blocked deletion attempts to respond with
   a 412 Precondition Failed status
 * 'rabbitmqctl list_vhosts' and 'rabbitmqctl delete_vhost'
   were adapted accordingly
 * DELETE /api/vhosts/{name}/deletion/protection
   is a new endpoint that can be used to remove
   the protective seal (the metadata key)
 * POST /api/vhosts/{name}/deletion/protection
   marks the virtual host as protected

In the case of the HTTP API, all operations on
virtual host metadata require administrative
privileges from the target user.

Other considerations:

 * When a virtual host does not exist, the behavior
  remains the same: the original, protection-unaware
  code path is used to preserve backwards compatibility

References #12772.
2025-01-02 16:50:51 -05:00
.github Wording 2024-12-07 02:24:08 -05:00
bazel Dependency thoas updated from 1.0.0 to 1.2.1 2024-11-21 20:42:04 -05:00
deps Introduce a way to protect a virtual host from deletion 2025-01-02 16:50:51 -05:00
doc
mk
packaging
release-notes 4.0.5 release notes update 2024-12-15 23:03:10 -05:00
scripts
selenium Clean up 2024-11-28 16:56:12 +01:00
tools
.bazelignore
.bazelrc
.bazelversion Pin Bazel to v7.4.1 2024-12-13 13:52:01 -05:00
.dockerignore
.elp.toml
.git-blame-ignore-revs
.gitignore gitignore Mnesia.rmq-ct-* 2024-12-13 18:10:18 -05:00
.mailmap
BAZEL.md
BUILD.bats
BUILD.bazel
BUILD.package_generic_unix
CODE_OF_CONDUCT.md
COMMUNITY_SUPPORT.md Update COMMUNITY_SUPPORT.md 2024-12-03 11:03:34 -05:00
CONTRIBUTING.md CONTRIBUTING.md: explain how to run a group of tests or a single CT test 2024-11-26 12:35:29 -05:00
LICENSE
LICENSE-APACHE2
LICENSE-MPL-RabbitMQ
MODULE.bazel Pin Horus to 0.3.1 temporarily 2024-11-29 09:50:08 +01:00
Makefile
PKG_LINUX.md
PKG_WINDOWS.md
README.md
SERVER_RELEASES.md
WORKSPACE
dist.bzl
erlang.mk
erlang_ls.config
moduleindex.yaml bazel run gazelle 2024-11-22 04:02:48 +00:00
plugins.mk
rabbitmq-components.mk Update osiris to v1.8.5 2024-11-22 14:05:56 +00:00
rabbitmq.bzl
rabbitmq_home.bzl
rabbitmq_package_generic_unix.bzl
rabbitmq_run.bzl
rabbitmqctl.bzl
rebar.config
user-template.bazelrc

README.md

Test

RabbitMQ Server

RabbitMQ is a feature rich, multi-protocol messaging and streaming broker. It supports:

Installation

Tutorials and Documentation

Some key doc guides include

RabbitMQ documentation is also developed on GitHub.

Commercial Features and Support

Getting Help from the Community

Please read the Community Support Eligibility Policy document first.

The recommended community forums are

Contributing

See CONTRIBUTING.md and our development process overview.

Questions about contributing, internals and so on are very welcome in GitHub Discussions or community Discord server in the core-and-plugin-dev channel.

Licensing

RabbitMQ server is licensed under the MPL 2.0.

Community Support Eligibility Policy document explains the open source RabbitMQ support policy adopted by the RabbitMQ Core Team.

Building From Source and Packaging

(c) 2007-2024 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.