workos 5.31.0__py3-none-any.whl → 5.31.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- workos/__about__.py +1 -1
- workos/exceptions.py +18 -0
- workos/user_management.py +5 -11
- workos/utils/_base_http_client.py +6 -0
- {workos-5.31.0.dist-info → workos-5.31.2.dist-info}/METADATA +1 -1
- {workos-5.31.0.dist-info → workos-5.31.2.dist-info}/RECORD +9 -9
- {workos-5.31.0.dist-info → workos-5.31.2.dist-info}/LICENSE +0 -0
- {workos-5.31.0.dist-info → workos-5.31.2.dist-info}/WHEEL +0 -0
- {workos-5.31.0.dist-info → workos-5.31.2.dist-info}/top_level.txt +0 -0
workos/__about__.py
CHANGED
workos/exceptions.py
CHANGED
|
@@ -45,6 +45,24 @@ class AuthorizationException(BaseRequestException):
|
|
|
45
45
|
pass
|
|
46
46
|
|
|
47
47
|
|
|
48
|
+
class EmailVerificationRequiredException(AuthorizationException):
|
|
49
|
+
"""Raised when email verification is required before authentication.
|
|
50
|
+
|
|
51
|
+
This exception includes an email_verification_id field that can be used
|
|
52
|
+
to retrieve the email verification object or resend the verification email.
|
|
53
|
+
"""
|
|
54
|
+
|
|
55
|
+
def __init__(
|
|
56
|
+
self,
|
|
57
|
+
response: httpx.Response,
|
|
58
|
+
response_json: Optional[Mapping[str, Any]],
|
|
59
|
+
) -> None:
|
|
60
|
+
super().__init__(response, response_json)
|
|
61
|
+
self.email_verification_id = self.extract_from_json(
|
|
62
|
+
"email_verification_id", None
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
|
|
48
66
|
class AuthenticationException(BaseRequestException):
|
|
49
67
|
pass
|
|
50
68
|
|
workos/user_management.py
CHANGED
|
@@ -739,9 +739,7 @@ class UserManagementModule(Protocol):
|
|
|
739
739
|
order: Optional[PaginationOrder] = "desc",
|
|
740
740
|
) -> SyncOrAsync["SessionsListResource"]: ...
|
|
741
741
|
|
|
742
|
-
def revoke_session(
|
|
743
|
-
self, *, session_id: str
|
|
744
|
-
) -> SyncOrAsync[UserManagementSession]: ...
|
|
742
|
+
def revoke_session(self, *, session_id: str) -> SyncOrAsync[None]: ...
|
|
745
743
|
|
|
746
744
|
def get_magic_auth(self, magic_auth_id: str) -> SyncOrAsync[MagicAuth]:
|
|
747
745
|
"""Get the details of a Magic Auth object.
|
|
@@ -1439,15 +1437,13 @@ class UserManagement(UserManagementModule):
|
|
|
1439
1437
|
**ListPage[UserManagementSession](**response).model_dump(),
|
|
1440
1438
|
)
|
|
1441
1439
|
|
|
1442
|
-
def revoke_session(self, *, session_id: str) ->
|
|
1440
|
+
def revoke_session(self, *, session_id: str) -> None:
|
|
1443
1441
|
json = {"session_id": session_id}
|
|
1444
1442
|
|
|
1445
|
-
|
|
1443
|
+
self._http_client.request(
|
|
1446
1444
|
SESSIONS_REVOKE_PATH, method=REQUEST_METHOD_POST, json=json
|
|
1447
1445
|
)
|
|
1448
1446
|
|
|
1449
|
-
return UserManagementSession.model_validate(response)
|
|
1450
|
-
|
|
1451
1447
|
def enroll_auth_factor(
|
|
1452
1448
|
self,
|
|
1453
1449
|
*,
|
|
@@ -2143,15 +2139,13 @@ class AsyncUserManagement(UserManagementModule):
|
|
|
2143
2139
|
**ListPage[UserManagementSession](**response).model_dump(),
|
|
2144
2140
|
)
|
|
2145
2141
|
|
|
2146
|
-
async def revoke_session(self, *, session_id: str) ->
|
|
2142
|
+
async def revoke_session(self, *, session_id: str) -> None:
|
|
2147
2143
|
json = {"session_id": session_id}
|
|
2148
2144
|
|
|
2149
|
-
|
|
2145
|
+
await self._http_client.request(
|
|
2150
2146
|
SESSIONS_REVOKE_PATH, method=REQUEST_METHOD_POST, json=json
|
|
2151
2147
|
)
|
|
2152
2148
|
|
|
2153
|
-
return UserManagementSession.model_validate(response)
|
|
2154
|
-
|
|
2155
2149
|
async def enroll_auth_factor(
|
|
2156
2150
|
self,
|
|
2157
2151
|
*,
|
|
@@ -20,6 +20,7 @@ from workos.exceptions import (
|
|
|
20
20
|
ServerException,
|
|
21
21
|
AuthenticationException,
|
|
22
22
|
AuthorizationException,
|
|
23
|
+
EmailVerificationRequiredException,
|
|
23
24
|
NotFoundException,
|
|
24
25
|
BadRequestException,
|
|
25
26
|
)
|
|
@@ -99,6 +100,11 @@ class BaseHTTPClient(Generic[_HttpxClientT]):
|
|
|
99
100
|
if status_code == 401:
|
|
100
101
|
raise AuthenticationException(response, response_json)
|
|
101
102
|
elif status_code == 403:
|
|
103
|
+
if (
|
|
104
|
+
response_json is not None
|
|
105
|
+
and response_json.get("code") == "email_verification_required"
|
|
106
|
+
):
|
|
107
|
+
raise EmailVerificationRequiredException(response, response_json)
|
|
102
108
|
raise AuthorizationException(response, response_json)
|
|
103
109
|
elif status_code == 404:
|
|
104
110
|
raise NotFoundException(response, response_json)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
workos/__about__.py,sha256
|
|
1
|
+
workos/__about__.py,sha256=-HWB0OGuzIK0-LUXp7gcRtOCm0T1UTv1YlBlbBKYd2A,406
|
|
2
2
|
workos/__init__.py,sha256=hOdbO_MJCvpLx8EbRjQg-fvFAB-glJmrmxUZK8kWG0k,167
|
|
3
3
|
workos/_base_client.py,sha256=YWLXBpd0YeID3WKYZkKa4l9ZuB9e6HgdLmPKZIzXsME,3599
|
|
4
4
|
workos/_client_configuration.py,sha256=g3eXhtrEMN6CW0hZ5uHb2PmLurXjyBkWZeQYMPeJD6s,222
|
|
@@ -7,7 +7,7 @@ workos/audit_logs.py,sha256=bYoAoNO4FRSaT34UxiVkgTXCVH8givcS2YGhH_9O3NA,3983
|
|
|
7
7
|
workos/client.py,sha256=hIm87iNtKfwQ93H5aRXnhTqUJIOzUEG1GX0jdLBLAYc,4345
|
|
8
8
|
workos/directory_sync.py,sha256=6Z1gHz1LWNy56EtkXwNm6jhRRcvsJ7ASeDLy_Q1oKM0,14601
|
|
9
9
|
workos/events.py,sha256=b4JIzMbd5LlVtpOMKVojC70RCHAgmLN3nJ62_2U0GwI,3892
|
|
10
|
-
workos/exceptions.py,sha256=
|
|
10
|
+
workos/exceptions.py,sha256=wYDlbMLVxrKQTF0M6ExFlxS5YEkvNZ4BeWLryRxcAFs,2335
|
|
11
11
|
workos/fga.py,sha256=qjZrdkXKwJDLVTMMrOADxyXRDkswto4kGIdtTjtS3hw,21008
|
|
12
12
|
workos/mfa.py,sha256=J8eOr4ZEmK0TPFKD7pabSalgCFCyg3XJY1stu28_8Vw,6862
|
|
13
13
|
workos/organization_domains.py,sha256=um-dm54SIs2Kd2FxqxVjIlynlenAG9NamQmNVUGOQ0k,5464
|
|
@@ -17,7 +17,7 @@ workos/portal.py,sha256=lzf3fnOor4AyVdHCHMuJzVSpAC9LWWdC5sZIRtCsb0c,2443
|
|
|
17
17
|
workos/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
18
|
workos/session.py,sha256=Fh9Y7fyjoX_cK2TayhNzpL725pwrNg-QClsgEfuMZsU,12412
|
|
19
19
|
workos/sso.py,sha256=ZBC3y-IRmxG0jPd0BOj7s7XQkXJoTLUg1fx-h3Gfy4g,13541
|
|
20
|
-
workos/user_management.py,sha256=
|
|
20
|
+
workos/user_management.py,sha256=n2xaPiv3t38ckWApNZyNKXbv2EQorxgoPhljd-5ekys,81963
|
|
21
21
|
workos/vault.py,sha256=SJXr3nJ03qJFuf30FjevMD6LLlDNX3MGaKlYGgICRRE,15657
|
|
22
22
|
workos/webhooks.py,sha256=CuwBxh6va9VZFVSXOknveGt6CCGDF3em07a-J12DbXI,4790
|
|
23
23
|
workos/widgets.py,sha256=bfbR0hQOHZabbgGL2ekD5sY1sjiUoWBTdrBd_a6WmBc,1721
|
|
@@ -123,13 +123,13 @@ workos/typing/sync_or_async.py,sha256=O-a-bWqxN5A-UkSC3pOvPgDCGUY5gMD-NNny4HdISe
|
|
|
123
123
|
workos/typing/untyped_literal.py,sha256=wf48_6kZJ-AN3-V2gLC_y5k2tnUvgGnhn89HsfOKNTM,1463
|
|
124
124
|
workos/typing/webhooks.py,sha256=8GhUnrlGrgQbknh32tVtHxeR8FsXsJesW94CtZiB-_4,534
|
|
125
125
|
workos/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
126
|
-
workos/utils/_base_http_client.py,sha256=
|
|
126
|
+
workos/utils/_base_http_client.py,sha256=tX2RAk2Mc2oHPTpzIft4-Tss8-vOJZUjmHcQ9cjpwOs,7705
|
|
127
127
|
workos/utils/crypto_provider.py,sha256=QeQSR4t9xLlb90kEfl8onVUsf1yCkYq0EjFTxK0mUlk,1182
|
|
128
128
|
workos/utils/http_client.py,sha256=TM5yMFFExmAE8D2Z43-5O301tRbnylLG0aXO0isGorE,6197
|
|
129
129
|
workos/utils/pagination_order.py,sha256=_-et1DDJLG0czarTU7op4W6RA0V1f85GNsUgtyRU55Q,70
|
|
130
130
|
workos/utils/request_helper.py,sha256=NaO16qPPbSNnCeE0fiNKYb8gM-dK_okYVJbLGrEGXz8,793
|
|
131
|
-
workos-5.31.
|
|
132
|
-
workos-5.31.
|
|
133
|
-
workos-5.31.
|
|
134
|
-
workos-5.31.
|
|
135
|
-
workos-5.31.
|
|
131
|
+
workos-5.31.2.dist-info/LICENSE,sha256=mU--WL1JzelH2tXpKVoOlpud4cpqKSRTtdArCvYZmb4,1063
|
|
132
|
+
workos-5.31.2.dist-info/METADATA,sha256=yyDH3OsYVz7dO51lDJlHT7cbTnVFBIwCZyCesROGDJI,4187
|
|
133
|
+
workos-5.31.2.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
134
|
+
workos-5.31.2.dist-info/top_level.txt,sha256=ZFskIfue1Tw-JwjyIXRvdsAl9i0DX9VbqmgICXV84Sk,7
|
|
135
|
+
workos-5.31.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|