diff --git a/api/core/helper/provider_encryption.py b/api/core/helper/provider_encryption.py index bac44629c0..98130fed58 100644 --- a/api/core/helper/provider_encryption.py +++ b/api/core/helper/provider_encryption.py @@ -91,7 +91,6 @@ class ProviderConfigEncrypter: return data - def mask_tool_credentials(self, data: dict[str, Any]) -> dict[str, Any]: return self.mask_credentials(data) diff --git a/api/core/plugin/entities/plugin.py b/api/core/plugin/entities/plugin.py index 966c1f0f23..4066c40b34 100644 --- a/api/core/plugin/entities/plugin.py +++ b/api/core/plugin/entities/plugin.py @@ -13,6 +13,7 @@ from core.plugin.entities.base import BasePluginEntity from core.plugin.entities.endpoint import EndpointProviderDeclaration from core.tools.entities.common_entities import I18nObject from core.tools.entities.tool_entities import ToolProviderEntity +from core.trigger.entities.entities import TriggerProviderEntity class PluginInstallationSource(enum.StrEnum): @@ -62,6 +63,7 @@ class PluginCategory(enum.StrEnum): Model = "model" Extension = "extension" AgentStrategy = "agent-strategy" + Trigger = "trigger" class PluginDeclaration(BaseModel): @@ -89,6 +91,7 @@ class PluginDeclaration(BaseModel): repo: Optional[str] = Field(default=None) verified: bool = Field(default=False) tool: Optional[ToolProviderEntity] = None + trigger: Optional[TriggerProviderEntity] = None model: Optional[ProviderEntity] = None endpoint: Optional[EndpointProviderDeclaration] = None agent_strategy: Optional[AgentStrategyProviderEntity] = None @@ -104,6 +107,8 @@ class PluginDeclaration(BaseModel): values["category"] = PluginCategory.Model elif values.get("agent_strategy"): values["category"] = PluginCategory.AgentStrategy + elif values.get("trigger"): + values["category"] = PluginCategory.Trigger else: values["category"] = PluginCategory.Extension return values diff --git a/api/core/trigger/entities/entities.py b/api/core/trigger/entities/entities.py index 1902164b2e..49b4945ea1 100644 --- a/api/core/trigger/entities/entities.py +++ b/api/core/trigger/entities/entities.py @@ -74,7 +74,7 @@ class TriggerIdentity(BaseModel): author: str = Field(..., description="The author of the trigger") name: str = Field(..., description="The name of the trigger") label: I18nObject = Field(..., description="The label of the trigger") - provider: str = Field(..., description="The provider of the trigger") + provider: Optional[str] = Field(default=None, description="The provider of the trigger") class TriggerDescription(BaseModel): @@ -250,6 +250,7 @@ class SubscriptionBuilderUpdater(BaseModel): if self.expires_at: subscription_builder.expires_at = self.expires_at + # Export all entities __all__ = [ "OAuthSchema", diff --git a/api/core/workflow/nodes/trigger_plugin/trigger_plugin_node.py b/api/core/workflow/nodes/trigger_plugin/trigger_plugin_node.py index c6d3978e24..a003cce903 100644 --- a/api/core/workflow/nodes/trigger_plugin/trigger_plugin_node.py +++ b/api/core/workflow/nodes/trigger_plugin/trigger_plugin_node.py @@ -62,4 +62,4 @@ class TriggerPluginNode(BaseNode): return NodeRunResult( status=WorkflowNodeExecutionStatus.SUCCEEDED, outputs={}, - ) \ No newline at end of file + )