add observer task block (#1665)
This commit is contained in:
@@ -1344,6 +1344,7 @@ class AgentDB:
|
||||
webhook_callback_url: str | None = None,
|
||||
totp_verification_url: str | None = None,
|
||||
totp_identifier: str | None = None,
|
||||
parent_workflow_run_id: str | None = None,
|
||||
) -> WorkflowRun:
|
||||
try:
|
||||
async with self.Session() as session:
|
||||
@@ -1356,6 +1357,7 @@ class AgentDB:
|
||||
webhook_callback_url=webhook_callback_url,
|
||||
totp_verification_url=totp_verification_url,
|
||||
totp_identifier=totp_identifier,
|
||||
parent_workflow_run_id=parent_workflow_run_id,
|
||||
)
|
||||
session.add(workflow_run)
|
||||
await session.commit()
|
||||
@@ -1404,7 +1406,11 @@ class AgentDB:
|
||||
try:
|
||||
async with self.Session() as session:
|
||||
db_page = page - 1 # offset logic is 0 based
|
||||
query = select(WorkflowRunModel).filter(WorkflowRunModel.organization_id == organization_id)
|
||||
query = (
|
||||
select(WorkflowRunModel)
|
||||
.filter(WorkflowRunModel.organization_id == organization_id)
|
||||
.filter(WorkflowRunModel.parent_workflow_run_id.is_(None))
|
||||
)
|
||||
if status:
|
||||
query = query.filter(WorkflowRunModel.status.in_(status))
|
||||
query = query.order_by(WorkflowRunModel.created_at.desc()).limit(page_size).offset(db_page * page_size)
|
||||
@@ -2293,6 +2299,7 @@ class AgentDB:
|
||||
prompt: str | None = None,
|
||||
wait_sec: int | None = None,
|
||||
description: str | None = None,
|
||||
block_workflow_run_id: str | None = None,
|
||||
) -> WorkflowRunBlock:
|
||||
async with self.Session() as session:
|
||||
workflow_run_block = (
|
||||
@@ -2331,6 +2338,8 @@ class AgentDB:
|
||||
workflow_run_block.wait_sec = wait_sec
|
||||
if description:
|
||||
workflow_run_block.description = description
|
||||
if block_workflow_run_id:
|
||||
workflow_run_block.block_workflow_run_id = block_workflow_run_id
|
||||
await session.commit()
|
||||
await session.refresh(workflow_run_block)
|
||||
else:
|
||||
|
||||
@@ -230,6 +230,8 @@ class WorkflowRunModel(Base):
|
||||
workflow_run_id = Column(String, primary_key=True, index=True, default=generate_workflow_run_id)
|
||||
workflow_id = Column(String, ForeignKey("workflows.workflow_id"), nullable=False)
|
||||
workflow_permanent_id = Column(String, nullable=False, index=True)
|
||||
# workfow runs with parent_workflow_run_id are nested workflow runs which won't show up in the workflow run history
|
||||
parent_workflow_run_id = Column(String, ForeignKey("workflow_runs.workflow_run_id"), nullable=True, index=True)
|
||||
organization_id = Column(String, ForeignKey("organizations.organization_id"), nullable=False, index=True)
|
||||
status = Column(String, nullable=False)
|
||||
failure_reason = Column(String)
|
||||
@@ -505,6 +507,8 @@ class WorkflowRunBlockModel(Base):
|
||||
|
||||
workflow_run_block_id = Column(String, primary_key=True, default=generate_workflow_run_block_id)
|
||||
workflow_run_id = Column(String, ForeignKey("workflow_runs.workflow_run_id"), nullable=False)
|
||||
# this is the inner workflow run id of the taskv2 block
|
||||
block_workflow_run_id = Column(String, ForeignKey("workflow_runs.workflow_run_id"), nullable=True)
|
||||
parent_workflow_run_block_id = Column(
|
||||
String, ForeignKey("workflow_run_blocks.workflow_run_block_id"), nullable=True
|
||||
)
|
||||
|
||||
@@ -202,6 +202,7 @@ def convert_to_workflow_run(workflow_run_model: WorkflowRunModel, debug_enabled:
|
||||
return WorkflowRun(
|
||||
workflow_run_id=workflow_run_model.workflow_run_id,
|
||||
workflow_permanent_id=workflow_run_model.workflow_permanent_id,
|
||||
parent_workflow_run_id=workflow_run_model.parent_workflow_run_id,
|
||||
workflow_id=workflow_run_model.workflow_id,
|
||||
organization_id=workflow_run_model.organization_id,
|
||||
status=WorkflowRunStatus[workflow_run_model.status],
|
||||
@@ -382,6 +383,7 @@ def convert_to_workflow_run_block(
|
||||
block = WorkflowRunBlock(
|
||||
workflow_run_block_id=workflow_run_block_model.workflow_run_block_id,
|
||||
workflow_run_id=workflow_run_block_model.workflow_run_id,
|
||||
block_workflow_run_id=workflow_run_block_model.block_workflow_run_id,
|
||||
organization_id=workflow_run_block_model.organization_id,
|
||||
parent_workflow_run_block_id=workflow_run_block_model.parent_workflow_run_block_id,
|
||||
description=workflow_run_block_model.description,
|
||||
|
||||
Reference in New Issue
Block a user