Workflow management
Workflow Management API
This document outlines the API endpoints for managing workflows in PySpur.
Create Workflow
Description: Creates a new workflow. If no definition is provided, creates a default workflow with an input node. For chatbots, creates a workflow with required input/output fields for handling chat interactions. The workflow name will be made unique if a workflow with the same name already exists.
URL: /wf/
Method: POST
Request Payload:
Where WorkflowDefinitionSchema
contains:
Response Schema:
Update Workflow
Description: Updates an existing workflow’s definition, name, and description. The workflow definition is required for updates. This endpoint allows for modifying the structure and behavior of a workflow.
URL: /wf/{workflow_id}/
Method: PUT
Parameters:
Request Payload: Same as Create Workflow
Response Schema: Same as Create Workflow
List Workflows
Description: Lists all workflows with pagination support, ordered by creation date descending. Only valid workflows that can be properly validated are included in the response.
URL: /wf/
Method: GET
Query Parameters:
Response Schema:
Get Workflow
Description: Retrieves a specific workflow by its ID, including its complete definition, metadata, and timestamps.
URL: /wf/{workflow_id}/
Method: GET
Parameters:
Response Schema: Same as Create Workflow
Reset Workflow
Description: Resets a workflow to its initial state with just an input node. This is useful when you want to start over with a workflow design without deleting and recreating it.
URL: /wf/{workflow_id}/reset/
Method: PUT
Parameters:
Response Schema: Same as Create Workflow
Delete Workflow
Description: Deletes a workflow and its associated test files. This operation is permanent and will remove all data related to the workflow, including test files stored in the file system.
URL: /wf/{workflow_id}/
Method: DELETE
Parameters:
Response: 204 No Content
Duplicate Workflow
Description: Creates a copy of an existing workflow with “(Copy)” appended to its name. This is useful for creating variations of a workflow without modifying the original.
URL: /wf/{workflow_id}/duplicate/
Method: POST
Parameters:
Response Schema: Same as Create Workflow
Get Workflow Output Variables
Description: Retrieves the output variables (leaf nodes) of a workflow, including their node IDs and variable names. This is useful for understanding what outputs are available from a workflow.
URL: /wf/{workflow_id}/output_variables/
Method: GET
Parameters:
Response Schema:
Each dictionary in the list contains:
Upload Test Files
Description: Uploads test files for a specific node in a workflow and returns their paths. The files are stored in a workflow-specific directory and can be used as inputs for testing the workflow.
URL: /wf/upload_test_files/
Method: POST
Form Data:
Response Schema:
Example:
Get Workflow Versions
Description: Retrieves all versions of a workflow, ordered by version number descending, with pagination support. This allows tracking the evolution of a workflow over time and reverting to previous versions if needed.
URL: /wf/{workflow_id}/versions/
Method: GET
Parameters:
Response Schema:
Where WorkflowVersionResponseSchema
contains:
List Paused Workflows
Description: Lists all workflows that are currently in a paused state, with pagination support. This endpoint is useful for monitoring workflows that require human intervention.
URL: /wf/paused_workflows/
Method: GET
Query Parameters:
Response Schema:
Where PausedWorkflowResponseSchema
contains:
Get Pause History
Description: Retrieves the pause history for a specific workflow run, showing when and why the workflow was paused, and any actions taken to resume it.
URL: /wf/pause_history/{run_id}/
Method: GET
Parameters:
Response Schema:
Where PauseHistoryResponseSchema
contains:
Process Pause Action
Description: Processes an action on a paused workflow, allowing for approval, decline, or override of a workflow that has been paused for human intervention. The workflow will resume execution based on the action taken.
URL: /wf/process_pause_action/{run_id}/
Method: POST
Parameters:
Request Payload:
Response Schema: