Documentation
¶
Overview ¶
Package cloudflare provides a focused Cloudflare REST API client for provisioning the resources required by the Orun backend Worker.
It supports D1 database create/list/delete, R2 bucket create/list/delete, Worker script upload with bindings, Worker vars/secrets, and status checks.
Credentials are read from CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID environment variables by default, and can be overridden via Options.
Index ¶
- type APIError
- type Client
- func (c *Client) CreateD1Database(ctx context.Context, name string) (*D1Database, error)
- func (c *Client) CreateOrUpdateQueueConsumer(ctx context.Context, queueID, scriptName, dlqName string, ...) error
- func (c *Client) CreateQueue(ctx context.Context, name string) (*Queue, error)
- func (c *Client) CreateR2Bucket(ctx context.Context, name string) (*R2Bucket, error)
- func (c *Client) DeleteD1Database(ctx context.Context, databaseUUID string) error
- func (c *Client) DeleteQueueByID(ctx context.Context, queueID string) error
- func (c *Client) DeleteQueueByName(ctx context.Context, name string) error
- func (c *Client) DeleteQueueConsumer(ctx context.Context, queueID, consumerID string) error
- func (c *Client) DeleteR2Bucket(ctx context.Context, name string) error
- func (c *Client) DeleteWorkerSchedules(ctx context.Context, scriptName string) error
- func (c *Client) DeleteWorkerScript(ctx context.Context, scriptName string) error
- func (c *Client) EnableWorkerSubdomainRoute(ctx context.Context, scriptName string) error
- func (c *Client) ExecD1SQL(ctx context.Context, databaseUUID, sql string) (*D1QueryResult, error)
- func (c *Client) FindD1DatabaseByName(ctx context.Context, name string) (*D1Database, error)
- func (c *Client) FindQueueByName(ctx context.Context, name string) (*Queue, error)
- func (c *Client) FindR2BucketByName(ctx context.Context, name string) (*R2Bucket, error)
- func (c *Client) GetWorkerScript(ctx context.Context, scriptName string) (*WorkerScript, error)
- func (c *Client) GetWorkerSubdomain(ctx context.Context) (string, error)
- func (c *Client) ListD1Databases(ctx context.Context) ([]D1Database, error)
- func (c *Client) ListQueueConsumers(ctx context.Context, queueID string) ([]QueueConsumer, error)
- func (c *Client) ListQueues(ctx context.Context) ([]Queue, error)
- func (c *Client) ListR2Buckets(ctx context.Context) ([]R2Bucket, error)
- func (c *Client) ListWorkerSchedules(ctx context.Context, scriptName string) ([]WorkerSchedule, error)
- func (c *Client) ListWorkerSecretNames(ctx context.Context, scriptName string) ([]string, error)
- func (c *Client) SetWorkerSecret(ctx context.Context, scriptName, secretName, secretValue string) error
- func (c *Client) SetWorkerVars(ctx context.Context, scriptName string, vars map[string]string) error
- func (c *Client) UpdateWorkerSchedules(ctx context.Context, scriptName string, crons []string) error
- func (c *Client) UploadWorkerScript(ctx context.Context, params UploadWorkerParams) (*WorkerScript, error)
- type D1Database
- type D1QueryRequest
- type D1QueryResult
- type DurableObjectMigration
- type Options
- type Queue
- type QueueConsumer
- type QueueConsumerSettings
- type R2Bucket
- type UploadWorkerParams
- type WorkerBinding
- type WorkerSchedule
- type WorkerScript
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a Cloudflare REST API client.
func (*Client) CreateD1Database ¶
CreateD1Database creates a new D1 database and returns it. If a database with the given name already exists, it is returned without error.
func (*Client) CreateOrUpdateQueueConsumer ¶
func (c *Client) CreateOrUpdateQueueConsumer(ctx context.Context, queueID, scriptName, dlqName string, settings QueueConsumerSettings) error
CreateOrUpdateQueueConsumer idempotently attaches a Worker consumer to a queue. If a consumer for the same script already exists with matching settings, this is a no-op. If it exists with different settings, it is deleted and recreated.
func (*Client) CreateQueue ¶
CreateQueue creates a new queue idempotently. If a queue with the given name already exists, it is returned.
func (*Client) CreateR2Bucket ¶
CreateR2Bucket creates a new R2 bucket. If a bucket with the given name already exists, it is returned without error.
func (*Client) DeleteD1Database ¶
DeleteD1Database deletes a D1 database by UUID.
func (*Client) DeleteQueueByID ¶
DeleteQueueByID deletes a queue by its ID. Missing resources are not treated as an error.
func (*Client) DeleteQueueByName ¶
DeleteQueueByName deletes a queue by name. Missing resources are not treated as an error.
func (*Client) DeleteQueueConsumer ¶
DeleteQueueConsumer removes a consumer from a queue. Missing resources are not treated as an error.
func (*Client) DeleteR2Bucket ¶
DeleteR2Bucket deletes an R2 bucket by name.
func (*Client) DeleteWorkerSchedules ¶
DeleteWorkerSchedules removes all cron schedules for a Worker.
func (*Client) DeleteWorkerScript ¶
DeleteWorkerScript deletes a Worker script by name.
func (*Client) EnableWorkerSubdomainRoute ¶
EnableWorkerSubdomainRoute enables the workers.dev route for a Worker script.
func (*Client) FindD1DatabaseByName ¶
FindD1DatabaseByName returns the D1 database with the given name, or nil if not found.
func (*Client) FindQueueByName ¶
FindQueueByName returns the queue with the given name, or nil if not found.
func (*Client) FindR2BucketByName ¶
FindR2BucketByName returns the R2 bucket with the given name, or nil if not found.
func (*Client) GetWorkerScript ¶
GetWorkerScript returns the Worker script metadata, or nil if it does not exist.
func (*Client) GetWorkerSubdomain ¶
GetWorkerSubdomain returns the workers.dev subdomain for the account, if enabled. Returns empty string if the subdomain is not enabled.
func (*Client) ListD1Databases ¶
func (c *Client) ListD1Databases(ctx context.Context) ([]D1Database, error)
ListD1Databases returns all D1 databases for the account.
func (*Client) ListQueueConsumers ¶
ListQueueConsumers returns all consumers attached to a queue.
func (*Client) ListQueues ¶
ListQueues returns all queues for the account.
func (*Client) ListR2Buckets ¶
ListR2Buckets returns all R2 buckets for the account.
func (*Client) ListWorkerSchedules ¶
func (c *Client) ListWorkerSchedules(ctx context.Context, scriptName string) ([]WorkerSchedule, error)
ListWorkerSchedules returns the cron schedules for a Worker script.
func (*Client) ListWorkerSecretNames ¶
ListWorkerSecretNames returns the names of secrets currently set on a Worker script.
func (*Client) SetWorkerSecret ¶
func (c *Client) SetWorkerSecret(ctx context.Context, scriptName, secretName, secretValue string) error
SetWorkerSecret sets a single Worker secret. The value is never logged.
func (*Client) SetWorkerVars ¶
func (c *Client) SetWorkerVars(ctx context.Context, scriptName string, vars map[string]string) error
SetWorkerVars updates or creates non-secret Worker environment variables. These are sent as part of the script metadata, so the script must already exist.
func (*Client) UpdateWorkerSchedules ¶
func (c *Client) UpdateWorkerSchedules(ctx context.Context, scriptName string, crons []string) error
UpdateWorkerSchedules replaces all cron schedules for a Worker. Pass an empty slice to clear all schedules.
func (*Client) UploadWorkerScript ¶
func (c *Client) UploadWorkerScript(ctx context.Context, params UploadWorkerParams) (*WorkerScript, error)
UploadWorkerScript uploads (creates or updates) a Worker module script with bindings.
type D1Database ¶
type D1Database struct {
UUID string `json:"uuid"`
Name string `json:"name"`
Version string `json:"version"`
}
D1Database represents a Cloudflare D1 database.
type D1QueryRequest ¶
D1QueryRequest is the body for D1 query execution.
type D1QueryResult ¶
type D1QueryResult struct {
Results []map[string]interface{} `json:"results"`
Success bool `json:"success"`
Meta struct {
Duration float64 `json:"duration"`
} `json:"meta"`
}
D1QueryResult holds the result of a D1 SQL query.
type DurableObjectMigration ¶
type DurableObjectMigration struct {
Tag string `json:"tag"`
NewSQLiteClasses []string `json:"new_sqlite_classes,omitempty"`
NewClasses []string `json:"new_classes,omitempty"`
}
DurableObjectMigration is a Durable Object class migration declaration.
type Options ¶
type Options struct {
AccountID string
APIToken string
BaseURL string // defaults to https://api.cloudflare.com/client/v4
UserAgent string
HTTPClient *http.Client // injectable for tests
}
Options configures the Cloudflare client.
type QueueConsumer ¶
type QueueConsumer struct {
ConsumerID string `json:"consumer_id"`
ScriptName string `json:"script_name"`
DeadLetterQueue string `json:"dead_letter_queue"`
Type string `json:"type"`
Settings QueueConsumerSettings `json:"settings"`
}
QueueConsumer represents a consumer of a Cloudflare Queue.
type QueueConsumerSettings ¶
type QueueConsumerSettings struct {
BatchSize int `json:"batch_size,omitempty"`
MaxRetries int `json:"max_retries,omitempty"`
MaxWaitTimeMs int `json:"max_wait_time_ms,omitempty"`
}
QueueConsumerSettings holds the configurable consumer behavior.
type UploadWorkerParams ¶
type UploadWorkerParams struct {
ScriptName string
Bundle []byte
Bindings []WorkerBinding
DOMiddleMigrations []DurableObjectMigration
CompatDate string
}
UploadWorkerParams holds all parameters for uploading a Worker module script.
type WorkerBinding ¶
type WorkerBinding struct {
Type string `json:"type"`
Name string `json:"name"`
ScriptName string `json:"script_name,omitempty"`
ClassName string `json:"class_name,omitempty"`
DatabaseID string `json:"id,omitempty"`
BucketName string `json:"bucket_name,omitempty"`
QueueName string `json:"queue_name,omitempty"`
Text string `json:"text,omitempty"`
}
WorkerBinding represents a Worker binding declaration.
type WorkerSchedule ¶
type WorkerSchedule struct {
Cron string `json:"cron"`
}
WorkerSchedule represents a single Worker cron trigger.