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
.versionfile from5.0.0b0to5.0.0 - Updated
pyproject.tomlpackage version to5.0.0 - Added comprehensive v5.0.0 release notes to
CHANGELOG.md - Updated
README.mdwith 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
SyncPagerandAsyncPagerclasses 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 Auth0tofrom auth0.management import ManagementClient - Client initialization changed from
Auth0(domain, management_token)toManagementClient(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 usetake - Python version requirement increased from ≥3.7 to ≥3.8
- Error handling changed from
Auth0ErrortoApiErrorbase class
Migration Example
Before (v4):
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 accessAfter (v5):
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
authenticationpackage is NOT affected by these changes. Authentication APIs remain the same between v4 and v5. - 📚 Complete migration guide available at 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
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