From 2ce9c79304c04abafda0bfcdb63afa3ea6443eb2 Mon Sep 17 00:00:00 2001 From: David Blackman Date: Wed, 11 Feb 2026 21:50:33 +0300 Subject: [PATCH 1/3] Add sso subdict to sso auth events --- src/workos/types/events/authentication_payload.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/workos/types/events/authentication_payload.py b/src/workos/types/events/authentication_payload.py index 09e851f0..e013a1f5 100644 --- a/src/workos/types/events/authentication_payload.py +++ b/src/workos/types/events/authentication_payload.py @@ -61,10 +61,18 @@ class AuthenticationPasswordSucceededPayload(AuthenticationResultSucceeded): user_id: str +class AuthenticationSsoData(WorkOSModel): + connection_id: Optional[str] = None + organization_id: Optional[str] = None + session_id: Optional[str] = None + + class AuthenticationSsoFailedPayload(AuthenticationResultFailed): type: Literal["sso"] + sso: Optional[AuthenticationSsoData] = None class AuthenticationSsoSucceededPayload(AuthenticationResultSucceeded): type: Literal["sso"] user_id: Optional[str] = None + sso: Optional[AuthenticationSsoData] = None From c731e85ebdd90711eb77f5f6cb6f9151176450b8 Mon Sep 17 00:00:00 2001 From: David Blackman Date: Fri, 20 Feb 2026 10:54:08 +0100 Subject: [PATCH 2/3] Fix custom_attributes to be nullable --- src/workos/types/directory_sync/directory_user.py | 5 ++--- src/workos/types/user_management/organization_membership.py | 3 ++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/workos/types/directory_sync/directory_user.py b/src/workos/types/directory_sync/directory_user.py index 387948fa..ee710b0f 100644 --- a/src/workos/types/directory_sync/directory_user.py +++ b/src/workos/types/directory_sync/directory_user.py @@ -1,8 +1,7 @@ from typing import Any, Dict, Literal, Optional, Sequence, Union -from workos.types.workos_model import WorkOSModel from workos.types.directory_sync.directory_group import DirectoryGroup - +from workos.types.workos_model import WorkOSModel DirectoryUserState = Literal["active", "inactive"] @@ -33,7 +32,7 @@ class DirectoryUser(WorkOSModel): # @deprecated Will be removed in a future major version. Enable the `username` custom attribute in dashboard and pull from customAttributes instead. See https://workos.com/docs/directory-sync/attributes/custom-attributes/auto-mapped-attributes for details. username: Optional[str] = None state: DirectoryUserState - custom_attributes: Dict[str, Any] + custom_attributes: Optional[Dict[str, Any]] = None raw_attributes: Dict[str, Any] created_at: str updated_at: str diff --git a/src/workos/types/user_management/organization_membership.py b/src/workos/types/user_management/organization_membership.py index 5c7bda0f..a89b15ab 100644 --- a/src/workos/types/user_management/organization_membership.py +++ b/src/workos/types/user_management/organization_membership.py @@ -1,4 +1,5 @@ from typing import Any, Literal, Mapping, Optional, Sequence + from typing_extensions import TypedDict from workos.types.workos_model import WorkOSModel @@ -21,6 +22,6 @@ class OrganizationMembership(WorkOSModel): role: OrganizationMembershipRole roles: Optional[Sequence[OrganizationMembershipRole]] = None status: LiteralOrUntyped[OrganizationMembershipStatus] - custom_attributes: Mapping[str, Any] + custom_attributes: Optional[Mapping[str, Any]] = None created_at: str updated_at: str From 5018d6401a5d43b1adf84970cb7398eaf4027b85 Mon Sep 17 00:00:00 2001 From: David Blackman Date: Fri, 20 Feb 2026 10:58:14 +0100 Subject: [PATCH 3/3] Revert "Add sso subdict to sso auth events" This reverts commit 2ce9c79304c04abafda0bfcdb63afa3ea6443eb2. --- src/workos/types/events/authentication_payload.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/workos/types/events/authentication_payload.py b/src/workos/types/events/authentication_payload.py index e013a1f5..09e851f0 100644 --- a/src/workos/types/events/authentication_payload.py +++ b/src/workos/types/events/authentication_payload.py @@ -61,18 +61,10 @@ class AuthenticationPasswordSucceededPayload(AuthenticationResultSucceeded): user_id: str -class AuthenticationSsoData(WorkOSModel): - connection_id: Optional[str] = None - organization_id: Optional[str] = None - session_id: Optional[str] = None - - class AuthenticationSsoFailedPayload(AuthenticationResultFailed): type: Literal["sso"] - sso: Optional[AuthenticationSsoData] = None class AuthenticationSsoSucceededPayload(AuthenticationResultSucceeded): type: Literal["sso"] user_id: Optional[str] = None - sso: Optional[AuthenticationSsoData] = None