Store and serve workflow results¶
Provide an existing S3-compatible bucket, its endpoint, and credentials for workflow outputs, logs, and static STAC files. AntFlow does not provision object storage or create the bucket. Application state is stored separately in the application database.
Configure the result bucket¶
Replace the example endpoint, region, bucket, paths, and Secret references with your storage settings. The bucket must be writable by the result publication step.
configs:
s3:
endpoint_url: https://s3.example.com
region_name: us-east-1
bucket_name: antflow-data
root_dir: antflow
job_outputs_dir: outputs
job_stac_dir: stac
credentials:
existingSecret: antflow-s3
existingSecretAccessKeyIdKey: s3_access_key_id
existingSecretSecretAccessKeyKey: s3_secret_access_key
The Secret must contain the named credential keys in the release namespace.
Keep storage credentials in server-side Secrets, not in browser configuration.
Set the region to the value required by your storage provider. AntFlow Server
must be able to read result objects, and workflow publication must be able to
write them. Preserve the bucket and prefixes when restoring existing job data.
For local runners, use a storage endpoint reachable from both Kubernetes and the
runner host; a Kubernetes-only service name or localhost is not sufficient.
Result delivery¶
The authenticated data API serves logs, outputs, and static STAC files in one of
two ways. Paths matching configs.s3.presigned_regex redirect to a temporary S3
URL; other paths are streamed through the server. The regex matches the file path
within the job, not the full bucket key.
With this default, outputs/ files use presigned URLs while logs and static STAC
files are proxied. To proxy all reads, use a regex that never matches, such as
'(?!)'. To redirect all reads, use '.*'. Expiration is in seconds; renew access
through the data API when a URL expires. Treat presigned URLs as temporary access
credentials.
Proxying avoids browser-to-bucket CORS requirements for those reads, but increases server bandwidth and still requires server-to-storage connectivity. Redirected reads require browser or client access to the storage endpoint. For browser scripts, follow Configure cross-origin access.
Publish result metadata¶
Uploading outputs does not require STAC cataloging. To publish result metadata to static catalogs or a transactional STAC API, follow Publish results to STAC.
For the user-facing output contract, see Results and publication. For S3 settings and credential references, see the Helm chart reference.