Back to plugin list
cloudflare
Official
Premium

Cloudflare

The CloudQuery Cloudflare plugin pulls configuration out of Cloudflare resources and loads it into any supported CloudQuery destination

Publisher

cloudquery

Latest version

v9.4.6

Type

Source

Platforms
Date Published

Price per 1M rows

Starting from $15

monthly free quota

1M rows

Set up process #


brew install cloudquery/tap/cloudquery

1. Download CLI and login

See installation options

2. Create source and destination configs

Plugin configuration

cloudquery sync cloudflare.yml postgresql.yml

3. Run the sync

CloudQuery sync

Overview #

Cloudflare Source Plugin

The CloudQuery Cloudflare plugin pulls configuration out of Cloudflare resources and loads it into any supported CloudQuery destination (e.g. PostgreSQL, BigQuery, Snowflake, and more).

Authentication #

In order to fetch information from Cloudflare, cloudquery needs to be authenticated. There are a few options for authentication:
  • Via an API token (preferred)
  • Via an API email and key
The plugin requires only read permissions. To start, Cloudflare has a read all resources API token template that will grant CloudQuery the necessary permissions to fetch information from Cloudflare. As necessary, those permissions can be refined and modified further to meet your needs.

Query Examples #

Find all zones with dev_mode enabled #

SELECT id, account_id, host_name, name, original_ns FROM cloudflare_zones WHERE dev_mode = true;

Find all DNS records #

SELECT id, account_id, zone_id, name, type FROM cloudflare_dns_records;


Configuration #

Cloudflare Source Plugin Configuration Reference

Example #

This example syncs from Cloudflare to a Postgres destination, using in-line api_token authentication (instead of the CLOUDFLARE_API_TOKEN environment variable). The (top level) source spec section is described in the Source Spec Reference.
kind: source
# Common source-plugin configuration
spec:
  name: cloudflare
  path: cloudquery/cloudflare
  registry: cloudquery
  version: "v9.4.6"
  tables: ["*"]
  destinations: ["postgresql"]

  # Cloudflare specific configuration
  # Learn more about the configuration options at https://cql.ink/cloudflare_source
  spec:
    # required, if api_email and api_key are not set
    api_token: "${CLOUDFLARE_API_TOKEN}"
    # required, if api_token is not set
    # api_email: ""
    # required, if api_token is not set
    # api_key: ""
    # Optional parameters
    # accounts: []
    # zones: []

Cloudflare Spec #

This is the (nested) spec used by the Cloudflare source plugin.
  • api_token (string, optional. Default: empty): An API token to access Cloudflare resources. This can also be set with the CLOUDFLARE_API_TOKEN environment variable. An API token authentication is preferred over API email and key authentication. If api_token is specified, api_email and api_key shouldn't be specified.
  • api_email (string, optional. Default: empty): API email to access Cloudflare resources. If api_email is specified, api_key should also be specified. This can also be set with the CLOUDFLARE_EMAIL environment variable. If api_email is used, api_token shouldn't be specified.
  • api_key (string, optional. Default: empty): API key to access Cloudflare resources. If api_key is used, api_email should also be specified. This can also be set with the CLOUDFLARE_API_KEY environment variable. If api_key is used, api_token shouldn't be specified.
  • accounts ([]string, optional. Default: empty): List of accounts to target. If empty, all available accounts will be targeted.
  • zones ([]string, optional. Default: empty): List of zones to target. If empty, all available zones will be targeted.
  • concurrency (int, optional, default: 10000): A best effort maximum number of Go routines to use. Lower this number to reduce memory usage.