Skip to content

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 ExceptionMessageType to ErrorMessageType
  • 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")
    }