Skip to Content
SourcesS3-Compatible Storage

S3-Compatible Storage

Required
Fields required for a valid configuration.
PathTypeRequiredDescriptionDefaultConstraints
requiredobjectYesno extra properties
required.bucketstringYesBucket name for AWS S3, MinIO, Cloudflare R2, Backblaze B2, Garage, and other S3-compatible endpoints
Masked
Sensitive fields under(secrets/credentials).
PathTypeRequiredDescriptionDefaultConstraints
maskedobjectNoOptional static credentials. Leave empty to use ambient AWS credentials chain.no extra properties
masked.aws_access_key_idstringNoS3-compatible access key ID
masked.aws_secret_access_keystringNoS3-compatible secret access key
masked.aws_session_tokenstringNoOptional session token for temporary credentials
Optional
Optional configuration fields.
PathTypeRequiredDescriptionDefaultConstraints
optionalobjectNono extra properties
optional.connectionobjectNono extra properties
optional.connection.endpoint_urlstringNoCustom endpoint URL for MinIO/R2/B2/Garage and other S3-compatible providersformat uri
optional.connection.max_keys_per_pageintegerNoMaximum objects requested per provider list API call200min 1, max 1000
optional.connection.max_object_bytesintegerNoMaximum bytes downloaded per object for MIME detection and text extraction5242880min 1024, max 52428800
optional.connection.region_namestringNoRegion (recommended for AWS; required by some S3-compatible providers)
optional.connection.request_timeout_secondsnumberNoNetwork timeout in seconds for list/download operations30min 1, max 300
optional.connection.verify_sslbooleanNoTLS certificate verification toggletrue
optional.scopeobjectNoObject scope and filtering controls.no extra properties
optional.scope.exclude_extensionsarrayNoOptional extension denylist
optional.scope.exclude_extensions[]stringNo
optional.scope.include_content_previewbooleanNoDownload object bytes to infer MIME and extract detector-ready text previewstrue
optional.scope.include_empty_objectsbooleanNoInclude zero-byte objects in extraction resultsfalse
optional.scope.include_extensionsarrayNoOptional extension allowlist (for example, .pdf, .csv, .parquet)
optional.scope.include_extensions[]stringNo
optional.scope.include_object_metadatabooleanNoAttach provider metadata (etag, size, content-type hints, timestamps) to asset checksumstrue
optional.scope.prefixstringNoObject key prefix filter (for example, exports/2026/)
Extracted Metadata

File

FieldTypeRequiredDescription
size_bytesintegerYesRaw byte size of the content
mime_typestringYesResolved MIME type
parse_errorstringNoSet when content extraction failed
image_widthintegerNoWidth in pixels
image_heightintegerNoHeight in pixels
page_countintegerNoNumber of pages (pdf)
paragraph_countintegerNoNumber of paragraphs (docx)
table_countintegerNoNumber of tables (docx)
row_countintegerNoNumber of data rows
columnsobject[]NoColumns as {name, type} objects (type may be empty for csv/xlsx)
encodingstringNoDetected character encoding
json_root_typestringNoRoot JSON type: object, array, or scalar
top_level_keysintegerNoNumber of top-level keys when the root is an object
array_lengthintegerNoLength when the root is an array
providerstringYesStorage provider label
object_keystringYesObject key/path
etagstringNoObject entity tag

Image

FieldTypeRequiredDescription
size_bytesintegerYesRaw byte size of the content
mime_typestringYesResolved MIME type
parse_errorstringNoSet when content extraction failed
source_hashstringYesHash of the parent object asset
locationstringYesLocation of the embedded image within the parent

Audio

FieldTypeRequiredDescription
size_bytesintegerYesRaw byte size of the content
mime_typestringYesResolved MIME type
parse_errorstringNoSet when content extraction failed
providerstringYesStorage provider label
object_keystringYesObject key/path

Video

FieldTypeRequiredDescription
size_bytesintegerYesRaw byte size of the content
mime_typestringYesResolved MIME type
parse_errorstringNoSet when content extraction failed
providerstringYesStorage provider label
object_keystringYesObject key/path
Examples
AWS S3 bucket scan
Scan an S3 bucket for document metadata and content previews using IAM credentials

Config Payload

{
  "type": "S3_COMPATIBLE_STORAGE",
  "required": {
    "bucket": "your-bucket-name"
  },
  "masked": {
    "aws_access_key_id": "your-access-key-id",
    "aws_secret_access_key": "your-secret-access-key"
  },
  "optional": {
    "scope": {
      "include_content_preview": true
    }
  },
  "sampling": {
    "strategy": "AUTOMATIC"
  }
}

Schedule

{
  "enabled": true,
  "preset": "nightly",
  "cron": "9 2 * * *",
  "timezone": "UTC"
}
MinIO document scan with prefix filter
Scan a MinIO bucket restricted to a key prefix and specific file types

Config Payload

{
  "type": "S3_COMPATIBLE_STORAGE",
  "required": {
    "bucket": "your-bucket-name"
  },
  "masked": {
    "aws_access_key_id": "your-minio-access-key",
    "aws_secret_access_key": "your-minio-secret-key"
  },
  "optional": {
    "connection": {
      "endpoint_url": "https://minio.your-company.internal:9000",
      "region_name": "us-east-1"
    },
    "scope": {
      "prefix": "exports/",
      "include_extensions": [
        ".csv",
        ".parquet",
        ".pdf"
      ],
      "include_content_preview": true
    }
  },
  "sampling": {
    "strategy": "AUTOMATIC"
  },
  "detectors": [
    {
      "type": "PII",
      "enabled": true
    },
    {
      "type": "SECRETS",
      "enabled": true
    }
  ]
}

Schedule

{
  "enabled": true,
  "preset": "nightly",
  "cron": "14 2 * * *",
  "timezone": "UTC"
}