outputBucketId is optional; validateOutputBucket:296-298 returns success when absent, so the default is "results go nowhere durable". Create one on start, owned by the consumer, idempotent per serviceId (a restart or Edit relaunch reuses it), with no access list (see C1 — creating one today deploys an ERC721 on-chain), and return the id in the start response. Decide the lifecycle in this issue, not after the disk fills.
No quota mechanism exists today. Built from zero.
Docker's API only produces tar — container.getArchive() returns a tar stream, always. This is a re-archive step: consume the tar (tar-stream is already a dep), write a zip.
outputBucketId is optional; validateOutputBucket:296-298 returns success when absent, so the default is "results go nowhere durable". Create one on start, owned by the consumer, idempotent per serviceId (a restart or Edit relaunch reuses it), with no access list (see C1 — creating one today deploys an ERC721 on-chain), and return the id in the start response. Decide the lifecycle in this issue, not after the disk fills.
No quota mechanism exists today. Built from zero.
Docker's API only produces tar — container.getArchive() returns a tar stream, always. This is a re-archive step: consume the tar (tar-stream is already a dep), write a zip.