From 0f39d103ae686224deb42f91940a83cd8db7f383 Mon Sep 17 00:00:00 2001 From: Ejiro Asiuwhu Date: Wed, 25 Mar 2026 05:28:42 +0100 Subject: [PATCH] fix: make metadata fields nullable on user and team models The Stack Auth API returns null for client_metadata, client_read_only_metadata, and server_metadata when not set, but the models expected dict. Changed to dict | None to handle null responses gracefully. --- .../implementations/python/src/stack_auth/models/teams.py | 8 ++++---- .../implementations/python/src/stack_auth/models/users.py | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/sdks/implementations/python/src/stack_auth/models/teams.py b/sdks/implementations/python/src/stack_auth/models/teams.py index 634ae0d64..d0ce8beb0 100644 --- a/sdks/implementations/python/src/stack_auth/models/teams.py +++ b/sdks/implementations/python/src/stack_auth/models/teams.py @@ -16,16 +16,16 @@ class Team(StackAuthModel): id: str display_name: str = Field(alias="displayName") profile_image_url: str | None = Field(None, alias="profileImageUrl") - client_metadata: dict[str, Any] = Field(default_factory=dict, alias="clientMetadata") - client_read_only_metadata: dict[str, Any] = Field( - default_factory=dict, alias="clientReadOnlyMetadata" + client_metadata: dict[str, Any] | None = Field(None, alias="clientMetadata") + client_read_only_metadata: dict[str, Any] | None = Field( + None, alias="clientReadOnlyMetadata" ) class ServerTeam(Team): """Server-side team with additional management capabilities.""" - server_metadata: dict[str, Any] = Field(default_factory=dict, alias="serverMetadata") + server_metadata: dict[str, Any] | None = Field(None, alias="serverMetadata") created_at_millis: int = Field(alias="createdAtMillis") @property diff --git a/sdks/implementations/python/src/stack_auth/models/users.py b/sdks/implementations/python/src/stack_auth/models/users.py index 7daf284cf..a271630d5 100644 --- a/sdks/implementations/python/src/stack_auth/models/users.py +++ b/sdks/implementations/python/src/stack_auth/models/users.py @@ -23,9 +23,9 @@ class BaseUser(StackAuthModel): profile_image_url: str | None = Field(None, alias="profileImageUrl") signed_up_at_millis: int = Field(alias="signedUpAtMillis") last_active_at_millis: int | None = Field(None, alias="lastActiveAtMillis") - client_metadata: dict[str, Any] = Field(default_factory=dict, alias="clientMetadata") - client_read_only_metadata: dict[str, Any] = Field( - default_factory=dict, alias="clientReadOnlyMetadata" + client_metadata: dict[str, Any] | None = Field(None, alias="clientMetadata") + client_read_only_metadata: dict[str, Any] | None = Field( + None, alias="clientReadOnlyMetadata" ) has_password: bool = Field(False, alias="hasPassword") otp_auth_enabled: bool = Field(False, alias="otpAuthEnabled") @@ -52,4 +52,4 @@ class ServerUser(BaseUser): Extends BaseUser with server-only metadata. """ - server_metadata: dict[str, Any] = Field(default_factory=dict, alias="serverMetadata") + server_metadata: dict[str, Any] | None = Field(None, alias="serverMetadata")