diff --git a/api/core/plugin/impl/trigger.py b/api/core/plugin/impl/trigger.py index 798714d4f4..fed377d84d 100644 --- a/api/core/plugin/impl/trigger.py +++ b/api/core/plugin/impl/trigger.py @@ -89,6 +89,7 @@ class PluginTriggerManager(BasePluginClient): credential_type: CredentialType, request: Request, parameters: Mapping[str, Any], + subscription: Subscription, ) -> TriggerInvokeEventResponse: """ Invoke a trigger with the given parameters. @@ -105,6 +106,7 @@ class PluginTriggerManager(BasePluginClient): "event": event_name, "credentials": credentials, "credential_type": credential_type, + "subscription": subscription, "raw_http_request": binascii.hexlify(serialize_request(request)).decode(), "parameters": parameters, }, diff --git a/api/core/trigger/provider.py b/api/core/trigger/provider.py index 3f290aec93..60f19cc3f3 100644 --- a/api/core/trigger/provider.py +++ b/api/core/trigger/provider.py @@ -289,6 +289,7 @@ class PluginTriggerProviderController: parameters: Mapping[str, Any], credentials: Mapping[str, str], credential_type: CredentialType, + subscription: Subscription, request: Request, ) -> TriggerInvokeEventResponse: """ @@ -315,6 +316,7 @@ class PluginTriggerProviderController: credential_type=credential_type, request=request, parameters=parameters, + subscription=subscription, ) def subscribe_trigger( diff --git a/api/core/trigger/trigger_manager.py b/api/core/trigger/trigger_manager.py index 618402019c..19b8a57428 100644 --- a/api/core/trigger/trigger_manager.py +++ b/api/core/trigger/trigger_manager.py @@ -159,6 +159,7 @@ class TriggerManager: parameters: Mapping[str, Any], credentials: Mapping[str, str], credential_type: CredentialType, + subscription: Subscription, request: Request, ) -> TriggerInvokeEventResponse: """ @@ -171,6 +172,7 @@ class TriggerManager: :param parameters: Trigger parameters :param credentials: Provider credentials :param credential_type: Credential type + :param subscription: Subscription :param request: Request :return: Trigger execution result """ @@ -184,6 +186,7 @@ class TriggerManager: parameters=parameters, credentials=credentials, credential_type=credential_type, + subscription=subscription, request=request, ) except PluginInvokeError as e: diff --git a/api/services/trigger/trigger_service.py b/api/services/trigger/trigger_service.py index 8f1c8605c7..4eb068f50e 100644 --- a/api/services/trigger/trigger_service.py +++ b/api/services/trigger/trigger_service.py @@ -8,7 +8,7 @@ from sqlalchemy import and_, func, select from sqlalchemy.orm import Session from core.plugin.entities.plugin_daemon import CredentialType -from core.plugin.entities.request import TriggerDispatchResponse +from core.plugin.entities.request import TriggerDispatchResponse, TriggerInvokeEventResponse from core.plugin.utils.http_parser import deserialize_request, serialize_request from core.trigger.entities.entities import EventEntity from core.trigger.provider import PluginTriggerProviderController @@ -124,7 +124,7 @@ class TriggerService: continue # invoke triger - invoke_response = TriggerManager.invoke_trigger_event( + invoke_response: TriggerInvokeEventResponse = TriggerManager.invoke_trigger_event( tenant_id=subscription.tenant_id, user_id=subscription.user_id, provider_id=TriggerProviderID(subscription.provider_id), @@ -132,6 +132,7 @@ class TriggerService: parameters=event_node.get("config", {}), credentials=subscription.credentials, credential_type=CredentialType.of(subscription.credential_type), + subscription=subscription.to_entity(), request=request, ) if invoke_response.cancelled: