From 8b530cddc6b87dd1abdb04deb6e175d3226776c4 Mon Sep 17 00:00:00 2001 From: ron Date: Mon, 15 Dec 2025 08:34:27 -0500 Subject: [PATCH 1/3] adding "session.revoke" to events type --- workos/types/events/event.py | 10 +++++++++- workos/types/events/event_model.py | 7 ++++++- workos/types/events/event_type.py | 1 + ...session_created_payload.py => session_payload.py} | 12 ++++++++++++ workos/types/webhooks/webhook.py | 10 +++++++++- 5 files changed, 37 insertions(+), 3 deletions(-) rename workos/types/events/{session_created_payload.py => session_payload.py} (60%) diff --git a/workos/types/events/event.py b/workos/types/events/event.py index 6df63091..2c081fac 100644 --- a/workos/types/events/event.py +++ b/workos/types/events/event.py @@ -36,7 +36,10 @@ from workos.types.events.organization_domain_verification_failed_payload import ( OrganizationDomainVerificationFailedPayload, ) -from workos.types.events.session_created_payload import SessionCreatedPayload +from workos.types.events.session_payload import( + SessionCreatedPayload, + SessionRevokedPayload +) from workos.types.organizations.organization_common import OrganizationCommon from workos.types.organization_domains import OrganizationDomain from workos.types.roles.role import EventRole @@ -249,6 +252,10 @@ class SessionCreatedEvent(EventModel[SessionCreatedPayload]): event: Literal["session.created"] +class SessionRevokedEvent(EventModel[SessionRevokedPayload]): + event: Literal["session.revoked"] + + class UserCreatedEvent(EventModel[User]): event: Literal["user.created"] @@ -308,6 +315,7 @@ class UserUpdatedEvent(EventModel[User]): RoleDeletedEvent, RoleUpdatedEvent, SessionCreatedEvent, + SessionRevokedEvent, UserCreatedEvent, UserDeletedEvent, UserUpdatedEvent, diff --git a/workos/types/events/event_model.py b/workos/types/events/event_model.py index 24443a52..70b48028 100644 --- a/workos/types/events/event_model.py +++ b/workos/types/events/event_model.py @@ -35,7 +35,11 @@ from workos.types.events.organization_domain_verification_failed_payload import ( OrganizationDomainVerificationFailedPayload, ) -from workos.types.events.session_created_payload import SessionCreatedPayload + +from workos.types.events.session_payload import( + SessionCreatedPayload, + SessionRevokedPayload +) from workos.types.organizations.organization_common import OrganizationCommon from workos.types.organization_domains import OrganizationDomain from workos.types.roles.role import EventRole @@ -81,6 +85,7 @@ OrganizationMembership, PasswordResetCommon, SessionCreatedPayload, + SessionRevokedPayload, User, ) diff --git a/workos/types/events/event_type.py b/workos/types/events/event_type.py index 79856e54..fb4027a8 100644 --- a/workos/types/events/event_type.py +++ b/workos/types/events/event_type.py @@ -50,6 +50,7 @@ "role.deleted", "role.updated", "session.created", + "session.revoked", "user.created", "user.deleted", "user.updated", diff --git a/workos/types/events/session_created_payload.py b/workos/types/events/session_payload.py similarity index 60% rename from workos/types/events/session_created_payload.py rename to workos/types/events/session_payload.py index 6604a6b3..d16be613 100644 --- a/workos/types/events/session_created_payload.py +++ b/workos/types/events/session_payload.py @@ -13,3 +13,15 @@ class SessionCreatedPayload(WorkOSModel): user_id: str created_at: str updated_at: str + + +class SessionRevokedPayload(WorkOSModel): + object: Literal["session"] + id: str + impersonator: Optional[Impersonator] = None + ip_address: Optional[str] = None + organization_id: Optional[str] = None + user_agent: Optional[str] = None + user_id: str + created_at: str + updated_at: str \ No newline at end of file diff --git a/workos/types/webhooks/webhook.py b/workos/types/webhooks/webhook.py index afe9e9ff..b67daf52 100644 --- a/workos/types/webhooks/webhook.py +++ b/workos/types/webhooks/webhook.py @@ -36,7 +36,10 @@ from workos.types.events.organization_domain_verification_failed_payload import ( OrganizationDomainVerificationFailedPayload, ) -from workos.types.events.session_created_payload import SessionCreatedPayload +from workos.types.events.session_payload import( + SessionCreatedPayload, + SessionRevokedPayload +) from workos.types.organization_domains import OrganizationDomain from workos.types.organizations.organization_common import OrganizationCommon from workos.types.roles.role import EventRole @@ -255,6 +258,10 @@ class SessionCreatedWebhook(WebhookModel[SessionCreatedPayload]): event: Literal["session.created"] +class SessionRevokedWebhook(WebhookModel[SessionRevokedPayload]): + event: Literal["session.revoked"] + + class UserCreatedWebhook(WebhookModel[User]): event: Literal["user.created"] @@ -314,6 +321,7 @@ class UserUpdatedWebhook(WebhookModel[User]): RoleDeletedWebhook, RoleUpdatedWebhook, SessionCreatedWebhook, + SessionRevokedWebhook, UserCreatedWebhook, UserDeletedWebhook, UserUpdatedWebhook, From 9e190f1da15845ae9bd9a178bace498cb73ba559 Mon Sep 17 00:00:00 2001 From: ron Date: Mon, 15 Dec 2025 13:36:45 -0500 Subject: [PATCH 2/3] ran black to reformat files after running black --check . --- workos/types/events/event.py | 4 ++-- workos/types/events/event_model.py | 4 ++-- workos/types/events/session_payload.py | 2 +- workos/types/webhooks/webhook.py | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/workos/types/events/event.py b/workos/types/events/event.py index 2c081fac..01cf9771 100644 --- a/workos/types/events/event.py +++ b/workos/types/events/event.py @@ -36,9 +36,9 @@ from workos.types.events.organization_domain_verification_failed_payload import ( OrganizationDomainVerificationFailedPayload, ) -from workos.types.events.session_payload import( +from workos.types.events.session_payload import ( SessionCreatedPayload, - SessionRevokedPayload + SessionRevokedPayload, ) from workos.types.organizations.organization_common import OrganizationCommon from workos.types.organization_domains import OrganizationDomain diff --git a/workos/types/events/event_model.py b/workos/types/events/event_model.py index 70b48028..d89a7054 100644 --- a/workos/types/events/event_model.py +++ b/workos/types/events/event_model.py @@ -36,9 +36,9 @@ OrganizationDomainVerificationFailedPayload, ) -from workos.types.events.session_payload import( +from workos.types.events.session_payload import ( SessionCreatedPayload, - SessionRevokedPayload + SessionRevokedPayload, ) from workos.types.organizations.organization_common import OrganizationCommon from workos.types.organization_domains import OrganizationDomain diff --git a/workos/types/events/session_payload.py b/workos/types/events/session_payload.py index d16be613..7ab9a079 100644 --- a/workos/types/events/session_payload.py +++ b/workos/types/events/session_payload.py @@ -24,4 +24,4 @@ class SessionRevokedPayload(WorkOSModel): user_agent: Optional[str] = None user_id: str created_at: str - updated_at: str \ No newline at end of file + updated_at: str diff --git a/workos/types/webhooks/webhook.py b/workos/types/webhooks/webhook.py index b67daf52..bca584bd 100644 --- a/workos/types/webhooks/webhook.py +++ b/workos/types/webhooks/webhook.py @@ -36,9 +36,9 @@ from workos.types.events.organization_domain_verification_failed_payload import ( OrganizationDomainVerificationFailedPayload, ) -from workos.types.events.session_payload import( +from workos.types.events.session_payload import ( SessionCreatedPayload, - SessionRevokedPayload + SessionRevokedPayload, ) from workos.types.organization_domains import OrganizationDomain from workos.types.organizations.organization_common import OrganizationCommon From 6806d7a418e982d54de24df9024aad7515f72456 Mon Sep 17 00:00:00 2001 From: ron Date: Mon, 15 Dec 2025 13:41:43 -0500 Subject: [PATCH 3/3] ran mypy to fix error for deleted import --- workos/types/events/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workos/types/events/__init__.py b/workos/types/events/__init__.py index d14d00d6..ba6f15ba 100644 --- a/workos/types/events/__init__.py +++ b/workos/types/events/__init__.py @@ -10,4 +10,4 @@ from .event import * from .organization_domain_verification_failed_payload import * from .previous_attributes import * -from .session_created_payload import * +from .session_payload import *