You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat!: phone provider protection, FedCM & native social login config (breaking: user date fields, clients.update login types) (#868)
## Changes
### ⚠️ Breaking Changes
- **`clients.update()` social/FedCM request types changed** —
`native_social_login` and `fedcm_login` on `clients.update()` (`PATCH
/api/v2/clients/{id}`) changed from `NativeSocialLogin` / `FedCmLogin`
to `NativeSocialLoginPatch` / `FedCmLoginPatch`. `clients.create()`
still uses the non-patch types, so create and update now require
different types for the same logical field. Code passing the old types
to `update()` must switch to the `*Patch` variants.
- **`UserDateSchema` removed — user date fields now `datetime`** — the
`UserDateSchema` type (`Union[str, Dict[str, Any]]`) is deleted and no
longer exported from `auth0.management.types`. `created_at`,
`updated_at`, `last_login`, `last_password_reset`, and
`multifactor_last_modified` on `GetUserResponseContent`,
`CreateUserResponseContent`, `UpdateUserResponseContent`, and
`UserResponseSchema` are now `Optional[datetime.datetime]`. Code that
read these as strings/dicts must update.
### Type Changes
- **Clients — FedCM / Google One Tap** — new `fedcm_login` (read:
`FedCmLogin`/`FedCmLoginGoogle`; write:
`FedCmLoginPatch`/`FedCmLoginGooglePatch`) on create/update/response,
gating the Google One Tap prompt in New Universal Login via
`fedcm_login.google.is_enabled`.
- **Clients — Native Social Login patch types** — new
`NativeSocialLoginPatch` wrapping `apple`/`facebook`/`google` patch
variants (each `enabled: Optional[bool]`) for `clients.update()`.
- **Clients — Token Vault Privileged Access** — new
`token_vault_privileged_access` field on create/update/response, typed
`ClientTokenVaultPrivilegedAccessWithPublicKey` (create) and
`ClientTokenVaultPrivilegedAccessWithCredentialId` (update), each with
`credentials` + `ip_allowlist`.
- **Connections — Cross App Access** — new
`cross_app_access_requesting_app` field
(`CrossAppAccessRequestingApp{active: bool}`) on
`connections.create()`/`update()`, OIDC/Okta request types, and all
connection response types.
- **Identity `user_id` widened to `Union[str, int]`** — on
`UserIdentitySchema`, `UserIdentity`, and
`DeleteUserIdentityResponseContentItem`, fixing Pydantic errors on
numeric (e.g. GitHub) identity IDs.
- **Email templates** — new `auth_email_by_code` value in
`EmailTemplateNameEnum`.
- **Attack Protection — Phone Provider Protection** — new
`attack_protection.phone_provider_protection` sub-client with `get()` /
`patch(type=...)` (`GET`/`PATCH
/attack-protection/phone-provider-protection`); new
`PhoneProviderProtectionBackoffStrategyEnum` (`exponential`/`none`) and
response types.
### Bug Fixes
- **404 handling added across multiple raw clients** — `keys.signing`,
`organizations` (connections, enabled connections, members, member
roles), `roles.permissions`, `self_service_profiles.sso_ticket`,
`user_attribute_profiles`, and `users` (connected accounts,
organizations, permissions, roles) now raise a typed `NotFoundError` on
404 instead of an unhandled parse error.
Retrieve an email template by pre-defined name. These names are `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, and `async_approval`. The names `change_password`, and `password_reset` are also supported for legacy scenarios.
5600
+
Retrieve an email template by pre-defined name. These names are `verify_email`, `verify_email_by_code`, `auth_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, and `async_approval`. The names `change_password`, and `password_reset` are also supported for legacy scenarios.
5569
5601
</dd>
5570
5602
</dl>
5571
5603
</dd>
@@ -5606,7 +5638,7 @@ client.email_templates.get(
5606
5638
<dl>
5607
5639
<dd>
5608
5640
5609
-
**template_name:** `EmailTemplateNameEnum` — Template name. Can be `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, `async_approval`, `change_password` (legacy), or `password_reset` (legacy).
5641
+
**template_name:** `EmailTemplateNameEnum` — Template name. Can be `verify_email`, `verify_email_by_code`, `auth_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, `async_approval`, `change_password` (legacy), or `password_reset` (legacy).
5610
5642
5611
5643
</dd>
5612
5644
</dl>
@@ -5680,7 +5712,7 @@ client.email_templates.set(
5680
5712
<dl>
5681
5713
<dd>
5682
5714
5683
-
**template_name:** `EmailTemplateNameEnum` — Template name. Can be `verify_email`, `verify_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, `async_approval`, `change_password` (legacy), or `password_reset` (legacy).
5715
+
**template_name:** `EmailTemplateNameEnum` — Template name. Can be `verify_email`, `verify_email_by_code`, `auth_email_by_code`, `reset_email`, `reset_email_by_code`, `welcome_email`, `blocked_account`, `stolen_credentials`, `enrollment_email`, `mfa_oob_code`, `user_invitation`, `async_approval`, `change_password` (legacy), or `password_reset` (legacy).
0 commit comments