Object Storage
S3-compatible object storage (MinIO) for large payloads that don't belong inline in Postgres.
- A shared
ObjectStoreservice (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.