From b928f524455238aeb57911ef04a57555657a6e85 Mon Sep 17 00:00:00 2001 From: emmithood Date: Thu, 12 Feb 2026 11:05:43 -0800 Subject: [PATCH] Add Attio wellknown auth class (#769) Add Attio to the wellknown OAuth2 provider classes so toolkits can use Attio(scopes=[...]) instead of OAuth2(id=..., scopes=[...]). --------- Co-authored-by: Eric Gustin --- libs/arcade-core/arcade_core/auth.py | 9 +++++++++ libs/arcade-core/pyproject.toml | 2 +- .../arcade-mcp-server/arcade_mcp_server/auth/__init__.py | 2 ++ libs/arcade-mcp-server/pyproject.toml | 4 ++-- libs/arcade-tdk/arcade_tdk/auth/__init__.py | 2 ++ libs/arcade-tdk/pyproject.toml | 4 ++-- 6 files changed, 18 insertions(+), 5 deletions(-) diff --git a/libs/arcade-core/arcade_core/auth.py b/libs/arcade-core/arcade_core/auth.py index a6b53dc5..fc0dc1af 100644 --- a/libs/arcade-core/arcade_core/auth.py +++ b/libs/arcade-core/arcade_core/auth.py @@ -51,6 +51,15 @@ class Atlassian(OAuth2): super().__init__(id=id, scopes=scopes) +class Attio(OAuth2): + """Marks a tool as requiring Attio authorization.""" + + provider_id: str = "attio" + + def __init__(self, *, id: Optional[str] = None, scopes: Optional[list[str]] = None): # noqa: A002 + super().__init__(id=id, scopes=scopes) + + class ClickUp(OAuth2): """Marks a tool as requiring ClickUp authorization.""" diff --git a/libs/arcade-core/pyproject.toml b/libs/arcade-core/pyproject.toml index 3227bebd..acb34320 100644 --- a/libs/arcade-core/pyproject.toml +++ b/libs/arcade-core/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "arcade-core" -version = "4.2.3" +version = "4.3.0" description = "Arcade Core - Core library for Arcade platform" readme = "README.md" license = { text = "MIT" } diff --git a/libs/arcade-mcp-server/arcade_mcp_server/auth/__init__.py b/libs/arcade-mcp-server/arcade_mcp_server/auth/__init__.py index 19e0de1a..593a3619 100644 --- a/libs/arcade-mcp-server/arcade_mcp_server/auth/__init__.py +++ b/libs/arcade-mcp-server/arcade_mcp_server/auth/__init__.py @@ -1,6 +1,7 @@ from arcade_core.auth import ( Asana, Atlassian, + Attio, ClickUp, Discord, Dropbox, @@ -26,6 +27,7 @@ from arcade_core.auth import ( __all__ = [ "Asana", "Atlassian", + "Attio", "ClickUp", "Discord", "Dropbox", diff --git a/libs/arcade-mcp-server/pyproject.toml b/libs/arcade-mcp-server/pyproject.toml index a06edb20..eb8bdd1a 100644 --- a/libs/arcade-mcp-server/pyproject.toml +++ b/libs/arcade-mcp-server/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "arcade-mcp-server" -version = "1.15.2" +version = "1.16.0" description = "Model Context Protocol (MCP) server framework for Arcade.dev" readme = "README.md" authors = [{ name = "Arcade.dev" }] @@ -21,7 +21,7 @@ classifiers = [ ] requires-python = ">=3.10" dependencies = [ - "arcade-core>=4.2.2,<5.0.0", + "arcade-core>=4.3.0,<5.0.0", "arcade-serve>=3.2.0,<4.0.0", "arcade-tdk>=3.4.0,<4.0.0", "arcadepy>=1.5.0", diff --git a/libs/arcade-tdk/arcade_tdk/auth/__init__.py b/libs/arcade-tdk/arcade_tdk/auth/__init__.py index 7432659f..17a86114 100644 --- a/libs/arcade-tdk/arcade_tdk/auth/__init__.py +++ b/libs/arcade-tdk/arcade_tdk/auth/__init__.py @@ -1,6 +1,7 @@ from arcade_core.auth import ( Asana, Atlassian, + Attio, ClickUp, Discord, Dropbox, @@ -26,6 +27,7 @@ from arcade_core.auth import ( __all__ = [ "Asana", "Atlassian", + "Attio", "ClickUp", "Discord", "Dropbox", diff --git a/libs/arcade-tdk/pyproject.toml b/libs/arcade-tdk/pyproject.toml index 5dd55831..16eb7299 100644 --- a/libs/arcade-tdk/pyproject.toml +++ b/libs/arcade-tdk/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "arcade-tdk" -version = "3.4.0" +version = "3.5.0" description = "Arcade TDK - Toolkit Development Kit for building Arcade tools" readme = "README.md" license = { text = "MIT" } @@ -16,7 +16,7 @@ classifiers = [ "Programming Language :: Python :: 3.13", ] requires-python = ">=3.10" -dependencies = ["arcade-core>=4.1.0,<5.0.0", "pydantic>=2.7.0"] +dependencies = ["arcade-core>=4.3.0,<5.0.0", "pydantic>=2.7.0"] [project.optional-dependencies] dev = [