S3
Connect AWS S3 or any S3-compatible object store — list, read, and write files from agents and workflows, and sync folders into datasets.
The S3 integration connects Compass to object storage: AWS S3, or any S3-compatible store such as MinIO, Cloudflare R2, Backblaze B2, or Wasabi. Your agents and workflows can browse a bucket, pull files into an execution, and write files back — and a dataset can keep itself in sync with a folder in the bucket.
Connecting
Under Studio → Connections, click S3, then New connection, and provide:
| Field | Required | Notes |
|---|---|---|
| Bucket | Yes | The bucket name. |
| Prefix | No | Under Advanced. Restricts the connection to keys under this prefix — see below. |
| Region | No | Under Advanced. Defaults to us-east-1. |
| Endpoint url | No | Under Advanced. For S3-compatible stores — for example your MinIO or R2 endpoint. Leave it empty for AWS. |
Authentication
Choose Access Key under Auth type and enter an Access key id and Secret access key (plus a Session token if you're using temporary credentials). The secret signs each request and is never sent anywhere itself.
The other option, None, uses whatever AWS credentials the environment Compass runs in already has — it's meant for dedicated installs that run with their own cloud role. On a hosted Compass, use an access key.
Not checked when you save
Compass doesn't call the bucket when you save an S3 connection, so a wrong key or
bucket name shows up the first time something uses it. A quick check: add the
connection as a dataset source and browse its
folders, or run list_files from a workflow.
Actions
| Action | Kind | What it does |
|---|---|---|
| list_files | Read | List files under a prefix — optionally only those changed since modified_since — up to limit (default 1,000), including subfolders unless recursive is off. Returns each file's key, name, size, ETag, and last-modified time. |
| list_folders | Read | List the folders under a prefix. |
| get_file | Read | Download a file by key into the execution. |
| upload_file | Write | Write a file from the execution to the bucket, at key (defaults to the file's name). |
A file from get_file becomes an ordinary Compass file — the same thing an upload
produces. Hand it to an agent and the model reads it; pass it to the Document
Parser or Document Splitter and they process it. See
Files & attachments.
Scoping with a prefix
Set a Prefix to scope a connection to one part of a bucket — for example
finance/statements/. Listing and uploads stay inside it: a list_files for
2026/ lists finance/statements/2026/, and uploads land under the prefix too.
get_file isn't limited by the prefix — it can read any key the credentials allow.
To truly confine an agent to one folder, give the connection credentials whose
access policy only covers that prefix.
As a dataset source
A dataset can sync from any folder an S3 connection can see, on a schedule you choose, picking up new and changed files automatically. See Sources & sync. You can't delete an S3 connection while a dataset source reads from it.