Skip to content

Commit 470ac55

Browse files
authored
Add failed auth events for SSO and OAuth (#355)
* Add failed auth events for SSO and OAuth * Format * Fix error
1 parent 4f041bc commit 470ac55

File tree

5 files changed

+43
-3
lines changed

5 files changed

+43
-3
lines changed

workos/types/events/authentication_payload.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
class AuthenticationResultCommon(WorkOSModel):
66
ip_address: Optional[str] = None
77
user_agent: Optional[str] = None
8-
email: str
98

109

1110
class AuthenticationResultSucceeded(AuthenticationResultCommon):
1211
status: Literal["succeeded"]
12+
email: str
1313

1414

1515
class ErrorWithCode(WorkOSModel):
@@ -20,6 +20,8 @@ class ErrorWithCode(WorkOSModel):
2020
class AuthenticationResultFailed(AuthenticationResultCommon):
2121
status: Literal["failed"]
2222
error: ErrorWithCode
23+
email: Optional[str] = None
24+
user_id: Optional[str] = None
2325

2426

2527
class AuthenticationEmailVerificationSucceededPayload(AuthenticationResultSucceeded):
@@ -38,12 +40,16 @@ class AuthenticationMagicAuthSucceededPayload(AuthenticationResultSucceeded):
3840

3941
class AuthenticationMfaSucceededPayload(AuthenticationResultSucceeded):
4042
type: Literal["mfa"]
41-
user_id: str
43+
user_id: Optional[str] = None
44+
45+
46+
class AuthenticationOauthFailedPayload(AuthenticationResultFailed):
47+
type: Literal["oauth"]
4248

4349

4450
class AuthenticationOauthSucceededPayload(AuthenticationResultSucceeded):
4551
type: Literal["oauth"]
46-
user_id: str
52+
user_id: Optional[str] = None
4753

4854

4955
class AuthenticationPasswordFailedPayload(AuthenticationResultFailed):
@@ -55,6 +61,10 @@ class AuthenticationPasswordSucceededPayload(AuthenticationResultSucceeded):
5561
user_id: str
5662

5763

64+
class AuthenticationSsoFailedPayload(AuthenticationResultFailed):
65+
type: Literal["sso"]
66+
67+
5868
class AuthenticationSsoSucceededPayload(AuthenticationResultSucceeded):
5969
type: Literal["sso"]
6070
user_id: Optional[str] = None

workos/types/events/event.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@
99
AuthenticationMagicAuthFailedPayload,
1010
AuthenticationMagicAuthSucceededPayload,
1111
AuthenticationMfaSucceededPayload,
12+
AuthenticationOauthFailedPayload,
1213
AuthenticationOauthSucceededPayload,
1314
AuthenticationPasswordFailedPayload,
1415
AuthenticationPasswordSucceededPayload,
16+
AuthenticationSsoFailedPayload,
1517
AuthenticationSsoSucceededPayload,
1618
)
1719
from workos.types.events.connection_payload_with_legacy_fields import (
@@ -69,6 +71,10 @@ class AuthenticationMfaSucceededEvent(EventModel[AuthenticationMfaSucceededPaylo
6971
event: Literal["authentication.mfa_succeeded"]
7072

7173

74+
class AuthenticationOauthFailedEvent(EventModel[AuthenticationOauthFailedPayload]):
75+
event: Literal["authentication.oauth_failed"]
76+
77+
7278
class AuthenticationOauthSucceededEvent(
7379
EventModel[AuthenticationOauthSucceededPayload]
7480
):
@@ -87,6 +93,10 @@ class AuthenticationPasswordSucceededEvent(
8793
event: Literal["authentication.password_succeeded"]
8894

8995

96+
class AuthenticationSsoFailedEvent(EventModel[AuthenticationSsoFailedPayload]):
97+
event: Literal["authentication.sso_failed"]
98+
99+
90100
class AuthenticationSsoSucceededEvent(EventModel[AuthenticationSsoSucceededPayload]):
91101
event: Literal["authentication.sso_succeeded"]
92102

@@ -227,9 +237,11 @@ class UserUpdatedEvent(EventModel[User]):
227237
AuthenticationMagicAuthFailedEvent,
228238
AuthenticationMagicAuthSucceededEvent,
229239
AuthenticationMfaSucceededEvent,
240+
AuthenticationOauthFailedEvent,
230241
AuthenticationOauthSucceededEvent,
231242
AuthenticationPasswordFailedEvent,
232243
AuthenticationPasswordSucceededEvent,
244+
AuthenticationSsoFailedEvent,
233245
AuthenticationSsoSucceededEvent,
234246
ConnectionActivatedEvent,
235247
ConnectionDeactivatedEvent,

workos/types/events/event_model.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@
88
AuthenticationMagicAuthFailedPayload,
99
AuthenticationMagicAuthSucceededPayload,
1010
AuthenticationMfaSucceededPayload,
11+
AuthenticationOauthFailedPayload,
1112
AuthenticationOauthSucceededPayload,
1213
AuthenticationPasswordFailedPayload,
1314
AuthenticationPasswordSucceededPayload,
15+
AuthenticationSsoFailedPayload,
1416
AuthenticationSsoSucceededPayload,
1517
)
1618
from workos.types.events.connection_payload_with_legacy_fields import (
@@ -51,9 +53,11 @@
5153
AuthenticationMagicAuthFailedPayload,
5254
AuthenticationMagicAuthSucceededPayload,
5355
AuthenticationMfaSucceededPayload,
56+
AuthenticationOauthFailedPayload,
5457
AuthenticationOauthSucceededPayload,
5558
AuthenticationPasswordFailedPayload,
5659
AuthenticationPasswordSucceededPayload,
60+
AuthenticationSsoFailedPayload,
5761
AuthenticationSsoSucceededPayload,
5862
Connection,
5963
ConnectionPayloadWithLegacyFields,

workos/types/events/event_type.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
"authentication.magic_auth_failed",
77
"authentication.magic_auth_succeeded",
88
"authentication.mfa_succeeded",
9+
"authentication.oauth_failed",
910
"authentication.oauth_succeeded",
1011
"authentication.password_failed",
1112
"authentication.password_succeeded",
13+
"authentication.sso_failed",
1214
"authentication.sso_succeeded",
1315
"connection.activated",
1416
"connection.deactivated",

workos/types/webhooks/webhook.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@
1010
AuthenticationMagicAuthFailedPayload,
1111
AuthenticationMagicAuthSucceededPayload,
1212
AuthenticationMfaSucceededPayload,
13+
AuthenticationOauthFailedPayload,
1314
AuthenticationOauthSucceededPayload,
1415
AuthenticationPasswordFailedPayload,
1516
AuthenticationPasswordSucceededPayload,
17+
AuthenticationSsoFailedPayload,
1618
AuthenticationSsoSucceededPayload,
1719
)
1820
from workos.types.events.connection_payload_with_legacy_fields import (
@@ -71,6 +73,10 @@ class AuthenticationMfaSucceededWebhook(
7173
event: Literal["authentication.mfa_succeeded"]
7274

7375

76+
class AuthenticationOauthFailedWebhook(WebhookModel[AuthenticationOauthFailedPayload]):
77+
event: Literal["authentication.oauth_failed"]
78+
79+
7480
class AuthenticationOauthSucceededWebhook(
7581
WebhookModel[AuthenticationOauthSucceededPayload]
7682
):
@@ -89,6 +95,10 @@ class AuthenticationPasswordSucceededWebhook(
8995
event: Literal["authentication.password_succeeded"]
9096

9197

98+
class AuthenticationSsoFailedWebhook(WebhookModel[AuthenticationSsoFailedPayload]):
99+
event: Literal["authentication.sso_failed"]
100+
101+
92102
class AuthenticationSsoSucceededWebhook(
93103
WebhookModel[AuthenticationSsoSucceededPayload]
94104
):
@@ -233,9 +243,11 @@ class UserUpdatedWebhook(WebhookModel[User]):
233243
AuthenticationMagicAuthFailedWebhook,
234244
AuthenticationMagicAuthSucceededWebhook,
235245
AuthenticationMfaSucceededWebhook,
246+
AuthenticationOauthFailedWebhook,
236247
AuthenticationOauthSucceededWebhook,
237248
AuthenticationPasswordFailedWebhook,
238249
AuthenticationPasswordSucceededWebhook,
250+
AuthenticationSsoFailedWebhook,
239251
AuthenticationSsoSucceededWebhook,
240252
ConnectionActivatedWebhook,
241253
ConnectionDeactivatedWebhook,

0 commit comments

Comments
 (0)