Skip to content

pkg/parsers: light refact, remove redundant code#4213

Merged
mmetc merged 4 commits intomasterfrom
ref-parsers
Feb 23, 2026
Merged

pkg/parsers: light refact, remove redundant code#4213
mmetc merged 4 commits intomasterfrom
ref-parsers

Conversation

@mmetc
Copy link
Copy Markdown
Contributor

@mmetc mmetc commented Jan 20, 2026

No description provided.

@mmetc mmetc added this to the Next release milestone Jan 20, 2026
@github-actions
Copy link
Copy Markdown

@mmetc: There are no area labels on this PR. You can add as many areas as you see fit.

  • /area agent
  • /area local-api
  • /area cscli
  • /area appsec
  • /area security
  • /area configuration
Details

I am a bot created to help the crowdsecurity developers manage community feedback and contributions. You can check out my manifest file to understand my behavior and what I can do. If you want to use this for your project, you can check out the BirthdayResearch/oss-governance-bot repository.

@codecov
Copy link
Copy Markdown

codecov Bot commented Jan 20, 2026

Codecov Report

❌ Patch coverage is 42.85714% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 63.18%. Comparing base (4624f98) to head (1ef26a4).
⚠️ Report is 19 commits behind head on master.

Files with missing lines Patch % Lines
pkg/parser/unix_parser.go 28.57% 5 Missing ⚠️
cmd/crowdsec-cli/clilapi/context.go 50.00% 0 Missing and 1 partial ⚠️
cmd/crowdsec/crowdsec.go 50.00% 0 Missing and 1 partial ⚠️
pkg/parser/runtime.go 50.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4213      +/-   ##
==========================================
+ Coverage   63.10%   63.18%   +0.07%     
==========================================
  Files         473      473              
  Lines       33476    33469       -7     
==========================================
+ Hits        21126    21147      +21     
+ Misses      10226    10206      -20     
+ Partials     2124     2116       -8     
Flag Coverage Δ
bats 46.60% <42.85%> (+0.01%) ⬆️
unit-linux 36.13% <14.28%> (+0.10%) ⬆️
unit-windows 24.47% <14.28%> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@mmetc mmetc modified the milestones: Next release, 1.7.6, 1.7.7 Jan 22, 2026
@mmetc mmetc marked this pull request as draft January 23, 2026 13:32
@mmetc mmetc marked this pull request as ready for review January 26, 2026 09:39
Copy link
Copy Markdown
Contributor

@sabban sabban left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@mmetc mmetc merged commit ceb9987 into master Feb 23, 2026
20 of 21 checks passed
@mmetc mmetc deleted the ref-parsers branch February 23, 2026 09:47
bjw-s added a commit to bjw-s-labs/home-ops that referenced this pull request Apr 2, 2026
….7.7 ) (#26)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [docker.io/crowdsecurity/crowdsec](https://github.com/crowdsecurity/crowdsec) | patch | `v1.7.6` → `v1.7.7` |

---

### Release Notes

<details>
<summary>crowdsecurity/crowdsec (docker.io/crowdsecurity/crowdsec)</summary>

### [`v1.7.7`](https://github.com/crowdsecurity/crowdsec/releases/tag/v1.7.7)

[Compare Source](crowdsecurity/crowdsec@v1.7.6...v1.7.7)

CrowdSec 1.7.7 brings 2 major changes:

- On linux, [RE2](https://github.com/google/re2) is now used by default for evaluating regexp in parsers
- WAF rules can now contain a mix of AND/OR conditions without any limits, giving much greater flexibility when writing new rules

##### RE2 by default on linux

CrowdsSec has supported for a long time using RE2 as the regexp engine, and with this release we make it the default.

CrowdSec has always used the builtin Go regexp package, which is a Go reimplementation of the RE2 library, but with known performance limitations.

The switch to RE2 will bring significantly increased regexp performance (one of the most critical part of CrowdSec) at the cost of slightly longer regexp compilation and higher baseline memory usage.

> \[!IMPORTANT]
> If you encounter any issues with the new regexp engine, you can fallback to the previous Go implementation by setting the feature flag `re2_disable_grok_support` (see [the documentation](https://docs.crowdsec.net/docs/next/configuration/feature_flags/#enabling-a-feature-flag)).

##### Other changes

Other notable changes include:

- a new `kind` attribute for alerts used to identify its source (a scenario, a WAF rule, a manual decision creation, ...)
- a new `cscli allowlist import` command
- support for the `HTTP_PROXY` environment variable in the `notification-http` plugin
- A resource leak under high load was fixed

### Full changelog

#### New Features

- add LookupFile and FileMap expr helpers ([#&#8203;4372](crowdsecurity/crowdsec#4372)) [@&#8203;buixor](https://github.com/buixor)
- waf rules: allow arbitrary mix of AND and OR conditions ([#&#8203;4358](crowdsecurity/crowdsec#4358)) [@&#8203;blotus](https://github.com/blotus)

#### Improvements

- enable RE2 support by default on linux ([#&#8203;4386](crowdsecurity/crowdsec#4386)) [@&#8203;blotus](https://github.com/blotus)
- cscli allowlists: add import command ([#&#8203;4378](crowdsecurity/crowdsec#4378)) [@&#8203;blotus](https://github.com/blotus)
- WAF: expose more transformations from coraza ([#&#8203;4140](crowdsecurity/crowdsec#4140)) [@&#8203;blotus](https://github.com/blotus)
- Add new `kind` alert attribute ([#&#8203;4351](crowdsecurity/crowdsec#4351)) [@&#8203;blotus](https://github.com/blotus)
- Use environment proxy settings for notification-http ([#&#8203;4364](crowdsecurity/crowdsec#4364)) [@&#8203;op3](https://github.com/op3)

#### Bug Fixes

- allowlists: apply items to existing decisions in batch ([#&#8203;4095](crowdsecurity/crowdsec#4095)) [@&#8203;blotus](https://github.com/blotus)
- waf: fix tests for modsec rules generation ([#&#8203;4385](crowdsecurity/crowdsec#4385)) [@&#8203;blotus](https://github.com/blotus)
- windows: add file notification plugin in MSI package ([#&#8203;4367](crowdsecurity/crowdsec#4367)) [@&#8203;blotus](https://github.com/blotus)
- leakroutine: call cancel after leakroutine returns ([#&#8203;4369](crowdsecurity/crowdsec#4369)) [@&#8203;blotus](https://github.com/blotus)
- notification-sentinel: lower-case x-ms-date header for correct HMAC ([#&#8203;4288](crowdsecurity/crowdsec#4288)) [@&#8203;ebirn](https://github.com/ebirn)
- tests: remove temporary sqlite/plugin files from /tmp/ ([#&#8203;4332](crowdsecurity/crowdsec#4332)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/apiserver: fix scenario count in debug log ([#&#8203;4333](crowdsecurity/crowdsec#4333)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/csplugin: prevent race condition, deadlock ([#&#8203;4294](crowdsecurity/crowdsec#4294)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/acquisitioncontext: minimal fix for data race in tests ([#&#8203;4327](crowdsecurity/crowdsec#4327)) [@&#8203;mmetc](https://github.com/mmetc)
- acquisition/file: minimal fix for data race in tests ([#&#8203;4326](crowdsecurity/crowdsec#4326)) [@&#8203;mmetc](https://github.com/mmetc)
- fix lint fsutil/freebsd: unnecessary conversion ([#&#8203;4324](crowdsecurity/crowdsec#4324)) [@&#8203;mmetc](https://github.com/mmetc)
- cscli: consistent status and usage message for unknown subcommands ([#&#8203;4320](crowdsecurity/crowdsec#4320)) [@&#8203;mmetc](https://github.com/mmetc)
- cscli detect: set log type for caddy unit to "syslog" ([#&#8203;4321](crowdsecurity/crowdsec#4321)) [@&#8203;mmetc](https://github.com/mmetc)
- CI: add published\_at to version.crowdsec.net/latest ([#&#8203;4291](crowdsecurity/crowdsec#4291)) [@&#8203;blotus](https://github.com/blotus)
- cmd/crowdsec: assign overflow after parsing ([#&#8203;4226](crowdsecurity/crowdsec#4226)) [@&#8203;mmetc](https://github.com/mmetc)
- waf: format as CRS match only if anomaly score is not 0 ([#&#8203;4230](crowdsecurity/crowdsec#4230)) [@&#8203;blotus](https://github.com/blotus)

#### Changes

- build(deps): bump cryptography from 46.0.3 to 46.0.5 in /build/docker/test ([#&#8203;4298](crowdsecurity/crowdsec#4298)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- support for waf- alias in cscli ([#&#8203;4347](crowdsecurity/crowdsec#4347)) [@&#8203;buixor](https://github.com/buixor)
- refact pkg/dumps: reduce complexity ([#&#8203;4209](crowdsecurity/crowdsec#4209)) [@&#8203;mmetc](https://github.com/mmetc)
- lint: refact pkg/dumps for nilaway ([#&#8203;4208](crowdsecurity/crowdsec#4208)) [@&#8203;mmetc](https://github.com/mmetc)
- refact pkg/parser: redundant indirection ([#&#8203;4344](crowdsecurity/crowdsec#4344)) [@&#8203;mmetc](https://github.com/mmetc)
- refact pkg/parser: extract+embed NodeConfig in Node struct ([#&#8203;4343](crowdsecurity/crowdsec#4343)) [@&#8203;mmetc](https://github.com/mmetc)
- move calls to trace.ReportPanic() on top of goroutines ([#&#8203;4338](crowdsecurity/crowdsec#4338)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/csplugin: simplify notification loop; noop with empty queue ([#&#8203;4328](crowdsecurity/crowdsec#4328)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/parsers: light refact, remove redundant code ([#&#8203;4213](crowdsecurity/crowdsec#4213)) [@&#8203;mmetc](https://github.com/mmetc)
- refact cmd/crowdsec: encapsulate cache into alertBuffer ([#&#8203;4300](crowdsecurity/crowdsec#4300)) [@&#8203;mmetc](https://github.com/mmetc)
- cmd/notification-\*: don't provide the same context twice for request ([#&#8203;4316](crowdsecurity/crowdsec#4316)) [@&#8203;mmetc](https://github.com/mmetc)
- don't flush 127.0.0.1 ([#&#8203;4315](crowdsecurity/crowdsec#4315)) [@&#8203;sabban](https://github.com/sabban)
- clipapi: replace tomb with errgroup ([#&#8203;4207](crowdsecurity/crowdsec#4207)) [@&#8203;mmetc](https://github.com/mmetc)
- refact cmd/crowdsec: remove redundant global variable ([#&#8203;4299](crowdsecurity/crowdsec#4299)) [@&#8203;mmetc](https://github.com/mmetc)
- refact: remove unused code in crowdsec-cli, apiserver, acquisition, database ([#&#8203;4304](crowdsecurity/crowdsec#4304)) [@&#8203;mmetc](https://github.com/mmetc)
- refact pkg/leakybucket: trim down redundant Leaky struct fields ([#&#8203;4290](crowdsecurity/crowdsec#4290)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: remove global bucketStore, unused parameters + tags ([#&#8203;4286](crowdsecurity/crowdsec#4286)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: remove Simulated field from Leaky, keep it in config ([#&#8203;4285](crowdsecurity/crowdsec#4285)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: extract BucketSpec from BucketFactory ([#&#8203;4284](crowdsecurity/crowdsec#4284)) [@&#8203;mmetc](https://github.com/mmetc)
- refact pkg/leakybucket: extract methods from LoadBucket() part 2 ([#&#8203;4282](crowdsecurity/crowdsec#4282)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: refact test loop, more explicit failures in testFile() ([#&#8203;4281](crowdsecurity/crowdsec#4281)) [@&#8203;mmetc](https://github.com/mmetc)
- refact pkg/leakybucket: extract methods from LoadBucket() ([#&#8203;4279](crowdsecurity/crowdsec#4279)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: replace Signal chan with explicit read/done chans ([#&#8203;4277](crowdsecurity/crowdsec#4277)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: replace waitgroups with single rwlock ([#&#8203;4276](crowdsecurity/crowdsec#4276)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: garbage collect: compare float with epsilon ([#&#8203;4275](crowdsecurity/crowdsec#4275)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: refactor tests ([#&#8203;4272](crowdsecurity/crowdsec#4272)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: replace sycn.Map with map + mutex ([#&#8203;4271](crowdsecurity/crowdsec#4271)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: replace global counter with call to bucket store ([#&#8203;4273](crowdsecurity/crowdsec#4273)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: review README.md ([#&#8203;4274](crowdsecurity/crowdsec#4274)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: encapsulate store map + add methods ([#&#8203;4253](crowdsecurity/crowdsec#4253)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: remove redundant bool var ([#&#8203;4252](crowdsecurity/crowdsec#4252)) [@&#8203;mmetc](https://github.com/mmetc)
- fix hub console side ([#&#8203;4266](crowdsecurity/crowdsec#4266)) [@&#8203;sabban](https://github.com/sabban)
- version workflow fix ([#&#8203;4262](crowdsecurity/crowdsec#4262)) [@&#8203;sabban](https://github.com/sabban)
- rename the prod branch to main ([#&#8203;4261](crowdsecurity/crowdsec#4261)) [@&#8203;sabban](https://github.com/sabban)
- add version workflow ([#&#8203;4210](crowdsecurity/crowdsec#4210)) [@&#8203;sabban](https://github.com/sabban)
- pkg/leakybucket: remove unused global ([#&#8203;4251](crowdsecurity/crowdsec#4251)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: pass bucket factories by pointer ([#&#8203;4250](crowdsecurity/crowdsec#4250)) [@&#8203;mmetc](https://github.com/mmetc)
- pkt/leakybucket: compileScopeFilter() -> ScopeType.CompileFilter() ([#&#8203;4247](crowdsecurity/crowdsec#4247)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: rename OverflowFilter -> OverflowProcessor ([#&#8203;4248](crowdsecurity/crowdsec#4248)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: rename Buckets -> BucketStore ([#&#8203;4246](crowdsecurity/crowdsec#4246)) [@&#8203;mmetc](https://github.com/mmetc)
- refact leaky bayesian: method to function, unlock w/defer ([#&#8203;4242](crowdsecurity/crowdsec#4242)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: early return ([#&#8203;4244](crowdsecurity/crowdsec#4244)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: variable shorthand ([#&#8203;4245](crowdsecurity/crowdsec#4245)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: move LeakRoutine to method, rename parameters ([#&#8203;4243](crowdsecurity/crowdsec#4243)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: review bucket validation and tests ([#&#8203;4241](crowdsecurity/crowdsec#4241)) [@&#8203;mmetc](https://github.com/mmetc)
- refact: remove unnecessary pointers to map, string, mutex ([#&#8203;4212](crowdsecurity/crowdsec#4212)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: function to method BucketFactory.LoadBucket() ([#&#8203;4229](crowdsecurity/crowdsec#4229)) [@&#8203;mmetc](https://github.com/mmetc)
- pkg/leakybucket: BucketType interface, method BucketFactory.Validate() ([#&#8203;4228](crowdsecurity/crowdsec#4228)) [@&#8203;mmetc](https://github.com/mmetc)

#### Chore / Deps

- build(deps): bump github.com/buger/jsonparser from 1.1.1 to 1.1.2 ([#&#8203;4382](crowdsecurity/crowdsec#4382)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- CI: use windows-2025 image ([#&#8203;4379](crowdsecurity/crowdsec#4379)) [@&#8203;blotus](https://github.com/blotus)
- build(deps): bump github/codeql-action from 4.32.6 to 4.33.0 ([#&#8203;4371](crowdsecurity/crowdsec#4371)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump astral-sh/setup-uv from 7.5.0 to 7.6.0 ([#&#8203;4373](crowdsecurity/crowdsec#4373)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump google.golang.org/grpc from 1.74.2 to 1.79.3 ([#&#8203;4376](crowdsecurity/crowdsec#4376)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump astral-sh/setup-uv from 7.3.1 to 7.5.0 ([#&#8203;4366](crowdsecurity/crowdsec#4366)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 ([#&#8203;4319](crowdsecurity/crowdsec#4319)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.32.5 to 4.32.6 ([#&#8203;4360](crowdsecurity/crowdsec#4360)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/build-push-action from 6.19.2 to 7.0.0 ([#&#8203;4361](crowdsecurity/crowdsec#4361)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump release-drafter/release-drafter from 6.2.0 to 6.4.0 ([#&#8203;4362](crowdsecurity/crowdsec#4362)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/setup-buildx-action from 3.12.0 to 4.0.0 ([#&#8203;4356](crowdsecurity/crowdsec#4356)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/setup-qemu-action from 3.7.0 to 4.0.0 ([#&#8203;4353](crowdsecurity/crowdsec#4353)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/setup-node from 6.2.0 to 6.3.0 ([#&#8203;4352](crowdsecurity/crowdsec#4352)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/login-action from 3.7.0 to 4.0.0 ([#&#8203;4354](crowdsecurity/crowdsec#4354)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- deps: update actions and golangci-lint ([#&#8203;4348](crowdsecurity/crowdsec#4348)) [@&#8203;mmetc](https://github.com/mmetc)
- build(deps): bump github/codeql-action from 4.32.4 to 4.32.5 ([#&#8203;4345](crowdsecurity/crowdsec#4345)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump astral-sh/setup-uv from 7.3.0 to 7.3.1 ([#&#8203;4346](crowdsecurity/crowdsec#4346)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/setup-go from 6.2.0 to 6.3.0 ([#&#8203;4339](crowdsecurity/crowdsec#4339)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0 ([#&#8203;4342](crowdsecurity/crowdsec#4342)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- replace trace.CatchPanic(...) with trace.ReportPanic() ([#&#8203;4336](crowdsecurity/crowdsec#4336)) [@&#8203;mmetc](https://github.com/mmetc)
- build(deps): bump github/codeql-action from 4.32.3 to 4.32.4 ([#&#8203;4322](crowdsecurity/crowdsec#4322)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- deps: update gocron v1 -> v2 ([#&#8203;4317](crowdsecurity/crowdsec#4317)) [@&#8203;mmetc](https://github.com/mmetc)
- build(deps): bump docker/build-push-action from 6.19.0 to 6.19.2 ([#&#8203;4306](crowdsecurity/crowdsec#4306)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.32.2 to 4.32.3 ([#&#8203;4312](crowdsecurity/crowdsec#4312)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.32.1 to 4.32.2 ([#&#8203;4292](crowdsecurity/crowdsec#4292)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- update golangci-lint 2.9 ([#&#8203;4302](crowdsecurity/crowdsec#4302)) [@&#8203;mmetc](https://github.com/mmetc)
- build(deps): bump astral-sh/setup-uv from 7.2.1 to 7.3.0 ([#&#8203;4296](crowdsecurity/crowdsec#4296)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/build-push-action from 6.18.0 to 6.19.0 ([#&#8203;4303](crowdsecurity/crowdsec#4303)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.32.0 to 4.32.1 ([#&#8203;4278](crowdsecurity/crowdsec#4278)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/setup-node from 4.4.0 to 6.2.0 ([#&#8203;4264](crowdsecurity/crowdsec#4264)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- CI: update python and dependencies ([#&#8203;4249](crowdsecurity/crowdsec#4249)) [@&#8203;mmetc](https://github.com/mmetc)
- build(deps): bump actions/checkout from 6.0.1 to 6.0.2 ([#&#8203;4263](crowdsecurity/crowdsec#4263)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump astral-sh/setup-uv from 7.2.0 to 7.2.1 ([#&#8203;4265](crowdsecurity/crowdsec#4265)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/login-action from 3.6.0 to 3.7.0 ([#&#8203;4257](crowdsecurity/crowdsec#4257)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.31.11 to 4.32.0 ([#&#8203;4254](crowdsecurity/crowdsec#4254)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.31.10 to 4.31.11 ([#&#8203;4233](crowdsecurity/crowdsec#4233)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/checkout from 6.0.1 to 6.0.2 ([#&#8203;4234](crowdsecurity/crowdsec#4234)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump release-drafter/release-drafter from 6.1.0 to 6.2.0 ([#&#8203;4222](crowdsecurity/crowdsec#4222)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/setup-python from 6.1.0 to 6.2.0 ([#&#8203;4223](crowdsecurity/crowdsec#4223)) @&#8203;[dependabot\[bot\]](https://github.com/apps/dependabot)

#### Geolite2 notice

This product includes GeoLite2 data created by MaxMind, available from <a href="https://www.maxmind.com"><https://www.maxmind.com></a>.

#### Installation

Take a look at the [installation instructions](https://doc.crowdsec.net/docs/getting_started/install_crowdsec).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My44Ni4wIiwidXBkYXRlZEluVmVyIjoiNDMuODYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==-->

Co-authored-by: Bernd Schorgers <me@bjw-s.dev>
Reviewed-on: https://git.bjw-s.dev/bjw-s/home-ops/pulls/26
Co-authored-by: renovate[bot] <renovate-bot@noreply.git.bjw-s.dev>
Co-committed-by: renovate[bot] <renovate-bot@noreply.git.bjw-s.dev>
renovate Bot added a commit to sdwilsh/ansible-playbooks that referenced this pull request Apr 8, 2026
##### [\`v1.7.7\`](https://github.com/crowdsecurity/crowdsec/releases/tag/v1.7.7)

CrowdSec 1.7.7 brings 2 major changes:

- On linux, [RE2](https://github.com/google/re2) is now used by default for evaluating regexp in parsers
- WAF rules can now contain a mix of AND/OR conditions without any limits, giving much greater flexibility when writing new rules

##### RE2 by default on linux

CrowdsSec has supported for a long time using RE2 as the regexp engine, and with this release we make it the default.

CrowdSec has always used the builtin Go regexp package, which is a Go reimplementation of the RE2 library, but with known performance limitations.

The switch to RE2 will bring significantly increased regexp performance (one of the most critical part of CrowdSec) at the cost of slightly longer regexp compilation and higher baseline memory usage.

> \[!IMPORTANT]
> If you encounter any issues with the new regexp engine, you can fallback to the previous Go implementation by setting the feature flag `re2_disable_grok_support` (see [the documentation](https://docs.crowdsec.net/docs/next/configuration/feature_flags/#enabling-a-feature-flag)).

##### Other changes

Other notable changes include:

- a new `kind` attribute for alerts used to identify its source (a scenario, a WAF rule, a manual decision creation, ...)
- a new `cscli allowlist import` command
- support for the `HTTP_PROXY` environment variable in the `notification-http` plugin
- A resource leak under high load was fixed

##### Full changelog

##### New Features

- add LookupFile and FileMap expr helpers ([#4372](crowdsecurity/crowdsec#4372)) [@buixor](https://github.com/buixor)
- waf rules: allow arbitrary mix of AND and OR conditions ([#4358](crowdsecurity/crowdsec#4358)) [@blotus](https://github.com/blotus)

##### Improvements

- enable RE2 support by default on linux ([#4386](crowdsecurity/crowdsec#4386)) [@blotus](https://github.com/blotus)
- cscli allowlists: add import command ([#4378](crowdsecurity/crowdsec#4378)) [@blotus](https://github.com/blotus)
- WAF: expose more transformations from coraza ([#4140](crowdsecurity/crowdsec#4140)) [@blotus](https://github.com/blotus)
- Add new `kind` alert attribute ([#4351](crowdsecurity/crowdsec#4351)) [@blotus](https://github.com/blotus)
- Use environment proxy settings for notification-http ([#4364](crowdsecurity/crowdsec#4364)) [@op3](https://github.com/op3)

##### Bug Fixes

- allowlists: apply items to existing decisions in batch ([#4095](crowdsecurity/crowdsec#4095)) [@blotus](https://github.com/blotus)
- waf: fix tests for modsec rules generation ([#4385](crowdsecurity/crowdsec#4385)) [@blotus](https://github.com/blotus)
- windows: add file notification plugin in MSI package ([#4367](crowdsecurity/crowdsec#4367)) [@blotus](https://github.com/blotus)
- leakroutine: call cancel after leakroutine returns ([#4369](crowdsecurity/crowdsec#4369)) [@blotus](https://github.com/blotus)
- notification-sentinel: lower-case x-ms-date header for correct HMAC ([#4288](crowdsecurity/crowdsec#4288)) [@ebirn](https://github.com/ebirn)
- tests: remove temporary sqlite/plugin files from /tmp/ ([#4332](crowdsecurity/crowdsec#4332)) [@mmetc](https://github.com/mmetc)
- pkg/apiserver: fix scenario count in debug log ([#4333](crowdsecurity/crowdsec#4333)) [@mmetc](https://github.com/mmetc)
- pkg/csplugin: prevent race condition, deadlock ([#4294](crowdsecurity/crowdsec#4294)) [@mmetc](https://github.com/mmetc)
- pkg/acquisitioncontext: minimal fix for data race in tests ([#4327](crowdsecurity/crowdsec#4327)) [@mmetc](https://github.com/mmetc)
- acquisition/file: minimal fix for data race in tests ([#4326](crowdsecurity/crowdsec#4326)) [@mmetc](https://github.com/mmetc)
- fix lint fsutil/freebsd: unnecessary conversion ([#4324](crowdsecurity/crowdsec#4324)) [@mmetc](https://github.com/mmetc)
- cscli: consistent status and usage message for unknown subcommands ([#4320](crowdsecurity/crowdsec#4320)) [@mmetc](https://github.com/mmetc)
- cscli detect: set log type for caddy unit to "syslog" ([#4321](crowdsecurity/crowdsec#4321)) [@mmetc](https://github.com/mmetc)
- CI: add published\_at to version.crowdsec.net/latest ([#4291](crowdsecurity/crowdsec#4291)) [@blotus](https://github.com/blotus)
- cmd/crowdsec: assign overflow after parsing ([#4226](crowdsecurity/crowdsec#4226)) [@mmetc](https://github.com/mmetc)
- waf: format as CRS match only if anomaly score is not 0 ([#4230](crowdsecurity/crowdsec#4230)) [@blotus](https://github.com/blotus)

##### Changes

- build(deps): bump cryptography from 46.0.3 to 46.0.5 in /build/docker/test ([#4298](crowdsecurity/crowdsec#4298)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- support for waf- alias in cscli ([#4347](crowdsecurity/crowdsec#4347)) [@buixor](https://github.com/buixor)
- refact pkg/dumps: reduce complexity ([#4209](crowdsecurity/crowdsec#4209)) [@mmetc](https://github.com/mmetc)
- lint: refact pkg/dumps for nilaway ([#4208](crowdsecurity/crowdsec#4208)) [@mmetc](https://github.com/mmetc)
- refact pkg/parser: redundant indirection ([#4344](crowdsecurity/crowdsec#4344)) [@mmetc](https://github.com/mmetc)
- refact pkg/parser: extract+embed NodeConfig in Node struct ([#4343](crowdsecurity/crowdsec#4343)) [@mmetc](https://github.com/mmetc)
- move calls to trace.ReportPanic() on top of goroutines ([#4338](crowdsecurity/crowdsec#4338)) [@mmetc](https://github.com/mmetc)
- pkg/csplugin: simplify notification loop; noop with empty queue ([#4328](crowdsecurity/crowdsec#4328)) [@mmetc](https://github.com/mmetc)
- pkg/parsers: light refact, remove redundant code ([#4213](crowdsecurity/crowdsec#4213)) [@mmetc](https://github.com/mmetc)
- refact cmd/crowdsec: encapsulate cache into alertBuffer ([#4300](crowdsecurity/crowdsec#4300)) [@mmetc](https://github.com/mmetc)
- cmd/notification-\*: don't provide the same context twice for request ([#4316](crowdsecurity/crowdsec#4316)) [@mmetc](https://github.com/mmetc)
- don't flush 127.0.0.1 ([#4315](crowdsecurity/crowdsec#4315)) [@sabban](https://github.com/sabban)
- clipapi: replace tomb with errgroup ([#4207](crowdsecurity/crowdsec#4207)) [@mmetc](https://github.com/mmetc)
- refact cmd/crowdsec: remove redundant global variable ([#4299](crowdsecurity/crowdsec#4299)) [@mmetc](https://github.com/mmetc)
- refact: remove unused code in crowdsec-cli, apiserver, acquisition, database ([#4304](crowdsecurity/crowdsec#4304)) [@mmetc](https://github.com/mmetc)
- refact pkg/leakybucket: trim down redundant Leaky struct fields ([#4290](crowdsecurity/crowdsec#4290)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: remove global bucketStore, unused parameters + tags ([#4286](crowdsecurity/crowdsec#4286)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: remove Simulated field from Leaky, keep it in config ([#4285](crowdsecurity/crowdsec#4285)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: extract BucketSpec from BucketFactory ([#4284](crowdsecurity/crowdsec#4284)) [@mmetc](https://github.com/mmetc)
- refact pkg/leakybucket: extract methods from LoadBucket() part 2 ([#4282](crowdsecurity/crowdsec#4282)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: refact test loop, more explicit failures in testFile() ([#4281](crowdsecurity/crowdsec#4281)) [@mmetc](https://github.com/mmetc)
- refact pkg/leakybucket: extract methods from LoadBucket() ([#4279](crowdsecurity/crowdsec#4279)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: replace Signal chan with explicit read/done chans ([#4277](crowdsecurity/crowdsec#4277)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: replace waitgroups with single rwlock ([#4276](crowdsecurity/crowdsec#4276)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: garbage collect: compare float with epsilon ([#4275](crowdsecurity/crowdsec#4275)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: refactor tests ([#4272](crowdsecurity/crowdsec#4272)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: replace sycn.Map with map + mutex ([#4271](crowdsecurity/crowdsec#4271)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: replace global counter with call to bucket store ([#4273](crowdsecurity/crowdsec#4273)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: review README.md ([#4274](crowdsecurity/crowdsec#4274)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: encapsulate store map + add methods ([#4253](crowdsecurity/crowdsec#4253)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: remove redundant bool var ([#4252](crowdsecurity/crowdsec#4252)) [@mmetc](https://github.com/mmetc)
- fix hub console side ([#4266](crowdsecurity/crowdsec#4266)) [@sabban](https://github.com/sabban)
- version workflow fix ([#4262](crowdsecurity/crowdsec#4262)) [@sabban](https://github.com/sabban)
- rename the prod branch to main ([#4261](crowdsecurity/crowdsec#4261)) [@sabban](https://github.com/sabban)
- add version workflow ([#4210](crowdsecurity/crowdsec#4210)) [@sabban](https://github.com/sabban)
- pkg/leakybucket: remove unused global ([#4251](crowdsecurity/crowdsec#4251)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: pass bucket factories by pointer ([#4250](crowdsecurity/crowdsec#4250)) [@mmetc](https://github.com/mmetc)
- pkt/leakybucket: compileScopeFilter() -> ScopeType.CompileFilter() ([#4247](crowdsecurity/crowdsec#4247)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: rename OverflowFilter -> OverflowProcessor ([#4248](crowdsecurity/crowdsec#4248)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: rename Buckets -> BucketStore ([#4246](crowdsecurity/crowdsec#4246)) [@mmetc](https://github.com/mmetc)
- refact leaky bayesian: method to function, unlock w/defer ([#4242](crowdsecurity/crowdsec#4242)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: early return ([#4244](crowdsecurity/crowdsec#4244)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: variable shorthand ([#4245](crowdsecurity/crowdsec#4245)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: move LeakRoutine to method, rename parameters ([#4243](crowdsecurity/crowdsec#4243)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: review bucket validation and tests ([#4241](crowdsecurity/crowdsec#4241)) [@mmetc](https://github.com/mmetc)
- refact: remove unnecessary pointers to map, string, mutex ([#4212](crowdsecurity/crowdsec#4212)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: function to method BucketFactory.LoadBucket() ([#4229](crowdsecurity/crowdsec#4229)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: BucketType interface, method BucketFactory.Validate() ([#4228](crowdsecurity/crowdsec#4228)) [@mmetc](https://github.com/mmetc)

##### Chore / Deps

- build(deps): bump github.com/buger/jsonparser from 1.1.1 to 1.1.2 ([#4382](crowdsecurity/crowdsec#4382)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- CI: use windows-2025 image ([#4379](crowdsecurity/crowdsec#4379)) [@blotus](https://github.com/blotus)
- build(deps): bump github/codeql-action from 4.32.6 to 4.33.0 ([#4371](crowdsecurity/crowdsec#4371)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump astral-sh/setup-uv from 7.5.0 to 7.6.0 ([#4373](crowdsecurity/crowdsec#4373)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump google.golang.org/grpc from 1.74.2 to 1.79.3 ([#4376](crowdsecurity/crowdsec#4376)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump astral-sh/setup-uv from 7.3.1 to 7.5.0 ([#4366](crowdsecurity/crowdsec#4366)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 ([#4319](crowdsecurity/crowdsec#4319)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.32.5 to 4.32.6 ([#4360](crowdsecurity/crowdsec#4360)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/build-push-action from 6.19.2 to 7.0.0 ([#4361](crowdsecurity/crowdsec#4361)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump release-drafter/release-drafter from 6.2.0 to 6.4.0 ([#4362](crowdsecurity/crowdsec#4362)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/setup-buildx-action from 3.12.0 to 4.0.0 ([#4356](crowdsecurity/crowdsec#4356)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/setup-qemu-action from 3.7.0 to 4.0.0 ([#4353](crowdsecurity/crowdsec#4353)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/setup-node from 6.2.0 to 6.3.0 ([#4352](crowdsecurity/crowdsec#4352)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/login-action from 3.7.0 to 4.0.0 ([#4354](crowdsecurity/crowdsec#4354)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- deps: update actions and golangci-lint ([#4348](crowdsecurity/crowdsec#4348)) [@mmetc](https://github.com/mmetc)
- build(deps): bump github/codeql-action from 4.32.4 to 4.32.5 ([#4345](crowdsecurity/crowdsec#4345)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump astral-sh/setup-uv from 7.3.0 to 7.3.1 ([#4346](crowdsecurity/crowdsec#4346)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/setup-go from 6.2.0 to 6.3.0 ([#4339](crowdsecurity/crowdsec#4339)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0 ([#4342](crowdsecurity/crowdsec#4342)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- replace trace.CatchPanic(...) with trace.ReportPanic() ([#4336](crowdsecurity/crowdsec#4336)) [@mmetc](https://github.com/mmetc)
- build(deps): bump github/codeql-action from 4.32.3 to 4.32.4 ([#4322](crowdsecurity/crowdsec#4322)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- deps: update gocron v1 -> v2 ([#4317](crowdsecurity/crowdsec#4317)) [@mmetc](https://github.com/mmetc)
- build(deps): bump docker/build-push-action from 6.19.0 to 6.19.2 ([#4306](crowdsecurity/crowdsec#4306)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.32.2 to 4.32.3 ([#4312](crowdsecurity/crowdsec#4312)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.32.1 to 4.32.2 ([#4292](crowdsecurity/crowdsec#4292)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- update golangci-lint 2.9 ([#4302](crowdsecurity/crowdsec#4302)) [@mmetc](https://github.com/mmetc)
- build(deps): bump astral-sh/setup-uv from 7.2.1 to 7.3.0 ([#4296](crowdsecurity/crowdsec#4296)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/build-push-action from 6.18.0 to 6.19.0 ([#4303](crowdsecurity/crowdsec#4303)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.32.0 to 4.32.1 ([#4278](crowdsecurity/crowdsec#4278)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/setup-node from 4.4.0 to 6.2.0 ([#4264](crowdsecurity/crowdsec#4264)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- CI: update python and dependencies ([#4249](crowdsecurity/crowdsec#4249)) [@mmetc](https://github.com/mmetc)
- build(deps): bump actions/checkout from 6.0.1 to 6.0.2 ([#4263](crowdsecurity/crowdsec#4263)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump astral-sh/setup-uv from 7.2.0 to 7.2.1 ([#4265](crowdsecurity/crowdsec#4265)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/login-action from 3.6.0 to 3.7.0 ([#4257](crowdsecurity/crowdsec#4257)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.31.11 to 4.32.0 ([#4254](crowdsecurity/crowdsec#4254)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.31.10 to 4.31.11 ([#4233](crowdsecurity/crowdsec#4233)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/checkout from 6.0.1 to 6.0.2 ([#4234](crowdsecurity/crowdsec#4234)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump release-drafter/release-drafter from 6.1.0 to 6.2.0 ([#4222](crowdsecurity/crowdsec#4222)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/setup-python from 6.1.0 to 6.2.0 ([#4223](crowdsecurity/crowdsec#4223)) @[dependabot\[bot\]](https://github.com/apps/dependabot)

##### Geolite2 notice

This product includes GeoLite2 data created by MaxMind, available from <a href="https://www.maxmind.com"><https://www.maxmind.com></a>.

##### Installation

Take a look at the [installation instructions](https://doc.crowdsec.net/docs/getting_started/install_crowdsec).
sdwilsh pushed a commit to sdwilsh/ansible-playbooks that referenced this pull request Apr 11, 2026
##### [\`v1.7.7\`](https://github.com/crowdsecurity/crowdsec/releases/tag/v1.7.7)

CrowdSec 1.7.7 brings 2 major changes:

- On linux, [RE2](https://github.com/google/re2) is now used by default for evaluating regexp in parsers
- WAF rules can now contain a mix of AND/OR conditions without any limits, giving much greater flexibility when writing new rules

##### RE2 by default on linux

CrowdsSec has supported for a long time using RE2 as the regexp engine, and with this release we make it the default.

CrowdSec has always used the builtin Go regexp package, which is a Go reimplementation of the RE2 library, but with known performance limitations.

The switch to RE2 will bring significantly increased regexp performance (one of the most critical part of CrowdSec) at the cost of slightly longer regexp compilation and higher baseline memory usage.

> \[!IMPORTANT]
> If you encounter any issues with the new regexp engine, you can fallback to the previous Go implementation by setting the feature flag `re2_disable_grok_support` (see [the documentation](https://docs.crowdsec.net/docs/next/configuration/feature_flags/#enabling-a-feature-flag)).

##### Other changes

Other notable changes include:

- a new `kind` attribute for alerts used to identify its source (a scenario, a WAF rule, a manual decision creation, ...)
- a new `cscli allowlist import` command
- support for the `HTTP_PROXY` environment variable in the `notification-http` plugin
- A resource leak under high load was fixed

##### Full changelog

##### New Features

- add LookupFile and FileMap expr helpers ([#4372](crowdsecurity/crowdsec#4372)) [@buixor](https://github.com/buixor)
- waf rules: allow arbitrary mix of AND and OR conditions ([#4358](crowdsecurity/crowdsec#4358)) [@blotus](https://github.com/blotus)

##### Improvements

- enable RE2 support by default on linux ([#4386](crowdsecurity/crowdsec#4386)) [@blotus](https://github.com/blotus)
- cscli allowlists: add import command ([#4378](crowdsecurity/crowdsec#4378)) [@blotus](https://github.com/blotus)
- WAF: expose more transformations from coraza ([#4140](crowdsecurity/crowdsec#4140)) [@blotus](https://github.com/blotus)
- Add new `kind` alert attribute ([#4351](crowdsecurity/crowdsec#4351)) [@blotus](https://github.com/blotus)
- Use environment proxy settings for notification-http ([#4364](crowdsecurity/crowdsec#4364)) [@op3](https://github.com/op3)

##### Bug Fixes

- allowlists: apply items to existing decisions in batch ([#4095](crowdsecurity/crowdsec#4095)) [@blotus](https://github.com/blotus)
- waf: fix tests for modsec rules generation ([#4385](crowdsecurity/crowdsec#4385)) [@blotus](https://github.com/blotus)
- windows: add file notification plugin in MSI package ([#4367](crowdsecurity/crowdsec#4367)) [@blotus](https://github.com/blotus)
- leakroutine: call cancel after leakroutine returns ([#4369](crowdsecurity/crowdsec#4369)) [@blotus](https://github.com/blotus)
- notification-sentinel: lower-case x-ms-date header for correct HMAC ([#4288](crowdsecurity/crowdsec#4288)) [@ebirn](https://github.com/ebirn)
- tests: remove temporary sqlite/plugin files from /tmp/ ([#4332](crowdsecurity/crowdsec#4332)) [@mmetc](https://github.com/mmetc)
- pkg/apiserver: fix scenario count in debug log ([#4333](crowdsecurity/crowdsec#4333)) [@mmetc](https://github.com/mmetc)
- pkg/csplugin: prevent race condition, deadlock ([#4294](crowdsecurity/crowdsec#4294)) [@mmetc](https://github.com/mmetc)
- pkg/acquisitioncontext: minimal fix for data race in tests ([#4327](crowdsecurity/crowdsec#4327)) [@mmetc](https://github.com/mmetc)
- acquisition/file: minimal fix for data race in tests ([#4326](crowdsecurity/crowdsec#4326)) [@mmetc](https://github.com/mmetc)
- fix lint fsutil/freebsd: unnecessary conversion ([#4324](crowdsecurity/crowdsec#4324)) [@mmetc](https://github.com/mmetc)
- cscli: consistent status and usage message for unknown subcommands ([#4320](crowdsecurity/crowdsec#4320)) [@mmetc](https://github.com/mmetc)
- cscli detect: set log type for caddy unit to "syslog" ([#4321](crowdsecurity/crowdsec#4321)) [@mmetc](https://github.com/mmetc)
- CI: add published\_at to version.crowdsec.net/latest ([#4291](crowdsecurity/crowdsec#4291)) [@blotus](https://github.com/blotus)
- cmd/crowdsec: assign overflow after parsing ([#4226](crowdsecurity/crowdsec#4226)) [@mmetc](https://github.com/mmetc)
- waf: format as CRS match only if anomaly score is not 0 ([#4230](crowdsecurity/crowdsec#4230)) [@blotus](https://github.com/blotus)

##### Changes

- build(deps): bump cryptography from 46.0.3 to 46.0.5 in /build/docker/test ([#4298](crowdsecurity/crowdsec#4298)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- support for waf- alias in cscli ([#4347](crowdsecurity/crowdsec#4347)) [@buixor](https://github.com/buixor)
- refact pkg/dumps: reduce complexity ([#4209](crowdsecurity/crowdsec#4209)) [@mmetc](https://github.com/mmetc)
- lint: refact pkg/dumps for nilaway ([#4208](crowdsecurity/crowdsec#4208)) [@mmetc](https://github.com/mmetc)
- refact pkg/parser: redundant indirection ([#4344](crowdsecurity/crowdsec#4344)) [@mmetc](https://github.com/mmetc)
- refact pkg/parser: extract+embed NodeConfig in Node struct ([#4343](crowdsecurity/crowdsec#4343)) [@mmetc](https://github.com/mmetc)
- move calls to trace.ReportPanic() on top of goroutines ([#4338](crowdsecurity/crowdsec#4338)) [@mmetc](https://github.com/mmetc)
- pkg/csplugin: simplify notification loop; noop with empty queue ([#4328](crowdsecurity/crowdsec#4328)) [@mmetc](https://github.com/mmetc)
- pkg/parsers: light refact, remove redundant code ([#4213](crowdsecurity/crowdsec#4213)) [@mmetc](https://github.com/mmetc)
- refact cmd/crowdsec: encapsulate cache into alertBuffer ([#4300](crowdsecurity/crowdsec#4300)) [@mmetc](https://github.com/mmetc)
- cmd/notification-\*: don't provide the same context twice for request ([#4316](crowdsecurity/crowdsec#4316)) [@mmetc](https://github.com/mmetc)
- don't flush 127.0.0.1 ([#4315](crowdsecurity/crowdsec#4315)) [@sabban](https://github.com/sabban)
- clipapi: replace tomb with errgroup ([#4207](crowdsecurity/crowdsec#4207)) [@mmetc](https://github.com/mmetc)
- refact cmd/crowdsec: remove redundant global variable ([#4299](crowdsecurity/crowdsec#4299)) [@mmetc](https://github.com/mmetc)
- refact: remove unused code in crowdsec-cli, apiserver, acquisition, database ([#4304](crowdsecurity/crowdsec#4304)) [@mmetc](https://github.com/mmetc)
- refact pkg/leakybucket: trim down redundant Leaky struct fields ([#4290](crowdsecurity/crowdsec#4290)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: remove global bucketStore, unused parameters + tags ([#4286](crowdsecurity/crowdsec#4286)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: remove Simulated field from Leaky, keep it in config ([#4285](crowdsecurity/crowdsec#4285)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: extract BucketSpec from BucketFactory ([#4284](crowdsecurity/crowdsec#4284)) [@mmetc](https://github.com/mmetc)
- refact pkg/leakybucket: extract methods from LoadBucket() part 2 ([#4282](crowdsecurity/crowdsec#4282)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: refact test loop, more explicit failures in testFile() ([#4281](crowdsecurity/crowdsec#4281)) [@mmetc](https://github.com/mmetc)
- refact pkg/leakybucket: extract methods from LoadBucket() ([#4279](crowdsecurity/crowdsec#4279)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: replace Signal chan with explicit read/done chans ([#4277](crowdsecurity/crowdsec#4277)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: replace waitgroups with single rwlock ([#4276](crowdsecurity/crowdsec#4276)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: garbage collect: compare float with epsilon ([#4275](crowdsecurity/crowdsec#4275)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: refactor tests ([#4272](crowdsecurity/crowdsec#4272)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: replace sycn.Map with map + mutex ([#4271](crowdsecurity/crowdsec#4271)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: replace global counter with call to bucket store ([#4273](crowdsecurity/crowdsec#4273)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: review README.md ([#4274](crowdsecurity/crowdsec#4274)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: encapsulate store map + add methods ([#4253](crowdsecurity/crowdsec#4253)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: remove redundant bool var ([#4252](crowdsecurity/crowdsec#4252)) [@mmetc](https://github.com/mmetc)
- fix hub console side ([#4266](crowdsecurity/crowdsec#4266)) [@sabban](https://github.com/sabban)
- version workflow fix ([#4262](crowdsecurity/crowdsec#4262)) [@sabban](https://github.com/sabban)
- rename the prod branch to main ([#4261](crowdsecurity/crowdsec#4261)) [@sabban](https://github.com/sabban)
- add version workflow ([#4210](crowdsecurity/crowdsec#4210)) [@sabban](https://github.com/sabban)
- pkg/leakybucket: remove unused global ([#4251](crowdsecurity/crowdsec#4251)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: pass bucket factories by pointer ([#4250](crowdsecurity/crowdsec#4250)) [@mmetc](https://github.com/mmetc)
- pkt/leakybucket: compileScopeFilter() -> ScopeType.CompileFilter() ([#4247](crowdsecurity/crowdsec#4247)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: rename OverflowFilter -> OverflowProcessor ([#4248](crowdsecurity/crowdsec#4248)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: rename Buckets -> BucketStore ([#4246](crowdsecurity/crowdsec#4246)) [@mmetc](https://github.com/mmetc)
- refact leaky bayesian: method to function, unlock w/defer ([#4242](crowdsecurity/crowdsec#4242)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: early return ([#4244](crowdsecurity/crowdsec#4244)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: variable shorthand ([#4245](crowdsecurity/crowdsec#4245)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: move LeakRoutine to method, rename parameters ([#4243](crowdsecurity/crowdsec#4243)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: review bucket validation and tests ([#4241](crowdsecurity/crowdsec#4241)) [@mmetc](https://github.com/mmetc)
- refact: remove unnecessary pointers to map, string, mutex ([#4212](crowdsecurity/crowdsec#4212)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: function to method BucketFactory.LoadBucket() ([#4229](crowdsecurity/crowdsec#4229)) [@mmetc](https://github.com/mmetc)
- pkg/leakybucket: BucketType interface, method BucketFactory.Validate() ([#4228](crowdsecurity/crowdsec#4228)) [@mmetc](https://github.com/mmetc)

##### Chore / Deps

- build(deps): bump github.com/buger/jsonparser from 1.1.1 to 1.1.2 ([#4382](crowdsecurity/crowdsec#4382)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- CI: use windows-2025 image ([#4379](crowdsecurity/crowdsec#4379)) [@blotus](https://github.com/blotus)
- build(deps): bump github/codeql-action from 4.32.6 to 4.33.0 ([#4371](crowdsecurity/crowdsec#4371)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump astral-sh/setup-uv from 7.5.0 to 7.6.0 ([#4373](crowdsecurity/crowdsec#4373)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump google.golang.org/grpc from 1.74.2 to 1.79.3 ([#4376](crowdsecurity/crowdsec#4376)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump astral-sh/setup-uv from 7.3.1 to 7.5.0 ([#4366](crowdsecurity/crowdsec#4366)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 ([#4319](crowdsecurity/crowdsec#4319)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.32.5 to 4.32.6 ([#4360](crowdsecurity/crowdsec#4360)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/build-push-action from 6.19.2 to 7.0.0 ([#4361](crowdsecurity/crowdsec#4361)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump release-drafter/release-drafter from 6.2.0 to 6.4.0 ([#4362](crowdsecurity/crowdsec#4362)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/setup-buildx-action from 3.12.0 to 4.0.0 ([#4356](crowdsecurity/crowdsec#4356)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/setup-qemu-action from 3.7.0 to 4.0.0 ([#4353](crowdsecurity/crowdsec#4353)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/setup-node from 6.2.0 to 6.3.0 ([#4352](crowdsecurity/crowdsec#4352)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/login-action from 3.7.0 to 4.0.0 ([#4354](crowdsecurity/crowdsec#4354)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- deps: update actions and golangci-lint ([#4348](crowdsecurity/crowdsec#4348)) [@mmetc](https://github.com/mmetc)
- build(deps): bump github/codeql-action from 4.32.4 to 4.32.5 ([#4345](crowdsecurity/crowdsec#4345)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump astral-sh/setup-uv from 7.3.0 to 7.3.1 ([#4346](crowdsecurity/crowdsec#4346)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/setup-go from 6.2.0 to 6.3.0 ([#4339](crowdsecurity/crowdsec#4339)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0 ([#4342](crowdsecurity/crowdsec#4342)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- replace trace.CatchPanic(...) with trace.ReportPanic() ([#4336](crowdsecurity/crowdsec#4336)) [@mmetc](https://github.com/mmetc)
- build(deps): bump github/codeql-action from 4.32.3 to 4.32.4 ([#4322](crowdsecurity/crowdsec#4322)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- deps: update gocron v1 -> v2 ([#4317](crowdsecurity/crowdsec#4317)) [@mmetc](https://github.com/mmetc)
- build(deps): bump docker/build-push-action from 6.19.0 to 6.19.2 ([#4306](crowdsecurity/crowdsec#4306)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.32.2 to 4.32.3 ([#4312](crowdsecurity/crowdsec#4312)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.32.1 to 4.32.2 ([#4292](crowdsecurity/crowdsec#4292)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- update golangci-lint 2.9 ([#4302](crowdsecurity/crowdsec#4302)) [@mmetc](https://github.com/mmetc)
- build(deps): bump astral-sh/setup-uv from 7.2.1 to 7.3.0 ([#4296](crowdsecurity/crowdsec#4296)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/build-push-action from 6.18.0 to 6.19.0 ([#4303](crowdsecurity/crowdsec#4303)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.32.0 to 4.32.1 ([#4278](crowdsecurity/crowdsec#4278)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/setup-node from 4.4.0 to 6.2.0 ([#4264](crowdsecurity/crowdsec#4264)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- CI: update python and dependencies ([#4249](crowdsecurity/crowdsec#4249)) [@mmetc](https://github.com/mmetc)
- build(deps): bump actions/checkout from 6.0.1 to 6.0.2 ([#4263](crowdsecurity/crowdsec#4263)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump astral-sh/setup-uv from 7.2.0 to 7.2.1 ([#4265](crowdsecurity/crowdsec#4265)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump docker/login-action from 3.6.0 to 3.7.0 ([#4257](crowdsecurity/crowdsec#4257)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.31.11 to 4.32.0 ([#4254](crowdsecurity/crowdsec#4254)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump github/codeql-action from 4.31.10 to 4.31.11 ([#4233](crowdsecurity/crowdsec#4233)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/checkout from 6.0.1 to 6.0.2 ([#4234](crowdsecurity/crowdsec#4234)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump release-drafter/release-drafter from 6.1.0 to 6.2.0 ([#4222](crowdsecurity/crowdsec#4222)) @[dependabot\[bot\]](https://github.com/apps/dependabot)
- build(deps): bump actions/setup-python from 6.1.0 to 6.2.0 ([#4223](crowdsecurity/crowdsec#4223)) @[dependabot\[bot\]](https://github.com/apps/dependabot)

##### Geolite2 notice

This product includes GeoLite2 data created by MaxMind, available from <a href="https://www.maxmind.com"><https://www.maxmind.com></a>.

##### Installation

Take a look at the [installation instructions](https://doc.crowdsec.net/docs/getting_started/install_crowdsec).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants