v1.21.0-pre1 #768
Xe
announced in
Announcements
Replies: 1 comment 2 replies
-
Those are 404 |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Minfilia Warde
In this release, Anubis becomes internationalized, gains the ability to use system load as input to issuing challenges,
This release is brought to you by FreeCAD, an open-source computer aided design tool that lets you design things for the real world.
Big ticket changes
The biggest change is that the "invalid response" after "success" bug is now finally fixed for good by totally rewriting how Anubis' challenge issuance flow works. Instead of generating challenge strings from request metadata (under the assumption that the values being compared against are stable), Anubis now generates random data for each challenge. This data is stored in the active storage backend for up to 30 minutes. This also fixes #746 and other similar instances of this issue.
In order to reduce confusion, the "Success" interstitial that shows up when you pass a proof of work challenge has been removed.
Storage
Anubis now is able to store things persistently in memory, on the disk, or in Valkey (this includes other compatible software). By default Anubis uses the in-memory backend. If you have an environment with mutable storage (even if it is temporary), be sure to configure the
bbolt
storage backend.Localization
Anubis now supports localized responses. Locales can be added in lib/localization/locales/. This release includes support for the following languages:
If facts or local regulations demand, you can set Anubis default language with the
FORCE_LANGUAGE
environment variable:Load-based checks
Anubis can dynamically take action based on the system load average, allowing you to write rules like this:
Something to keep in mind about system load average is that it is not aware of the number of cores the system has. If you have a 16 core system that has 16 processes running but none of them is hogging the CPU, then you will get a load average below 16. If you are in doubt, make your "high load" metric at least two times the number of CPU cores and your "low load" metric at least half of the number of CPU cores. For example:
8.0
2.0
32.0
8
Also keep in mind that this does not account for other kinds of latency like I/O latency. A system can have its web applications unresponsive due to high latency from a MySQL server but still have that web application server report a load near or at zero.
Other features and fixes
There are a bunch of other assorted features and fixes too:
COOKIE_SECURE
option to set the cookie Secure flagBIND_NETWORK
/--bind-network
value from the bind address (#677).Potentially breaking changes
The following potentially breaking change applies to native installs with systemd only:
Each instance of systemd service template now has a unique
RuntimeDirectory
, as opposed to each instance of the service sharing aRuntimeDirectory
. This change was made to avoid theRuntimeDirectory
getting nuked any time one of the Anubis instances restarts.If you configured Anubis' unix sockets to listen on
/run/anubis/foo.sock
for instanceanubis@foo
, you will need to configure Anubis to listen on/run/anubis/foo/foo.sock
and additionally configure your HTTP load balancer as appropriate.If you need the legacy behaviour, install this systemd unit dropin:
Just keep in mind that this will cause problems when Anubis restarts.
What's Changed
New Contributors
Full Changelog: v1.20.0...v1.21.0-pre1
This discussion was created from the release v1.21.0-pre1.
Beta Was this translation helpful? Give feedback.
All reactions