refactor(trigger): Rename and replace PluginTriggerNode with TriggerEventNode

- Updated references from `PluginTriggerNode` to `TriggerEventNode` across multiple files to reflect the new naming convention.
- Modified `PluginTriggerNodeData` to `TriggerEventNodeData`, including changes to event parameters for better clarity and consistency in data handling.
- Removed the deprecated `trigger_plugin_node.py` file as part of the refactor.
This commit is contained in:
Harry 2025-10-15 17:30:32 +08:00
parent 9aec255ee9
commit 35bbf67175
9 changed files with 23 additions and 23 deletions

View File

@ -11,7 +11,7 @@ from core.plugin.entities.request import TriggerInvokeEventResponse
from core.trigger.debug.event_bus import TriggerDebugEventBus
from core.trigger.debug.events import PluginTriggerDebugEvent, ScheduleDebugEvent, WebhookDebugEvent
from core.workflow.enums import NodeType
from core.workflow.nodes.trigger_plugin.entities import PluginTriggerNodeData
from core.workflow.nodes.trigger_plugin.entities import TriggerEventNodeData
from models.model import App
from models.provider_ids import TriggerProviderID
from models.workflow import Workflow
@ -47,7 +47,7 @@ class TriggerDebugEventPoller(ABC):
class PluginTriggerDebugEventPoller(TriggerDebugEventPoller):
def poll(self) -> TriggerDebugEvent | None:
plugin_trigger_data = PluginTriggerNodeData.model_validate(self.node_config.get("data", {}))
plugin_trigger_data = TriggerEventNodeData.model_validate(self.node_config.get("data", {}))
provider_id = TriggerProviderID(plugin_trigger_data.provider_id)
pool_key: str = PluginTriggerDebugEvent.build_pool_key(
name=plugin_trigger_data.event_name,

View File

@ -123,9 +123,9 @@ class Node:
start_event.provider_id = f"{plugin_id}/{provider_name}"
start_event.provider_type = getattr(self.get_base_node_data(), "provider_type", "")
from core.workflow.nodes.trigger_plugin.trigger_plugin_node import TriggerPluginNode
from core.workflow.nodes.trigger_plugin.trigger_event_node import TriggerEventNode
if isinstance(self, TriggerPluginNode):
if isinstance(self, TriggerEventNode):
start_event.provider_id = getattr(self.get_base_node_data(), "provider_id", "")
start_event.provider_type = getattr(self.get_base_node_data(), "provider_type", "")

View File

@ -21,7 +21,7 @@ from core.workflow.nodes.question_classifier import QuestionClassifierNode
from core.workflow.nodes.start import StartNode
from core.workflow.nodes.template_transform import TemplateTransformNode
from core.workflow.nodes.tool import ToolNode
from core.workflow.nodes.trigger_plugin import TriggerPluginNode
from core.workflow.nodes.trigger_plugin import TriggerEventNode
from core.workflow.nodes.trigger_schedule import TriggerScheduleNode
from core.workflow.nodes.trigger_webhook import TriggerWebhookNode
from core.workflow.nodes.variable_aggregator import VariableAggregatorNode
@ -150,8 +150,8 @@ NODE_TYPE_CLASSES_MAPPING: Mapping[NodeType, Mapping[str, type[Node]]] = {
"1": TriggerWebhookNode,
},
NodeType.TRIGGER_PLUGIN: {
LATEST_VERSION: TriggerPluginNode,
"1": TriggerPluginNode,
LATEST_VERSION: TriggerEventNode,
"1": TriggerEventNode,
},
NodeType.TRIGGER_SCHEDULE: {
LATEST_VERSION: TriggerScheduleNode,

View File

@ -1,3 +1,3 @@
from .trigger_plugin_node import TriggerPluginNode
from .trigger_event_node import TriggerEventNode
__all__ = ["TriggerPluginNode"]
__all__ = ["TriggerEventNode"]

View File

@ -9,7 +9,7 @@ from core.workflow.nodes.base.entities import BaseNodeData, RetryConfig
from core.workflow.nodes.trigger_plugin.exc import TriggerEventParameterError
class PluginTriggerNodeData(BaseNodeData):
class TriggerEventNodeData(BaseNodeData):
"""Plugin trigger node data"""
class PluginTriggerInput(BaseModel):
@ -44,7 +44,7 @@ class PluginTriggerNodeData(BaseNodeData):
event_name: str = Field(..., description="Event name")
subscription_id: str = Field(..., description="Subscription ID")
plugin_unique_identifier: str = Field(..., description="Plugin unique identifier")
parameters: Mapping[str, PluginTriggerInput] = Field(default_factory=dict, description="Trigger parameters")
event_parameters: Mapping[str, PluginTriggerInput] = Field(default_factory=dict, description="Trigger parameters")
# Error handling
error_strategy: Optional[ErrorStrategy] = Field(
@ -68,12 +68,12 @@ class PluginTriggerNodeData(BaseNodeData):
"""
result: Mapping[str, Any] = {}
for parameter_name in self.parameters:
for parameter_name in self.event_parameters:
parameter: EventParameter | None = parameter_schemas.get(parameter_name)
if not parameter:
result[parameter_name] = None
continue
event_input = self.parameters[parameter_name]
event_input = self.event_parameters[parameter_name]
# trigger node only supports constant input
if event_input.type != "constant":

View File

@ -7,4 +7,4 @@ class TriggerEventNodeError(ValueError):
class TriggerEventParameterError(TriggerEventNodeError):
"""Exception raised for errors in plugin trigger parameters."""
pass
pass

View File

@ -7,17 +7,17 @@ from core.workflow.node_events import NodeRunResult
from core.workflow.nodes.base.entities import BaseNodeData, RetryConfig
from core.workflow.nodes.base.node import Node
from .entities import PluginTriggerNodeData
from .entities import TriggerEventNodeData
class TriggerPluginNode(Node):
class TriggerEventNode(Node):
node_type = NodeType.TRIGGER_PLUGIN
execution_type = NodeExecutionType.ROOT
_node_data: PluginTriggerNodeData
_node_data: TriggerEventNodeData
def init_node_data(self, data: Mapping[str, Any]) -> None:
self._node_data = PluginTriggerNodeData.model_validate(data)
self._node_data = TriggerEventNodeData.model_validate(data)
def _get_error_strategy(self) -> Optional[ErrorStrategy]:
return self._node_data.error_strategy

View File

@ -18,7 +18,7 @@ from core.trigger.provider import PluginTriggerProviderController
from core.trigger.trigger_manager import TriggerManager
from core.trigger.utils.encryption import create_trigger_provider_encrypter_for_subscription
from core.workflow.enums import NodeType
from core.workflow.nodes.trigger_plugin.entities import PluginTriggerNodeData
from core.workflow.nodes.trigger_plugin.entities import TriggerEventNodeData
from core.workflow.nodes.trigger_schedule.exc import TenantOwnerNotFoundError
from extensions.ext_database import db
from extensions.ext_redis import redis_client
@ -54,7 +54,7 @@ class TriggerService:
)
if not subscription:
raise ValueError("Subscription not found")
node_data: PluginTriggerNodeData = PluginTriggerNodeData.model_validate(node_config.get("data", {}))
node_data: TriggerEventNodeData = TriggerEventNodeData.model_validate(node_config.get("data", {}))
request = deserialize_request(storage.load_once(f"triggers/{event.request_id}"))
if not request:
raise ValueError("Request not found")
@ -166,7 +166,7 @@ class TriggerService:
continue
# invoke triger
node_data: PluginTriggerNodeData = PluginTriggerNodeData.model_validate(event_node.get("data", {}))
node_data: TriggerEventNodeData = TriggerEventNodeData.model_validate(event_node)
invoke_response: TriggerInvokeEventResponse = TriggerManager.invoke_trigger_event(
tenant_id=subscription.tenant_id,
user_id=subscription.user_id,

View File

@ -23,7 +23,7 @@ from core.workflow.nodes import NodeType
from core.workflow.nodes.base.node import Node
from core.workflow.nodes.node_mapping import LATEST_VERSION, NODE_TYPE_CLASSES_MAPPING
from core.workflow.nodes.start.entities import StartNodeData
from core.workflow.nodes.trigger_plugin.entities import PluginTriggerNodeData
from core.workflow.nodes.trigger_plugin.entities import TriggerEventNodeData
from core.workflow.nodes.trigger_schedule.entities import TriggerScheduleNodeData
from core.workflow.nodes.trigger_webhook.entities import WebhookData
from core.workflow.system_variable import SystemVariable
@ -636,7 +636,7 @@ class WorkflowService:
if node_type == NodeType.TRIGGER_WEBHOOK:
start_data = WebhookData.model_validate(node_data)
elif node_type == NodeType.TRIGGER_PLUGIN:
start_data = PluginTriggerNodeData.model_validate(node_data)
start_data = TriggerEventNodeData.model_validate(node_data)
elif node_type == NodeType.TRIGGER_SCHEDULE:
start_data = TriggerScheduleNodeData.model_validate(node_data)
else: