Skip to content

docs(appsec): document bot-detection/challenge mode (early feature) - #22

Open
sabban wants to merge 1 commit into
mainfrom
bot/detection
Open

docs(appsec): document bot-detection/challenge mode (early feature)#22
sabban wants to merge 1 commit into
mainfrom
bot/detection

Conversation

@sabban

@sabban sabban commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Folded into the existing appsec/ silo (rather than a new file/subdir) since the upstream feature is expected to stabilize soon:

  • configure.md: the challenge: config block, the two new hook phases (on_challenge/on_challenge_submit — fixed the stale "three phases" claim, it's six now), the core SendChallenge() gate, known-bot exemption via MatchKnownBot()/ExemptFromChallenge(), authoring your own bot datafile, and the full challenge-related hook function table.
  • deploy.md: installing crowdsecurity/appsec-bot-challenge via the hub_branch override (not on the released hub index yet — cross-links to docs(hub): document cscli.hub_branch for pinning to a pre-merge hub branch #21's new hub.md section), and the bouncer-side requirement (route challenge protocol paths through the same middleware, parse+relay the structured JSON envelope) with a Traefik local-plugin example.
  • SKILL.md router entry.

Explicitly flagged as an early/unreleased feature throughout (engine support is on crowdsec master post-v1.7.8 with no numbered release yet; the hub collection is an upstream [do-not-merge] PR; the Traefik bouncer support is an open plugin PR) rather than presented as stable.

Verification

Everything in both sections was run against a real crowdsec:dev + Traefik deployment (Traefik running the plugin as a local build of maxlerebourg/crowdsec-bouncer-traefik-plugin#343), not inferred from docs — including installing the real hub collection (via #21's hub_branch trick), the challenge envelope round-trip through Traefik, and known-bot exemption via a hand-authored datafile. verified: frontmatter added to both files (env: docker, 2026-07-17).

Depends conceptually on #21 (hub_branch doc) for the install step's cross-reference, but stands alone — reviewable independently.

Test plan

  • python3 skills/crowdsec/scripts/check-verification.py — both new entries parse, 0d age
  • claude plugin validate . — passes
  • Manual walkthrough: challenge config → real hub collection install → Traefik local-plugin wiring → curl verification → cscli metrics show appsec

Folds into the existing appsec silo rather than a new file, since the
upstream feature is expected to stabilize soon:

- configure.md: the challenge: config block, the two new hook phases
  (on_challenge/on_challenge_submit), the core SendChallenge() gate,
  known-bot exemption via MatchKnownBot()/ExemptFromChallenge(), and
  the full challenge-related hook function table
- deploy.md: installing crowdsecurity/appsec-bot-challenge via the
  hub_branch override (not on the released hub index yet), and the
  bouncer-side requirement to route challenge protocol paths through
  the same middleware and relay the structured JSON envelope

Everything in both sections was run against a real crowdsec:dev +
Traefik (local-plugin build of crowdsec-bouncer-traefik-plugin#343)
deployment, not inferred from docs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant