Skip to content

Commit b954099

Browse files
[Turnstile] Privacy disclosure (#28775)
* privacy policy * turnstile privacy policy * feedback * edits
1 parent b4491aa commit b954099

5 files changed

Lines changed: 34 additions & 4 deletions

File tree

src/content/docs/cloudflare-challenges/challenge-types/turnstile.mdx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,13 @@ While there are three types of widgets that you can choose to implement on your
2727

2828
- **Invisible**: The widget is completely invisible to the visitor, but the Challenge still runs in the background.
2929

30+
:::note[Link to Cloudflare's Turnstile Privacy Policy]
31+
<Render
32+
file="privacy-policy"
33+
product="turnstile"
34+
/>
35+
:::
36+
3037
## Implementation
3138

3239
When you create a widget for your website or application via the Cloudflare dashboard, you will receive a sitekey.

src/content/docs/turnstile/additional-configuration/offlabel.mdx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ sidebar:
66
label: Offlabel
77
---
88

9+
import { Render } from "~/components";
10+
911
Offlabel is an Enterprise-only feature that removes Cloudflare branding and logo from Turnstile widgets. When enabled, widgets display without any visual references to Cloudflare, allowing for a seamless integration with your brand identity.
1012

1113
When Offlabel is enabled:
@@ -60,6 +62,13 @@ Confirm Offlabel is enabled by checking your widget configuration.
6062

6163
The response will include `"offlabel": true` when the feature is active.
6264

65+
### Link to Cloudflare's Turnstile Privacy Policy
66+
67+
As a condition of enabling offlabel, you must reference Cloudflare's [Turnstile Privacy Addendum](https://www.cloudflare.com/turnstile-privacy-policy/) in one of two ways:
68+
69+
1. Link to it in your own privacy policy.
70+
2. Configure the widget to display a link to Cloudflare's privacy policy using the [JavaScript Render Parameters](/turnstile/get-started/client-side-rendering/widget-configurations/#complete-configuration-reference).
71+
6372
---
6473

6574
## Availability

src/content/docs/turnstile/concepts/widget.mdx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,13 @@ Invisible mode is similar to Non-Interactive mode where visitors will never inte
4545

4646
Invisible mode is ideal for users who want to prioritize visitor and visual experience on their website.
4747

48+
:::note[Link to Cloudflare's Turnstile Privacy Policy]
49+
<Render
50+
file="privacy-policy"
51+
product="turnstile"
52+
/>
53+
:::
54+
4855
---
4956

5057
## Widget customization

src/content/docs/turnstile/get-started/client-side-rendering/widget-configurations.mdx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -472,19 +472,21 @@ When enabled, Turnstile automatically creates a hidden `<input>` element with th
472472
| `before-interactive-callback` | `data-before-interactive-callback` | A JavaScript callback invoked before the challenge enters interactive mode. |
473473
| `after-interactive-callback` | `data-after-interactive-callback` | A JavaScript callback invoked when challenge has left interactive mode. |
474474
| `unsupported-callback` | `data-unsupported-callback` | A JavaScript callback invoked when a given client/browser is not supported by Turnstile. |
475-
| `theme` | `data-theme` | The widget theme. Can take the following values: `light`, `dark`, `auto`. <br/><br/>The default is `auto`, which respects the visitor preference. This can be forced to light or dark by setting the theme accordingly. |
475+
| `theme` | `data-theme` | The widget theme. Can take the following values: `light`, `dark`, `auto`. <br/><br/>The default is `auto`, which respects the visitor preference. This can be forced to light or dark by setting the theme accordingly. |
476476
| `language` | `data-language` | Language to display, must be either: `auto` (default) to use the language that the visitor has chosen, or an ISO 639-1 two-letter language code (e.g. `en`) or language and country code (e.g. `en-US`). Refer to the [list of supported languages](/turnstile/reference/supported-languages/) for more information. |
477477
| `tabindex` | `data-tabindex` | The tabindex of Turnstile's iframe for accessibility purposes. The default value is `0`. |
478478
| `timeout-callback` | `data-timeout-callback` | A JavaScript callback invoked when the challenge presents an interactive challenge but was not solved within a given time. A callback will reset the widget to allow a visitor to solve the challenge again. |
479479
| `response-field` | `data-response-field` | A boolean that controls if an input element with the response token is created, defaults to `true`. |
480480
| `response-field-name` | `data-response-field-name` | Name of the input element, defaults to `cf-turnstile-response`. |
481481
| `size` | `data-size` | The widget size. Can take the following values: `normal`, `flexible`, `compact`. |
482-
| `retry` |  `data-retry` | Controls whether the widget should automatically retry to obtain a token if it did not succeed. The default is `auto`, which will retry automatically. This can be set to `never` to disable retry on failure. |
483-
| `retry-interval` |  `data-retry-interval` | When `retry` is set to `auto`, `retry-interval` controls the time between retry attempts in milliseconds. Value must be a positive integer less than `900000`, defaults to `8000`. |
484-
| `refresh-expired` |  `data-refresh-expired` | Automatically refreshes the token when it expires. Can take `auto`, `manual`, or `never`, defaults to `auto`. |
482+
| `retry` | `data-retry` | Controls whether the widget should automatically retry to obtain a token if it did not succeed. The default is `auto`, which will retry automatically. This can be set to `never` to disable retry on failure. |
483+
| `retry-interval` | `data-retry-interval` | When `retry` is set to `auto`, `retry-interval` controls the time between retry attempts in milliseconds. Value must be a positive integer less than `900000`, defaults to `8000`. |
484+
| `refresh-expired` | `data-refresh-expired` | Automatically refreshes the token when it expires. Can take `auto`, `manual`, or `never`, defaults to `auto`. |
485485
| `refresh-timeout` | `data-refresh-timeout` | Controls whether the widget should automatically refresh upon entering an interactive challenge and observing a timeout. Can take `auto` (automatically refreshes upon encountering an interactive timeout), `manual` (prompts the visitor to manually refresh) or `never` (will show a timeout), defaults to `auto`. Only applies to widgets of Managed mode. |
486486
| `appearance` | `data-appearance` | Appearance controls when the widget is visible. It can be `always` (default), `execute`, or `interaction-only`. Refer to [Appearance modes](/turnstile/get-started/client-side-rendering/#appearance-modes) for more information. |
487487
| `feedback-enabled` | `data-feedback-enabled` | Allows Cloudflare to gather visitor feedback upon widget failure. It can be `true` (default) or `false`. |
488+
| `offlabel-show-privacy` | `data-offlabel-show-privacy` | Displays privacy link for unbranded Turnstile widgets. Can be `true` (default) or `false`. |
489+
| `offlabel-show-help` | `data-offlabel-show-help` | Displays help link for unbranded Turnstile widgets. Can be `true` (default) or `false`. |
488490

489491
### Examples
490492

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
{}
3+
---
4+
5+
As a condition of enabling invisible mode, you must reference Cloudflare's [Turnstile Privacy Addendum](https://www.cloudflare.com/turnstile-privacy-policy/) in your own privacy policy.

0 commit comments

Comments
 (0)