From a659cbf71de3a4753c392d188cfa1f7879b9c911 Mon Sep 17 00:00:00 2001 From: Charles Yao Date: Wed, 26 Nov 2025 13:28:23 -0600 Subject: [PATCH] ECO-184: use enums instead of literals --- api/core/tools/entities/tool_entities.py | 10 ++++++++++ api/core/workflow/nodes/tool/entities.py | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/api/core/tools/entities/tool_entities.py b/api/core/tools/entities/tool_entities.py index 353f3a646a..d559f52b2e 100644 --- a/api/core/tools/entities/tool_entities.py +++ b/api/core/tools/entities/tool_entities.py @@ -123,6 +123,16 @@ class ApiProviderAuthType(StrEnum): raise ValueError(f"invalid mode value '{value}', expected one of: {valid}") +class ToolAuthType(StrEnum): + """ + Enum class for tool authentication type. + Determines whether OAuth credentials are workspace-level or end-user-level. + """ + + WORKSPACE = "workspace" + END_USER = "end_user" + + class ToolInvokeMessage(BaseModel): class TextMessage(BaseModel): text: str diff --git a/api/core/workflow/nodes/tool/entities.py b/api/core/workflow/nodes/tool/entities.py index bf7b56e147..e7863f7109 100644 --- a/api/core/workflow/nodes/tool/entities.py +++ b/api/core/workflow/nodes/tool/entities.py @@ -3,7 +3,7 @@ from typing import Any, Literal, Union from pydantic import BaseModel, field_validator from pydantic_core.core_schema import ValidationInfo -from core.tools.entities.tool_entities import ToolProviderType +from core.tools.entities.tool_entities import ToolAuthType, ToolProviderType from core.workflow.nodes.base.entities import BaseNodeData @@ -16,7 +16,7 @@ class ToolEntity(BaseModel): tool_configurations: dict[str, Any] credential_id: str | None = None plugin_unique_identifier: str | None = None # redundancy - auth_type: Literal["workspace", "end_user"] = "workspace" # OAuth authentication level + auth_type: ToolAuthType = ToolAuthType.WORKSPACE # OAuth authentication level @field_validator("tool_configurations", mode="before") @classmethod