Runs API
This document outlines the API endpoints for managing individual run instances in PySpur.
Get Run
Description: Retrieves detailed information about a specific run, including its status, inputs, outputs, and associated tasks.
URL: /run/{run_id}/
Method: GET
Parameters:
run_id: str # ID of the run to retrieve
Response Schema:
class RunResponseSchema(BaseModel):
id: str # Run ID
workflow_id: str # ID of the workflow
workflow_version_id: Optional[str] # ID of the workflow version
workflow_version: Optional[WorkflowVersionResponseSchema] # Details of the workflow version
status: RunStatus # Current status of the run
start_time: datetime # When the run started
end_time: Optional[datetime] # When the run ended (if completed)
initial_inputs: Optional[Dict[str, Dict[str, Any]]] # Initial inputs to the workflow
outputs: Optional[Dict[str, Dict[str, Any]]] # Outputs from the workflow
tasks: List[TaskResponseSchema] # List of tasks in the run
parent_run_id: Optional[str] # ID of the parent run (if applicable)
run_type: str # Type of run (e.g., "interactive", "batch")
output_file_id: Optional[str] # ID of the output file
input_dataset_id: Optional[str] # ID of the input dataset
message: Optional[str] # Additional information about the run
duration: Optional[float] # Duration of the run in seconds
percentage_complete: float # Percentage of tasks completed
List All Runs
Description: Lists all runs across all workflows with pagination support, ordered by start time descending. This provides a global view of all workflow executions in the system.
URL: /run/
Method: GET
Query Parameters:
page: int # Page number (default: 1, min: 1)
page_size: int # Number of items per page (default: 10, min: 1, max: 100)
Response Schema:
List[RunResponseSchema] # List of run details
Get Run Tasks
Description: Retrieves all tasks associated with a specific run, showing the execution details of each node in the workflow.
URL: /run/{run_id}/tasks/
Method: GET
Parameters:
run_id: str # ID of the run
Response Schema:
Where TaskResponseSchema
contains:
class TaskResponseSchema(BaseModel):
id: str # Task ID
run_id: str # ID of the run
node_id: str # ID of the node
node_type: str # Type of the node
status: TaskStatus # Status of the task (PENDING, RUNNING, COMPLETED, FAILED, PAUSED, CANCELED)
start_time: Optional[datetime] # When the task started
end_time: Optional[datetime] # When the task ended
inputs: Optional[Dict[str, Any]] # Inputs to the task
outputs: Optional[Dict[str, Any]] # Outputs from the task
error: Optional[str] # Error message if the task failed
is_downstream_of_pause: bool # Whether this task is downstream of a paused node
Delete Run
Description: Permanently deletes a run and all its associated tasks. This operation cannot be undone.
URL: /run/{run_id}/
Method: DELETE
Parameters:
run_id: str # ID of the run to delete
Response: 204 No Content
Get Child Runs
Description: Retrieves all child runs of a parent run, useful for tracking nested workflow executions.
URL: /run/{run_id}/children/
Method: GET
Parameters:
run_id: str # ID of the parent run
Response Schema:
List[RunResponseSchema] # List of child run details