Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/stac_auth_proxy/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,14 @@
"""

from .app import configure_app, create_app
from .config import Settings
from .config import CoreSettings, ProxySettings, Settings
from .lifespan import build_lifespan

__all__ = [
"build_lifespan",
"create_app",
"configure_app",
"Settings",
"ProxySettings",
"CoreSettings",
]
6 changes: 3 additions & 3 deletions src/stac_auth_proxy/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from fastapi import FastAPI
from starlette_cramjam.middleware import CompressionMiddleware

from .config import Settings
from .config import CoreSettings, Settings
from .handlers import HealthzHandler, ReverseProxyHandler, SwaggerUI
from .lifespan import build_lifespan
from .middleware import (
Expand All @@ -33,7 +33,7 @@

def configure_app(
app: FastAPI,
settings: Optional[Settings] = None,
settings: Optional[CoreSettings] = None,
**settings_kwargs: Any,
) -> FastAPI:
"""
Expand All @@ -51,7 +51,7 @@ def configure_app(
``settings`` is not provided.

"""
settings = settings or Settings(**settings_kwargs)
settings = settings or CoreSettings(**settings_kwargs)

#
# Route Handlers
Expand Down
17 changes: 13 additions & 4 deletions src/stac_auth_proxy/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,17 +40,14 @@ def __call__(self):
return cls(*self.args, **self.kwargs)


class Settings(BaseSettings):
class CoreSettings(BaseSettings):
"""Configuration settings for the STAC Auth Proxy."""

# External URLs
upstream_url: HttpUrl
oidc_discovery_url: HttpUrl
oidc_discovery_internal_url: HttpUrl
allowed_jwt_audiences: Optional[Sequence[str]] = None

root_path: str = ""
override_host: bool = True
healthz_prefix: str = Field(pattern=_PREFIX_PATTERN, default="/healthz")
wait_for_upstream: bool = True
check_conformance: bool = True
Expand Down Expand Up @@ -112,3 +109,15 @@ def _default_oidc_discovery_internal_url(cls, data: Any) -> Any:
def parse_audience(cls, v) -> Optional[Sequence[str]]:
"""Parse a comma separated string list of audiences into a list."""
return str2list(v)


class ProxySettings(CoreSettings):
"""Configuration settings for the STAC Auth Proxy."""

# Proxy Configuration
upstream_url: HttpUrl
root_path: str = ""
override_host: bool = True


Settings = ProxySettings
Loading