Tags: flyteorg/flyte
Tags
Bind app inputs to a pinned artifact version, and list apps by consum… …ed artifact (#7808) App inputs could reference an artifact two ways: `artifact_query`, resolved server-side at some unspecified time, and `artifact_id`, an `ArtifactID` whose version was optional. Both were the wrong shape for what apps need. An app input has to name one exact artifact version: the client resolves the artifact at deploy time and the app runs against that version until it is redeployed. A query that the server re-resolves later, or an ID with the version left off, both describe a moving reference the app can silently drift across. Replace them with a single `artifact_id` of type `ArtifactVersionId`, which carries the version as a required part of its identity. The field is recorded for lineage: the server does not resolve or validate it. Both fields were declared in #7715 and never implemented -- no server ever read them and no client ever set them -- so they are removed outright rather than reserved. The new field takes 6 rather than reusing 3 or 4, so the numbers that did ship are not given a new meaning. Also add `ConsumedArtifactFilter` to app `ListRequest`, so callers can ask which apps consume a given artifact -- the reverse of the lineage the pinned id records. An empty version matches any version. Signed-off-by: Ketan Umare <[email protected]> Signed-off-by: Ketan Umare <[email protected]> Co-authored-by: Ketan Umare <[email protected]>
Revert "Port over viper fixes from master (#7755)" (#7779) This reverts commit 3248dc5. Signed-off-by: Adam Brock <[email protected]> Co-authored-by: Adam Brock <[email protected]>
Add artifact trigger automation: TYPE_ARTIFACT + ArtifactTrigger (#7749) * Add artifact trigger automation: TYPE_ARTIFACT + ArtifactTrigger Third TriggerAutomationSpec automation type: fire a run when a new version of the named artifact is created. ArtifactTrigger carries the watched artifact name, an optional exact-version pin, and the task input the artifact's value binds to at fire time (mirroring Schedule.kickoff_time_input_arg). Also adds RUN_SOURCE_ARTIFACT_TRIGGER so artifact-triggered runs carry their provenance. Co-Authored-By: Claude Fable 5 <[email protected]> * First-class artifact info: Literal.artifact_id + Outputs.produced_artifacts (#7760) Replaces the implicit metadata-key contract (magic "_ua"/"_uap" keys in Literal.metadata carrying JSON payloads that SDKs and backends had to keep in sync) with typed fields, split by lifecycle: - core.ArtifactVersionId (ArtifactKey + version), core.ArtifactCard (hoisted from artifact.Card, same shape), and core.ArtifactInfo (description, user_metadata, card) — the descriptive payload shared by the production declaration and the stored spec, deliberately excluding identity so the two can never drift. - core.Literal.artifact_id: the value's artifact identity, stamped once at registration and on artifact-bound inputs; travels with the value through every copy and participates in cache-key hashing by design. - task.ProducedArtifact + Outputs.produced_artifacts: the transient registration declaration (output name, artifact name, optional version, info, declared type) — an action-scoped instruction that never enters the value stream. Field 3 on Outputs because outputs.pb blobs are sometimes cross-decoded as task.Inputs, where field 2 is context. - artifact.ArtifactSpec now nests the descriptive payload as core.ArtifactInfo (value/type/source stay top-level); artifact.Card is removed in favor of core.ArtifactCard. Co-authored-by: Ketan Umare <[email protected]> Co-authored-by: Claude Fable 5 <[email protected]> --------- Co-authored-by: Ketan Umare <[email protected]> Co-authored-by: Claude Fable 5 <[email protected]>
Add ArtifactSource provenance to ArtifactSpec (#7745) * Add ArtifactSource provenance to ArtifactSpec Records what produced an artifact: - task_action (common.ActionIdentifier) + attempt: published from inside a running task or extracted by the backend from task outputs - external_ref: opaque reference into an external system - unset oneof: manually created Complements created_by (who) with provenance (what). Declared by clients at creation time; the SDK stamps task_action automatically when publishing from inside a running task. Co-Authored-By: Claude Fable 5 <[email protected]> Signed-off-by: Ketan Umare <[email protected]> * Bundle attempt with the producing action as TaskActionSource Keeps attempt next to the action it belongs to instead of a sibling field on ArtifactSource. A dedicated message rather than common.ActionAttemptIdentifier because producing attempts are 0-based while that identifier validates attempt > 0 (1-based semantics used by cache/cluster/dataproxy). Co-Authored-By: Claude Fable 5 <[email protected]> Signed-off-by: Ketan Umare <[email protected]> --------- Signed-off-by: Ketan Umare <[email protected]> Co-authored-by: Ketan Umare <[email protected]> Co-authored-by: Claude Fable 5 <[email protected]>
ArtifactService and TaskMetadata.produces_artifacts (#7733) * Add flyteidl2.artifact ArtifactService (Create/Get/List) protos + gen Minimal artifact publishing API: typed-literal payload (core.Literal + core.LiteralType), identity org/project/domain/name/version, free-form user_metadata map, optional card reference. Partitions deferred. Co-Authored-By: Claude Fable 5 <[email protected]> Signed-off-by: Ketan Umare <[email protected]> * artifacts service proto Signed-off-by: Ketan Umare <[email protected]> * Add TaskMetadata.produces_artifacts (field 23) When set, the backend extracts artifact metadata stamped on the task's output literals and records them as generated artifacts on the action. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> Signed-off-by: Ketan Umare <[email protected]> * Regenerate TS/Rust outputs for artifact protos and produces_artifacts make buf (full: rust+python+go+ts) — the earlier commits only ran buf-go/buf-python, tripping check-generate. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> Signed-off-by: Ketan Umare <[email protected]> * Use common.EnrichedIdentity for Artifact.created_by Replaces the plain created_by string so attribution follows the same convention as workflow.ActionMetadata.executed_by: persisted subject-stripped, re-enriched by services when serving. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> Signed-off-by: Ketan Umare <[email protected]> --------- Signed-off-by: Ketan Umare <[email protected]> Co-authored-by: Ketan Umare <[email protected]> Co-authored-by: Claude Fable 5 <[email protected]>
PreviousNext