Commit Graph

263 Commits

Author SHA1 Message Date
Philip Kuryloski 6e7755664f Refactor rabbitmq_auth_backend_cache BUILD.bazel 2021-05-11 09:48:35 +02:00
Philip Kuryloski 072a1c0462 Refactor and dedupe .bazel file content 2021-04-16 10:22:44 +02:00
Philip Kuryloski 3ecb291d75 Add rabbitmq_consistent_hash_exchange to bazel
also fixup erlc_opts for some other plugins
2021-04-08 17:24:14 +02:00
Philip Kuryloski 78bb20f0aa Adopt change of suite_name -> name in ct_suite from @bazel-erlang 2021-04-08 14:25:06 +02:00
Philip Kuryloski 388654c542
Add a partial Bazel build (#2938)
Adds WORKSPACE.bazel, BUILD.bazel & *.bzl files for partial build & test with Bazel. Introduces a build-time dependency on https://github.com/rabbitmq/bazel-erlang
2021-03-29 11:01:43 +02:00
Philip Kuryloski a63f169fcb Remove duplicate rabbitmq-components.mk and erlang.mk files
Also adjust the references in rabbitmq-components.mk to account for
post monorepo locations
2021-03-22 15:40:19 +01:00
kjnilsson 52f745dcde Update rabbitmq-components.mk
use v1.x branch of ra
2021-03-18 15:14:40 +00:00
Loïc Hoguin d5e3bdd623
Add ADDITIONAL_PLUGINS variable
This allows including additional applications or third party
plugins when creating a release, running the broker locally,
or just building from the top-level Makefile.

To include Looking Glass in a release, for example:

$ make package-generic-unix ADDITIONAL_PLUGINS="looking_glass"

A Docker image can then be built using this release and will
contain Looking Glass:

$ make docker-image

Beware macOS users! Applications such as Looking Glass include
NIFs. NIFs must be compiled in the right environment. If you
are building a Docker image then make sure to build the NIF
on Linux! In the two steps above, this corresponds to Step 1.

To run the broker with Looking Glass available:

$ make run-broker ADDITIONAL_PLUGINS="looking_glass"

This commit also moves Looking Glass dependency information
into rabbitmq-components.mk so it is available at all times.
2021-03-12 12:29:28 +01:00
Jean-Sébastien Pédron cdcf602749
Switch from Lager to the new Erlang Logger API for logging
The configuration remains the same for the end-user. The only exception
is the log root directory: it is now set through the `log_root`
application env. variable in `rabbit`. People using the Cuttlefish-based
configuration file are not affected by this exception.

The main change is how the logging facility is configured. It now
happens in `rabbit_prelaunch_logging`. The `rabbit_lager` module is
removed.

The supported outputs remain the same: the console, text files, the
`amq.rabbitmq.log` exchange and syslog.

The message text format slightly changed: the timestamp is more precise
(now to the microsecond) and the level can be abbreviated to always be
4-character long to align all messages and improve readability. Here is
an example:

    2021-03-03 10:22:30.377392+01:00 [dbug] <0.229.0> == Prelaunch DONE ==
    2021-03-03 10:22:30.377860+01:00 [info] <0.229.0>
    2021-03-03 10:22:30.377860+01:00 [info] <0.229.0>  Starting RabbitMQ 3.8.10+115.g071f3fb on Erlang 23.2.5
    2021-03-03 10:22:30.377860+01:00 [info] <0.229.0>  Licensed under the MPL 2.0. Website: https://rabbitmq.com

The example above also shows that multiline messages are supported and
each line is prepended with the same prefix (the timestamp, the level
and the Erlang process PID).

JSON is also supported as a message format and now for any outputs.
Indeed, it is possible to use it with e.g. syslog or the exchange. Here
is an example of a JSON-formatted message sent to syslog:

    Mar  3 11:23:06 localhost rabbitmq-server[27908] <0.229.0> - {"time":"2021-03-03T11:23:06.998466+01:00","level":"notice","msg":"Logging: configured log handlers are now ACTIVE","meta":{"domain":"rabbitmq.prelaunch","file":"src/rabbit_prelaunch_logging.erl","gl":"<0.228.0>","line":311,"mfa":["rabbit_prelaunch_logging","configure_logger",1],"pid":"<0.229.0>"}}

For quick testing, the values accepted by the `$RABBITMQ_LOGS`
environment variables were extended:
  * `-` still means stdout
  * `-stderr` means stderr
  * `syslog:` means syslog on localhost
  * `exchange:` means logging to `amq.rabbitmq.log`

`$RABBITMQ_LOG` was also extended. It now accepts a `+json` modifier (in
addition to the existing `+color` one). With that modifier, messages are
formatted as JSON intead of plain text.

The `rabbitmqctl rotate_logs` command is deprecated. The reason is
Logger does not expose a function to force log rotation. However, it
will detect when a file was rotated by an external tool.

From a developer point of view, the old `rabbit_log*` API remains
supported, though it is now deprecated. It is implemented as regular
modules: there is no `parse_transform` involved anymore.

In the code, it is recommended to use the new Logger macros. For
instance, `?LOG_INFO(Format, Args)`. If possible, messages should be
augmented with some metadata. For instance (note the map after the
message):

    ?LOG_NOTICE("Logging: switching to configured handler(s); following "
                "messages may not be visible in this log output",
                #{domain => ?RMQLOG_DOMAIN_PRELAUNCH}),

Domains in Erlang Logger parlance are the way to categorize messages.
Some predefined domains, matching previous categories, are currently
defined in `rabbit_common/include/logging.hrl` or headers in the
relevant plugins for plugin-specific categories.

At this point, very few messages have been converted from the old
`rabbit_log*` API to the new macros. It can be done gradually when
working on a particular module or logging.

The Erlang builtin console/file handler, `logger_std_h`, has been forked
because it lacks date-based file rotation. The configuration of
date-based rotation is identical to Lager. Once the dust has settled for
this feature, the goal is to submit it upstream for inclusion in Erlang.
The forked module is calld `rabbit_logger_std_h` and is based
`logger_std_h` in Erlang 23.0.
2021-03-11 15:17:36 +01:00
dcorbacho 61f7b2a723 Update to ranch 2.0 2021-03-08 23:11:05 +01:00
Michael Klishin b6c4831e75
Bump Lager to 3.9.1 2021-03-04 04:36:39 +03:00
Loïc Hoguin 66ac1bf5e9
Bump observer_cli to 1.6.1
More responsive when the system is overloaded with file calls.
2021-03-01 21:55:27 +03:00
Michael Klishin 8fe3df9343
Upgrade Lager to 3.9.0 for OTP 24 compatibility
`lager_util:expand_path/1` use changes are
due to erlang-lager/lager#540
2021-02-26 00:52:15 +03:00
Michael Klishin f73e851f9c
Bump observer_cli to 1.6.0 2021-02-24 12:53:55 +03:00
Michael Klishin a5098b28a7
Bump Lager to 3.8.2 for OTP 24 compatibility 2021-02-24 12:53:30 +03:00
Michael Klishin f431573268
Bump gen_server:call timeuts for rabbitmq_auth_backend_cache operations
as we have seen with channel operation timeouts, 5s is too low
under load spikes.
2021-02-04 01:22:18 +03:00
Arnaud Cogoluègnes b921ac11a8
Merge pull request #2712 from rabbitmq/rabbitmq-stream-prometheus
Add stream prometheus plugin
2021-01-27 16:46:37 +01:00
Michael Klishin 52479099ec
Bump (c) year 2021-01-22 09:00:14 +03:00
Arnaud Cogoluègnes bf72683eb2
Add stream prometheus plugin 2021-01-11 16:49:56 +01:00
Arnaud Cogoluègnes 23d7e8114c
Introduce stream management plugin 2020-11-19 14:48:25 +01:00
Jean-Sébastien Pédron 47686ee1f0
Remove unused .github directories
They were valid until the switch to the "monorepository" when everything
was merged into a single Git repository.
2020-11-17 13:33:16 +01:00
Arnaud Cogoluègnes eebf126cb7 Update rabbitmq-components.mk 2020-11-03 14:27:33 +01:00
Michael Klishin 778961efd6 Update rabbitmq-components.mk 2020-10-21 12:55:30 +03:00
Luke Bakken 2c45bb9f05 Update rabbitmq-components.mk 2020-08-04 08:41:45 -07:00
Jean-Sébastien Pédron f8464f3644 Update rabbitmq-components.mk 2020-07-30 12:06:50 +02:00
Luke Bakken 8a021cc1df Update rabbitmq-components.mk 2020-07-29 10:02:01 -07:00
dcorbacho a07fb00a22 Update erlang.mk 2020-07-21 14:31:45 +01:00
Jean-Sébastien Pédron 17df008fa7 Update rabbitmq-components.mk 2020-07-21 12:07:56 +02:00
Michael Klishin 69c72781bb Update rabbitmq-components.mk 2020-07-21 03:39:54 +03:00
dcorbacho 0790cab81b Update LICENSE 2020-07-20 10:40:36 +01:00
dcorbacho 1d61d72d00 Switch to Mozilla Public License 2.0 (MPL 2.0) 2020-07-10 19:57:18 +01:00
Michael Klishin 6eb728ac0e Update README.md 2020-06-24 00:31:56 +03:00
Jean-Sébastien Pédron f15db2239c Update erlang.mk 2020-06-23 17:13:10 +02:00
Michael Klishin 5f8b03f921 Update rabbitmq-components.mk 2020-06-10 19:51:13 +03:00
Ben Raven f4ad5bd4c1 Broken links fix 2020-05-05 15:07:30 +01:00
Luke Bakken 429df87baf Typo fix 2020-04-22 02:43:37 +00:00
Jean-Sébastien Pédron ec82c5562d Update copyright (year 2020) 2020-03-10 16:01:03 +01:00
Gerhard Lazu f8fc0aece1 Update rabbitmq-components.mk 2020-03-06 09:19:12 +00:00
Gerhard Lazu af2fc9b5cd Update erlang.mk 2020-03-06 09:17:13 +00:00
Jean-Sébastien Pédron 18f6f57e10 Travis CI: Update config from rabbitmq-common 2020-03-04 14:24:26 +01:00
Jean-Sébastien Pédron 58a911cdd2 Travis CI: Update config from rabbitmq-common 2020-03-04 11:17:13 +01:00
Jean-Sébastien Pédron 81046039d9 Travis CI: Update config from rabbitmq-common 2020-03-03 14:53:36 +01:00
Gerhard Lazu 014860677a Update rabbitmq-components.mk 2020-02-11 15:31:41 +00:00
Michael Klishin 2c0c6155c1 (c) bump 2019-12-29 05:50:24 +03:00
Jean-Sébastien Pédron a1aa7c0a5a Git: Ignore copied CLI 2019-12-12 13:22:28 +01:00
Jean-Sébastien Pédron 87e18dd850 Update rabbitmq-components.mk 2019-12-12 13:14:51 +01:00
kjnilsson a753e6460c Update rabbitmq-components.mk 2019-09-13 10:24:13 +01:00
kjnilsson 42cd81c3c0 Update rabbitmq-components.mk 2019-09-04 10:30:50 +01:00
Jean-Sébastien Pédron d83d3b7ed4 Update erlang.mk 2019-08-29 20:44:44 +02:00
Michael Klishin 55768c98ef Update rabbitmq-components.mk 2019-08-11 01:47:46 +10:00
Jean-Sébastien Pédron 3a5b831109 Update erlang.mk 2019-08-02 09:53:25 +02:00
Michael Klishin 8a8cd45ad2 Update rabbitmq-components.mk 2019-08-01 17:13:07 +03:00
Luke Bakken 7007994185 Add GitHub templates
And LICENSE file.

Related to rabbitmq/rabbitmq-auth-backend-oauth2#33
2019-07-18 14:33:47 -07:00
Arnaud Cogoluègnes 0308f3deb1 Update rabbitmq-components.mk 2019-07-09 16:05:48 +02:00
Michael Klishin e7035269a9 Adapt to rabbit_authz_backend interface changes in rabbitmq/rabbitmq-auth-backend-oauth2#28. 2019-07-03 10:37:21 +02:00
Jean-Sébastien Pédron 624d6866a8 Update rabbitmq-components.mk 2019-06-28 16:05:24 +02:00
Jean-Sébastien Pédron 399e1e8090 Update erlang.mk 2019-06-28 16:01:37 +02:00
Arnaud Cogoluègnes 1b4acaf1f7 Propagate protocol-specific context
Information like MQTT client ID is now propagated to the authn/authz
backend for all authentication and authorization functions.

References rabbitmq/rabbitmq-server#1767
2019-06-03 17:06:41 +02:00
Arnaud Cogoluègnes 45b6cae65f Add topic URL in readme 2019-06-03 17:05:55 +02:00
Gerhard Lazu 47d1c05c77 Update rabbitmq-components.mk 2019-06-03 02:23:30 +01:00
Jean-Sébastien Pédron f868a7ba3f Update rabbitmq-components.mk 2019-05-17 15:17:12 +02:00
Michael Klishin 569a496e4f Update rabbitmq-components.mk 2019-05-17 08:36:20 +03:00
Michael Klishin 04fb6e5a53 Update rabbitmq-components.mk 2019-05-16 23:22:41 +03:00
Michael Klishin 0544d7fc5a Update rabbitmq-components.mk 2019-05-14 11:50:38 +03:00
Michael Klishin ace822380c Update rabbitmq-components.mk 2019-05-13 16:40:23 +03:00
Gerhard Lazu 9467395433 Update rabbitmq-components.mk 2019-05-01 13:18:06 +01:00
Luke Bakken 1b7618c9a4 Update rabbitmq-components.mk 2019-04-30 16:20:52 -07:00
Jean-Sébastien Pédron 386c4ea5d0 Update rabbitmq-components.mk 2019-04-30 14:47:25 +02:00
Gerhard Lazu 3b4408ccc1 Update rabbitmq-components.mk 2019-04-22 21:54:58 +01:00
Daniil Fedotov c203f5094c Bigger timeouts to reduce false-positives 2019-04-09 18:09:48 -04:00
Jean-Sébastien Pédron 1160e3cc17 rabbit_auth_cache_SUITE: Bump `random_timing` expiry to 30 seconds
... from the inital 2 seconds expiry. This looked a bit too short in CI
where workers can be quite loaded.
2019-04-08 19:09:20 +02:00
Luke Bakken 8779cfda62 Ensure correct argument is passed for AuthzData 2019-03-22 10:41:06 -07:00
Luke Bakken 033d11266f Rename Sock to AuthzData
Part of rabbitmq/rabbitmq-auth-backend-cache#20
2019-03-22 10:38:23 -07:00
Spring Operator 683b6175ee URL Cleanup
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# HTTP URLs that Could Not Be Fixed
These URLs were unable to be fixed. Please review them to see if they can be manually resolved.

* http://blog.listincomprehension.com/search/label/procket (200) with 1 occurrences could not be migrated:
   ([https](https://blog.listincomprehension.com/search/label/procket) result ClosedChannelException).
* http://dozzie.jarowit.net/trac/wiki/TOML (200) with 1 occurrences could not be migrated:
   ([https](https://dozzie.jarowit.net/trac/wiki/TOML) result SSLHandshakeException).
* http://dozzie.jarowit.net/trac/wiki/subproc (200) with 1 occurrences could not be migrated:
   ([https](https://dozzie.jarowit.net/trac/wiki/subproc) result SSLHandshakeException).
* http://e2project.org (200) with 1 occurrences could not be migrated:
   ([https](https://e2project.org) result AnnotatedConnectException).
* http://nitrogenproject.com/ (200) with 2 occurrences could not be migrated:
   ([https](https://nitrogenproject.com/) result ConnectTimeoutException).
* http://proper.softlab.ntua.gr (200) with 1 occurrences could not be migrated:
   ([https](https://proper.softlab.ntua.gr) result SSLHandshakeException).
* http://yaws.hyber.org (200) with 1 occurrences could not be migrated:
   ([https](https://yaws.hyber.org) result AnnotatedConnectException).
* http://choven.ca (503) with 1 occurrences could not be migrated:
   ([https](https://choven.ca) result ConnectTimeoutException).

# Fixed URLs

## Fixed But Review Recommended
These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.

* http://fixprotocol.org/ (301) with 1 occurrences migrated to:
  https://fixtrading.org ([https](https://fixprotocol.org/) result SSLHandshakeException).
* http://erldb.org (UnknownHostException) with 1 occurrences migrated to:
  https://erldb.org ([https](https://erldb.org) result UnknownHostException).

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* http://cloudi.org/ with 27 occurrences migrated to:
  https://cloudi.org/ ([https](https://cloudi.org/) result 200).
* http://erlware.org/ with 1 occurrences migrated to:
  https://erlware.org/ ([https](https://erlware.org/) result 200).
* http://inaka.github.io/cowboy-trails/ with 1 occurrences migrated to:
  https://inaka.github.io/cowboy-trails/ ([https](https://inaka.github.io/cowboy-trails/) result 200).
* http://learnyousomeerlang.com/ets with 1 occurrences migrated to:
  https://learnyousomeerlang.com/ets ([https](https://learnyousomeerlang.com/ets) result 200).
* http://ninenines.eu with 6 occurrences migrated to:
  https://ninenines.eu ([https](https://ninenines.eu) result 200).
* http://www.actordb.com/ with 2 occurrences migrated to:
  https://www.actordb.com/ ([https](https://www.actordb.com/) result 200).
* http://www.cs.kent.ac.uk/projects/wrangler/Home.html with 1 occurrences migrated to:
  https://www.cs.kent.ac.uk/projects/wrangler/Home.html ([https](https://www.cs.kent.ac.uk/projects/wrangler/Home.html) result 200).
* http://www.rabbitmq.com/configure.html with 2 occurrences migrated to:
  https://www.rabbitmq.com/configure.html ([https](https://www.rabbitmq.com/configure.html) result 200).
* http://www.rabbitmq.com/plugin-development.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/plugin-development.html ([https](https://www.rabbitmq.com/plugin-development.html) result 200).
* http://www.rebar3.org with 1 occurrences migrated to:
  https://www.rebar3.org ([https](https://www.rebar3.org) result 200).
* http://inaka.github.com/apns4erl with 1 occurrences migrated to:
  https://inaka.github.com/apns4erl ([https](https://inaka.github.com/apns4erl) result 301).
* http://inaka.github.com/edis/ with 1 occurrences migrated to:
  https://inaka.github.com/edis/ ([https](https://inaka.github.com/edis/) result 301).
* http://lasp-lang.org/ with 1 occurrences migrated to:
  https://lasp-lang.org/ ([https](https://lasp-lang.org/) result 301).
* http://rabbitmq.com/access-control.html with 3 occurrences migrated to:
  https://rabbitmq.com/access-control.html ([https](https://rabbitmq.com/access-control.html) result 301).
* http://saleyn.github.com/erlexec with 1 occurrences migrated to:
  https://saleyn.github.com/erlexec ([https](https://saleyn.github.com/erlexec) result 301).
* http://www.mozilla.org/MPL/ with 8 occurrences migrated to:
  https://www.mozilla.org/MPL/ ([https](https://www.mozilla.org/MPL/) result 301).
* http://zhongwencool.github.io/observer_cli with 1 occurrences migrated to:
  https://zhongwencool.github.io/observer_cli ([https](https://zhongwencool.github.io/observer_cli) result 301).

# Ignored
These URLs were intentionally ignored.

* http://127.0.0.1:8080/auth/resource with 1 occurrences
* http://127.0.0.1:8080/auth/user with 1 occurrences
* http://127.0.0.1:8080/auth/vhost with 1 occurrences
* http://localhost:8080/auth/resource with 1 occurrences
* http://localhost:8080/auth/user with 1 occurrences
* http://localhost:8080/auth/vhost with 1 occurrences
2019-03-20 03:11:34 -05:00
Michael Klishin 304d3ed34f Travis: use Erlang 21.3, Elixir 1.8.1 2019-03-20 10:33:11 +03:00
Michael Klishin 8073505148 Update rabbitmq-components.mk 2019-03-15 05:32:45 +03:00
Michael Klishin c9f1bfbbd3 Update rabbitmq-components.mk 2019-03-15 05:05:35 +03:00
Michael Klishin accaad36db Update rabbitmq-components.mk 2019-02-12 23:23:45 +03:00
SAMUEL NELA 6526700c8b Fixed typo 2019-02-01 22:52:33 +01:00
Luke Bakken 01fe415851 Support the cache_refusals conf setting
Fixes #17
2019-01-14 11:53:47 -08:00
Michael Klishin 24d3a4a004 .travis.yml: use 21.2 as 21.2.2 builds are no available 2019-01-14 01:20:17 +03:00
Michael Klishin 524b8007cb .travis.yml: sync Erlang and Elixir versions, require Erlang/OTP 21.2 2019-01-13 05:49:56 +03:00
Luke Bakken 163f51c8c9 Update rabbitmq-components.mk 2019-01-09 12:54:52 -08:00
Luke Bakken 4d2aef98fd Update rabbitmq-components.mk 2019-01-08 11:58:23 -08:00
Romain Bouyé d0aeab759e Update README.md
Missing comma in the cache_ttl classic configuration example
2018-12-17 19:10:20 +00:00
Michael Klishin 4ea64e4ff2 Update rabbitmq-components.mk 2018-12-06 18:28:37 +03:00
Michael Klishin 93732ba34a Update rabbitmq-components.mk 2018-12-06 03:15:04 +03:00
Jean-Sébastien Pédron 19a72dd42d Update rabbitmq-components.mk 2018-11-30 14:56:44 +01:00
Jean-Sébastien Pédron 08638187a0 Update rabbitmq-components.mk 2018-11-22 09:19:29 +01:00
kjnilsson cd4d00532a Update rabbitmq-components.mk 2018-10-29 12:43:13 +00:00
Jean-Sébastien Pédron 0a95fbeb5b Update rabbitmq-components.mk 2018-09-19 10:38:10 +02:00
Jean-Sébastien Pédron af0b1d7e25 Update rabbitmq-components.mk 2018-09-11 14:22:23 +02:00
Jean-Sébastien Pédron 8209d10df5 Update rabbitmq-components.mk 2018-08-09 17:44:09 +02:00
Jean-Sébastien Pédron d6dc8a2f97 Update rabbitmq-components.mk 2018-08-09 12:16:55 +02:00
Michael Klishin 2d40c918e3 Fix formatting 2018-07-30 03:38:17 +03:00
Michael Klishin 228146d9b7 Doc edits 2018-07-30 03:37:27 +03:00
Michael Klishin cefa459731 Documentation improvements
Based on a recent rabbitmq-users thread.
2018-07-30 03:33:05 +03:00
Rick Carlino 35ba0a00ef Very minor typo in README.md 2018-07-06 07:50:00 -05:00
Michael Klishin 2fb0c448c8 Accept authentication context in user_login_authorization/2
Part of rabbitmq/rabbitmq-server#1633.

[#158805410]
2018-07-04 12:42:24 +03:00
Jean-Sébastien Pédron 5694d38364 Update rabbitmq-components.mk 2018-06-07 11:31:30 +02:00