Skip to content

Commit a9b256c

Browse files
fix: redirect_uris params should accept objects, not strings
The API expects redirect_uris as an array of {uri, default} objects, not plain strings. Added RedirectUriInput TypedDict and updated create_application/update_application signatures to match. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 5a04c49 commit a9b256c

File tree

3 files changed

+17
-8
lines changed

3 files changed

+17
-8
lines changed

src/workos/connect.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from workos.types.connect import ClientSecret, ConnectApplication
44
from workos.types.connect.connect_application import ApplicationType
55
from workos.types.connect.list_filters import ConnectApplicationListFilters
6+
from workos.types.connect.redirect_uri_input import RedirectUriInput
67
from workos.types.list_resource import ListMetadata, ListPage, WorkOSListResource
78
from workos.typing.sync_or_async import SyncOrAsync
89
from workos.utils.http_client import AsyncHTTPClient, SyncHTTPClient
@@ -68,7 +69,7 @@ def create_application(
6869
is_first_party: bool,
6970
description: Optional[str] = None,
7071
scopes: Optional[Sequence[str]] = None,
71-
redirect_uris: Optional[Sequence[str]] = None,
72+
redirect_uris: Optional[Sequence[RedirectUriInput]] = None,
7273
uses_pkce: Optional[bool] = None,
7374
organization_id: Optional[str] = None,
7475
) -> SyncOrAsync[ConnectApplication]:
@@ -96,7 +97,7 @@ def update_application(
9697
name: Optional[str] = None,
9798
description: Optional[str] = None,
9899
scopes: Optional[Sequence[str]] = None,
99-
redirect_uris: Optional[Sequence[str]] = None,
100+
redirect_uris: Optional[Sequence[RedirectUriInput]] = None,
100101
) -> SyncOrAsync[ConnectApplication]:
101102
"""Update a connect application.
102103
@@ -213,7 +214,7 @@ def create_application(
213214
is_first_party: bool,
214215
description: Optional[str] = None,
215216
scopes: Optional[Sequence[str]] = None,
216-
redirect_uris: Optional[Sequence[str]] = None,
217+
redirect_uris: Optional[Sequence[RedirectUriInput]] = None,
217218
uses_pkce: Optional[bool] = None,
218219
organization_id: Optional[str] = None,
219220
) -> ConnectApplication:
@@ -243,7 +244,7 @@ def update_application(
243244
name: Optional[str] = None,
244245
description: Optional[str] = None,
245246
scopes: Optional[Sequence[str]] = None,
246-
redirect_uris: Optional[Sequence[str]] = None,
247+
redirect_uris: Optional[Sequence[RedirectUriInput]] = None,
247248
) -> ConnectApplication:
248249
json = {
249250
"name": name,
@@ -346,7 +347,7 @@ async def create_application(
346347
is_first_party: bool,
347348
description: Optional[str] = None,
348349
scopes: Optional[Sequence[str]] = None,
349-
redirect_uris: Optional[Sequence[str]] = None,
350+
redirect_uris: Optional[Sequence[RedirectUriInput]] = None,
350351
uses_pkce: Optional[bool] = None,
351352
organization_id: Optional[str] = None,
352353
) -> ConnectApplication:
@@ -376,7 +377,7 @@ async def update_application(
376377
name: Optional[str] = None,
377378
description: Optional[str] = None,
378379
scopes: Optional[Sequence[str]] = None,
379-
redirect_uris: Optional[Sequence[str]] = None,
380+
redirect_uris: Optional[Sequence[RedirectUriInput]] = None,
380381
) -> ConnectApplication:
381382
json = {
382383
"name": name,
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from typing import Optional
2+
3+
from typing_extensions import TypedDict
4+
5+
6+
class RedirectUriInput(TypedDict, total=False):
7+
uri: str
8+
default: Optional[bool]

tests/test_connect.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ def test_create_oauth_application(
139139
name="Test Application",
140140
application_type="oauth",
141141
is_first_party=True,
142-
redirect_uris=["https://example.com/callback"],
142+
redirect_uris=[{"uri": "https://example.com/callback", "default": True}],
143143
uses_pkce=True,
144144
)
145145
)
@@ -148,7 +148,7 @@ def test_create_oauth_application(
148148
assert request_kwargs["method"] == "post"
149149
assert request_kwargs["json"]["application_type"] == "oauth"
150150
assert request_kwargs["json"]["redirect_uris"] == [
151-
"https://example.com/callback"
151+
{"uri": "https://example.com/callback", "default": True}
152152
]
153153

154154
def test_update_application(

0 commit comments

Comments
 (0)