Skip to content

fix: Allow organization_name to be empty on organization membership events#595

Merged
gjtorikian merged 2 commits intoworkos:mainfrom
blackmad-cradle:main
Mar 16, 2026
Merged

fix: Allow organization_name to be empty on organization membership events#595
gjtorikian merged 2 commits intoworkos:mainfrom
blackmad-cradle:main

Conversation

@blackmad-cradle
Copy link
Contributor

Description

Documentation says this should always be a string, empirically we are seeing this field missing

Documentation

Does this require changes to the WorkOS Docs? E.g. the API Reference or code snippets need updates.

[ ] Yes

If yes, link a related docs PR and add a docs maintainer as a reviewer. Their approval is required.

@blackmad-cradle blackmad-cradle requested review from a team as code owners March 16, 2026 06:53
@blackmad-cradle blackmad-cradle requested a review from mattgd March 16, 2026 06:53
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Mar 16, 2026

Greptile Summary

Makes organization_name optional on BaseOrganizationMembership to handle cases where the WorkOS API omits this field from organization membership event payloads. Adds a corresponding test for deserialization of events with missing organization_name.

  • organization_name changed from str (required) to Optional[str] = None in BaseOrganizationMembership, which propagates to both OrganizationMembership and AuthorizationOrganizationMembership
  • New test validates the deserialization path, but is missing an explicit assertion that organization_name is None

Confidence Score: 4/5

  • This PR is safe to merge — it relaxes a type constraint to match real API behavior, with low risk of breakage.
  • The model change is minimal, correct, and well-motivated. The test covers the deserialization path but lacks an assertion on the actual field under test, which slightly reduces confidence in test coverage.
  • tests/test_events.py — the new test should assert organization_name is None

Important Files Changed

Filename Overview
src/workos/types/user_management/organization_membership.py Makes organization_name optional with a None default on BaseOrganizationMembership, fixing deserialization when the API omits this field. Clean, minimal change.
tests/test_events.py Adds a test for missing organization_name, but the test lacks an assertion that organization_name is None — only checks custom_attributes.

Class Diagram

%%{init: {'theme': 'neutral'}}%%
classDiagram
    class BaseOrganizationMembership {
        +str id
        +str user_id
        +str organization_id
        +Optional~str~ organization_name
        +str status
        +bool directory_managed
        +str created_at
        +str updated_at
    }
    class OrganizationMembership {
        +OrganizationMembershipRole role
        +Optional~Sequence~ roles
        +Mapping custom_attributes
    }
    class AuthorizationOrganizationMembership

    BaseOrganizationMembership <|-- OrganizationMembership
    BaseOrganizationMembership <|-- AuthorizationOrganizationMembership
Loading

Last reviewed commit: ea60574

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
@gjtorikian gjtorikian changed the title Allow organization_name to be empty on organization membership events fix: Allow organization_name to be empty on organization membership events Mar 16, 2026
@gjtorikian gjtorikian merged commit 865aeb5 into workos:main Mar 16, 2026
11 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants