Skip to content

ccproxy.api.middleware.cors

ccproxy.api.middleware.cors

CORS middleware for CCProxy API Server.

setup_cors_middleware

setup_cors_middleware(app, settings)

Setup CORS middleware for the FastAPI application.

Parameters:

Name Type Description Default
app FastAPI

FastAPI application instance

required
settings Settings

Application settings containing CORS configuration

required
Source code in ccproxy/api/middleware/cors.py
def setup_cors_middleware(app: FastAPI, settings: Settings) -> None:
    """Setup CORS middleware for the FastAPI application.

    Args:
        app: FastAPI application instance
        settings: Application settings containing CORS configuration
    """
    logger.debug("cors_middleware_setup_start")

    app.add_middleware(
        CORSMiddleware,
        allow_origins=settings.cors.origins,
        allow_credentials=settings.cors.credentials,
        allow_methods=settings.cors.methods,
        allow_headers=settings.cors.headers,
        allow_origin_regex=settings.cors.origin_regex,
        expose_headers=settings.cors.expose_headers,
        max_age=settings.cors.max_age,
    )

    logger.debug("cors_middleware_configured", origins=settings.cors.origins)

get_cors_config

get_cors_config(settings)

Get CORS configuration dictionary.

Parameters:

Name Type Description Default
settings Settings

Application settings containing CORS configuration

required

Returns:

Type Description
dict[str, Any]

Dictionary containing CORS configuration

Source code in ccproxy/api/middleware/cors.py
def get_cors_config(settings: Settings) -> dict[str, Any]:
    """Get CORS configuration dictionary.

    Args:
        settings: Application settings containing CORS configuration

    Returns:
        Dictionary containing CORS configuration
    """
    return {
        "allow_origins": settings.cors.origins,
        "allow_credentials": settings.cors.credentials,
        "allow_methods": settings.cors.methods,
        "allow_headers": settings.cors.headers,
        "allow_origin_regex": settings.cors.origin_regex,
        "expose_headers": settings.cors.expose_headers,
        "max_age": settings.cors.max_age,
    }