Skip to content

Tags: auth0/auth0-python

Tags

5.1.0

Toggle 5.1.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release 5.1.0 (#780)

**Fixed**

- fix: Remove placeholder defaults from optional parameters + additional
updates [\#778](#778)
([fern-api[bot]](https://github.com/apps/fern-api))

5.0.0

Toggle 5.0.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release 5.0.0 (#774)

# Release v5.0.0 🎉

## Overview

This PR prepares the **stable v5.0.0 release** of the Auth0 Python SDK -
a complete rewrite with significant improvements and breaking changes
from v4.x.

## Changes in this PR

- Updated `.version` file from `5.0.0b0` to `5.0.0`
- Updated `pyproject.toml` package version to `5.0.0`
- Added comprehensive v5.0.0 release notes to `CHANGELOG.md`
- Updated `README.md` with v5.0.0 installation instructions

## What's New in v5.0.0

### ⚠️ BREAKING CHANGES - Major Rewrite

This is a complete rewrite of the Auth0 Python SDK with significant
breaking changes from v4.x. Users will need to update their code when
migrating from v4.x to v5.0.0.

### Added Features

- **New Fern-generated SDK**: Complete Management API rewrite generated
from Auth0's OpenAPI specifications
- **Hierarchical package structure**: Organized Management APIs into
logical sub-clients for better discoverability
- **Strongly typed interfaces**: Pydantic models provide specific
request/response types replacing generic dictionaries
- **Automatic token management**: Built-in client credentials handling
with automatic token refresh
- **Enhanced pagination**: New `SyncPager` and `AsyncPager` classes for
easy iteration over paginated results
- **First-class async support**: Full async/await support with
`AsyncManagementClient`
- **Better IDE support**: Improved code completion, type hints, and
inline documentation

### Key Breaking Changes

- **Import paths** changed from `from auth0.management import Auth0` to
`from auth0.management import ManagementClient`
- **Client initialization** changed from `Auth0(domain,
management_token)` to `ManagementClient(domain, client_id,
client_secret)` with automatic token management
- **Response types** changed from dictionaries to Pydantic models (use
`.model_dump()` to convert back to dict)
- **Method organization** changed from flat (`client.users.list()`) to
hierarchical where applicable
- **Pagination parameters** changed - some endpoints use `per_page`,
others use `take`
- **Python version** requirement increased from ≥3.7 to ≥3.8
- **Error handling** changed from `Auth0Error` to `ApiError` base class

## Migration Example

### Before (v4):

```python
from auth0.management import Auth0

# Initialize with management token
mgmt = Auth0(
    domain='your-tenant.auth0.com',
    token='YOUR_MGMT_API_TOKEN'
)

# List clients - returns list of dicts
clients = mgmt.clients.all()

for client in clients:
    print(client['name'])  # Dictionary access
```

### After (v5):

```python
from auth0.management import ManagementClient

# Initialize with client credentials (automatic token management)
client = ManagementClient(
    domain='your-tenant.auth0.com',
    client_id='YOUR_CLIENT_ID',
    client_secret='YOUR_CLIENT_SECRET'
)

# List clients - returns SyncPager of Pydantic models
clients = client.clients.list(per_page=50)

for client_obj in clients:
    print(client_obj.name)  # Pydantic model attribute access

    # Convert to dict if needed
    client_dict = client_obj.model_dump()
```

## Important Notes

- ✅ The `authentication` package is **NOT affected** by these changes.
Authentication APIs remain the same between v4 and v5.
- 📚 Complete migration guide available at
[v5_MIGRATION_GUIDE.md](https://github.com/auth0/auth0-python/blob/master/v5_MIGRATION_GUIDE.md)
- 🎯 This is the stable GA release following v5.0.0-beta.0
- 🔧 Auth0 telemetry headers implemented with dynamic versioning (no
manual updates needed)
- 📖 Full API reference available at
[reference.md](https://github.com/auth0/auth0-python/blob/master/reference.md)

## Testing

- ✅ All 389 wire tests passing
- ✅ Integration tests verified with live Auth0 tenant
- ✅ Both Authentication and Management APIs tested successfully
- ✅ Async clients tested and verified

5.0.0b0

Toggle 5.0.0b0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release 5.0.0b0 (#766)

# Auth0 Python SDK v5.0.0b0

⚠️ **BREAKING CHANGES - Major Rewrite**

This is a beta release of the upcoming major version. It introduces
breaking changes, particularly in the Management API client. Please
refer to the [v5 Migration
Guide](https://github.com/auth0/auth0-python/blob/v5/v5_MIGRATION_GUIDE.md)
for detailed upgrade instructions.

---

##  ✍️ What's New

- ✨ **OpenAPI-Generated**: Complete rewrite generated from Auth0's
OpenAPI specifications using [Fern](https://buildwithfern.com)
- 📦 **Better Organization**: Hierarchical package structure with logical
sub-clients for improved discoverability
- 🔒 **Type Safety**: Strongly typed request/response objects using
Pydantic replace generic dictionaries
- ✨ **Enhanced Developer Experience**: Better IntelliSense, code
completion, and documentation
- 🚀 **Future-Proof**: Easier maintenance and updates as Auth0's API
evolves
- ⚡ **Async Support**: First-class async client with `AsyncAuth0` and
`AsyncManagementClient`
- 📄 **Automatic Pagination**: Built-in pagination support with
`include_totals=True` by default

---

## 💥 Breaking Changes

### Python Version Support

- The SDK now requires **Python ≥3.8**
- Support for Python 3.7 has been dropped

### Management API Client Redesign

- The Management API client has been **fully restructured** using Fern
for code generation
- Methods are now organized into **modular sub-clients**, improving
structure and maintainability
- **Method names and signatures have changed**, adopting consistent and
predictable naming conventions
- **Pagination defaults changed**: `include_totals=True` is now the
default for list operations
- These changes are **not backward compatible** with the v4.x client

### Import Changes

| Change | v4.x | v5.0.0 |
|--------|------|--------|
| **Management Client** | `from auth0.management import Auth0` | `from
auth0.management import Auth0` or `ManagementClient` |
| **Async Client** | Not available | `from auth0.management import
AsyncAuth0` or `AsyncManagementClient` |
| **Error Handling** | `from auth0.exceptions import Auth0Error` | `from
auth0.management.core.api_error import ApiError` |
| **Authentication** | `from auth0.authentication import GetToken` |
`from auth0.authentication import GetToken` (unchanged) |

---

## 📝 Quick Migration Example

### Before (v4.x):

```python
from auth0.management import Auth0

# Initialize with full base URL
mgmt_api = Auth0(
    domain='YOUR_DOMAIN.auth0.com',
    token='YOUR_TOKEN'
)

# List users with explicit pagination
users = mgmt_api.users.list(
    page=0,
    per_page=50,
    include_totals=True  # Must specify explicitly
)

# Generic dictionary responses
for user in users['users']:
    print(user['email'])
```

### After (v5.0.0):

```python
from auth0.management import ManagementClient

# Simpler initialization - just domain
client = ManagementClient(
    domain='YOUR_DOMAIN.auth0.com',
    token='YOUR_TOKEN'
)

# Or with automatic token management
client = ManagementClient(
    domain='YOUR_DOMAIN.auth0.com',
    client_id='YOUR_CLIENT_ID',
    client_secret='YOUR_CLIENT_SECRET'
)

# Pagination with include_totals=True by default
response = client.users.list(
    page=0,
    per_page=50
)

# Strongly-typed Pydantic models
for user in response.users:
    print(user.email)  # Type-safe attribute access
```

---

## 🔧 Migration Steps

1. **Update imports**: Change import paths as shown in the table above
2. **Client initialization**: Use `ManagementClient` with just `domain`
instead of full `base_url`
3. **Update method calls**: Review method signatures - many have changed
for consistency
4. **Handle responses**: Access response data as attributes (Pydantic
models) instead of dictionary keys
5. **Error handling**: Catch `ApiError` instead of `Auth0Error` for
Management API errors
6. **Pagination**: `include_totals` now defaults to `True` - adjust if
you relied on `False`
7. **Async support**: Use `AsyncManagementClient` or `AsyncAuth0` for
async operations

---

## ✅ What's NOT Affected

**The `authentication` package remains fully compatible!** All
authentication APIs work the same way between v4.x and v5.0.0:

- ✅ `GetToken` - Client credentials, authorization code flows
- ✅ `Database` - User signup and authentication
- ✅ `Passwordless` - Passwordless authentication
- ✅ `Users` - User authentication operations
- ✅ Token verification and validation

---

## 📚 Resources

- **[Migration
Guide](https://github.com/auth0/auth0-python/blob/v5/v5_MIGRATION_GUIDE.md)**:
Detailed migration instructions
- **[API
Reference](https://github.com/auth0/auth0-python/blob/v5/reference.md)**:
Complete API documentation
- **[README](https://github.com/auth0/auth0-python/blob/v5/README.md)**:
Updated examples and usage guide

---

## ⚠️ Beta Release

This is a beta release. While core functionality is stable, minor API
adjustments may occur before the final v5.0.0 release. Please test
thoroughly and provide feedback!

---

## 📦 Installation

```bash
pip install auth0-python==5.0.0b0
```

Or add to your
[requirements.txt](cci:7://file:///Users/snehil.kishore/Desktop/Python/auth0-python/requirements.txt:0:0-0:0):
```
auth0-python>=5.0.0b0,<6.0.0
```

---

v5.0.0b0

Toggle v5.0.0b0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release 5.0.0b0 (#766)

# Auth0 Python SDK v5.0.0b0

⚠️ **BREAKING CHANGES - Major Rewrite**

This is a beta release of the upcoming major version. It introduces
breaking changes, particularly in the Management API client. Please
refer to the [v5 Migration
Guide](https://github.com/auth0/auth0-python/blob/v5/v5_MIGRATION_GUIDE.md)
for detailed upgrade instructions.

---

##  ✍️ What's New

- ✨ **OpenAPI-Generated**: Complete rewrite generated from Auth0's
OpenAPI specifications using [Fern](https://buildwithfern.com)
- 📦 **Better Organization**: Hierarchical package structure with logical
sub-clients for improved discoverability
- 🔒 **Type Safety**: Strongly typed request/response objects using
Pydantic replace generic dictionaries
- ✨ **Enhanced Developer Experience**: Better IntelliSense, code
completion, and documentation
- 🚀 **Future-Proof**: Easier maintenance and updates as Auth0's API
evolves
- ⚡ **Async Support**: First-class async client with `AsyncAuth0` and
`AsyncManagementClient`
- 📄 **Automatic Pagination**: Built-in pagination support with
`include_totals=True` by default

---

## 💥 Breaking Changes

### Python Version Support

- The SDK now requires **Python ≥3.8**
- Support for Python 3.7 has been dropped

### Management API Client Redesign

- The Management API client has been **fully restructured** using Fern
for code generation
- Methods are now organized into **modular sub-clients**, improving
structure and maintainability
- **Method names and signatures have changed**, adopting consistent and
predictable naming conventions
- **Pagination defaults changed**: `include_totals=True` is now the
default for list operations
- These changes are **not backward compatible** with the v4.x client

### Import Changes

| Change | v4.x | v5.0.0 |
|--------|------|--------|
| **Management Client** | `from auth0.management import Auth0` | `from
auth0.management import Auth0` or `ManagementClient` |
| **Async Client** | Not available | `from auth0.management import
AsyncAuth0` or `AsyncManagementClient` |
| **Error Handling** | `from auth0.exceptions import Auth0Error` | `from
auth0.management.core.api_error import ApiError` |
| **Authentication** | `from auth0.authentication import GetToken` |
`from auth0.authentication import GetToken` (unchanged) |

---

## 📝 Quick Migration Example

### Before (v4.x):

```python
from auth0.management import Auth0

# Initialize with full base URL
mgmt_api = Auth0(
    domain='YOUR_DOMAIN.auth0.com',
    token='YOUR_TOKEN'
)

# List users with explicit pagination
users = mgmt_api.users.list(
    page=0,
    per_page=50,
    include_totals=True  # Must specify explicitly
)

# Generic dictionary responses
for user in users['users']:
    print(user['email'])
```

### After (v5.0.0):

```python
from auth0.management import ManagementClient

# Simpler initialization - just domain
client = ManagementClient(
    domain='YOUR_DOMAIN.auth0.com',
    token='YOUR_TOKEN'
)

# Or with automatic token management
client = ManagementClient(
    domain='YOUR_DOMAIN.auth0.com',
    client_id='YOUR_CLIENT_ID',
    client_secret='YOUR_CLIENT_SECRET'
)

# Pagination with include_totals=True by default
response = client.users.list(
    page=0,
    per_page=50
)

# Strongly-typed Pydantic models
for user in response.users:
    print(user.email)  # Type-safe attribute access
```

---

## 🔧 Migration Steps

1. **Update imports**: Change import paths as shown in the table above
2. **Client initialization**: Use `ManagementClient` with just `domain`
instead of full `base_url`
3. **Update method calls**: Review method signatures - many have changed
for consistency
4. **Handle responses**: Access response data as attributes (Pydantic
models) instead of dictionary keys
5. **Error handling**: Catch `ApiError` instead of `Auth0Error` for
Management API errors
6. **Pagination**: `include_totals` now defaults to `True` - adjust if
you relied on `False`
7. **Async support**: Use `AsyncManagementClient` or `AsyncAuth0` for
async operations

---

## ✅ What's NOT Affected

**The `authentication` package remains fully compatible!** All
authentication APIs work the same way between v4.x and v5.0.0:

- ✅ `GetToken` - Client credentials, authorization code flows
- ✅ `Database` - User signup and authentication
- ✅ `Passwordless` - Passwordless authentication
- ✅ `Users` - User authentication operations
- ✅ Token verification and validation

---

## 📚 Resources

- **[Migration
Guide](https://github.com/auth0/auth0-python/blob/v5/v5_MIGRATION_GUIDE.md)**:
Detailed migration instructions
- **[API
Reference](https://github.com/auth0/auth0-python/blob/v5/reference.md)**:
Complete API documentation
- **[README](https://github.com/auth0/auth0-python/blob/v5/README.md)**:
Updated examples and usage guide

---

## ⚠️ Beta Release

This is a beta release. While core functionality is stable, minor API
adjustments may occur before the final v5.0.0 release. Please test
thoroughly and provide feedback!

---

## 📦 Installation

```bash
pip install auth0-python==5.0.0b0
```

Or add to your
[requirements.txt](cci:7://file:///Users/snehil.kishore/Desktop/Python/auth0-python/requirements.txt:0:0-0:0):
```
auth0-python>=5.0.0b0,<6.0.0
```

---

4.13.0

Toggle 4.13.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release 4.13.0 (#745)

**Added**
- fix(backchannel): expose headers on `slow_down` errors (HTTP 429s)
[\#744](#744)
([pmalouin](https://github.com/pmalouin))

4.12.0

Toggle 4.12.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release 4.12.0 (#733)

**Added**
- Updates for CIBA with email
[\#720](#720)
([adamjmcgrath](https://github.com/adamjmcgrath))

4.11.0

Toggle 4.11.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix: add missing indentation for Python configuration step (#726)

### Changes

- Fix the `RL-Scanner `Workflow

4.10.0

Toggle 4.10.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release 4.10.0 (#702)

**Added**
- chore: merge community PRs – bugfixes, features, and dependency
upgrades [\#696](#696)
([kishore7snehil](https://github.com/kishore7snehil))

**Fixed**
- fix: handle `authorization_details` in back_channel_login
[\#695](#695)
([kishore7snehil](https://github.com/kishore7snehil))

4.9.0

Toggle 4.9.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release 4.9.0 (#683)

**Added**
- feat: Federated Connections Support
[\#682](#682)
([kishore7snehil](https://github.com/kishore7snehil))
- Adding Support For CIBA with RAR
[\#679](#679)
([kishore7snehil](https://github.com/kishore7snehil))

4.8.1

Toggle 4.8.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release 4.8.1 (#676)

**Fixed**
- Fix: Unauthorized Access Error For PAR
[\#671](#671)
([kishore7snehil](https://github.com/kishore7snehil))