From c138f4c3a63f1a7f8479fa6016cd8498913aee4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=9E=E6=B3=95=E6=93=8D=E4=BD=9C?= Date: Sat, 30 Aug 2025 16:40:21 +0800 Subject: [PATCH] fix: check AppTrigger status before webhook execution (#24829) Co-authored-by: Claude --- api/services/webhook_service.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/api/services/webhook_service.py b/api/services/webhook_service.py index ee079a992b..ff2cc83247 100644 --- a/api/services/webhook_service.py +++ b/api/services/webhook_service.py @@ -12,7 +12,7 @@ from extensions.ext_database import db from factories import file_factory from models.account import Account, TenantAccountJoin, TenantAccountRole from models.enums import WorkflowRunTriggeredFrom -from models.workflow import Workflow, WorkflowWebhookTrigger +from models.workflow import AppTrigger, AppTriggerStatus, AppTriggerType, Workflow, WorkflowWebhookTrigger from services.async_workflow_service import AsyncWorkflowService from services.workflow.entities import TriggerData @@ -35,6 +35,23 @@ class WebhookService: if not webhook_trigger: raise ValueError(f"Webhook not found: {webhook_id}") + # Check if the corresponding AppTrigger is enabled + app_trigger = ( + session.query(AppTrigger) + .filter( + AppTrigger.app_id == webhook_trigger.app_id, + AppTrigger.node_id == webhook_trigger.node_id, + AppTrigger.trigger_type == AppTriggerType.TRIGGER_WEBHOOK, + ) + .first() + ) + + if not app_trigger: + raise ValueError(f"App trigger not found for webhook {webhook_id}") + + if app_trigger.status != AppTriggerStatus.ENABLED: + raise ValueError(f"Webhook trigger is disabled for webhook {webhook_id}") + # Get workflow workflow = ( session.query(Workflow)