Skip to content

Pipeline dispatches

Run pipelines, track and cancel runs, and inspect each task's status, logs, and result.

List draft pipeline dispatches by pipeline_ ID

Operation path: GET /api/v2/pipelines/{pipeline_id}/dispatches

List the runs (dispatches) of a draft pipeline.

Parameters

Name In Type Required Description
pipeline_id path string true Pipeline ID
offset query integer false none
limit query integer false none

Example responses

200 Response

{
  "properties": {
    "count": {
      "readOnly": true,
      "title": "Count",
      "type": "integer"
    },
    "data": {
      "items": {
        "description": "Response schema for a pipeline dispatch.",
        "properties": {
          "covalentDispatchId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Covalentdispatchid"
          },
          "createdAt": {
            "format": "date-time",
            "title": "Createdat",
            "type": "string"
          },
          "errorDetail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Errordetail"
          },
          "id": {
            "maxLength": 24,
            "minLength": 24,
            "pattern": "^[0-9a-fA-F]{24}$",
            "title": "Id",
            "type": "string"
          },
          "imageId": {
            "anyOf": [
              {
                "maxLength": 24,
                "minLength": 24,
                "pattern": "^[0-9a-fA-F]{24}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Imageid"
          },
          "imageVersion": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Imageversion"
          },
          "inputId": {
            "maxLength": 24,
            "minLength": 24,
            "pattern": "^[0-9a-fA-F]{24}$",
            "title": "Inputid",
            "type": "string"
          },
          "pipelineId": {
            "maxLength": 24,
            "minLength": 24,
            "pattern": "^[0-9a-fA-F]{24}$",
            "title": "Pipelineid",
            "type": "string"
          },
          "status": {
            "description": "Lifecycle status of a pipeline dispatch. ``preparing`` is the transient state a dispatch enters at creation while the prep-pod (see ``specs/dispatch_prep_pod_implementation_plan.md``) traces the transport graph in the user's own image + uploads it to s3. on the prep-pod's callback the dispatch flips to ``running`` and per-task jobs start submitting; on prep failure it flips to ``failed`` without any task rows ever having been created.",
            "enum": [
              "PENDING",
              "PREPARING",
              "RUNNING",
              "COMPLETED",
              "FAILED",
              "CANCELLED",
              "ERRORED"
            ],
            "title": "PipelineDispatchStatus",
            "type": "string"
          },
          "triggeredBy": {
            "description": "How a pipeline dispatch was triggered.",
            "enum": [
              "api",
              "schedule"
            ],
            "title": "PipelineDispatchTrigger",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "title": "Updatedat",
            "type": "string"
          },
          "versionId": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Versionid"
          }
        },
        "required": [
          "id",
          "pipelineId",
          "inputId",
          "triggeredBy",
          "status",
          "createdAt",
          "updatedAt"
        ],
        "title": "PipelineDispatchResponse",
        "type": "object"
      },
      "title": "Data",
      "type": "array"
    },
    "next": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Next"
    },
    "previous": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Previous"
    },
    "totalCount": {
      "title": "Totalcount",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "totalCount",
    "count"
  ],
  "title": "DataPage[PipelineDispatchResponse]",
  "type": "object"
}

Responses

Status Meaning Description Schema
200 OK Successful Response DataPage_PipelineDispatchResponse_
422 Unprocessable Entity Validation Error HTTPValidationError

Run draft pipeline by pipeline_ ID

Operation path: POST /api/v2/pipelines/{pipeline_id}/dispatches

Run a draft pipeline with an input payload. Returns the new dispatch.

Body parameter

{
  "description": "Request body for creating a pipeline dispatch. under the prep-pod flow (see ``specs/dispatch_prep_pod_implementation_plan.md`` c.1), ``image_id`` is required — the prep pod runs the user's chosen image and can't be launched without one. pipeline creation still leaves ``image_id`` optional (drafts have no image); it's resolved at dispatch time here.",
  "properties": {
    "imageId": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Imageid",
      "type": "string"
    },
    "inputId": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Inputid",
      "type": "string"
    }
  },
  "required": [
    "inputId",
    "imageId"
  ],
  "title": "PipelineDispatchCreateRequest",
  "type": "object"
}

Parameters

Name In Type Required Description
pipeline_id path string true Pipeline ID
body body PipelineDispatchCreateRequest true none

Example responses

202 Response

{
  "description": "Response schema for a pipeline dispatch.",
  "properties": {
    "covalentDispatchId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Covalentdispatchid"
    },
    "createdAt": {
      "format": "date-time",
      "title": "Createdat",
      "type": "string"
    },
    "errorDetail": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Errordetail"
    },
    "id": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Id",
      "type": "string"
    },
    "imageId": {
      "anyOf": [
        {
          "maxLength": 24,
          "minLength": 24,
          "pattern": "^[0-9a-fA-F]{24}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Imageid"
    },
    "imageVersion": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Imageversion"
    },
    "inputId": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Inputid",
      "type": "string"
    },
    "pipelineId": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Pipelineid",
      "type": "string"
    },
    "status": {
      "description": "Lifecycle status of a pipeline dispatch. ``preparing`` is the transient state a dispatch enters at creation while the prep-pod (see ``specs/dispatch_prep_pod_implementation_plan.md``) traces the transport graph in the user's own image + uploads it to s3. on the prep-pod's callback the dispatch flips to ``running`` and per-task jobs start submitting; on prep failure it flips to ``failed`` without any task rows ever having been created.",
      "enum": [
        "PENDING",
        "PREPARING",
        "RUNNING",
        "COMPLETED",
        "FAILED",
        "CANCELLED",
        "ERRORED"
      ],
      "title": "PipelineDispatchStatus",
      "type": "string"
    },
    "triggeredBy": {
      "description": "How a pipeline dispatch was triggered.",
      "enum": [
        "api",
        "schedule"
      ],
      "title": "PipelineDispatchTrigger",
      "type": "string"
    },
    "updatedAt": {
      "format": "date-time",
      "title": "Updatedat",
      "type": "string"
    },
    "versionId": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Versionid"
    }
  },
  "required": [
    "id",
    "pipelineId",
    "inputId",
    "triggeredBy",
    "status",
    "createdAt",
    "updatedAt"
  ],
  "title": "PipelineDispatchResponse",
  "type": "object"
}

Responses

Status Meaning Description Schema
202 Accepted Successful Response PipelineDispatchResponse
422 Unprocessable Entity Validation Error HTTPValidationError

cancel draft pipeline dispatch by pipeline_ ID

Operation path: DELETE /api/v2/pipelines/{pipeline_id}/dispatches/{dispatch_id}

Cancel a run (dispatch) of a draft pipeline.

Parameters

Name In Type Required Description
pipeline_id path string true Pipeline ID
dispatch_id path string true Dispatch ID

Example responses

422 Response

{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "ctx": {
            "title": "Context",
            "type": "object"
          },
          "input": {
            "title": "Input"
          },
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "title": "Location",
            "type": "array"
          },
          "msg": {
            "title": "Message",
            "type": "string"
          },
          "type": {
            "title": "Error Type",
            "type": "string"
          }
        },
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError",
        "type": "object"
      },
      "title": "Detail",
      "type": "array"
    }
  },
  "title": "HTTPValidationError",
  "type": "object"
}

Responses

Status Meaning Description Schema
204 No Content Successful Response None
422 Unprocessable Entity Validation Error HTTPValidationError

Get draft pipeline dispatch by pipeline_ ID

Operation path: GET /api/v2/pipelines/{pipeline_id}/dispatches/{dispatch_id}

Retrieve a run (dispatch) of a draft pipeline.

Parameters

Name In Type Required Description
pipeline_id path string true Pipeline ID
dispatch_id path string true Dispatch ID

Example responses

200 Response

{
  "description": "Response schema for a pipeline dispatch.",
  "properties": {
    "covalentDispatchId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Covalentdispatchid"
    },
    "createdAt": {
      "format": "date-time",
      "title": "Createdat",
      "type": "string"
    },
    "errorDetail": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Errordetail"
    },
    "id": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Id",
      "type": "string"
    },
    "imageId": {
      "anyOf": [
        {
          "maxLength": 24,
          "minLength": 24,
          "pattern": "^[0-9a-fA-F]{24}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Imageid"
    },
    "imageVersion": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Imageversion"
    },
    "inputId": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Inputid",
      "type": "string"
    },
    "pipelineId": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Pipelineid",
      "type": "string"
    },
    "status": {
      "description": "Lifecycle status of a pipeline dispatch. ``preparing`` is the transient state a dispatch enters at creation while the prep-pod (see ``specs/dispatch_prep_pod_implementation_plan.md``) traces the transport graph in the user's own image + uploads it to s3. on the prep-pod's callback the dispatch flips to ``running`` and per-task jobs start submitting; on prep failure it flips to ``failed`` without any task rows ever having been created.",
      "enum": [
        "PENDING",
        "PREPARING",
        "RUNNING",
        "COMPLETED",
        "FAILED",
        "CANCELLED",
        "ERRORED"
      ],
      "title": "PipelineDispatchStatus",
      "type": "string"
    },
    "triggeredBy": {
      "description": "How a pipeline dispatch was triggered.",
      "enum": [
        "api",
        "schedule"
      ],
      "title": "PipelineDispatchTrigger",
      "type": "string"
    },
    "updatedAt": {
      "format": "date-time",
      "title": "Updatedat",
      "type": "string"
    },
    "versionId": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Versionid"
    }
  },
  "required": [
    "id",
    "pipelineId",
    "inputId",
    "triggeredBy",
    "status",
    "createdAt",
    "updatedAt"
  ],
  "title": "PipelineDispatchResponse",
  "type": "object"
}

Responses

Status Meaning Description Schema
200 OK Successful Response PipelineDispatchResponse
422 Unprocessable Entity Validation Error HTTPValidationError

Get draft pipeline dispatch status by pipeline_ ID

Operation path: GET /api/v2/pipelines/{pipeline_id}/dispatches/{dispatch_id}/status

Retrieve the current status of a draft pipeline run. Use this endpoint to poll for completion.

Parameters

Name In Type Required Description
pipeline_id path string true Pipeline ID
dispatch_id path string true Dispatch ID

Example responses

200 Response

{
  "description": "Lightweight status polling response.",
  "properties": {
    "covalentDispatchId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Covalentdispatchid"
    },
    "id": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Id",
      "type": "string"
    },
    "status": {
      "description": "Lifecycle status of a pipeline dispatch. ``preparing`` is the transient state a dispatch enters at creation while the prep-pod (see ``specs/dispatch_prep_pod_implementation_plan.md``) traces the transport graph in the user's own image + uploads it to s3. on the prep-pod's callback the dispatch flips to ``running`` and per-task jobs start submitting; on prep failure it flips to ``failed`` without any task rows ever having been created.",
      "enum": [
        "PENDING",
        "PREPARING",
        "RUNNING",
        "COMPLETED",
        "FAILED",
        "CANCELLED",
        "ERRORED"
      ],
      "title": "PipelineDispatchStatus",
      "type": "string"
    }
  },
  "required": [
    "id",
    "status"
  ],
  "title": "PipelineDispatchStatusResponse",
  "type": "object"
}

Responses

Status Meaning Description Schema
200 OK Successful Response PipelineDispatchStatusResponse
422 Unprocessable Entity Validation Error HTTPValidationError

List dispatch tasks by pipeline_ ID

Operation path: GET /api/v2/pipelines/{pipeline_id}/dispatches/{dispatch_id}/tasks

List the tasks of a pipeline run (dispatch) and their status.

Parameters

Name In Type Required Description
pipeline_id path string true Pipeline ID
dispatch_id path string true Dispatch ID

Example responses

200 Response

{
  "items": {
    "description": "Response schema for a single task execution record. attributes: task_id: pipeline-level sequential task number, e.g. ``1``, ``2``, ``3``. use this as the ``{task_id}`` path parameter for per-task endpoints. ``none`` for internal utility nodes with no user ``@task`` backing. node_id: per-dispatch execution node id. pass as ``?nodeid=`` to per-task endpoints to address a specific invocation when the same ``@task`` function runs more than once in a single dispatch (fan-out). each invocation has a distinct ``nodeid`` even when they share the same ``taskid``. ``none`` for legacy rows that pre-date node-id tracking. graph_node_id: the static graph node ``id`` (from ``get .../graph``) this execution corresponds to. stable across every dispatch of the same pipeline version, so the UI can join execution status/logs/results to the exact graph box even for fan-out. ``none`` when no 1:1 match against the static graph exists (call sites inside loops, helper-wrapped tasks) or for rows created before this field was introduced. name: the ``@task`` function name. status: current ``taskexecutionstatus`` value. started_at: when execution began, or ``none`` if not yet started. completed_at: when execution finished, or ``none`` if still running. error_detail: failure message when ``status == failed``. resource_bundle_id: mms resource-bundle id/alias the task actually ran on (resolved at dispatch — declared value, or the service default for undeclared tasks). ``none`` only for legacy rows.",
    "properties": {
      "completedAt": {
        "anyOf": [
          {
            "format": "date-time",
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Completedat"
      },
      "errorDetail": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Errordetail"
      },
      "graphNodeId": {
        "anyOf": [
          {
            "type": "integer"
          },
          {
            "type": "null"
          }
        ],
        "title": "Graphnodeid"
      },
      "name": {
        "title": "Name",
        "type": "string"
      },
      "nodeId": {
        "anyOf": [
          {
            "type": "integer"
          },
          {
            "type": "null"
          }
        ],
        "title": "Nodeid"
      },
      "resourceBundleId": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Resourcebundleid"
      },
      "startedAt": {
        "anyOf": [
          {
            "format": "date-time",
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Startedat"
      },
      "status": {
        "title": "Status",
        "type": "string"
      },
      "taskId": {
        "anyOf": [
          {
            "type": "integer"
          },
          {
            "type": "null"
          }
        ],
        "title": "Taskid"
      }
    },
    "required": [
      "name",
      "status"
    ],
    "title": "TaskExecutionResponse",
    "type": "object"
  },
  "title": "Response Listpipelinedispatchtasks",
  "type": "array"
}

Responses

Status Meaning Description Schema
200 OK Successful Response Inline
422 Unprocessable Entity Validation Error HTTPValidationError

Response Schema

Status Code 200

Response Listpipelinedispatchtasks

Name Type Required Restrictions Description
Response Listpipelinedispatchtasks [TaskExecutionResponse] false [Response schema for a single task execution record. attributes: task_id: pipeline-level sequential task number, e.g. 1, 2, 3. use this as the {task_id} path parameter for per-task endpoints. none for internal utility nodes with no user @task backing. node_id: per-dispatch execution node id. pass as ?nodeid= to per-task endpoints to address a specific invocation when the same @task function runs more than once in a single dispatch (fan-out). each invocation has a distinct nodeid even when they share the same taskid. none for legacy rows that pre-date node-id tracking. graph_node_id: the static graph node id (from get .../graph) this execution corresponds to. stable across every dispatch of the same pipeline version, so the UI can join execution status/logs/results to the exact graph box even for fan-out. none when no 1:1 match against the static graph exists (call sites inside loops, helper-wrapped tasks) or for rows created before this field was introduced. name: the @task function name. status: current taskexecutionstatus value. started_at: when execution began, or none if not yet started. completed_at: when execution finished, or none if still running. error_detail: failure message when status == failed. resource_bundle_id: mms resource-bundle id/alias the task actually ran on (resolved at dispatch — declared value, or the service default for undeclared tasks). none only for legacy rows.]
» TaskExecutionResponse TaskExecutionResponse false Response schema for a single task execution record. attributes: task_id: pipeline-level sequential task number, e.g. 1, 2, 3. use this as the {task_id} path parameter for per-task endpoints. none for internal utility nodes with no user @task backing. node_id: per-dispatch execution node id. pass as ?nodeid= to per-task endpoints to address a specific invocation when the same @task function runs more than once in a single dispatch (fan-out). each invocation has a distinct nodeid even when they share the same taskid. none for legacy rows that pre-date node-id tracking. graph_node_id: the static graph node id (from get .../graph) this execution corresponds to. stable across every dispatch of the same pipeline version, so the UI can join execution status/logs/results to the exact graph box even for fan-out. none when no 1:1 match against the static graph exists (call sites inside loops, helper-wrapped tasks) or for rows created before this field was introduced. name: the @task function name. status: current taskexecutionstatus value. started_at: when execution began, or none if not yet started. completed_at: when execution finished, or none if still running. error_detail: failure message when status == failed. resource_bundle_id: mms resource-bundle id/alias the task actually ran on (resolved at dispatch — declared value, or the service default for undeclared tasks). none only for legacy rows.
»» completedAt any false none

anyOf

Name Type Required Restrictions Description
»»» anonymous string(date-time) false none

or

Name Type Required Restrictions Description
»»» anonymous null false none

continued

Name Type Required Restrictions Description
»» errorDetail any false none

anyOf

Name Type Required Restrictions Description
»»» anonymous string false none

or

Name Type Required Restrictions Description
»»» anonymous null false none

continued

Name Type Required Restrictions Description
»» graphNodeId any false none

anyOf

Name Type Required Restrictions Description
»»» anonymous integer false none

or

Name Type Required Restrictions Description
»»» anonymous null false none

continued

Name Type Required Restrictions Description
»» name string true none
»» nodeId any false none

anyOf

Name Type Required Restrictions Description
»»» anonymous integer false none

or

Name Type Required Restrictions Description
»»» anonymous null false none

continued

Name Type Required Restrictions Description
»» resourceBundleId any false none

anyOf

Name Type Required Restrictions Description
»»» anonymous string false none

or

Name Type Required Restrictions Description
»»» anonymous null false none

continued

Name Type Required Restrictions Description
»» startedAt any false none

anyOf

Name Type Required Restrictions Description
»»» anonymous string(date-time) false none

or

Name Type Required Restrictions Description
»»» anonymous null false none

continued

Name Type Required Restrictions Description
»» status string true none
»» taskId any false none

anyOf

Name Type Required Restrictions Description
»»» anonymous integer false none

or

Name Type Required Restrictions Description
»»» anonymous null false none

Get dispatch task by pipeline_ ID

Operation path: GET /api/v2/pipelines/{pipeline_id}/dispatches/{dispatch_id}/tasks/{task_id}

Retrieve a task of a pipeline run (dispatch), including its status.

Parameters

Name In Type Required Description
pipeline_id path string true Pipeline ID
dispatch_id path string true Dispatch ID
task_id path integer true Task ID
nodeId query any false Node id of a specific fan-out invocation (the nodeId field on the task list response). Required when the same @task ran at multiple graph nodes — omitting it then returns 409 with the candidate node ids. May be omitted for tasks with a single execution.

Example responses

200 Response

{
  "description": "Response schema for a single task execution record. attributes: task_id: pipeline-level sequential task number, e.g. ``1``, ``2``, ``3``. use this as the ``{task_id}`` path parameter for per-task endpoints. ``none`` for internal utility nodes with no user ``@task`` backing. node_id: per-dispatch execution node id. pass as ``?nodeid=`` to per-task endpoints to address a specific invocation when the same ``@task`` function runs more than once in a single dispatch (fan-out). each invocation has a distinct ``nodeid`` even when they share the same ``taskid``. ``none`` for legacy rows that pre-date node-id tracking. graph_node_id: the static graph node ``id`` (from ``get .../graph``) this execution corresponds to. stable across every dispatch of the same pipeline version, so the UI can join execution status/logs/results to the exact graph box even for fan-out. ``none`` when no 1:1 match against the static graph exists (call sites inside loops, helper-wrapped tasks) or for rows created before this field was introduced. name: the ``@task`` function name. status: current ``taskexecutionstatus`` value. started_at: when execution began, or ``none`` if not yet started. completed_at: when execution finished, or ``none`` if still running. error_detail: failure message when ``status == failed``. resource_bundle_id: mms resource-bundle id/alias the task actually ran on (resolved at dispatch — declared value, or the service default for undeclared tasks). ``none`` only for legacy rows.",
  "properties": {
    "completedAt": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Completedat"
    },
    "errorDetail": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Errordetail"
    },
    "graphNodeId": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Graphnodeid"
    },
    "name": {
      "title": "Name",
      "type": "string"
    },
    "nodeId": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Nodeid"
    },
    "resourceBundleId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Resourcebundleid"
    },
    "startedAt": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Startedat"
    },
    "status": {
      "title": "Status",
      "type": "string"
    },
    "taskId": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Taskid"
    }
  },
  "required": [
    "name",
    "status"
  ],
  "title": "TaskExecutionResponse",
  "type": "object"
}

Responses

Status Meaning Description Schema
200 OK Successful Response TaskExecutionResponse
422 Unprocessable Entity Validation Error HTTPValidationError

Get dispatch task logs by pipeline_ ID

Operation path: GET /api/v2/pipelines/{pipeline_id}/dispatches/{dispatch_id}/tasks/{task_id}/logs

Retrieve the live container logs of a task. After the task finishes, use the log stream endpoint.

Parameters

Name In Type Required Description
pipeline_id path string true Pipeline ID
dispatch_id path string true Dispatch ID
task_id path integer true Task ID
nodeId query any false Node id of a specific fan-out invocation (the nodeId field on the task list response). Required when the same @task ran at multiple graph nodes — omitting it then returns 409 with the candidate node ids. May be omitted for tasks with a single execution.
tail_lines query any false Optional cap on the number of trailing log lines returned.
verbosity query string false 'user' (default): hide the task runner's own structured JSON log lines, showing only the task function's own output (plus any uncaught-exception traceback). 'all': return every line, unfiltered — the behavior every caller got before this parameter existed.

Enumerated Values

Parameter Value
verbosity [user, all]

Example responses

200 Response

{
  "description": "Response schema for per-task pod logs. populated only when standalone dispatch is on — under the legacy covalent path, pipelines-api does not own the pod and the endpoint returns an empty string. attributes: logs: pod stdout+stderr as a utf-8 decoded string, subject to the ``verbosity`` query param (see ``specs/task_log_verbosity_filter.md``): by default the task runner's own structured JSON log lines are removed, leaving only the task function's own output (plus any uncaught-exception traceback, which is always kept). empty when the pod has been gc'd, hasn't started yet, or when the dispatch predates standalone mode. filtered_line_count: number of lines the verbosity filter removed. always ``0`` when ``verbosity=all`` was requested.",
  "properties": {
    "filteredLineCount": {
      "default": 0,
      "description": "Number of lines removed by the verbosity filter. always 0 when verbosity=all.",
      "minimum": 0,
      "title": "Filteredlinecount",
      "type": "integer"
    },
    "logs": {
      "title": "Logs",
      "type": "string"
    }
  },
  "required": [
    "logs"
  ],
  "title": "TaskExecutionLogsResponse",
  "type": "object"
}

Responses

Status Meaning Description Schema
200 OK Successful Response TaskExecutionLogsResponse
422 Unprocessable Entity Validation Error HTTPValidationError

Get dispatch task log stream by pipeline_ ID

Operation path: GET /api/v2/pipelines/{pipeline_id}/dispatches/{dispatch_id}/tasks/{task_id}/logs/{stream}

Retrieve the stored stdout or stderr output of a task. Available after the task finishes.

Parameters

Name In Type Required Description
pipeline_id path string true Pipeline ID
dispatch_id path string true Dispatch ID
task_id path integer true Task ID
stream path string true Log stream to read: stdout or stderr
nodeId query any false Node id of a specific fan-out invocation (the nodeId field on the task list response). Required when the same @task ran at multiple graph nodes — omitting it then returns 409 with the candidate node ids. May be omitted for tasks with a single execution.
verbosity query string false 'user' (default): hide the task runner's own structured JSON log lines, showing only the task function's own output (plus any uncaught-exception traceback). 'all': return every line, unfiltered — the behavior every caller got before this parameter existed.

Enumerated Values

Parameter Value
verbosity [user, all]

Example responses

200 Response

{
  "description": "Inline content of a task's s3-uploaded stdout/stderr log. the task runner tees its own stdout + stderr into in-memory buffers and uploads them to ``dispatches/<did>/outputs/<node_id>/{stdout,stderr}.log`` on process exit (see action 186's ``pod_logs.logcapture``). this endpoint reads that blob itself, utf-8 decodes it, and hands the content back directly — no presigned url, no second unauthenticated request to S3 required from the caller. callers use it for post-mortem debugging after the pod has been ttl-gc'd (kubelet drops it 60 s after job terminal, so the live-pod-log endpoint stops working past that window; the S3 upload is the durable copy). see ``specs/task_durable_log_inline_content.md`` and ``specs/task_log_verbosity_filter.md``. attributes: content: utf-8 decoded log content, subject to the ``verbosity`` query param: by default the task runner's own structured JSON log lines are removed (uncaught-exception tracebacks are always kept — they're plain text on the runner side, never json). invalid byte sequences are replaced, never raised on. when ``truncated`` is ``true`` this is a head+tail excerpt of the (already-filtered) content, not the full blob. content_type: mime type of the payload. fixed to ``text/plain`` because the log blob is utf-8 encoded plain text. total_bytes: size in bytes of the full S3 object, independent of any inline truncation applied to ``content`` **and** independent of ``verbosity`` — this always reflects the raw blob size, not the filtered content's size. truncated: ``true`` iff ``content`` is a head+tail excerpt because the *filtered* content exceeded the inline response cap (``settings.task_log_inline_max_bytes``). filtered_line_count: number of lines the verbosity filter removed. always ``0`` when ``verbosity=all`` was requested.",
  "properties": {
    "content": {
      "description": "Utf-8 decoded log content (invalid byte sequences replaced, never raises). when `truncated` is true, this is a head+tail excerpt, not the full blob.",
      "title": "Content",
      "type": "string"
    },
    "contentType": {
      "default": "text/plain",
      "description": "Mime type of the log payload.",
      "title": "Contenttype",
      "type": "string"
    },
    "filteredLineCount": {
      "default": 0,
      "description": "Number of lines removed by the verbosity filter. always 0 when verbosity=all.",
      "minimum": 0,
      "title": "Filteredlinecount",
      "type": "integer"
    },
    "totalBytes": {
      "description": "Size in bytes of the full S3 object, independent of any inline truncation.",
      "minimum": 0,
      "title": "Totalbytes",
      "type": "integer"
    },
    "truncated": {
      "default": false,
      "description": "True iff `content` is a head+tail excerpt because the verbosity-filtered content exceeded the inline response cap. not directly comparable to `total_bytes`, which reflects the raw (unfiltered) blob size.",
      "title": "Truncated",
      "type": "boolean"
    }
  },
  "required": [
    "content",
    "totalBytes"
  ],
  "title": "TaskExecutionDurableLogResponse",
  "type": "object"
}

Responses

Status Meaning Description Schema
200 OK Successful Response TaskExecutionDurableLogResponse
422 Unprocessable Entity Validation Error HTTPValidationError

Get dispatch task result by pipeline_ ID

Operation path: GET /api/v2/pipelines/{pipeline_id}/dispatches/{dispatch_id}/tasks/{task_id}/result

Retrieve a short-lived download URL for the result of a completed task. The result is a cloudpickle payload; load it with cloudpickle.loads.

Parameters

Name In Type Required Description
pipeline_id path string true Pipeline ID
dispatch_id path string true Dispatch ID
task_id path integer true Task ID
nodeId query any false Node id of a specific fan-out invocation (the nodeId field on the task list response). Required when the same @task ran at multiple graph nodes — omitting it then returns 409 with the candidate node ids. May be omitted for tasks with a single execution.

Example responses

200 Response

{
  "description": "Presigned-url response for a completed task's cloudpickled result. handed back by ``get .../dispatches/{dispatch_id}/tasks/{task_id}/result`` once a task reaches ``completed`` state and its ``result.tobj`` blob is present in s3. the caller gets ``url`` directly from S3 to stream the payload — pipelines-api never proxies the bytes, which keeps the response independent of result size and side-steps the rce risk of cloudpickle-loading untrusted user output on the server. ``value`` / ``value_available`` / ``value_unavailable_reason`` are an additive, optional json-safe preview of the same result — populated from a small manifest the task runner writes alongside ``result.tobj`` (see ``specs/task_result_preview.md``). unlike ``result.tobj``, decoding this manifest is safe to do server-side: ``json.loads`` cannot execute arbitrary code the way ``cloudpickle.loads`` can. ``url`` / ``expires_in`` / ``content_type`` are always populated once the task is ``completed``, independent of whether a preview is available. ``value_text`` / ``value_text_truncated`` add a human-readable ``str(result)`` preview the runner emits for *every* result — even non-json-serializable or oversized ones the JSON ``value`` can't represent — so a UI always has something to display. unlike json, the text repr is truncatable, closing the ``not_json_serializable`` / ``too_large`` gaps. attributes: url: presigned ``https://`` url granting ``getobject`` on the task's ``result.tobj`` blob. time-limited by ``expires_in``; treat as one-shot. expires_in: validity window in seconds from the signing moment. default 900 (15 min). content_type: mime type the caller should expect on the downloaded body. fixed to ``application/octet-stream`` because the payload is a raw cloudpickle blob; callers decode with ``cloudpickle.loads(response.content)``. value: json-decoded preview of the task's return value, when available. ``none`` both when no preview exists and when the task legitimately returned ``none`` — use ``value_available`` to disambiguate. value_available: ``true`` iff ``value`` reflects an actual preview. value_unavailable_reason: set iff ``value_available`` is ``false``, explaining why no preview could be produced. one of ``\"not_json_serializable\"`` (the return value isn't json-safe), ``\"too_large\"`` (exceeded the preview size cap), or ``\"unavailable\"`` (no preview was ever recorded — a pre-feature task, or the preview upload itself failed). ``none`` when ``value_available`` is ``true``. value_text: human-readable ``str(result)`` preview the runner embeds in *every* manifest branch — present even when the JSON ``value`` is unavailable, so a UI always has something to render for non-json-serializable or oversized results. possibly truncated (see ``value_text_truncated``); the full object is always available via ``url``. ``none`` only for tasks whose manifest predates this field. value_text_truncated: ``true`` iff ``value_text`` was cut to the configured character cap — download the full object via ``url`` for the complete value.",
  "properties": {
    "contentType": {
      "default": "application/octet-stream",
      "description": "Mime type of the payload the url serves.",
      "title": "Contenttype",
      "type": "string"
    },
    "expiresIn": {
      "description": "Url validity window in seconds from the moment it was signed.",
      "exclusiveMinimum": 0,
      "title": "Expiresin",
      "type": "integer"
    },
    "url": {
      "description": "Presigned S3 url for the result blob.",
      "title": "Url",
      "type": "string"
    },
    "value": {
      "anyOf": [
        {},
        {
          "type": "null"
        }
      ],
      "description": "Json-decoded preview of the task's return value, when available.",
      "title": "Value"
    },
    "valueAvailable": {
      "default": false,
      "description": "True iff `value` reflects an actual preview. needed because a task can legitimately return none/null, which is otherwise indistinguishable from no preview being available.",
      "title": "Valueavailable",
      "type": "boolean"
    },
    "valueText": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Human-readable `str()` preview of the task's return value, present even when the JSON `value` is unavailable (non-json-serializable or oversized results). possibly truncated (see `value_text_truncated`). the full object is always available via `url`. `none` only for pre-feature tasks whose manifest predates this field, or when no preview was recorded at all.",
      "title": "Valuetext"
    },
    "valueTextTruncated": {
      "default": false,
      "description": "True iff `value_text` was cut to the configured character cap. when true, download the full object via `url` to see the complete value.",
      "title": "Valuetexttruncated",
      "type": "boolean"
    },
    "valueUnavailableReason": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Set iff `value_available` is false, explaining why no preview could be produced. one of: `not_json_serializable`, `too_large`, or `unavailable`. `none` when `value_available` is true.",
      "title": "Valueunavailablereason"
    }
  },
  "required": [
    "url",
    "expiresIn"
  ],
  "title": "TaskExecutionResultResponse",
  "type": "object"
}

Responses

Status Meaning Description Schema
200 OK Successful Response TaskExecutionResultResponse
422 Unprocessable Entity Validation Error HTTPValidationError

List pipeline version dispatches by pipeline_ ID

Operation path: GET /api/v2/pipelines/{pipeline_id}/versions/{version_id}/dispatches

List the runs (dispatches) of a locked pipeline version.

Parameters

Name In Type Required Description
pipeline_id path string true Pipeline ID
version_id path integer true Pipeline version number
offset query integer false none
limit query integer false none

Example responses

200 Response

{
  "properties": {
    "count": {
      "readOnly": true,
      "title": "Count",
      "type": "integer"
    },
    "data": {
      "items": {
        "description": "Response schema for a pipeline dispatch.",
        "properties": {
          "covalentDispatchId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Covalentdispatchid"
          },
          "createdAt": {
            "format": "date-time",
            "title": "Createdat",
            "type": "string"
          },
          "errorDetail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Errordetail"
          },
          "id": {
            "maxLength": 24,
            "minLength": 24,
            "pattern": "^[0-9a-fA-F]{24}$",
            "title": "Id",
            "type": "string"
          },
          "imageId": {
            "anyOf": [
              {
                "maxLength": 24,
                "minLength": 24,
                "pattern": "^[0-9a-fA-F]{24}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Imageid"
          },
          "imageVersion": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Imageversion"
          },
          "inputId": {
            "maxLength": 24,
            "minLength": 24,
            "pattern": "^[0-9a-fA-F]{24}$",
            "title": "Inputid",
            "type": "string"
          },
          "pipelineId": {
            "maxLength": 24,
            "minLength": 24,
            "pattern": "^[0-9a-fA-F]{24}$",
            "title": "Pipelineid",
            "type": "string"
          },
          "status": {
            "description": "Lifecycle status of a pipeline dispatch. ``preparing`` is the transient state a dispatch enters at creation while the prep-pod (see ``specs/dispatch_prep_pod_implementation_plan.md``) traces the transport graph in the user's own image + uploads it to s3. on the prep-pod's callback the dispatch flips to ``running`` and per-task jobs start submitting; on prep failure it flips to ``failed`` without any task rows ever having been created.",
            "enum": [
              "PENDING",
              "PREPARING",
              "RUNNING",
              "COMPLETED",
              "FAILED",
              "CANCELLED",
              "ERRORED"
            ],
            "title": "PipelineDispatchStatus",
            "type": "string"
          },
          "triggeredBy": {
            "description": "How a pipeline dispatch was triggered.",
            "enum": [
              "api",
              "schedule"
            ],
            "title": "PipelineDispatchTrigger",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "title": "Updatedat",
            "type": "string"
          },
          "versionId": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Versionid"
          }
        },
        "required": [
          "id",
          "pipelineId",
          "inputId",
          "triggeredBy",
          "status",
          "createdAt",
          "updatedAt"
        ],
        "title": "PipelineDispatchResponse",
        "type": "object"
      },
      "title": "Data",
      "type": "array"
    },
    "next": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Next"
    },
    "previous": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Previous"
    },
    "totalCount": {
      "title": "Totalcount",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "totalCount",
    "count"
  ],
  "title": "DataPage[PipelineDispatchResponse]",
  "type": "object"
}

Responses

Status Meaning Description Schema
200 OK Successful Response DataPage_PipelineDispatchResponse_
422 Unprocessable Entity Validation Error HTTPValidationError

Run pipeline version by pipeline_ ID

Operation path: POST /api/v2/pipelines/{pipeline_id}/versions/{version_id}/dispatches

Run a locked pipeline version with an input payload. Returns the new dispatch.

Body parameter

{
  "description": "Request body for creating a pipeline dispatch. under the prep-pod flow (see ``specs/dispatch_prep_pod_implementation_plan.md`` c.1), ``image_id`` is required — the prep pod runs the user's chosen image and can't be launched without one. pipeline creation still leaves ``image_id`` optional (drafts have no image); it's resolved at dispatch time here.",
  "properties": {
    "imageId": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Imageid",
      "type": "string"
    },
    "inputId": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Inputid",
      "type": "string"
    }
  },
  "required": [
    "inputId",
    "imageId"
  ],
  "title": "PipelineDispatchCreateRequest",
  "type": "object"
}

Parameters

Name In Type Required Description
pipeline_id path string true Pipeline ID
version_id path integer true Pipeline version number
body body PipelineDispatchCreateRequest true none

Example responses

202 Response

{
  "description": "Response schema for a pipeline dispatch.",
  "properties": {
    "covalentDispatchId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Covalentdispatchid"
    },
    "createdAt": {
      "format": "date-time",
      "title": "Createdat",
      "type": "string"
    },
    "errorDetail": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Errordetail"
    },
    "id": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Id",
      "type": "string"
    },
    "imageId": {
      "anyOf": [
        {
          "maxLength": 24,
          "minLength": 24,
          "pattern": "^[0-9a-fA-F]{24}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Imageid"
    },
    "imageVersion": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Imageversion"
    },
    "inputId": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Inputid",
      "type": "string"
    },
    "pipelineId": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Pipelineid",
      "type": "string"
    },
    "status": {
      "description": "Lifecycle status of a pipeline dispatch. ``preparing`` is the transient state a dispatch enters at creation while the prep-pod (see ``specs/dispatch_prep_pod_implementation_plan.md``) traces the transport graph in the user's own image + uploads it to s3. on the prep-pod's callback the dispatch flips to ``running`` and per-task jobs start submitting; on prep failure it flips to ``failed`` without any task rows ever having been created.",
      "enum": [
        "PENDING",
        "PREPARING",
        "RUNNING",
        "COMPLETED",
        "FAILED",
        "CANCELLED",
        "ERRORED"
      ],
      "title": "PipelineDispatchStatus",
      "type": "string"
    },
    "triggeredBy": {
      "description": "How a pipeline dispatch was triggered.",
      "enum": [
        "api",
        "schedule"
      ],
      "title": "PipelineDispatchTrigger",
      "type": "string"
    },
    "updatedAt": {
      "format": "date-time",
      "title": "Updatedat",
      "type": "string"
    },
    "versionId": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Versionid"
    }
  },
  "required": [
    "id",
    "pipelineId",
    "inputId",
    "triggeredBy",
    "status",
    "createdAt",
    "updatedAt"
  ],
  "title": "PipelineDispatchResponse",
  "type": "object"
}

Responses

Status Meaning Description Schema
202 Accepted Successful Response PipelineDispatchResponse
422 Unprocessable Entity Validation Error HTTPValidationError

cancel pipeline version dispatch by pipeline_ ID

Operation path: DELETE /api/v2/pipelines/{pipeline_id}/versions/{version_id}/dispatches/{dispatch_id}

Cancel a run (dispatch) of a locked pipeline version.

Parameters

Name In Type Required Description
pipeline_id path string true Pipeline ID
version_id path integer true Pipeline version number
dispatch_id path string true Dispatch ID

Example responses

422 Response

{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "ctx": {
            "title": "Context",
            "type": "object"
          },
          "input": {
            "title": "Input"
          },
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "title": "Location",
            "type": "array"
          },
          "msg": {
            "title": "Message",
            "type": "string"
          },
          "type": {
            "title": "Error Type",
            "type": "string"
          }
        },
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError",
        "type": "object"
      },
      "title": "Detail",
      "type": "array"
    }
  },
  "title": "HTTPValidationError",
  "type": "object"
}

Responses

Status Meaning Description Schema
204 No Content Successful Response None
422 Unprocessable Entity Validation Error HTTPValidationError

Get pipeline version dispatch by pipeline_ ID

Operation path: GET /api/v2/pipelines/{pipeline_id}/versions/{version_id}/dispatches/{dispatch_id}

Retrieve a run (dispatch) of a locked pipeline version.

Parameters

Name In Type Required Description
pipeline_id path string true Pipeline ID
version_id path integer true Pipeline version number
dispatch_id path string true Dispatch ID

Example responses

200 Response

{
  "description": "Response schema for a pipeline dispatch.",
  "properties": {
    "covalentDispatchId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Covalentdispatchid"
    },
    "createdAt": {
      "format": "date-time",
      "title": "Createdat",
      "type": "string"
    },
    "errorDetail": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Errordetail"
    },
    "id": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Id",
      "type": "string"
    },
    "imageId": {
      "anyOf": [
        {
          "maxLength": 24,
          "minLength": 24,
          "pattern": "^[0-9a-fA-F]{24}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Imageid"
    },
    "imageVersion": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Imageversion"
    },
    "inputId": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Inputid",
      "type": "string"
    },
    "pipelineId": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Pipelineid",
      "type": "string"
    },
    "status": {
      "description": "Lifecycle status of a pipeline dispatch. ``preparing`` is the transient state a dispatch enters at creation while the prep-pod (see ``specs/dispatch_prep_pod_implementation_plan.md``) traces the transport graph in the user's own image + uploads it to s3. on the prep-pod's callback the dispatch flips to ``running`` and per-task jobs start submitting; on prep failure it flips to ``failed`` without any task rows ever having been created.",
      "enum": [
        "PENDING",
        "PREPARING",
        "RUNNING",
        "COMPLETED",
        "FAILED",
        "CANCELLED",
        "ERRORED"
      ],
      "title": "PipelineDispatchStatus",
      "type": "string"
    },
    "triggeredBy": {
      "description": "How a pipeline dispatch was triggered.",
      "enum": [
        "api",
        "schedule"
      ],
      "title": "PipelineDispatchTrigger",
      "type": "string"
    },
    "updatedAt": {
      "format": "date-time",
      "title": "Updatedat",
      "type": "string"
    },
    "versionId": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Versionid"
    }
  },
  "required": [
    "id",
    "pipelineId",
    "inputId",
    "triggeredBy",
    "status",
    "createdAt",
    "updatedAt"
  ],
  "title": "PipelineDispatchResponse",
  "type": "object"
}

Responses

Status Meaning Description Schema
200 OK Successful Response PipelineDispatchResponse
422 Unprocessable Entity Validation Error HTTPValidationError

Get pipeline version dispatch status by pipeline_ ID

Operation path: GET /api/v2/pipelines/{pipeline_id}/versions/{version_id}/dispatches/{dispatch_id}/status

Retrieve the current status of a locked pipeline version run. Use this endpoint to poll for completion.

Parameters

Name In Type Required Description
pipeline_id path string true Pipeline ID
version_id path integer true Pipeline version number
dispatch_id path string true Dispatch ID

Example responses

200 Response

{
  "description": "Lightweight status polling response.",
  "properties": {
    "covalentDispatchId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Covalentdispatchid"
    },
    "id": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Id",
      "type": "string"
    },
    "status": {
      "description": "Lifecycle status of a pipeline dispatch. ``preparing`` is the transient state a dispatch enters at creation while the prep-pod (see ``specs/dispatch_prep_pod_implementation_plan.md``) traces the transport graph in the user's own image + uploads it to s3. on the prep-pod's callback the dispatch flips to ``running`` and per-task jobs start submitting; on prep failure it flips to ``failed`` without any task rows ever having been created.",
      "enum": [
        "PENDING",
        "PREPARING",
        "RUNNING",
        "COMPLETED",
        "FAILED",
        "CANCELLED",
        "ERRORED"
      ],
      "title": "PipelineDispatchStatus",
      "type": "string"
    }
  },
  "required": [
    "id",
    "status"
  ],
  "title": "PipelineDispatchStatusResponse",
  "type": "object"
}

Responses

Status Meaning Description Schema
200 OK Successful Response PipelineDispatchStatusResponse
422 Unprocessable Entity Validation Error HTTPValidationError

Schemas

DataPage_PipelineDispatchResponse_

{
  "properties": {
    "count": {
      "readOnly": true,
      "title": "Count",
      "type": "integer"
    },
    "data": {
      "items": {
        "description": "Response schema for a pipeline dispatch.",
        "properties": {
          "covalentDispatchId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Covalentdispatchid"
          },
          "createdAt": {
            "format": "date-time",
            "title": "Createdat",
            "type": "string"
          },
          "errorDetail": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Errordetail"
          },
          "id": {
            "maxLength": 24,
            "minLength": 24,
            "pattern": "^[0-9a-fA-F]{24}$",
            "title": "Id",
            "type": "string"
          },
          "imageId": {
            "anyOf": [
              {
                "maxLength": 24,
                "minLength": 24,
                "pattern": "^[0-9a-fA-F]{24}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Imageid"
          },
          "imageVersion": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Imageversion"
          },
          "inputId": {
            "maxLength": 24,
            "minLength": 24,
            "pattern": "^[0-9a-fA-F]{24}$",
            "title": "Inputid",
            "type": "string"
          },
          "pipelineId": {
            "maxLength": 24,
            "minLength": 24,
            "pattern": "^[0-9a-fA-F]{24}$",
            "title": "Pipelineid",
            "type": "string"
          },
          "status": {
            "description": "Lifecycle status of a pipeline dispatch. ``preparing`` is the transient state a dispatch enters at creation while the prep-pod (see ``specs/dispatch_prep_pod_implementation_plan.md``) traces the transport graph in the user's own image + uploads it to s3. on the prep-pod's callback the dispatch flips to ``running`` and per-task jobs start submitting; on prep failure it flips to ``failed`` without any task rows ever having been created.",
            "enum": [
              "PENDING",
              "PREPARING",
              "RUNNING",
              "COMPLETED",
              "FAILED",
              "CANCELLED",
              "ERRORED"
            ],
            "title": "PipelineDispatchStatus",
            "type": "string"
          },
          "triggeredBy": {
            "description": "How a pipeline dispatch was triggered.",
            "enum": [
              "api",
              "schedule"
            ],
            "title": "PipelineDispatchTrigger",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "title": "Updatedat",
            "type": "string"
          },
          "versionId": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Versionid"
          }
        },
        "required": [
          "id",
          "pipelineId",
          "inputId",
          "triggeredBy",
          "status",
          "createdAt",
          "updatedAt"
        ],
        "title": "PipelineDispatchResponse",
        "type": "object"
      },
      "title": "Data",
      "type": "array"
    },
    "next": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Next"
    },
    "previous": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Previous"
    },
    "totalCount": {
      "title": "Totalcount",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "totalCount",
    "count"
  ],
  "title": "DataPage[PipelineDispatchResponse]",
  "type": "object"
}

DataPage[PipelineDispatchResponse]

Properties

Name Type Required Restrictions Description
count integer true none
data [PipelineDispatchResponse] true [Response schema for a pipeline dispatch.]
next any false none

anyOf

Name Type Required Restrictions Description
» anonymous string false none

or

Name Type Required Restrictions Description
» anonymous null false none

continued

Name Type Required Restrictions Description
previous any false none

anyOf

Name Type Required Restrictions Description
» anonymous string false none

or

Name Type Required Restrictions Description
» anonymous null false none

continued

Name Type Required Restrictions Description
totalCount integer true none

HTTPValidationError

{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "ctx": {
            "title": "Context",
            "type": "object"
          },
          "input": {
            "title": "Input"
          },
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "title": "Location",
            "type": "array"
          },
          "msg": {
            "title": "Message",
            "type": "string"
          },
          "type": {
            "title": "Error Type",
            "type": "string"
          }
        },
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError",
        "type": "object"
      },
      "title": "Detail",
      "type": "array"
    }
  },
  "title": "HTTPValidationError",
  "type": "object"
}

HTTPValidationError

Properties

Name Type Required Restrictions Description
detail [ValidationError] false none

PipelineDispatchCreateRequest

{
  "description": "Request body for creating a pipeline dispatch. under the prep-pod flow (see ``specs/dispatch_prep_pod_implementation_plan.md`` c.1), ``image_id`` is required — the prep pod runs the user's chosen image and can't be launched without one. pipeline creation still leaves ``image_id`` optional (drafts have no image); it's resolved at dispatch time here.",
  "properties": {
    "imageId": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Imageid",
      "type": "string"
    },
    "inputId": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Inputid",
      "type": "string"
    }
  },
  "required": [
    "inputId",
    "imageId"
  ],
  "title": "PipelineDispatchCreateRequest",
  "type": "object"
}

PipelineDispatchCreateRequest

Properties

Name Type Required Restrictions Description
imageId string true maxLength: 24
minLength: 24
minLength: 24
none
inputId string true maxLength: 24
minLength: 24
minLength: 24
none

PipelineDispatchResponse

{
  "description": "Response schema for a pipeline dispatch.",
  "properties": {
    "covalentDispatchId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Covalentdispatchid"
    },
    "createdAt": {
      "format": "date-time",
      "title": "Createdat",
      "type": "string"
    },
    "errorDetail": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Errordetail"
    },
    "id": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Id",
      "type": "string"
    },
    "imageId": {
      "anyOf": [
        {
          "maxLength": 24,
          "minLength": 24,
          "pattern": "^[0-9a-fA-F]{24}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Imageid"
    },
    "imageVersion": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Imageversion"
    },
    "inputId": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Inputid",
      "type": "string"
    },
    "pipelineId": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Pipelineid",
      "type": "string"
    },
    "status": {
      "description": "Lifecycle status of a pipeline dispatch. ``preparing`` is the transient state a dispatch enters at creation while the prep-pod (see ``specs/dispatch_prep_pod_implementation_plan.md``) traces the transport graph in the user's own image + uploads it to s3. on the prep-pod's callback the dispatch flips to ``running`` and per-task jobs start submitting; on prep failure it flips to ``failed`` without any task rows ever having been created.",
      "enum": [
        "PENDING",
        "PREPARING",
        "RUNNING",
        "COMPLETED",
        "FAILED",
        "CANCELLED",
        "ERRORED"
      ],
      "title": "PipelineDispatchStatus",
      "type": "string"
    },
    "triggeredBy": {
      "description": "How a pipeline dispatch was triggered.",
      "enum": [
        "api",
        "schedule"
      ],
      "title": "PipelineDispatchTrigger",
      "type": "string"
    },
    "updatedAt": {
      "format": "date-time",
      "title": "Updatedat",
      "type": "string"
    },
    "versionId": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Versionid"
    }
  },
  "required": [
    "id",
    "pipelineId",
    "inputId",
    "triggeredBy",
    "status",
    "createdAt",
    "updatedAt"
  ],
  "title": "PipelineDispatchResponse",
  "type": "object"
}

PipelineDispatchResponse

Properties

Name Type Required Restrictions Description
covalentDispatchId any false none

anyOf

Name Type Required Restrictions Description
» anonymous string false none

or

Name Type Required Restrictions Description
» anonymous null false none

continued

Name Type Required Restrictions Description
createdAt string(date-time) true none
errorDetail any false none

anyOf

Name Type Required Restrictions Description
» anonymous string false none

or

Name Type Required Restrictions Description
» anonymous null false none

continued

Name Type Required Restrictions Description
id string true maxLength: 24
minLength: 24
minLength: 24
none
imageId any false none

anyOf

Name Type Required Restrictions Description
» anonymous string false maxLength: 24
minLength: 24
minLength: 24
none

or

Name Type Required Restrictions Description
» anonymous null false none

continued

Name Type Required Restrictions Description
imageVersion any false none

anyOf

Name Type Required Restrictions Description
» anonymous integer false none

or

Name Type Required Restrictions Description
» anonymous null false none

continued

Name Type Required Restrictions Description
inputId string true maxLength: 24
minLength: 24
minLength: 24
none
pipelineId string true maxLength: 24
minLength: 24
minLength: 24
none
status PipelineDispatchStatus true Lifecycle status of a pipeline dispatch. preparing is the transient state a dispatch enters at creation while the prep-pod (see specs/dispatch_prep_pod_implementation_plan.md) traces the transport graph in the user's own image + uploads it to s3. on the prep-pod's callback the dispatch flips to running and per-task jobs start submitting; on prep failure it flips to failed without any task rows ever having been created.
triggeredBy PipelineDispatchTrigger true How a pipeline dispatch was triggered.
updatedAt string(date-time) true none
versionId any false none

anyOf

Name Type Required Restrictions Description
» anonymous integer false none

or

Name Type Required Restrictions Description
» anonymous null false none

PipelineDispatchStatus

{
  "description": "Lifecycle status of a pipeline dispatch. ``preparing`` is the transient state a dispatch enters at creation while the prep-pod (see ``specs/dispatch_prep_pod_implementation_plan.md``) traces the transport graph in the user's own image + uploads it to s3. on the prep-pod's callback the dispatch flips to ``running`` and per-task jobs start submitting; on prep failure it flips to ``failed`` without any task rows ever having been created.",
  "enum": [
    "PENDING",
    "PREPARING",
    "RUNNING",
    "COMPLETED",
    "FAILED",
    "CANCELLED",
    "ERRORED"
  ],
  "title": "PipelineDispatchStatus",
  "type": "string"
}

PipelineDispatchStatus

Properties

Name Type Required Restrictions Description
PipelineDispatchStatus string false Lifecycle status of a pipeline dispatch. preparing is the transient state a dispatch enters at creation while the prep-pod (see specs/dispatch_prep_pod_implementation_plan.md) traces the transport graph in the user's own image + uploads it to s3. on the prep-pod's callback the dispatch flips to running and per-task jobs start submitting; on prep failure it flips to failed without any task rows ever having been created.

Enumerated Values

Property Value
PipelineDispatchStatus [PENDING, PREPARING, RUNNING, COMPLETED, FAILED, CANCELLED, ERRORED]

PipelineDispatchStatusResponse

{
  "description": "Lightweight status polling response.",
  "properties": {
    "covalentDispatchId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Covalentdispatchid"
    },
    "id": {
      "maxLength": 24,
      "minLength": 24,
      "pattern": "^[0-9a-fA-F]{24}$",
      "title": "Id",
      "type": "string"
    },
    "status": {
      "description": "Lifecycle status of a pipeline dispatch. ``preparing`` is the transient state a dispatch enters at creation while the prep-pod (see ``specs/dispatch_prep_pod_implementation_plan.md``) traces the transport graph in the user's own image + uploads it to s3. on the prep-pod's callback the dispatch flips to ``running`` and per-task jobs start submitting; on prep failure it flips to ``failed`` without any task rows ever having been created.",
      "enum": [
        "PENDING",
        "PREPARING",
        "RUNNING",
        "COMPLETED",
        "FAILED",
        "CANCELLED",
        "ERRORED"
      ],
      "title": "PipelineDispatchStatus",
      "type": "string"
    }
  },
  "required": [
    "id",
    "status"
  ],
  "title": "PipelineDispatchStatusResponse",
  "type": "object"
}

PipelineDispatchStatusResponse

Properties

Name Type Required Restrictions Description
covalentDispatchId any false none

anyOf

Name Type Required Restrictions Description
» anonymous string false none

or

Name Type Required Restrictions Description
» anonymous null false none

continued

Name Type Required Restrictions Description
id string true maxLength: 24
minLength: 24
minLength: 24
none
status PipelineDispatchStatus true Lifecycle status of a pipeline dispatch. preparing is the transient state a dispatch enters at creation while the prep-pod (see specs/dispatch_prep_pod_implementation_plan.md) traces the transport graph in the user's own image + uploads it to s3. on the prep-pod's callback the dispatch flips to running and per-task jobs start submitting; on prep failure it flips to failed without any task rows ever having been created.

PipelineDispatchTrigger

{
  "description": "How a pipeline dispatch was triggered.",
  "enum": [
    "api",
    "schedule"
  ],
  "title": "PipelineDispatchTrigger",
  "type": "string"
}

PipelineDispatchTrigger

Properties

Name Type Required Restrictions Description
PipelineDispatchTrigger string false How a pipeline dispatch was triggered.

Enumerated Values

Property Value
PipelineDispatchTrigger [api, schedule]

TaskExecutionDurableLogResponse

{
  "description": "Inline content of a task's s3-uploaded stdout/stderr log. the task runner tees its own stdout + stderr into in-memory buffers and uploads them to ``dispatches/<did>/outputs/<node_id>/{stdout,stderr}.log`` on process exit (see action 186's ``pod_logs.logcapture``). this endpoint reads that blob itself, utf-8 decodes it, and hands the content back directly — no presigned url, no second unauthenticated request to S3 required from the caller. callers use it for post-mortem debugging after the pod has been ttl-gc'd (kubelet drops it 60 s after job terminal, so the live-pod-log endpoint stops working past that window; the S3 upload is the durable copy). see ``specs/task_durable_log_inline_content.md`` and ``specs/task_log_verbosity_filter.md``. attributes: content: utf-8 decoded log content, subject to the ``verbosity`` query param: by default the task runner's own structured JSON log lines are removed (uncaught-exception tracebacks are always kept — they're plain text on the runner side, never json). invalid byte sequences are replaced, never raised on. when ``truncated`` is ``true`` this is a head+tail excerpt of the (already-filtered) content, not the full blob. content_type: mime type of the payload. fixed to ``text/plain`` because the log blob is utf-8 encoded plain text. total_bytes: size in bytes of the full S3 object, independent of any inline truncation applied to ``content`` **and** independent of ``verbosity`` — this always reflects the raw blob size, not the filtered content's size. truncated: ``true`` iff ``content`` is a head+tail excerpt because the *filtered* content exceeded the inline response cap (``settings.task_log_inline_max_bytes``). filtered_line_count: number of lines the verbosity filter removed. always ``0`` when ``verbosity=all`` was requested.",
  "properties": {
    "content": {
      "description": "Utf-8 decoded log content (invalid byte sequences replaced, never raises). when `truncated` is true, this is a head+tail excerpt, not the full blob.",
      "title": "Content",
      "type": "string"
    },
    "contentType": {
      "default": "text/plain",
      "description": "Mime type of the log payload.",
      "title": "Contenttype",
      "type": "string"
    },
    "filteredLineCount": {
      "default": 0,
      "description": "Number of lines removed by the verbosity filter. always 0 when verbosity=all.",
      "minimum": 0,
      "title": "Filteredlinecount",
      "type": "integer"
    },
    "totalBytes": {
      "description": "Size in bytes of the full S3 object, independent of any inline truncation.",
      "minimum": 0,
      "title": "Totalbytes",
      "type": "integer"
    },
    "truncated": {
      "default": false,
      "description": "True iff `content` is a head+tail excerpt because the verbosity-filtered content exceeded the inline response cap. not directly comparable to `total_bytes`, which reflects the raw (unfiltered) blob size.",
      "title": "Truncated",
      "type": "boolean"
    }
  },
  "required": [
    "content",
    "totalBytes"
  ],
  "title": "TaskExecutionDurableLogResponse",
  "type": "object"
}

TaskExecutionDurableLogResponse

Properties

Name Type Required Restrictions Description
content string true Utf-8 decoded log content (invalid byte sequences replaced, never raises). when truncated is true, this is a head+tail excerpt, not the full blob.
contentType string false Mime type of the log payload.
filteredLineCount integer false minimum: 0
Number of lines removed by the verbosity filter. always 0 when verbosity=all.
totalBytes integer true minimum: 0
Size in bytes of the full S3 object, independent of any inline truncation.
truncated boolean false True iff content is a head+tail excerpt because the verbosity-filtered content exceeded the inline response cap. not directly comparable to total_bytes, which reflects the raw (unfiltered) blob size.

TaskExecutionLogsResponse

{
  "description": "Response schema for per-task pod logs. populated only when standalone dispatch is on — under the legacy covalent path, pipelines-api does not own the pod and the endpoint returns an empty string. attributes: logs: pod stdout+stderr as a utf-8 decoded string, subject to the ``verbosity`` query param (see ``specs/task_log_verbosity_filter.md``): by default the task runner's own structured JSON log lines are removed, leaving only the task function's own output (plus any uncaught-exception traceback, which is always kept). empty when the pod has been gc'd, hasn't started yet, or when the dispatch predates standalone mode. filtered_line_count: number of lines the verbosity filter removed. always ``0`` when ``verbosity=all`` was requested.",
  "properties": {
    "filteredLineCount": {
      "default": 0,
      "description": "Number of lines removed by the verbosity filter. always 0 when verbosity=all.",
      "minimum": 0,
      "title": "Filteredlinecount",
      "type": "integer"
    },
    "logs": {
      "title": "Logs",
      "type": "string"
    }
  },
  "required": [
    "logs"
  ],
  "title": "TaskExecutionLogsResponse",
  "type": "object"
}

TaskExecutionLogsResponse

Properties

Name Type Required Restrictions Description
filteredLineCount integer false minimum: 0
Number of lines removed by the verbosity filter. always 0 when verbosity=all.
logs string true none

TaskExecutionResponse

{
  "description": "Response schema for a single task execution record. attributes: task_id: pipeline-level sequential task number, e.g. ``1``, ``2``, ``3``. use this as the ``{task_id}`` path parameter for per-task endpoints. ``none`` for internal utility nodes with no user ``@task`` backing. node_id: per-dispatch execution node id. pass as ``?nodeid=`` to per-task endpoints to address a specific invocation when the same ``@task`` function runs more than once in a single dispatch (fan-out). each invocation has a distinct ``nodeid`` even when they share the same ``taskid``. ``none`` for legacy rows that pre-date node-id tracking. graph_node_id: the static graph node ``id`` (from ``get .../graph``) this execution corresponds to. stable across every dispatch of the same pipeline version, so the UI can join execution status/logs/results to the exact graph box even for fan-out. ``none`` when no 1:1 match against the static graph exists (call sites inside loops, helper-wrapped tasks) or for rows created before this field was introduced. name: the ``@task`` function name. status: current ``taskexecutionstatus`` value. started_at: when execution began, or ``none`` if not yet started. completed_at: when execution finished, or ``none`` if still running. error_detail: failure message when ``status == failed``. resource_bundle_id: mms resource-bundle id/alias the task actually ran on (resolved at dispatch — declared value, or the service default for undeclared tasks). ``none`` only for legacy rows.",
  "properties": {
    "completedAt": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Completedat"
    },
    "errorDetail": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Errordetail"
    },
    "graphNodeId": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Graphnodeid"
    },
    "name": {
      "title": "Name",
      "type": "string"
    },
    "nodeId": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Nodeid"
    },
    "resourceBundleId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Resourcebundleid"
    },
    "startedAt": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Startedat"
    },
    "status": {
      "title": "Status",
      "type": "string"
    },
    "taskId": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Taskid"
    }
  },
  "required": [
    "name",
    "status"
  ],
  "title": "TaskExecutionResponse",
  "type": "object"
}

TaskExecutionResponse

Properties

Name Type Required Restrictions Description
completedAt any false none

anyOf

Name Type Required Restrictions Description
» anonymous string(date-time) false none

or

Name Type Required Restrictions Description
» anonymous null false none

continued

Name Type Required Restrictions Description
errorDetail any false none

anyOf

Name Type Required Restrictions Description
» anonymous string false none

or

Name Type Required Restrictions Description
» anonymous null false none

continued

Name Type Required Restrictions Description
graphNodeId any false none

anyOf

Name Type Required Restrictions Description
» anonymous integer false none

or

Name Type Required Restrictions Description
» anonymous null false none

continued

Name Type Required Restrictions Description
name string true none
nodeId any false none

anyOf

Name Type Required Restrictions Description
» anonymous integer false none

or

Name Type Required Restrictions Description
» anonymous null false none

continued

Name Type Required Restrictions Description
resourceBundleId any false none

anyOf

Name Type Required Restrictions Description
» anonymous string false none

or

Name Type Required Restrictions Description
» anonymous null false none

continued

Name Type Required Restrictions Description
startedAt any false none

anyOf

Name Type Required Restrictions Description
» anonymous string(date-time) false none

or

Name Type Required Restrictions Description
» anonymous null false none

continued

Name Type Required Restrictions Description
status string true none
taskId any false none

anyOf

Name Type Required Restrictions Description
» anonymous integer false none

or

Name Type Required Restrictions Description
» anonymous null false none

TaskExecutionResultResponse

{
  "description": "Presigned-url response for a completed task's cloudpickled result. handed back by ``get .../dispatches/{dispatch_id}/tasks/{task_id}/result`` once a task reaches ``completed`` state and its ``result.tobj`` blob is present in s3. the caller gets ``url`` directly from S3 to stream the payload — pipelines-api never proxies the bytes, which keeps the response independent of result size and side-steps the rce risk of cloudpickle-loading untrusted user output on the server. ``value`` / ``value_available`` / ``value_unavailable_reason`` are an additive, optional json-safe preview of the same result — populated from a small manifest the task runner writes alongside ``result.tobj`` (see ``specs/task_result_preview.md``). unlike ``result.tobj``, decoding this manifest is safe to do server-side: ``json.loads`` cannot execute arbitrary code the way ``cloudpickle.loads`` can. ``url`` / ``expires_in`` / ``content_type`` are always populated once the task is ``completed``, independent of whether a preview is available. ``value_text`` / ``value_text_truncated`` add a human-readable ``str(result)`` preview the runner emits for *every* result — even non-json-serializable or oversized ones the JSON ``value`` can't represent — so a UI always has something to display. unlike json, the text repr is truncatable, closing the ``not_json_serializable`` / ``too_large`` gaps. attributes: url: presigned ``https://`` url granting ``getobject`` on the task's ``result.tobj`` blob. time-limited by ``expires_in``; treat as one-shot. expires_in: validity window in seconds from the signing moment. default 900 (15 min). content_type: mime type the caller should expect on the downloaded body. fixed to ``application/octet-stream`` because the payload is a raw cloudpickle blob; callers decode with ``cloudpickle.loads(response.content)``. value: json-decoded preview of the task's return value, when available. ``none`` both when no preview exists and when the task legitimately returned ``none`` — use ``value_available`` to disambiguate. value_available: ``true`` iff ``value`` reflects an actual preview. value_unavailable_reason: set iff ``value_available`` is ``false``, explaining why no preview could be produced. one of ``\"not_json_serializable\"`` (the return value isn't json-safe), ``\"too_large\"`` (exceeded the preview size cap), or ``\"unavailable\"`` (no preview was ever recorded — a pre-feature task, or the preview upload itself failed). ``none`` when ``value_available`` is ``true``. value_text: human-readable ``str(result)`` preview the runner embeds in *every* manifest branch — present even when the JSON ``value`` is unavailable, so a UI always has something to render for non-json-serializable or oversized results. possibly truncated (see ``value_text_truncated``); the full object is always available via ``url``. ``none`` only for tasks whose manifest predates this field. value_text_truncated: ``true`` iff ``value_text`` was cut to the configured character cap — download the full object via ``url`` for the complete value.",
  "properties": {
    "contentType": {
      "default": "application/octet-stream",
      "description": "Mime type of the payload the url serves.",
      "title": "Contenttype",
      "type": "string"
    },
    "expiresIn": {
      "description": "Url validity window in seconds from the moment it was signed.",
      "exclusiveMinimum": 0,
      "title": "Expiresin",
      "type": "integer"
    },
    "url": {
      "description": "Presigned S3 url for the result blob.",
      "title": "Url",
      "type": "string"
    },
    "value": {
      "anyOf": [
        {},
        {
          "type": "null"
        }
      ],
      "description": "Json-decoded preview of the task's return value, when available.",
      "title": "Value"
    },
    "valueAvailable": {
      "default": false,
      "description": "True iff `value` reflects an actual preview. needed because a task can legitimately return none/null, which is otherwise indistinguishable from no preview being available.",
      "title": "Valueavailable",
      "type": "boolean"
    },
    "valueText": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Human-readable `str()` preview of the task's return value, present even when the JSON `value` is unavailable (non-json-serializable or oversized results). possibly truncated (see `value_text_truncated`). the full object is always available via `url`. `none` only for pre-feature tasks whose manifest predates this field, or when no preview was recorded at all.",
      "title": "Valuetext"
    },
    "valueTextTruncated": {
      "default": false,
      "description": "True iff `value_text` was cut to the configured character cap. when true, download the full object via `url` to see the complete value.",
      "title": "Valuetexttruncated",
      "type": "boolean"
    },
    "valueUnavailableReason": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Set iff `value_available` is false, explaining why no preview could be produced. one of: `not_json_serializable`, `too_large`, or `unavailable`. `none` when `value_available` is true.",
      "title": "Valueunavailablereason"
    }
  },
  "required": [
    "url",
    "expiresIn"
  ],
  "title": "TaskExecutionResultResponse",
  "type": "object"
}

TaskExecutionResultResponse

Properties

Name Type Required Restrictions Description
contentType string false Mime type of the payload the url serves.
expiresIn integer true Url validity window in seconds from the moment it was signed.
url string true Presigned S3 url for the result blob.
value any false Json-decoded preview of the task's return value, when available.

anyOf

Name Type Required Restrictions Description
» anonymous any false none

or

Name Type Required Restrictions Description
» anonymous null false none

continued

Name Type Required Restrictions Description
valueAvailable boolean false True iff value reflects an actual preview. needed because a task can legitimately return none/null, which is otherwise indistinguishable from no preview being available.
valueText any false Human-readable str() preview of the task's return value, present even when the JSON value is unavailable (non-json-serializable or oversized results). possibly truncated (see value_text_truncated). the full object is always available via url. none only for pre-feature tasks whose manifest predates this field, or when no preview was recorded at all.

anyOf

Name Type Required Restrictions Description
» anonymous string false none

or

Name Type Required Restrictions Description
» anonymous null false none

continued

Name Type Required Restrictions Description
valueTextTruncated boolean false True iff value_text was cut to the configured character cap. when true, download the full object via url to see the complete value.
valueUnavailableReason any false Set iff value_available is false, explaining why no preview could be produced. one of: not_json_serializable, too_large, or unavailable. none when value_available is true.

anyOf

Name Type Required Restrictions Description
» anonymous string false none

or

Name Type Required Restrictions Description
» anonymous null false none

ValidationError

{
  "properties": {
    "ctx": {
      "title": "Context",
      "type": "object"
    },
    "input": {
      "title": "Input"
    },
    "loc": {
      "items": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "integer"
          }
        ]
      },
      "title": "Location",
      "type": "array"
    },
    "msg": {
      "title": "Message",
      "type": "string"
    },
    "type": {
      "title": "Error Type",
      "type": "string"
    }
  },
  "required": [
    "loc",
    "msg",
    "type"
  ],
  "title": "ValidationError",
  "type": "object"
}

ValidationError

Properties

Name Type Required Restrictions Description
ctx object false none
input any false none
loc [anyOf] true none

anyOf

Name Type Required Restrictions Description
» anonymous string false none

or

Name Type Required Restrictions Description
» anonymous integer false none

continued

Name Type Required Restrictions Description
msg string true none
type string true none