Today load_artifact!("key") is literal-key only, and Artifact<T> inputs get their from: filled by workflow wiring; there's no way to declare an input artifact whose s3.key is bound from a runtime arg ({{inputs.parameters.key}}). That blocks the canonical Argo map-reduce pattern (split -> withParam over keys -> map loads its chunk).
Shape options: a load_artifact_at!(<runtime-key-expr>) macro, an Artifact::from_key(s) constructor the macro lowers, or a #[container(input_artifact = {...})] attr. This is the sharp prerequisite for first-class map-reduce - ship it first.
Today
load_artifact!("key")is literal-key only, andArtifact<T>inputs get theirfrom:filled by workflow wiring; there's no way to declare an input artifact whoses3.keyis bound from a runtime arg ({{inputs.parameters.key}}). That blocks the canonical Argo map-reduce pattern (split -> withParam over keys -> map loads its chunk).Shape options: a
load_artifact_at!(<runtime-key-expr>)macro, anArtifact::from_key(s)constructor the macro lowers, or a#[container(input_artifact = {...})]attr. This is the sharp prerequisite for first-class map-reduce - ship it first.