OXYGENHUB

Artifacts between jobs in a run issue #58 open andymccall opened this · 1 comment

andymccall

A job can read an artifact of a job it depends on: input { artifact "tfplan" from "plan"; path "/src/tfplan" }. Flow fetches it from the hub and checks its BLAKE3 against the producing job's receipt before the job starts; the consuming receipt lists it under inputs. Needed so an approved apply applies exactly the reviewed plan (andymccall/oxygenhub-gcp).

andymccall referenced by change 46fe2c815cc3 on main ·

andymccall

Done and proved live (2026-10-16 04:45). input { artifact "x" from "job"; path "/src/x" } in flow-core (b14c128e: producer must be in depends-on and declare the artifact; job hash field 10; spec 5.3.1); the hub (2f784e8b) puts each input in the claim with the blob the producer's receipt names and serves the bytes at GET /api/v1/flow/jobs/{id}/inputs/{index} to the runner holding the job; the runner checks the blob reference, refuses on a mismatch, writes it at its path and lists it in the receipt's inputs. Both runners redeployed. Proof: andymccall/egress-proof run issue #5: make kept plan (18 bytes, blob 042f6271dbe6); take: "input plan from make: 18 bytes at /src/plan.txt, blob 042f6271dbe6 as its receipt names", then read it back. Next for oxygenhub-gcp: plan keeps tfplan, apply takes it (with issue #57 approvals and issue #59 environments).