stac_auth_proxy.middleware
¶
Custom middleware.
OpenApiMiddleware
dataclass
¶
Bases: JsonResponseMiddleware
Middleware to add the OpenAPI spec to the response.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
app
|
Callable[list, Awaitable[None]]
|
|
required |
openapi_spec_path
|
str
|
|
required |
oidc_discovery_url
|
str
|
|
required |
private_endpoints
|
dict[str, Sequence[Literal[GET, POST, PUT, DELETE, PATCH]]]
|
|
required |
public_endpoints
|
dict[str, Sequence[Literal[GET, POST, PUT, DELETE, PATCH]]]
|
|
required |
default_public
|
bool
|
|
required |
root_path
|
str
|
|
''
|
auth_scheme_name
|
str
|
|
'oidcAuth'
|
auth_scheme_override
|
dict | None
|
|
None
|
items_filter_path
|
str | None
|
|
None
|
collections_filter_path
|
str | None
|
|
None
|
json_content_type_expr
|
str
|
|
'application/(vnd\\.oai\\.openapi\\+json?|json)'
|
Source code in src/stac_auth_proxy/middleware/UpdateOpenApiMiddleware.py
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | |
should_transform_response(request: Request, scope: Scope) -> bool
¶
Only transform responses for the OpenAPI spec path.
Source code in src/stac_auth_proxy/middleware/UpdateOpenApiMiddleware.py
36 37 38 39 40 41 42 43 44 45 | |
transform_json(data: dict[str, Any], request: Request) -> dict[str, Any]
¶
Augment the OpenAPI spec with auth information.
Source code in src/stac_auth_proxy/middleware/UpdateOpenApiMiddleware.py
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | |
RestoreRootPathMiddleware
dataclass
¶
Put back the root path RemoveRootPathMiddleware removed, so routing (including Mounts) and URLs built from root_path (docs, url_for) see the usual ASGI scope. Request handlers then route on, and the proxy forwards, the path the checks saw.
IMPORTANT: Must be the innermost middleware (first declared).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
app
|
Callable[list, Awaitable[None]]
|
|
required |
Source code in src/stac_auth_proxy/middleware/RemoveRootPathMiddleware.py
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | |
__call__(scope: Scope, receive: Receive, send: Send) -> None
async
¶
Restore the original path and root_path.
Source code in src/stac_auth_proxy/middleware/RemoveRootPathMiddleware.py
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | |