|
1 | 1 | from logging import getLogger
|
2 | 2 | from pathlib import Path
|
3 |
| -from typing import Any, Union |
| 3 | +from typing import Any, List, Union |
4 | 4 |
|
5 | 5 | import typer
|
6 | 6 | from rich import print
|
@@ -60,6 +60,7 @@ def _run(
|
60 | 60 | command: str,
|
61 | 61 | app: Union[str, None] = None,
|
62 | 62 | proxy_headers: bool = False,
|
| 63 | + forwarded_allow_ips: Union[str, None] = None, |
63 | 64 | ) -> None:
|
64 | 65 | try:
|
65 | 66 | use_uvicorn_app = get_import_string(path=path, app_name=app)
|
@@ -97,6 +98,7 @@ def _run(
|
97 | 98 | workers=workers,
|
98 | 99 | root_path=root_path,
|
99 | 100 | proxy_headers=proxy_headers,
|
| 101 | + forwarded_allow_ips=forwarded_allow_ips, |
100 | 102 | )
|
101 | 103 |
|
102 | 104 |
|
@@ -145,6 +147,12 @@ def dev(
|
145 | 147 | help="Enable/Disable X-Forwarded-Proto, X-Forwarded-For, X-Forwarded-Port to populate remote address info."
|
146 | 148 | ),
|
147 | 149 | ] = True,
|
| 150 | + forwarded_allow_ips: Annotated[ |
| 151 | + Union[str, None], |
| 152 | + typer.Option( |
| 153 | + help="Comma separated list of IP Addresses to trust with proxy headers. The literal '*' means trust everything." |
| 154 | + ), |
| 155 | + ] = None, |
148 | 156 | ) -> Any:
|
149 | 157 | """
|
150 | 158 | Run a [bold]FastAPI[/bold] app in [yellow]development[/yellow] mode. 🧪
|
@@ -180,6 +188,7 @@ def dev(
|
180 | 188 | app=app,
|
181 | 189 | command="dev",
|
182 | 190 | proxy_headers=proxy_headers,
|
| 191 | + forwarded_allow_ips=forwarded_allow_ips, |
183 | 192 | )
|
184 | 193 |
|
185 | 194 |
|
@@ -234,6 +243,12 @@ def run(
|
234 | 243 | help="Enable/Disable X-Forwarded-Proto, X-Forwarded-For, X-Forwarded-Port to populate remote address info."
|
235 | 244 | ),
|
236 | 245 | ] = True,
|
| 246 | + forwarded_allow_ips: Annotated[ |
| 247 | + Union[str, None], |
| 248 | + typer.Option( |
| 249 | + help="Comma separated list of IP Addresses to trust with proxy headers. The literal '*' means trust everything." |
| 250 | + ), |
| 251 | + ] = None, |
237 | 252 | ) -> Any:
|
238 | 253 | """
|
239 | 254 | Run a [bold]FastAPI[/bold] app in [green]production[/green] mode. 🚀
|
@@ -270,6 +285,7 @@ def run(
|
270 | 285 | app=app,
|
271 | 286 | command="run",
|
272 | 287 | proxy_headers=proxy_headers,
|
| 288 | + forwarded_allow_ips=forwarded_allow_ips, |
273 | 289 | )
|
274 | 290 |
|
275 | 291 |
|
|
0 commit comments