Skip to main content
Cake Agents can upload each archived session’s persistent volume to S3-compatible object storage as a compressed archive. Configure a bucket at the organization level so users can archive sessions without losing their files.

When to configure S3

  • You want users to be able to archive sessions and retain the underlying files.
  • You want a durable, off-cluster copy of session data before pods and volumes are released.
If S3 is not configured, archive actions still stop the session and preserve message history, but the session’s files are not saved.

Prerequisites

  • An S3-compatible bucket (AWS S3, or any S3-API-compatible service such as MinIO or Cloudflare R2).
  • Credentials available to the control plane with permission to PutObject into the bucket.
  • Admin access to Cake Agents.

Configure S3 in the UI

  1. Go to Settings → Organization → AWS.
  2. Toggle S3 on.
  3. Fill in the fields:
    • Bucket — the bucket name. Required.
    • Region — the AWS region where the bucket lives. Defaults to us-east-1.
    • Endpoint — optional. Set this when using a non-AWS S3-compatible service.
    • Prefix — optional. A key prefix prepended to every object (useful for sharing a bucket across environments).
  4. Save.
Each archived session is uploaded under the configured prefix, keyed by session ID.

Configure S3 with environment variables

You can also configure storage on the control plane deployment using environment variables. UI values override environment variables when both are set. Example Helm values snippet:
Provide AWS credentials via the standard AWS SDK mechanisms (AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY, an instance role, IRSA on EKS, or Workload Identity).

What gets uploaded

For each archived session, Cake Agents packages the session’s persistent volume into a compressed tarball and uploads it to:
Message history is stored in the database, not in S3.