---
id: "bot-management"
type: "kind"
category: "security"
url: "https://localhost:3000/catalogue/kinds/bot-management"
---

# Bot management

Scores automated traffic and challenges or blocks it before it reaches the origin.

| | |
|---|---|
| Category | Security |
| Properties | 8 |
| Components | 4 |
| Rules | 0 |

## Properties

| property | type | values | required | default |
|---|---|---|---|---|
| `challengeAction` | enum | `block`, `managed-challenge`, `js-challenge`, `captcha`, `log` | no | — |
| `jsDetections` | boolean | — | no | — |
| `machineLearning` | boolean | — | no | — |
| `managed` | boolean | — | no | false |
| `scoreHeader` | boolean | — | no | — |
| `scoreThreshold` | integer | — | no | — |
| `sessionTokenLifetimeMinutes` | integer | — | no | — |
| `verifiedBotsAllowed` | boolean | — | no | true |

## Rules for this kind · 0

No rule selects this kind or its category.

## Components · 4

### vendor-neutral

- [Generic bot management](https://localhost:3000/catalogue/components/bot-management.md) `bot-management` — the kind itself

### cloudflare

- [AI Crawl Control](https://localhost:3000/catalogue/components/cloudflare-ai-crawl-control.md) `cloudflare-ai-crawl-control` — 3 defaults
- [Cloudflare Bot Management](https://localhost:3000/catalogue/components/cloudflare-bot-management.md) `cloudflare-bot-management` — 4 defaults
- [Cloudflare Turnstile](https://localhost:3000/catalogue/components/cloudflare-turnstile.md) `cloudflare-turnstile` — 4 defaults

## Source (`kind` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../schema/kind.schema.json
# Holds the bot score threshold, the detection engines and the challenge action that waf, rate-limiter and ddos-protection have nowhere to put. scoreThreshold and challengeAction have no default because a bot layer that never declared what it does with a bad score is exactly what a rule should catch.
schemaVersion: "1"
type: "kind"
id: "bot-management"
category: "security"
properties:
  scoreThreshold:
    type: "integer"
  challengeAction:
    type: "enum"
    values: ["block", "managed-challenge", "js-challenge", "captcha", "log"]
  jsDetections:
    type: "boolean"
  machineLearning:
    type: "boolean"
  verifiedBotsAllowed:
    type: "boolean"
    default: true
  scoreHeader:
    type: "boolean"
  sessionTokenLifetimeMinutes:
    type: "integer"
  managed:
    type: "boolean"
    default: false
```

Human page: https://localhost:3000/catalogue/kinds/bot-management
