New
Join our webinar! Building a customizable and extensible cloud asset inventory at scale
Back to source 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.9.4

Type

Source

Platforms
Date Published

Price per 1M rows

Starting from $17

monthly free quota

1M rows

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.9.4"
  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 (integer, optional, default: 10000): A best effort maximum number of Go routines to use. Lower this number to reduce memory usage.
  • scheduler (string, optional, default: dfs): The scheduler to use when determining the priority of resources to sync. Supported values are dfs (depth-first search), round-robin, shuffle and shuffle-queue.
    For more information about this, see performance tuning.


Licenses #

The following tools / packages are used in this plugin:
NameLicense
github.com/adrg/xdgMIT
github.com/apache/arrow/go/v13Apache-2.0
github.com/apache/arrow-go/v18Apache-2.0
github.com/apapsch/go-jsonmerge/v2MIT
github.com/aws/aws-sdk-go-v2Apache-2.0
github.com/aws/aws-sdk-go-v2/configApache-2.0
github.com/aws/aws-sdk-go-v2/credentialsApache-2.0
github.com/aws/aws-sdk-go-v2/feature/ec2/imdsApache-2.0
github.com/aws/aws-sdk-go-v2/internal/configsourcesApache-2.0
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2Apache-2.0
github.com/aws/aws-sdk-go-v2/internal/iniApache-2.0
github.com/aws/aws-sdk-go-v2/internal/sync/singleflightBSD-3-Clause
github.com/aws/aws-sdk-go-v2/service/internal/accept-encodingApache-2.0
github.com/aws/aws-sdk-go-v2/service/internal/presigned-urlApache-2.0
github.com/aws/aws-sdk-go-v2/service/licensemanagerApache-2.0
github.com/aws/aws-sdk-go-v2/service/marketplacemeteringApache-2.0
github.com/aws/aws-sdk-go-v2/service/ssoApache-2.0
github.com/aws/aws-sdk-go-v2/service/ssooidcApache-2.0
github.com/aws/aws-sdk-go-v2/service/stsApache-2.0
github.com/aws/smithy-goApache-2.0
github.com/aws/smithy-go/internal/sync/singleflightBSD-3-Clause
github.com/bahlo/generic-list-goBSD-3-Clause
github.com/buger/jsonparserMIT
github.com/cenkalti/backoff/v4MIT
github.com/cloudflare/cloudflare-goBSD-3-Clause
github.com/cloudquery/cloudquery-api-goMPL-2.0
github.com/cloudquery/plugin-pb-goMPL-2.0
github.com/cloudquery/plugin-sdk/v2/internal/globMIT
github.com/cloudquery/plugin-sdk/v2/schemaMIT
github.com/cloudquery/plugin-sdk/v2/typesMPL-2.0
github.com/cloudquery/plugin-sdk/v4MPL-2.0
github.com/cloudquery/plugin-sdk/v4/globMIT
github.com/cloudquery/plugin-sdk/v4/scalarMIT
github.com/davecgh/go-spew/spewISC
github.com/ghodss/yamlMIT
github.com/go-logr/logrApache-2.0
github.com/go-logr/stdrApache-2.0
github.com/goccy/go-jsonMIT
github.com/golang/mock/gomockApache-2.0
github.com/google/flatbuffers/goApache-2.0
github.com/google/go-querystring/queryBSD-3-Clause
github.com/google/uuidBSD-3-Clause
github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptorsApache-2.0
github.com/grpc-ecosystem/grpc-gateway/v2BSD-3-Clause
github.com/hashicorp/go-cleanhttpMPL-2.0
github.com/hashicorp/go-retryablehttpMPL-2.0
github.com/invopop/jsonschemaMIT
github.com/klauspost/compressApache-2.0
github.com/klauspost/compress/internal/snaprefBSD-3-Clause
github.com/klauspost/compress/zstd/internal/xxhashMIT
github.com/mailru/easyjsonMIT
github.com/mattn/go-colorableMIT
github.com/mattn/go-isattyMIT
github.com/oapi-codegen/runtimeApache-2.0
github.com/pierrec/lz4/v4BSD-3-Clause
github.com/pmezard/go-difflib/difflibBSD-3-Clause
github.com/rs/zerologMIT
github.com/samber/loMIT
github.com/santhosh-tekuri/jsonschema/v6Apache-2.0
github.com/spf13/cobraApache-2.0
github.com/spf13/pflagBSD-3-Clause
github.com/stretchr/testifyMIT
github.com/thoas/go-funkMIT
github.com/wk8/go-ordered-map/v2Apache-2.0
github.com/zeebo/xxh3BSD-2-Clause
go.opentelemetry.io/otelApache-2.0
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttpApache-2.0
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttpApache-2.0
go.opentelemetry.io/otel/exporters/otlp/otlptraceApache-2.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttpApache-2.0
go.opentelemetry.io/otel/logApache-2.0
go.opentelemetry.io/otel/metricApache-2.0
go.opentelemetry.io/otel/sdkApache-2.0
go.opentelemetry.io/otel/sdk/logApache-2.0
go.opentelemetry.io/otel/sdk/metricApache-2.0
go.opentelemetry.io/otel/traceApache-2.0
go.opentelemetry.io/proto/otlpApache-2.0
golang.org/x/expBSD-3-Clause
golang.org/x/netBSD-3-Clause
golang.org/x/syncBSD-3-Clause
golang.org/x/sysBSD-3-Clause
golang.org/x/textBSD-3-Clause
golang.org/x/time/rateBSD-3-Clause
golang.org/x/xerrorsBSD-3-Clause
google.golang.org/genproto/googleapis/api/httpbodyApache-2.0
google.golang.org/genproto/googleapis/rpc/statusApache-2.0
google.golang.org/grpcApache-2.0
google.golang.org/protobufBSD-3-Clause
gopkg.in/yaml.v2Apache-2.0
gopkg.in/yaml.v3MIT


Join our mailing list

Subscribe to our newsletter to make sure you don't miss any updates.

Legal

© 2024 CloudQuery, Inc. All rights reserved.

We use tracking cookies to understand how you use the product and help us improve it. Please accept cookies to help us improve. You can always opt out later via the link in the footer.