This page covers the MinIO (default) provider — the built-in object store that ships with Datris. To write to AWS S3, see S3 Destination — same code path, same file formats, just per-pipeline credentials instead of the global MinIO ones.
Output Path
Files are written to:{environment}-data. You can override this per pipeline with the destinationBucketOverride field.
Restricting bucket overrides
By default the override is unrestricted: any pipeline can name any bucket on the built-in MinIO, which is reached with the platform’s own MinIO credentials. On a shared MinIO that lets one pipeline read, overwrite, ordeleteBeforeWrite another environment’s data.
To restrict it, set DATRIS_OBJECTSTORE_BUCKET_ALLOWLIST in .env to a comma-separated list of the buckets pipelines may target:
{environment}-data is always allowed even when not listed, so you cannot lock yourself out. Buckets on AWS S3 (provider: s3) are your own and are not checked. datris doctor reports pipelines that use an override without a list, and any stored override that falls outside the list you set.
File Formats
Set the format with the
fileFormat field. parquet and orc write loose files under the prefix; iceberg writes a table there that other engines read by path.
Write Modes
Partitioning
Partition output files by one or more columns using thepartitionBy array. Spark creates a directory structure based on the distinct values of the specified columns.
Delete Before Write
SetdeleteBeforeWrite to true to remove all existing objects under the output prefix before writing new data. This is useful when you need a clean target path but want finer control than the overwrite write mode provides.
