Cloudflare R2 Import

Cloudflare R2 Import

Certified

Import a SQL file into a Cloudflare D1 database

Uploads SQL into an existing D1 database using Cloudflare's 3-step import protocol: init (get a presigned R2 upload URL), PUT the SQL bytes to that URL, then ingest. If ingest does not return "complete" immediately, polls with exponential backoff (starting at 500ms, capped at 5s) until the import finishes or the deadline is reached.

yaml
type: io.kestra.plugin.cloudflare.d1.Import

Import an exported SQL dump back into a D1 database

yaml
id: import_d1_database
namespace: company.team

tasks:
  - id: export
    type: io.kestra.plugin.cloudflare.d1.Export
    apiToken: "{{ secret('CLOUDFLARE_API_TOKEN') }}"
    accountId: "your_account_id"
    databaseId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

  - id: import
    type: io.kestra.plugin.cloudflare.d1.Import
    apiToken: "{{ secret('CLOUDFLARE_API_TOKEN') }}"
    accountId: "your_account_id"
    databaseId: "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
    from: "{{ outputs.export.uri }}"

Import inline SQL into a D1 database

yaml
id: import_inline_sql
namespace: company.team

tasks:
  - id: import
    type: io.kestra.plugin.cloudflare.d1.Import
    apiToken: "{{ secret('CLOUDFLARE_API_TOKEN') }}"
    accountId: "your_account_id"
    databaseId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    sql: |
      CREATE TABLE IF NOT EXISTS events (id INTEGER PRIMARY KEY, name TEXT);
      INSERT INTO events (name) VALUES ('deploy');
Properties

Account ID

Cloudflare account identifier

Cloudflare API token

Your Cloudflare API token. Create one in the Cloudflare dashboard with DNS read/write permissions.

Database ID

UUID of the D1 database to import into

Defaulthttps://api.cloudflare.com/client/v4

Cloudflare API base URL

Base URL for Cloudflare API. Usually you don’t need to change this.

Source storage URI

Kestra internal storage URI of a SQL file to import (e.g. the uri output of an Export task). Mutually exclusive with sql.

DefaultPT5M

Maximum duration

Total time budget for the import to complete (ISO-8601 duration, e.g. PT5M). Polls use exponential backoff: 500ms initial delay, doubling each attempt, capped at 5s. Raise this for large imports.

HTTP client options

Optional advanced HTTP settings like timeouts or proxy.

Definitions
allowFailedbooleanstring
Defaultfalse

If true, allow a failed response code (response code >= 400)

allowedResponseCodesarray
SubTypeinteger

List of response code allowed for this request

auth

The authentication to use.

type*Requiredobject
passwordstring

The password for HTTP basic authentication.

usernamestring

The username for HTTP basic authentication.

type*Requiredobject
tokenstring

The token for bearer token authentication.

type*Requiredobject
passwordstring

The password for HTTP Digest authentication.

usernamestring

The username for HTTP Digest authentication.

basicAuthPasswordDeprecatedstring

The password for HTTP basic authentication. Deprecated, use auth property with a BasicAuthConfiguration instance instead.

basicAuthUserDeprecatedstring

The username for HTTP basic authentication. Deprecated, use auth property with a BasicAuthConfiguration instance instead.

connectTimeoutDeprecatedstring
Formatduration

The time allowed to establish a connection to the server before failing.

connectionPoolIdleTimeoutDeprecatedstring
Formatduration

The time an idle connection can remain in the client's connection pool before being closed.

defaultCharsetstring
DefaultUTF-8

The default charset for the request.

enabledTcpExtendedKeepAlivebooleanstring
Defaulttrue

Whether to enable TCP Keep-Alive extended socket options (TCP_KEEPIDLE, TCP_KEEPINTERVAL, TCP_KEEPCOUNT).

Set to false when running on Windows workers, as these extended socket options are not supported by the Windows JDK and will cause connection failures.

followRedirectsbooleanstring
Defaulttrue

Whether redirects should be followed automatically.

logLevelDeprecatedstring
Possible Values
ALLTRACEDEBUGINFOWARNERROROFFNOT_SPECIFIED

The log level for the HTTP client.

logsarray
SubTypestring
Possible Values
REQUEST_HEADERSREQUEST_BODYRESPONSE_HEADERSRESPONSE_BODY

The enabled log.

maxContentLengthDeprecatedinteger

The maximum content length of the response.

proxy

The proxy configuration.

addressstring

The address of the proxy server.

passwordstring

The password for proxy authentication.

portintegerstring

The port of the proxy server.

typestring
DefaultDIRECT
Possible Values
DIRECTHTTPSOCKS

The type of proxy to use.

usernamestring

The username for proxy authentication.

proxyAddressDeprecatedstring

The address of the proxy server.

proxyPasswordDeprecatedstring

The password for proxy authentication.

proxyPortDeprecatedinteger

The port of the proxy server.

proxyTypeDeprecatedstring
Possible Values
DIRECTHTTPSOCKS

The type of proxy to use.

proxyUsernameDeprecatedstring

The username for proxy authentication.

readIdleTimeoutDeprecatedstring
Formatduration

The time allowed for a read connection to remain idle before closing it.

readTimeoutDeprecatedstring
Formatduration

The maximum time allowed for reading data from the server before failing.

ssl

The SSL request options

insecureTrustAllCertificatesbooleanstring

Whether to disable checking of the remote SSL certificate.

Only applies if no trust store is configured. Note: This makes the SSL connection insecure and should only be used for testing. If you are using a self-signed certificate, set up a trust store instead.

timeout

The timeout configuration.

connectTimeoutstring

The time allowed to establish a connection to the server before failing.

readIdleTimeoutstring
DefaultPT5M

The time allowed for a read connection to remain idle before closing it.

Reference (ref) of the pluginDefaults to apply to this task.

Inline SQL

SQL statements to import. Mutually exclusive with from.

Etag

MD5 hex digest of the uploaded SQL, as sent to Cloudflare

Filename

Filename assigned by Cloudflare for this import (derived from database ID and etag)

Final bookmark

D1 replication bookmark after the import completed

Query metadata

Execution metadata for the import (duration, rows written, etc.)

Definitions
changedboolean
changesinteger
durationnumber
last_row_idinteger
rows_readinteger
rows_writteninteger

Number of queries

Number of SQL statements executed during the import