ECO-184: use enums instead of literals

This commit is contained in:
Charles Yao 2025-11-26 13:28:23 -06:00
parent 31109735a3
commit a659cbf71d
2 changed files with 12 additions and 2 deletions

View File

@ -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

View File

@ -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