ccproxy.core.plugins.middleware¶
ccproxy.core.plugins.middleware
¶
Middleware management and ordering for the plugin system.
This module provides utilities for managing middleware registration and ensuring proper ordering across core and plugin middleware.
CoreMiddlewareSpec
dataclass
¶
CoreMiddlewareSpec(
middleware_class,
priority=APPLICATION,
kwargs=dict(),
source="core",
)
Bases: MiddlewareSpec
Specification for core application middleware.
Extends MiddlewareSpec with a source field to distinguish between core and plugin middleware.
MiddlewareManager
¶
Manages middleware registration and ordering.
Source code in ccproxy/core/plugins/middleware.py
add_core_middleware
¶
Add core application middleware.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
middleware_class
|
type[BaseHTTPMiddleware]
|
Middleware class |
required |
priority
|
int
|
Priority for ordering |
APPLICATION
|
**kwargs
|
Any
|
Additional middleware arguments |
{}
|
Source code in ccproxy/core/plugins/middleware.py
add_plugin_middleware
¶
Add middleware from a plugin.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
plugin_name
|
str
|
Name of the plugin |
required |
specs
|
list[MiddlewareSpec]
|
List of middleware specifications |
required |
Source code in ccproxy/core/plugins/middleware.py
get_ordered_middleware
¶
Get all middleware sorted by priority.
Returns:
| Type | Description |
|---|---|
list[CoreMiddlewareSpec]
|
List of middleware specs sorted by priority (lower first) |
Source code in ccproxy/core/plugins/middleware.py
apply_to_app
¶
Apply all middleware to the FastAPI app in correct order.
Note: Middleware in FastAPI/Starlette is applied in reverse order (last added runs first), so we add them in reverse priority order.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
app
|
FastAPI
|
FastAPI application |
required |
Source code in ccproxy/core/plugins/middleware.py
get_middleware_summary
¶
Get a summary of registered middleware.
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dictionary with middleware statistics and order |
Source code in ccproxy/core/plugins/middleware.py
setup_default_middleware
¶
Setup default core middleware.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
manager
|
MiddlewareManager
|
Middleware manager |
required |