Skip to Content
SourcesGoogle Cloud Storage

Google Cloud Storage

Required
Fields required for a valid configuration.
PathTypeRequiredDescriptionDefaultConstraints
requiredobjectYesno extra properties
required.bucketstringYesGoogle Cloud Storage bucket name
Masked
Sensitive fields under(secrets/credentials).
PathTypeRequiredDescriptionDefaultConstraints
maskedobjectNoOptional inline service account credentials JSON. Leave empty to use ADC/workload identity.no extra properties
masked.gcp_credentials_jsonstringNoGoogle service account credentials JSON as inline string
Optional
Optional configuration fields.
PathTypeRequiredDescriptionDefaultConstraints
optionalobjectNono extra properties
optional.connectionobjectNono extra properties
optional.connection.gcp_credentials_filestringNoPath to Google service account JSON credentials file
optional.connection.max_keys_per_pageintegerNoMaximum objects requested per list page200min 1, max 1000
optional.connection.max_object_bytesintegerNoMaximum bytes downloaded per object for MIME detection and text extraction5242880min 1024, max 52428800
optional.connection.project_idstringNoOptional GCP project ID override for auth context and bucket listing
optional.connection.request_timeout_secondsnumberNoNetwork timeout in seconds for list/download operations30min 1, max 300
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
GCS bucket scan with ADC
Scan all objects in a GCS bucket using Application Default Credentials

Config Payload

{
  "type": "GOOGLE_CLOUD_STORAGE",
  "required": {
    "bucket": "your-bucket-name"
  },
  "masked": {},
  "optional": {
    "connection": {
      "project_id": "your-gcp-project-id"
    }
  },
  "sampling": {
    "strategy": "AUTOMATIC"
  }
}

Schedule

{
  "enabled": true,
  "preset": "nightly",
  "cron": "26 1 * * *",
  "timezone": "UTC"
}
GCS export folder PII scan
Scan objects under a prefix with service account credentials and run PII detection

Config Payload

{
  "type": "GOOGLE_CLOUD_STORAGE",
  "required": {
    "bucket": "your-bucket-name"
  },
  "masked": {
    "gcp_credentials_json": "{\"type\":\"service_account\",\"project_id\":\"your-project\",...}"
  },
  "optional": {
    "connection": {
      "project_id": "your-gcp-project-id"
    },
    "scope": {
      "prefix": "exports/",
      "include_content_preview": true
    }
  },
  "sampling": {
    "strategy": "AUTOMATIC"
  },
  "detectors": [
    {
      "type": "PII",
      "enabled": true
    }
  ]
}

Schedule

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