def add_auth_to_openapi()

in src/backend/entrypoints/llm_backend/openapi.py [0:0]


def add_auth_to_openapi(fastapi_app: FastAPI):
    security_schema = {
        "securitySchemes": {
            "Bearer Auth": {
                "type": "http",
                "scheme": "bearer",
                "bearerFormat": "JWT",
            },
            "Session header": {
                "type": "apiKey",
                "in": "header",
                "name": "X-Tab-Session-ID",
            },
        },
    }

    def custom_openapi():
        if fastapi_app.openapi_schema:
            return fastapi_app.openapi_schema

        openapi_schema = get_openapi(
            title=fastapi_app.title,
            version=fastapi_app.version,
            routes=fastapi_app.routes,
        )

        schema_components = openapi_schema.get("components")
        if schema_components:
            openapi_schema["components"].update(security_schema)
        else:
            openapi_schema["components"] = security_schema

        openapi_schema["security"] = [
            {"Bearer Auth": []},
            {"Session header": []},
        ]

        fastapi_app.openapi_schema = openapi_schema
        return fastapi_app.openapi_schema

    fastapi_app.openapi = custom_openapi