Skip to main content

Object Storage

S3-compatible object storage (MinIO) for large payloads that don't belong inline in Postgres.

  • A shared ObjectStore service (put / get / presign / exists / delete) with org-scoped keys (node-payloads/:org_id/…) so cross-tenant access is structurally impossible.
  • Reusable plumbing/foundation today — not yet wired to node-execution capture.

Implementation duplicated identically in api/src/storage/object-store.ts (CJS Nest reads/presigns) and engine/src/storage/object-store.ts (ESM worker writes) — each owns its own MinIO Client initialized from MINIO_ENDPOINT, MINIO_PORT, MINIO_USE_SSL, MINIO_ACCESS_KEY, MINIO_SECRET_KEY, MINIO_BUCKET. nodePayloadKey enforces mandatory orgId and produces node-payloads/:orgId/:runId/:nodeId/(input|output).json keys.