From f491b017d173b5fa0301b935aff6a7bd6379bb15 Mon Sep 17 00:00:00 2001 From: Shuchang Zheng Date: Thu, 28 Nov 2024 10:26:15 -0800 Subject: [PATCH] create_empty_workflow interface in workflow service (#1286) --- skyvern/forge/sdk/workflow/service.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/skyvern/forge/sdk/workflow/service.py b/skyvern/forge/sdk/workflow/service.py index f46a5b51..5ff1eb2a 100644 --- a/skyvern/forge/sdk/workflow/service.py +++ b/skyvern/forge/sdk/workflow/service.py @@ -70,7 +70,12 @@ from skyvern.forge.sdk.workflow.models.workflow import ( WorkflowRunStatus, WorkflowRunStatusResponse, ) -from skyvern.forge.sdk.workflow.models.yaml import BLOCK_YAML_TYPES, ForLoopBlockYAML, WorkflowCreateYAMLRequest +from skyvern.forge.sdk.workflow.models.yaml import ( + BLOCK_YAML_TYPES, + ForLoopBlockYAML, + WorkflowCreateYAMLRequest, + WorkflowDefinitionYAML, +) from skyvern.webeye.browser_factory import BrowserState LOG = structlog.get_logger() @@ -1501,3 +1506,20 @@ class WorkflowService: ) raise ValueError(f"Invalid block type {block_yaml.block_type}") + + async def create_empty_workflow(self, organization: Organization, title: str) -> Workflow: + """ + Create a blank workflow with no blocks + """ + # create a new workflow + workflow_create_request = WorkflowCreateYAMLRequest( + title=title, + workflow_definition=WorkflowDefinitionYAML( + parameters=[], + blocks=[], + ), + ) + return await app.WORKFLOW_SERVICE.create_workflow_from_request( + organization=organization, + request=workflow_create_request, + )