From dfaf6397904df37a1afba98de4a8976e8309c374 Mon Sep 17 00:00:00 2001 From: Yeuoly Date: Wed, 9 Oct 2024 22:58:36 +0800 Subject: [PATCH] feat: support endpoint url template --- api/configs/feature/__init__.py | 4 ++++ api/core/plugin/entities/endpoint.py | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/api/configs/feature/__init__.py b/api/configs/feature/__init__.py index a846c0446c..dc17571ca0 100644 --- a/api/configs/feature/__init__.py +++ b/api/configs/feature/__init__.py @@ -164,6 +164,10 @@ class EndpointConfig(BaseSettings): default="", ) + ENDPOINT_URL_TEMPLATE: str = Field( + description="Template url for endpoint plugin", default="http://localhost:5002/e/{hook_id}" + ) + class FileAccessConfig(BaseSettings): """ diff --git a/api/core/plugin/entities/endpoint.py b/api/core/plugin/entities/endpoint.py index b1a203b39c..976ef6de96 100644 --- a/api/core/plugin/entities/endpoint.py +++ b/api/core/plugin/entities/endpoint.py @@ -1,7 +1,8 @@ from datetime import datetime -from pydantic import BaseModel, Field +from pydantic import BaseModel, Field, model_validator +from configs import dify_config from core.entities.provider_entities import ProviderConfig from core.plugin.entities.base import BasePluginEntity @@ -21,8 +22,18 @@ class EndpointEntity(BasePluginEntity): settings: dict name: str + enabled: bool + url: str hook_id: str tenant_id: str plugin_id: str expired_at: datetime declaration: EndpointDeclaration = Field(default_factory=EndpointDeclaration) + + @model_validator(mode="before") + @classmethod + def render_url_template(cls, values): + if "url" not in values: + url_template = dify_config.ENDPOINT_URL_TEMPLATE + values["url"] = url_template.replace("{hook_id}", values["hook_id"]) + return values