v1.12.1
Fixes
-
CrowdSec counts could sit at zero while decisions were plainly there. When the decisions
refresh failed, the last successful read was served as though it were current, with nothing to
say otherwise. An expired machine registration therefore looked like no local bans rather than
like an authentication problem, and the cache outlives a restart so it did not clear itself.
Old decisions are still shown rather than a screen of zeroes, but once they are more than
15 minutes stale the Bans in force card says so and names the reason (#159) -
Update checks could exhaust the GitHub API rate limit. The daily check for new Traefik Manager
and Traefik releases read the release list without any caching, so anything that made the check run
more than once a day sent a fresh request every time. The 60 requests an hour that GitHub allows
without a token is shared by public IP address, so this could also affect other tools on the same
network. Release lookups are now cached for an hour and shared between the background check and the
About panel, which caps them at one request per repository per hour (#158) -
A failed rate-limited lookup retried immediately, forever. Once a cached release had expired and
GitHub answered with a rate limit, the result was never cached, so every later check asked again.
Being rate limited made the requests more frequent rather than less. A refused lookup now waits a
full hour before retrying, keeps showing the last version it managed to read, and a temporary
network failure retries after five minutes -
Background checks ignored their schedule when their state could not be saved. The monitor keeps
the time of each check inmonitor.jsonand reloads it every cycle. If that file could not be
written, every check ran on every cycle, turning daily checks into checks every 15 seconds. The
schedule is now kept in memory as well, so a save failure at worst repeats a check after a restart