From d96113909f2e1a60ac88180c2c338d3718ba269f Mon Sep 17 00:00:00 2001 From: Lukas Bindreiter Date: Fri, 6 Feb 2026 11:01:28 +0100 Subject: [PATCH] Add optional failed task state --- apis/workflows/v1/core.proto | 4 +++- apis/workflows/v1/job.proto | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/apis/workflows/v1/core.proto b/apis/workflows/v1/core.proto index 82e8ec1..1004ad3 100644 --- a/apis/workflows/v1/core.proto +++ b/apis/workflows/v1/core.proto @@ -14,7 +14,7 @@ option features.field_presence = IMPLICIT; // A cluster is a grouping of tasks that are related. message Cluster { // 1 is reserved for a potential id field in the future. - + reserved 1; // The unique slug of the cluster within the namespace. string slug = 2; // The display name of the cluster. @@ -162,6 +162,8 @@ enum TaskState { // The task has been skipped, because it was in an optional subbranch and one of its sibling tasks in the same // branch has failed. TASK_STATE_SKIPPED = 5; + // The task has failed, but was optional. + TASK_STATE_FAILED_OPTIONAL = 6; } // An identifier for a task. diff --git a/apis/workflows/v1/job.proto b/apis/workflows/v1/job.proto index cb1ffc1..1d01476 100644 --- a/apis/workflows/v1/job.proto +++ b/apis/workflows/v1/job.proto @@ -118,7 +118,11 @@ message QueryFilters { // Filter jobs by states. repeated JobState states = 4; + // Filter jobs by name. string name = 5 [(buf.validate.field).string.max_len = 100]; + + // Filter jobs by their tasks (whether they have tasks in a certain state). + repeated TaskState task_states = 6; } // QueryJobsRequest requests a list of jobs.