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
source_hashstringNoHash of the parent asset (embedded images and archive members only)
locationstringNoLocation within the parent (embedded image location or archive member path)

Image

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
providerstringNoStorage provider label
object_keystringNoObject key/path
etagstringNoObject entity tag
source_hashstringNoHash of the parent asset (embedded images and archive members only)
locationstringNoLocation within the parent (embedded image location or archive member path)

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
source_hashstringNoHash of the parent asset (embedded images and archive members only)
locationstringNoLocation within the parent (embedded image location or archive member 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
source_hashstringNoHash of the parent asset (embedded images and archive members only)
locationstringNoLocation within the parent (embedded image location or archive member path)

Archive

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
etagstringNoObject entity tag
source_hashstringNoHash of the parent asset (embedded images and archive members only)
locationstringNoLocation within the parent (embedded image location or archive member 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"
}