From 32292d4b39f7a1b6c9ee187b65fca9b8f2de395b Mon Sep 17 00:00:00 2001 From: Sterling Dreyer Date: Tue, 15 Jul 2025 11:21:33 -0700 Subject: [PATCH] Fix login callback (#489) --- libs/arcade-cli/arcade_cli/constants.py | 1 + libs/arcade-cli/arcade_cli/main.py | 2 +- libs/arcade-cli/arcade_cli/utils.py | 9 ++++++--- pyproject.toml | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/libs/arcade-cli/arcade_cli/constants.py b/libs/arcade-cli/arcade_cli/constants.py index 56783609..5fb7804e 100644 --- a/libs/arcade-cli/arcade_cli/constants.py +++ b/libs/arcade-cli/arcade_cli/constants.py @@ -3,6 +3,7 @@ import os PROD_CLOUD_HOST = "cloud.arcade.dev" PROD_ENGINE_HOST = "api.arcade.dev" LOCALHOST = "localhost" +LOCAL_AUTH_CALLBACK_PORT = 9905 # The path to the directory containing the Arcade configuration files. Typically ~/.arcade ARCADE_CONFIG_PATH = os.path.join(os.path.expanduser(os.getenv("ARCADE_WORK_DIR", "~")), ".arcade") diff --git a/libs/arcade-cli/arcade_cli/main.py b/libs/arcade-cli/arcade_cli/main.py index b1ff3712..4f0c7699 100644 --- a/libs/arcade-cli/arcade_cli/main.py +++ b/libs/arcade-cli/arcade_cli/main.py @@ -100,7 +100,7 @@ def login( help="The port of the Arcade Cloud host (if running locally).", ), callback_host: str = typer.Option( - "localhost", + None, "--callback-host", help="The host to use to complete the auth flow - this should be the same as the host that the CLI is running on. Include the port if needed.", ), diff --git a/libs/arcade-cli/arcade_cli/utils.py b/libs/arcade-cli/arcade_cli/utils.py index 707859a0..40b8e7ff 100644 --- a/libs/arcade-cli/arcade_cli/utils.py +++ b/libs/arcade-cli/arcade_cli/utils.py @@ -32,7 +32,7 @@ from rich.text import Text from typer.core import TyperGroup from typer.models import Context -from arcade_cli.constants import LOCALHOST +from arcade_cli.constants import LOCAL_AUTH_CALLBACK_PORT, LOCALHOST console = Console() @@ -188,9 +188,12 @@ def compute_login_url( else: callback_uri = callback_host if not callback_uri.rstrip("/").endswith("/callback"): - callback_uri = callback_uri.rstrip("/") + "/callback" + if port: + callback_uri = callback_uri.rstrip("/") + f":{port}" + "/callback" + else: + callback_uri = callback_uri.rstrip("/") + "/callback" else: - callback_uri = f"http://{LOCALHOST}:9905/callback" + callback_uri = f"http://{LOCALHOST}:{LOCAL_AUTH_CALLBACK_PORT}/callback" params = urlencode({"callback_uri": callback_uri, "state": state}) diff --git a/pyproject.toml b/pyproject.toml index c73b4732..26a1c9a1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "arcade-ai" -version = "2.0.5" +version = "2.0.6" description = "Arcade.dev - Tool Calling platform for Agents" readme = "README.md" license = {file = "LICENSE"}