0.46.0 (2026-10-19)
Features
- add the CrowdSec apply job model (d89a2e7)
- add the CrowdSec apply job model (58a0f30)
- add the CrowdSec install job endpoints and restart recovery (f690a57)
- add the CrowdSec install job endpoints and restart recovery (ce812ca)
- install large CrowdSec hub presets in the background (#1656) (83d0428)
- offer Orthrus first and hide the unusable local Docker source (#1663) (efae7c9)
- run CrowdSec preset installs as background jobs (c038df4)
- run CrowdSec preset installs as background jobs (6b61ce2)
- show CrowdSec install progress in the presets card (647c3a2)
- show CrowdSec install progress in the presets card (e321342)
Bug Fixes
- bound the cost of parsing CrowdSec YAML files (75612b8)
- bound the CrowdSec bouncer registration and report alert failures (7c09ca1)
- bound the output read from cscli (a8a7549)
- cap the size of CrowdSec request bodies (775f910)
- check the CrowdSec configuration with a command that exists (bac265d)
- close gaps found in review of the CrowdSec hardening batch (b1ac39a)
- correct navigation labels in the Sources hint and docs and finish the Add Source rename (1e42471)
- count only candidate files when keeping private keys on import (38902fe)
- decide CrowdSec console enrollment from the status JSON (f6bfc9d)
- disable the local Docker source in the proxy host form when no socket is reachable (a668e13)
- do not start CrowdSec again while it is already running (5a2b22c)
- give CrowdSec import refusals stable error codes (ea25ae7)
- harden CrowdSec exports, imports and parsing (#1607) (c010d35)
- harden the CrowdSec export key file checks (614a069)
- hide the CrowdSec top IPs country column when no country is known (f5cd1a5)
- honor the alerts range and offset (324ac1e)
- i18n: update Crowdin translations (699cb94)
- i18n: update Crowdin translations (2371e67)
- i18n: update Crowdin translations (#1641) (287b865)
- i18n: update Crowdin translations (#1650) (41d20e2)
- i18n: update loading messages in Chinese translations for consistency (7cc427a)
- i18n: update loading messages in Chinese translations for consistency (bf1b242)
- identify the CrowdSec engine by executable and serialise start and stop (d1e1809)
- keep CrowdSec file backups from overwriting each other (c961f9a)
- keep CrowdSec hub items that share a name apart (57717b7)
- keep the CrowdSec acquisition save safe on mounted files and failures (d91eb44)
- keep the CrowdSec install progress row accessible and send the preview digest (63cd02f)
- keep the CrowdSec install progress row accessible and send the preview digest (63ff60a)
- keep the CrowdSec top IPs ordering valid when the country column hides (bdf0c50)
- keep the current key files when importing a CrowdSec configuration (a298a37)
- keep track of the running CrowdSec process (6439f25)
- keep track of the running CrowdSec process (#1651) (632f9c1)
- leave database credentials out of CrowdSec exports (6bb15c3)
- leave private key files out of CrowdSec exports (15410a5)
- limit the fields returned by the CrowdSec alerts endpoint (537f2eb)
- lint: add i18n-json linting for locale files (303973d)
- lint: add i18n-json linting for locale files (0582952)
- make CrowdSec background installs safer to cancel, recover and release (9a0629c)
- make CrowdSec background installs safer to cancel, recover and release (656dc6f)
- make the cached CrowdSec preset preview reachable (168869b)
- make the CrowdSec ban, unban, dashboard and alerts endpoints robust with the real cscli (#1628) (724bfd5)
- make the CrowdSec decisions list and config check work with the bundled cscli (#1621) (8721b9e)
- patch caddy-crowdsec-bouncer for go-cs-lib DetectOS signature (ddc3709)
- patch caddy-crowdsec-bouncer for go-cs-lib DetectOS signature (#1608) (1c32aba)
- re-authenticate Docker Hub prune when the session token expires (ad72581)
- read all cscli listings with the shared JSON reader (4a9c90b)
- record CrowdSec background installs in the history and harden hub downloads (f6ba76f)
- record CrowdSec background installs in the history and harden hub downloads (089c359)
- record CrowdSec unbans and explain exact-match removal (42769cd)
- rename Remote Servers to Sources to match the proxy host Source dropdown (680284d)
- replace the CrowdSec permanent ban option (4e7477e)
- report an unreachable CrowdSec hub clearly (4499060)
- report real CrowdSec install progress, refuse stale applies up front and prune recovered snapshots (5d244ce)
- report real CrowdSec install progress, refuse stale applies up front and prune recovered snapshots (6e63e7b)
- report whether the local Docker socket is usable so the UI can stop offering a dead option (848b7e4)
- return the same soft error for any oversized cscli output (e3a23ab)
- run every CrowdSec command through one helper with a deadline (1ca0e29)
- serialise and atomically write the CrowdSec acquisition config (7a0b1e4)
- serialise CrowdSec acquisition saves and keep file backups distinct (#1654) (d20c0c2)
- show a dash for a missing CrowdSec last seen time (33a5bda)
- show clear messages for CrowdSec ban and unban errors in the UI (72ef2a2)
- show CrowdSec list errors in the UI (9b99bbb)
- show the decisions from the real cscli output (f40b1dc)
- show the last seen time in the CrowdSec top IPs list (d669e87)
- show translated messages for CrowdSec import refusals (1ed6530)
- take a light CrowdSec snapshot before applying a hub preset (f5573ab)
- tell users which files a CrowdSec export left out (045d831)
- tidy CrowdSec top IPs, hub verification and snapshot coverage (#1653) (32b12ae)
- tighten CrowdSec exports, imports, hub presets and the ban dialog (#1640) (c538bdb)
- tighten the CrowdSec hub index window and top IPs ordering (265d3eb)
- use the saved bouncer key for direct CrowdSec API calls (583d3f6)
- use the shared mask for the bouncer registration key preview (5701d14)
- validate the CrowdSec ban request and support ranges (aaea91c)
- verify CrowdSec hub items with the engine configuration (b593ed5)
- widen private key detection in CrowdSec exports (3441a45)