DigitalOcean Create

DigitalOcean Create

Certified

Create a DigitalOcean CDN endpoint

Puts a CDN in front of a Spaces bucket. The origin is the bucket's hostname, e.g. static-images.nyc3.digitaloceanspaces.com. Optionally sets the cache TTL and a custom subdomain, which goes with the ID of a DigitalOcean managed certificate for it.

yaml
type: io.kestra.plugin.digitalocean.cdn.Create

Enable the CDN on a Spaces bucket with a one-day cache

yaml
id: digitalocean_create_cdn_endpoint
namespace: company.team

tasks:
  - id: create_endpoint
    type: io.kestra.plugin.digitalocean.cdn.Create
    apiToken: "{{ secret('DIGITALOCEAN_TOKEN') }}"
    origin: static-images.nyc3.digitaloceanspaces.com
    ttl: 86400
  - id: log_endpoint
    type: io.kestra.plugin.core.log.Log
    message: "Content is now served from {{ outputs.create_endpoint.endpoint }}"
Properties

DigitalOcean API token

Personal access token used to authenticate against the DigitalOcean API v2, sent as Authorization: Bearer <token>. Create one (prefixed dop_v1_) in the DigitalOcean control panel under API > Tokens, and store it as a Kestra secret.

Origin

Hostname of the Spaces bucket to serve, e.g. static-images.nyc3.digitaloceanspaces.com.

Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.

Definitions
assetFailureBehaviorstring
Possible Values
IGNOREFAILWARN

Asset failure behavior

Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.

enableAutobooleanstring

Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.

inputsarray

The assets consumed as inputs.

id*string
Min length1
typestring
outputs

The assets produced as outputs.

id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*string
Min length1

Custom asset type

descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
Defaulthttps://api.digitalocean.com

DigitalOcean API base URL

Base endpoint for all DigitalOcean API calls. Defaults to https://api.digitalocean.com.

Certificate ID

ID of the DigitalOcean managed TLS certificate for the custom domain.

Custom domain

Custom subdomain to also serve the content from, e.g. static.example.com. Set certificateId with it.

HTTP client options

Optional HTTP configuration (timeouts, proxy, SSL) applied to every DigitalOcean API call.

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*object
passwordstring

The password for HTTP basic authentication.

usernamestring

The username for HTTP basic authentication.

type*object
tokenstring

The token for bearer token authentication.

type*object
passwordstring

The password for HTTP Digest authentication.

usernamestring

The username for HTTP Digest authentication.

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.

logsarray
SubTypestring
Possible Values
REQUEST_HEADERSREQUEST_BODYRESPONSE_HEADERSRESPONSE_BODY

The enabled log.

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.

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.

Cache TTL

How long the edge servers cache the content, in seconds: 60, 600, 3600, 86400, or 604800. DigitalOcean defaults to 3600.

Certificate ID

ID of the DigitalOcean managed TLS certificate used for the custom domain.

Formatdate-time

Creation timestamp

Custom domain

Custom subdomain the content is also served from, e.g. static.example.com.

CDN hostname

Hostname the cached content is served from, e.g. static-images.nyc3.cdn.digitaloceanspaces.com.

Endpoint ID

UUID assigned by DigitalOcean.

Origin

Hostname of the Spaces bucket the CDN serves, e.g. static-images.nyc3.digitaloceanspaces.com.

Cache TTL

How long the edge servers cache the content, in seconds.