From 93ae1b820bed2813324d5bb555e2cd5b2cc516a4 Mon Sep 17 00:00:00 2001 From: Bereket Birbo Date: Fri, 17 Oct 2025 16:05:16 -0700 Subject: [PATCH 1/3] added UAT support to TSC JWT Login --- tableauserverclient/models/tableau_auth.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tableauserverclient/models/tableau_auth.py b/tableauserverclient/models/tableau_auth.py index 82bebe385..99dd38569 100644 --- a/tableauserverclient/models/tableau_auth.py +++ b/tableauserverclient/models/tableau_auth.py @@ -198,19 +198,20 @@ class JWTAuth(Credentials): """ - def __init__(self, jwt: str, site_id: Optional[str] = None, user_id_to_impersonate: Optional[str] = None) -> None: + def __init__(self, jwt: str, isUat: Optional[bool] = False, site_id: Optional[str] = None, user_id_to_impersonate: Optional[str] = None) -> None: if jwt is None: raise TabError("Must provide a JWT token when using JWT authentication") super().__init__(site_id, user_id_to_impersonate) self.jwt = jwt + self.isUat = isUat @property def credentials(self) -> dict[str, str]: - return {"jwt": self.jwt} + return {"jwt": self.jwt, "isUat": str(self.isUat).lower()} def __repr__(self): if self.user_id_to_impersonate: uid = f", user_id_to_impersonate=f{self.user_id_to_impersonate}" else: uid = "" - return f"<{self.__class__.__qualname__} jwt={self.jwt[:5]}... (site={self.site_id}{uid})>" + return f"<{self.__class__.__qualname__} jwt={self.jwt[:5]}... isUat={self.isUat} (site={self.site_id}{uid})>" From 0d5de0decac219ba1089de1a1c96af93bfe079ac Mon Sep 17 00:00:00 2001 From: Bereket Birbo Date: Mon, 20 Oct 2025 13:41:55 -0700 Subject: [PATCH 2/3] fixed Black formatting issues --- tableauserverclient/models/tableau_auth.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tableauserverclient/models/tableau_auth.py b/tableauserverclient/models/tableau_auth.py index 99dd38569..d7bc4ff06 100644 --- a/tableauserverclient/models/tableau_auth.py +++ b/tableauserverclient/models/tableau_auth.py @@ -198,7 +198,13 @@ class JWTAuth(Credentials): """ - def __init__(self, jwt: str, isUat: Optional[bool] = False, site_id: Optional[str] = None, user_id_to_impersonate: Optional[str] = None) -> None: + def __init__( + self, + jwt: str, + isUat: Optional[bool] = False, + site_id: Optional[str] = None, + user_id_to_impersonate: Optional[str] = None, + ) -> None: if jwt is None: raise TabError("Must provide a JWT token when using JWT authentication") super().__init__(site_id, user_id_to_impersonate) From 8d034751b178394694f7b440e645273fa8b94c1f Mon Sep 17 00:00:00 2001 From: Bereket Birbo Date: Mon, 20 Oct 2025 14:28:08 -0700 Subject: [PATCH 3/3] fixed isUat type --- tableauserverclient/models/tableau_auth.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tableauserverclient/models/tableau_auth.py b/tableauserverclient/models/tableau_auth.py index d7bc4ff06..7922ff562 100644 --- a/tableauserverclient/models/tableau_auth.py +++ b/tableauserverclient/models/tableau_auth.py @@ -201,7 +201,7 @@ class JWTAuth(Credentials): def __init__( self, jwt: str, - isUat: Optional[bool] = False, + isUat: bool = False, site_id: Optional[str] = None, user_id_to_impersonate: Optional[str] = None, ) -> None: