0.12.0 — 2025-03-29¶
← 0.13.0 | 0.11.2 → | ↑ 0.x series
Features¶
- Keycloak Integration: Comprehensive authentication and authorization for FastAPI:
- Role-based access control with customizable requirements
- Resource-based authorization for fine-grained access control
- Both synchronous and asynchronous authentication flows
- Token validation and introspection
- User info extraction capabilities
Code Quality¶
- Improved error handling clarity by renaming
ExceptionMessageTypetoErrorMessageType - Enhanced error documentation with detailed descriptions
- Updated error handling implementation with new message types
Usage Example¶
from fastapi import FastAPI, Depends
from archipy.helpers.utils.keycloak_utils import KeycloakUtils
app = FastAPI()
@app.get("/api/profile")
def get_profile(user: dict = Depends(KeycloakUtils.fastapi_auth(
required_roles={"user"},
admin_roles={"admin"}
))):
return {
"user_id": user.get("sub"),
"username": user.get("preferred_username")
}