diff --git a/api/core/plugin/entities/plugin.py b/api/core/plugin/entities/plugin.py index 71bd55df83..1b521d0ff7 100644 --- a/api/core/plugin/entities/plugin.py +++ b/api/core/plugin/entities/plugin.py @@ -109,7 +109,7 @@ class PluginDeclaration(BaseModel): endpoint: EndpointProviderDeclaration | None = None agent_strategy: AgentStrategyProviderEntity | None = None datasource: DatasourceProviderEntity | None = None - trigger: Optional[TriggerProviderEntity] = None + trigger: TriggerProviderEntity | None = None meta: Meta @field_validator("version") diff --git a/api/core/trigger/entities/entities.py b/api/core/trigger/entities/entities.py index 63eaf20f17..5f70bdeae2 100644 --- a/api/core/trigger/entities/entities.py +++ b/api/core/trigger/entities/entities.py @@ -3,7 +3,7 @@ from datetime import datetime from enum import StrEnum from typing import Any, Optional, Union -from pydantic import BaseModel, ConfigDict, Field +from pydantic import BaseModel, ConfigDict, Field, ValidationInfo, field_validator from core.entities.provider_entities import ProviderConfig from core.plugin.entities.parameters import ( @@ -89,12 +89,19 @@ class EventEntity(BaseModel): """ identity: EventIdentity = Field(..., description="The identity of the event") - parameters: list[EventParameter] = Field(default_factory=list, description="The parameters of the event") + parameters: list[EventParameter] = Field( + default_factory=list[EventParameter], description="The parameters of the event" + ) description: I18nObject = Field(..., description="The description of the event") output_schema: Optional[Mapping[str, Any]] = Field( default=None, description="The output schema that this event produces" ) + @field_validator("parameters", mode="before") + @classmethod + def set_parameters(cls, v, validation_info: ValidationInfo) -> list[EventParameter]: + return v or [] + class OAuthSchema(BaseModel): client_schema: list[ProviderConfig] = Field(default_factory=list, description="The schema of the OAuth client")