Integrate via Cloudflare Dashboard

Installation

Prerequisites

Protect your traffic

  1. Connect to your Cloudflare Dashboard and go to the Workers & Pages section.
Cloudflare console tab.

Cloudflare Dashboard tab.

  1. Click on Create.
Create application.

Create application.

  1. Click on Get started for Start with Hello World!.
Create Worker.

Create Worker.

  1. Choose a name for the Worker, for example worker/datadome.js and click on Deploy.
Name Worker.

Name Worker.

  1. After your DataDome Worker has been deployed, click on Continue to project.
Configure Worker.

Configure Worker.

  1. In the Settings tab, inside the Variables and Secrets panel, click on Add .
Add variables in Settings.

Add variables in Settings.

  1. Select the type Secret .
  2. Enter the variable name DATADOME_SERVER_SIDE_KEY and set the value that is available in your DataDome dashboard.
  3. Click on Deploy.
  4. Click on Add again.
  5. Select the type Secret.
  6. Enter the variable name DATADOME_CLIENT_SIDE_KEY and set the value that is available in your DataDome dashboard.
  7. Click on Deploy.
  8. Click on the Edit code icon at the top of the page.
Quick edit Worker.

Quick edit Worker.

  1. Download the latest version of our Cloudflare Worker script.
  2. Delete the Hello World template and paste the code from dist/datadome.js in the Script Editor.
  3. Click on Deploy.
Save and deploy Worker's script.

Save and deploy Worker's script.


  1. Go back to the Worker overview and click on Settings.
  2. Inside the Domains & Routes section, click on Add
Configure domains and routes.

Configure domains and routes.


  1. Refer to Cloudflare documentation on Domains and Routes to trigger the DataDome Worker on the pages you want to protect.
  2. Congrats! You can now see your traffic in your DataDome dashboard.

Configuration

The configuration is done inside the script, using constants.

Server-side settings

Setting name in Worker's codeDescriptionRequiredDefault valueExample
DATADOME_SERVER_SIDE_KEYYour DataDome server-side key, found in your dashboard.Yes--
DATADOME_TIMEOUTRequest timeout to DataDome API, in milliseconds.No300350
DATADOME_URL_PATTERN_EXCLUSIONRegular expression to exclude URLs from the DataDome analysis.NoList of excluded static assets below-
DATADOME_URL_PATTERN_INCLUSIONRegular expression to only include URLs in the DataDome analysed traffic.No-/login*/i
DATADOME_IP_EXCLUSIONList of IPs which traffic will be excluded from the DataDome analysis.No-["192.168.0.1", "192.168.0.2"]
DATADOME_LOGPUSH_CONFIGURATIONList of Enriched headers names to log inside Logpush.No-["X-DataDome-botname", "X-DataDome-captchapassed", "X-DataDome-isbot"]
DATADOME_ENABLE_GRAPHQL_SUPPORTExtract GraphQL operation name and type on request to a /graphql endpoint to improve protection.Nofalsetrue
DATADOME_ENABLE_DEBUGGINGLog in Workers logs detailed information about the DataDome process.Nofalsetrue
 /\.(avi|flv|mka|mkv|mov|mp4|mpeg|mpg|mp3|flac|ogg|ogm|opus|wav|webm|webp|bmp|gif|ico|jpeg|jpg|png|svg|svgz|swf|eot|otf|ttf|woff|woff2|css|less|js|map)$/i

Client-side settings

Setting name in Worker's codeDescriptionRequiredDefault valueExample
DATADOME_CLIENT_SIDE_KEYclientSideKeyYour DataDome client-side key, found in your dashboard.Yes--
DATADOME_JS_URLjsUrlURL of the DataDome JS tag that can be changed to include the tag as a first party.Nohttps://js.datadome.co/tags.jshttps://ddfoo.com/tags.js
DATADOME_JS_ENDPOINTjsEndpointEndpoint of the DataDome JS Tag.No
DATADOME_JS_TAG_OPTIONSjsTagOptionsSON object describing DataDome JS Tag options.No{ "ajaxListenerPath": true }{ "ajaxListenerPath": "example.com", "allowHtmlContentTypeOnCaptcha": true }
DATADOME_JS_URL_REGEX_EXCLUSIONjsUrlRegexExclusionRegular expression to NOT set the DataDome JS Tag on matching URLs.No--
DATADOME_JS_URL_REGEX_INCLUSIONjsUrlRegexInclusionRegular expression to set the DataDome JS Tag on matching URLs.No-/login*/i

Update from the Dashboard

  1. Download the latest version of our Cloudflare Worker script.
  2. Go to your DataDome Worker Overview.
  3. Click on Quick edit.
Quick edit Worker.

Quick edit Worker.

  1. Retrieve the specific values that you may have set to configure your DataDome Worker that are not the default value.
  2. Update the script with the new content of dist/datadome.js.
  3. Configure the settings with the values from step 4.
  4. Deploy your Worker.

terraform apply

Uninstallation from the Dashboard

To uninstall DataDome, delete the DataDome Worker.

  1. Go to the DataDome Worker overview and click on Manage application.

  1. Click on Delete.

  1. Confirm the deletion.

Logging

DatDome custom logging

  1. Inside the Cloudflare Dashboard, go to the DataDome Worker's page.
  2. Click onSettings, go to the Observability section.
  3. Click on the pen icon next to Workers Logs.
  1. Enable logs.
  2. Click on Deploy.
  3. You will see the logs inside the Logs tab.
    By default, DataDome logs errors only (such as errors in the configuration). If you want to have detailed logs for debugging, you can set DATADOME_ENABLE_DEBUGGINGto true.

DataDome logs format

The DataDome custom logs have the following format:

{
  "step": "string",
  "result": "string", 
  "reason": "string",
  "details": {
    "key": "value"
  },
  "company": "DataDome",
  "line": 123
}

Logpush

You can use Logpush to send logs to a destination supported by Logpush (Datadog, Splunk, S3 Bucket…).

❗️

Cloudflare plan

Logpush is available to customers on Cloudflare’s Enterprise plan.

Update the Worker’s script

  1. Fill the DATADOME_LOGPUSH_CONFIGURATION value with the name of the values you want, as an Array of Strings.
    The possible values are available in the Enriched headers page.

Enable Logpush

  1. Inside the Cloudflare Dashboard, go to the DataDome Worker's page.
  2. Click onSettings, go to the Observability section.
  3. Click on Enable next to Logpush.