Cloudflare Turnstile
CAPTCHA alternative that verifies visitors with invisible JavaScript challenges and a short-lived token.
- Provider
- cloudflare
- Kind
- Bot management
- Category
- Security
| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| challengeAction | enum | block | managed-challenge | js-challenge | captcha | log | no | — | ▸ managed-challenge |
| jsDetections | boolean | — | no | — | ▸ true |
| machineLearning | boolean | — | no | — | inherited |
| managed | boolean | — | no | false | ▸ true |
| preClearance | boolean | — | no | false | inherited |
| scoreHeader | boolean | — | no | — | inherited |
| scoreThreshold | integer | — | no | — | inherited |
| sessionTokenLifetimeMinutes | integer | — | no | — | ▸ 5 |
| singleUseToken | boolean | — | no | true | inherited |
| verifiedBotsAllowed | boolean | — | no | true | inherited |
| widgetMode | enum | managed | non-interactive | invisible | no | managed | inherited |
Every rule whose selector covers this component's kind or its category. Whether a rule fires depends on the design: its properties, its edges and its groups.
No rule reads this kind yet. That is a gap, not a guarantee.
nodes:
- { id: "turnstile", component: "cloudflare-turnstile" }# yaml-language-server: $schema=../../schema/component.schema.json # Cloudflare Turnstile: a CAPTCHA alternative that runs non-interactive JavaScript challenges and # only shows a checkbox when the managed widget decides the visitor is risky ("Turnstile overview"); # a widget token is valid for 300 seconds and may be redeemed once ("Server-side validation"). schemaVersion: "1" type: "component" id: "cloudflare-turnstile" kind: "bot-management" provider: "cloudflare" docs: "https://developers.cloudflare.com/turnstile/get-started/server-side-validation/" defaults: managed: true challengeAction: "managed-challenge" jsDetections: true sessionTokenLifetimeMinutes: 5 properties: widgetMode: type: "enum" values: ["managed", "non-interactive", "invisible"] default: "managed" singleUseToken: type: "boolean" default: true preClearance: type: "boolean" default: false