workos 5.20.2__py3-none-any.whl → 5.22.0__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/fga.py +7 -3
- workos/types/fga/__init__.py +1 -0
- workos/types/fga/check.py +2 -0
- workos/types/fga/warnings.py +33 -0
- workos/user_management.py +6 -0
- {workos-5.20.2.dist-info → workos-5.22.0.dist-info}/METADATA +1 -1
- {workos-5.20.2.dist-info → workos-5.22.0.dist-info}/RECORD +11 -10
- {workos-5.20.2.dist-info → workos-5.22.0.dist-info}/LICENSE +0 -0
- {workos-5.20.2.dist-info → workos-5.22.0.dist-info}/WHEEL +0 -0
- {workos-5.20.2.dist-info → workos-5.22.0.dist-info}/top_level.txt +0 -0
workos/__about__.py
CHANGED
workos/fga.py
CHANGED
|
@@ -11,6 +11,7 @@ from workos.types.fga import (
|
|
|
11
11
|
WarrantWriteOperation,
|
|
12
12
|
WriteWarrantResponse,
|
|
13
13
|
WarrantQueryResult,
|
|
14
|
+
FGAWarning,
|
|
14
15
|
)
|
|
15
16
|
from workos.types.fga.list_filters import (
|
|
16
17
|
AuthorizationResourceListFilters,
|
|
@@ -45,9 +46,11 @@ AuthorizationResourceTypeListResource = WorkOSListResource[
|
|
|
45
46
|
|
|
46
47
|
WarrantListResource = WorkOSListResource[Warrant, WarrantListFilters, ListMetadata]
|
|
47
48
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
]
|
|
49
|
+
|
|
50
|
+
class WarrantQueryListResource(
|
|
51
|
+
WorkOSListResource[WarrantQueryResult, WarrantQueryListFilters, ListMetadata]
|
|
52
|
+
):
|
|
53
|
+
warnings: Optional[Sequence[FGAWarning]] = None
|
|
51
54
|
|
|
52
55
|
|
|
53
56
|
class FGAModule(Protocol):
|
|
@@ -641,5 +644,6 @@ class FGA(FGAModule):
|
|
|
641
644
|
return WarrantQueryListResource(
|
|
642
645
|
list_method=self.query,
|
|
643
646
|
list_args=list_params,
|
|
647
|
+
warnings=response.get("warnings"),
|
|
644
648
|
**ListPage[WarrantQueryResult](**response).model_dump(),
|
|
645
649
|
)
|
workos/types/fga/__init__.py
CHANGED
workos/types/fga/check.py
CHANGED
|
@@ -3,6 +3,7 @@ from typing import Any, Literal, Mapping, Optional, Sequence, TypedDict
|
|
|
3
3
|
from workos.types.workos_model import WorkOSModel
|
|
4
4
|
from workos.typing.literals import LiteralOrUntyped
|
|
5
5
|
|
|
6
|
+
from .warnings import FGAWarning
|
|
6
7
|
from .warrant import Subject, SubjectInput
|
|
7
8
|
|
|
8
9
|
CheckOperation = Literal["any_of", "all_of", "batch"]
|
|
@@ -44,6 +45,7 @@ class CheckResponse(WorkOSModel):
|
|
|
44
45
|
result: LiteralOrUntyped[CheckResult]
|
|
45
46
|
is_implicit: bool
|
|
46
47
|
debug_info: Optional[DebugInfo] = None
|
|
48
|
+
warnings: Optional[Sequence[FGAWarning]] = None
|
|
47
49
|
|
|
48
50
|
def authorized(self) -> bool:
|
|
49
51
|
return self.result == "authorized"
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
from typing import Sequence, Union, Any, Dict, Literal
|
|
2
|
+
from typing_extensions import Annotated
|
|
3
|
+
|
|
4
|
+
from pydantic import BeforeValidator
|
|
5
|
+
from pydantic_core.core_schema import ValidationInfo
|
|
6
|
+
|
|
7
|
+
from workos.types.workos_model import WorkOSModel
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class FGABaseWarning(WorkOSModel):
|
|
11
|
+
code: str
|
|
12
|
+
message: str
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class MissingContextKeysWarning(FGABaseWarning):
|
|
16
|
+
code: Literal["missing_context_keys"]
|
|
17
|
+
keys: Sequence[str]
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def fga_warning_dispatch_validator(
|
|
21
|
+
value: Dict[str, Any], info: ValidationInfo
|
|
22
|
+
) -> FGABaseWarning:
|
|
23
|
+
if value.get("code") == "missing_context_keys":
|
|
24
|
+
return MissingContextKeysWarning.model_validate(value)
|
|
25
|
+
|
|
26
|
+
# Fallback to the base warning model
|
|
27
|
+
return FGABaseWarning.model_validate(value)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
FGAWarning = Annotated[
|
|
31
|
+
Union[MissingContextKeysWarning, FGABaseWarning],
|
|
32
|
+
BeforeValidator(fga_warning_dispatch_validator),
|
|
33
|
+
]
|
workos/user_management.py
CHANGED
|
@@ -207,6 +207,7 @@ class UserManagementModule(Protocol):
|
|
|
207
207
|
self,
|
|
208
208
|
*,
|
|
209
209
|
user_id: str,
|
|
210
|
+
email: Optional[str] = None,
|
|
210
211
|
first_name: Optional[str] = None,
|
|
211
212
|
last_name: Optional[str] = None,
|
|
212
213
|
email_verified: Optional[bool] = None,
|
|
@@ -222,6 +223,7 @@ class UserManagementModule(Protocol):
|
|
|
222
223
|
user_id (str): The User unique identifier
|
|
223
224
|
first_name (str): The user's first name. (Optional)
|
|
224
225
|
last_name (str): The user's last name. (Optional)
|
|
226
|
+
email (str): The user's email. (Optional)
|
|
225
227
|
email_verified (bool): Whether the user's email address was previously verified. (Optional)
|
|
226
228
|
password (str): The password to set for the user. (Optional)
|
|
227
229
|
password_hash (str): The hashed password to set for the user, used when migrating from another user store. Mutually exclusive with password. (Optional)
|
|
@@ -949,6 +951,7 @@ class UserManagement(UserManagementModule):
|
|
|
949
951
|
user_id: str,
|
|
950
952
|
first_name: Optional[str] = None,
|
|
951
953
|
last_name: Optional[str] = None,
|
|
954
|
+
email: Optional[str] = None,
|
|
952
955
|
email_verified: Optional[bool] = None,
|
|
953
956
|
password: Optional[str] = None,
|
|
954
957
|
password_hash: Optional[str] = None,
|
|
@@ -959,6 +962,7 @@ class UserManagement(UserManagementModule):
|
|
|
959
962
|
json = {
|
|
960
963
|
"first_name": first_name,
|
|
961
964
|
"last_name": last_name,
|
|
965
|
+
"email": email,
|
|
962
966
|
"email_verified": email_verified,
|
|
963
967
|
"password": password,
|
|
964
968
|
"password_hash": password_hash,
|
|
@@ -1574,6 +1578,7 @@ class AsyncUserManagement(UserManagementModule):
|
|
|
1574
1578
|
user_id: str,
|
|
1575
1579
|
first_name: Optional[str] = None,
|
|
1576
1580
|
last_name: Optional[str] = None,
|
|
1581
|
+
email: Optional[str] = None,
|
|
1577
1582
|
email_verified: Optional[bool] = None,
|
|
1578
1583
|
password: Optional[str] = None,
|
|
1579
1584
|
password_hash: Optional[str] = None,
|
|
@@ -1584,6 +1589,7 @@ class AsyncUserManagement(UserManagementModule):
|
|
|
1584
1589
|
json = {
|
|
1585
1590
|
"first_name": first_name,
|
|
1586
1591
|
"last_name": last_name,
|
|
1592
|
+
"email": email,
|
|
1587
1593
|
"email_verified": email_verified,
|
|
1588
1594
|
"password": password,
|
|
1589
1595
|
"password_hash": password_hash,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
workos/__about__.py,sha256
|
|
1
|
+
workos/__about__.py,sha256=-LhrSzsxIj6x697zJZxh3basnikBr-rzM2cFQFV5aFA,406
|
|
2
2
|
workos/__init__.py,sha256=hOdbO_MJCvpLx8EbRjQg-fvFAB-glJmrmxUZK8kWG0k,167
|
|
3
3
|
workos/_base_client.py,sha256=t69Nb3zxo3wygI3JtbPdZMGvIuRPsZx_xZANC5K8dn8,3429
|
|
4
4
|
workos/_client_configuration.py,sha256=g3eXhtrEMN6CW0hZ5uHb2PmLurXjyBkWZeQYMPeJD6s,222
|
|
@@ -8,7 +8,7 @@ workos/client.py,sha256=ESweUKW2ju5dPGFCTUMxjVYgh2txoZ3ZVbxy81i0JcI,3747
|
|
|
8
8
|
workos/directory_sync.py,sha256=6Z1gHz1LWNy56EtkXwNm6jhRRcvsJ7ASeDLy_Q1oKM0,14601
|
|
9
9
|
workos/events.py,sha256=b4JIzMbd5LlVtpOMKVojC70RCHAgmLN3nJ62_2U0GwI,3892
|
|
10
10
|
workos/exceptions.py,sha256=eoy-T4We98HKZn0UZu33fPzhm4DwafzwLeg3juhC6FE,1732
|
|
11
|
-
workos/fga.py,sha256=
|
|
11
|
+
workos/fga.py,sha256=qjZrdkXKwJDLVTMMrOADxyXRDkswto4kGIdtTjtS3hw,21008
|
|
12
12
|
workos/mfa.py,sha256=J8eOr4ZEmK0TPFKD7pabSalgCFCyg3XJY1stu28_8Vw,6862
|
|
13
13
|
workos/organizations.py,sha256=ugPRhwN8cN2O6qOCf7wj8Wus-oeRKXlNe2642PSl_n4,12266
|
|
14
14
|
workos/passwordless.py,sha256=NGXDoxomBkrIml8-VHXH1HvCFMqotQ-YhRobUQXpVZs,3203
|
|
@@ -16,7 +16,7 @@ workos/portal.py,sha256=lzf3fnOor4AyVdHCHMuJzVSpAC9LWWdC5sZIRtCsb0c,2443
|
|
|
16
16
|
workos/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
17
|
workos/session.py,sha256=CVada-nKRFv9m2-mcghR5VBOguGU76iDCDgQlksOOrQ,11912
|
|
18
18
|
workos/sso.py,sha256=ZBC3y-IRmxG0jPd0BOj7s7XQkXJoTLUg1fx-h3Gfy4g,13541
|
|
19
|
-
workos/user_management.py,sha256=
|
|
19
|
+
workos/user_management.py,sha256=FVctyvyy4ErofCUjPd_yxa7HPyJIwx3Akc0oHRZ6vPc,76785
|
|
20
20
|
workos/webhooks.py,sha256=CuwBxh6va9VZFVSXOknveGt6CCGDF3em07a-J12DbXI,4790
|
|
21
21
|
workos/widgets.py,sha256=bfbR0hQOHZabbgGL2ekD5sY1sjiUoWBTdrBd_a6WmBc,1721
|
|
22
22
|
workos/types/__init__.py,sha256=aYScTXq5jOyp0AYvdWffaj5-zdDuNtCCJtbzt5GM19k,267
|
|
@@ -52,11 +52,12 @@ workos/types/events/list_filters.py,sha256=P04zmRynx9VPqNX_MBXA-3KA6flPZJogtIUqT
|
|
|
52
52
|
workos/types/events/organization_domain_verification_failed_payload.py,sha256=26reKTFxdriOo6fF6MVkYx0s867E-bproKTbwLZcUpE,483
|
|
53
53
|
workos/types/events/previous_attributes.py,sha256=DxolwLwzcnG8r_W6rh5BT29iDfSVsIELvRYJ0NCrNn0,72
|
|
54
54
|
workos/types/events/session_created_payload.py,sha256=F4eKjmetgyRIluNBDUmB2OXq8hDWEVjALJ4rrT2IHJs,462
|
|
55
|
-
workos/types/fga/__init__.py,sha256=
|
|
55
|
+
workos/types/fga/__init__.py,sha256=mVb3gvhvK93PAosSgO1RlNmxYX4zIxVDcZZQ8Jyejuw,151
|
|
56
56
|
workos/types/fga/authorization_resource_types.py,sha256=wB_CNWhsuCx16u26-o0MJuN2zS6aMV61WDTVHlwD1zk,225
|
|
57
57
|
workos/types/fga/authorization_resources.py,sha256=pXDMKGTd6AX7Z6zDAud9ebn_NMOAVoXtBNH1VRkmdyI,263
|
|
58
|
-
workos/types/fga/check.py,sha256=
|
|
58
|
+
workos/types/fga/check.py,sha256=6AIHsc2WmsXbpEFZcSTy2hIoSr2rmoLt-8wLWdSrc_E,1274
|
|
59
59
|
workos/types/fga/list_filters.py,sha256=wLQt_AJprmvglZSWv7ZRjwjD4b2vHL0V_7c9u-5u_Uw,640
|
|
60
|
+
workos/types/fga/warnings.py,sha256=zCasrVd19nRgSR4u5AhsyS_qCUduIfuhMLUdEUtE9Xg,869
|
|
60
61
|
workos/types/fga/warrant.py,sha256=aKO-9t0NGk-9oQs8j_gnG3VfNU6U9IdGCH4EN3imRWs,1016
|
|
61
62
|
workos/types/mfa/__init__.py,sha256=-gHL2QwZYbqDGPrIMkUrciJm4EiSRz3fJVF55B3rKiM,253
|
|
62
63
|
workos/types/mfa/authentication_challenge.py,sha256=V8UYutxCAxenaOeqWuPwQU0QcO4HD_0RoQbkG3sqgAU,436
|
|
@@ -117,8 +118,8 @@ workos/utils/_base_http_client.py,sha256=KqRHUaDJUfXGxhu6UHLfZVkIBikcvrUZYhm9GBS
|
|
|
117
118
|
workos/utils/http_client.py,sha256=TM5yMFFExmAE8D2Z43-5O301tRbnylLG0aXO0isGorE,6197
|
|
118
119
|
workos/utils/pagination_order.py,sha256=_-et1DDJLG0czarTU7op4W6RA0V1f85GNsUgtyRU55Q,70
|
|
119
120
|
workos/utils/request_helper.py,sha256=NaO16qPPbSNnCeE0fiNKYb8gM-dK_okYVJbLGrEGXz8,793
|
|
120
|
-
workos-5.
|
|
121
|
-
workos-5.
|
|
122
|
-
workos-5.
|
|
123
|
-
workos-5.
|
|
124
|
-
workos-5.
|
|
121
|
+
workos-5.22.0.dist-info/LICENSE,sha256=mU--WL1JzelH2tXpKVoOlpud4cpqKSRTtdArCvYZmb4,1063
|
|
122
|
+
workos-5.22.0.dist-info/METADATA,sha256=ga99A7ME7NYy1cSJ6_n1Zn2OJzIT3NRRZgN5mO2cwCo,4187
|
|
123
|
+
workos-5.22.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
124
|
+
workos-5.22.0.dist-info/top_level.txt,sha256=ZFskIfue1Tw-JwjyIXRvdsAl9i0DX9VbqmgICXV84Sk,7
|
|
125
|
+
workos-5.22.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|