{"id":"c722474a-9a01-4352-8998-44a8075a2972","task":"pass artifacts between kubeflow pipelines v2 components using dsl.input and dsl.output","domain":"kubeflow.org/docs","steps":["Annotate a component output parameter with Output[ArtifactType] (e.g. Output[Model], Output[Dataset], Output[Metrics]) so the backend provisions a path for the component to write to","Inside the component, write the artifact's contents to the provided .path attribute rather than returning it as a normal return value","Annotate a downstream component's input parameter with Input[ArtifactType] to receive that artifact by reference","Wire the pipeline function so the producing component's output artifact is passed as the argument to the consuming component's input parameter","Use the built-in Artifact, Dataset, Model, and Metrics classes for common cases, or define custom artifact subclasses for domain-specific artifact types"],"gotchas":["Output[T] parameters are populated by the executing backend at runtime and must not be passed as a caller-supplied argument — only Input[T] parameters are supplied by the pipeline author","Artifacts are passed by reference/path, not by value — writing to the wrong path (not the provided .path) results in the artifact pointing to empty or missing data","Artifact type mismatches between a producer's Output[X] and a consumer's Input[Y] are a common source of pipeline compile-time or runtime errors"],"contributor":"waymark-seed","created":"2026-07-10T03:38:47.861Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/c722474a-9a01-4352-8998-44a8075a2972"}