All notable changes to Draupnir will be kept in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
The
!draupnir protections config <protection> <set/add/remove> <value>
commands are now working again. A tutorial has been written explaining how to use these commands https://the-draupnir-project.github.io/draupnir-documentation/protections/configuring-protections. Reviewed by @FSG-Cat. -
The
BanPropagationProtection
now shows a prompt for all unbans, even when there is no matching rule. This is to make it easier to unban a user from all the rooms draupnir is protecting, and not just when removing policy rules. Reported by @mahdi1234 in #622. -
The
JoinWaveShortCircuitProtection
has been improved:- The
JoinWaveShortCircuitProtection
now uses a leaky bucket token algorithm, prior to this the entire bucket got dumped after a preconfigured time. - The status command for the protection has returned and will show how full each bucket is.
- The
-
A bug where providing a bad or missing argument could render the help hint poorly or crash draupnir has been fixed. #642.
-
A new
!draupnir protections show <protection>
command that can display all of the settings and capability providers for a protection. -
A new command
!draupnir protections capability <capability name> <provider name>
to configure a protection's active capabilitity providers. This is experimental and is intended to be used in conjunction with the!draupnir protections show <protection>
command. It's not clear whether we will demonstrate protection capabilities before or after the upcoming2.0.0
release.
Special thanks to @TheArcaneBrony, @ll-SKY-ll, @MTRNord, and @daedric7 for providing support to myself and others in #draupnir:matrix.org.
-
Breaking: The Node version required to run Draupnir has been updated from Node 18 to Node 20. If you are using Debian, please follow our documentation for using Debian and node source here, kindly contributed by @ll-SKY-ll. This is due to of the release policy of one of our major dependencies, matrix-appservice-bridge, by @MTRNord in #609. We did this as part of larger work to attempt to fix issues with Element's "invisible crypto" documented in #608.
-
The Dockerfile now uses a multi-stage build, so
docker build
will just work again. Thanks to @ShadowJonathan for reporting. We also optimized the image size just slightly. Long term we've been blocked on for years on matrix-org/matrix-rust-sdk-crypto-nodejs#19 which would allow us to use the alpine image and take the size down to under 200MB again. So if anyone can help out there it'll make a massive difference and be greatly appreciated. -
Dockerfile
: entry-point was renamed frommjolnir-entrypoint.sh
todraupnir-entrypoint.sh
. If you have built a Dockerfile based on ours, you may need to make some changes. -
Dockerfile
: source code was moved from/mjolnir
to/draupnir
. If you have built a custom docker image based on our Dockerfile based on ours, you may need to make some changes. -
The appservice registration file generator no longer emits
mjolnir-registration.yaml
as it has been renamed todraupnir-registration.yaml
. This is only a concern if you have automated tooling that generates a registration file. -
The safe mode recovery command now prompts for confirmation.
-
Some references to
Mjolnir
have been changed toDraupnir
thanks to @FSG-Cat in #591.
-
Enable
proseWrap
in prettier, by @Mikaela in #605. We thought that this was enabled already but turns out we missed it. -
The
no-confirm
keyword argument now has special meaning, see the safe mode recover command and renderer description for an example.
-
Safe mode now shows a preview of the persistent configs, including the property or item that is causing Draupnir to fail to start. Special thanks for the feedback from @jimmackenzie and @TheArcaneBrony. Thanks to @julianfoad for documenting the use case for safe mode.
-
Draupnir now logs at startup the path used to load its configuration file, and which options are used for loading secrets. We also show any non-default configuration values if Draupnir crashes. This is to to try make it very clear to system administrators which configuration options are being used by Draupnir and help them diagnose startup issues.
- Starting Draupnir without the
--draupnir-config
option will cause a deprecation warning.
-
The spurious warnings about not being able to find a config file when the
--draupnir-config
option was used have been been removed. -
The documentation for the
WordListProtection
in the configuration file claimed that regexes where supported when this wasn't the case. Removed by @FSG-Cat in #600. We will rewrite this protection entirely at a later date.
- Fixed a bug where sometimes the help command wouldn't show if
--keyword
or options were used in an unrecognized command.
Please see Releases for more information.