"""Application.""" from asgi_correlation_id import CorrelationIdMiddleware from fastapi import FastAPI from fastapi.datastructures import Default from fastapi.middleware import Middleware from fastapi.responses import JSONResponse from jwtauth.asgi.middleware import JWTAuthenticationMiddleware from jwtauth.utils import jwt_auth_enabled_for_env, jwt_auth_from_environment from delivery_metadata import config from delivery_metadata.api.lifespan import lifespan app = FastAPI( debug=config.APP_DEBUG, title=config.SERVICE_NAME, version=config.SERVICE_VERSION, default_response_class=Default(JSONResponse), description="Orchard web service generating metadata formats used for content delivery.", lifespan=lifespan, middleware=[ Middleware( CorrelationIdMiddleware, ), Middleware( JWTAuthenticationMiddleware, environment=config.ENVIRONMENT, enabled=jwt_auth_enabled_for_env(config.ENVIRONMENT), exclude_paths=[ "/hello/?$", "/redoc/?$", "/docs/?$", r"/openapi\.json$", "/products/", ], auth=jwt_auth_from_environment(config.ENVIRONMENT), ), ], )