Per-bucket cloud cache configuration backed by Concord KV.
When enabled, a bucket acts as a gateway to a remote S3-compatible store (AWS S3, Cloudflare R2, MinIO, or any S3-compatible endpoint). Writes go directly to the remote; reads are served from a local LRU disk cache that is populated on demand.
Configuration is stored under "cloud_cache:{bucket}" in Concord.
The secret access key is AES-256-CTR encrypted using the same
ESS_MASTER_KEY as IAM secrets.
Providers
| Provider | Endpoint | Notes |
|---|---|---|
:aws | Auto: https://s3.{region}.amazonaws.com | Override with custom endpoint |
:r2 | Required: account-specific R2 URL | Region should be "auto" |
:minio | Required: http://host:9000 | Path-style access, any region |
:s3_compat | Required: provider endpoint URL | Generic S3-compatible backend |
Summary
Functions
Decrypt an AES-256-CTR encrypted secret.
Delete cloud cache config for a bucket.
Encrypt a plaintext secret using the master key.
Derive the S3 endpoint URL from the config.
Check if cloud cache is enabled for a bucket.
Returns the config if enabled, :disabled otherwise.
Get cloud cache config for a bucket.
Decrypt the stored secret and return the plaintext secret access key.
Set (create or update) cloud cache config for a bucket.
Types
@type provider() :: :aws | :r2 | :minio | :s3_compat
Functions
Decrypt an AES-256-CTR encrypted secret.
Delete cloud cache config for a bucket.
Encrypt a plaintext secret using the master key.
Derive the S3 endpoint URL from the config.
:aws— auto-buildshttps://s3.{region}.amazonaws.comif no endpoint given:r2— usesendpointfield directly (account-specific URL):minio— usesendpointfield directly (e.g.http://host:9000):s3_compat— usesendpointfield directly
Check if cloud cache is enabled for a bucket.
Returns the config if enabled, :disabled otherwise.
Get cloud cache config for a bucket.
Returns {:ok, %Config{}} if configured, {:error, :not_found} otherwise.
Decrypt the stored secret and return the plaintext secret access key.
Set (create or update) cloud cache config for a bucket.
params is a map or keyword list with the config fields.
If secret_access_key is provided in plaintext, it will be encrypted.