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.
This commit is contained in:
Ejiro Asiuwhu
2026-03-25 05:28:42 +01:00
parent 1343d3ab2f
commit 0f39d103ae
2 changed files with 8 additions and 8 deletions
@@ -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
@@ -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")