diff --git a/src/dataprocessor/router.py b/src/dataprocessor/router.py index 790ccac..2c63480 100644 --- a/src/dataprocessor/router.py +++ b/src/dataprocessor/router.py @@ -3,7 +3,7 @@ # Set up router import logging from fastapi import APIRouter -from fastapi import Depends +from fastapi import Security from src.dataprocessor.schemas import UpdateDbResponse from src.dependencies import require_pp_api_key @@ -16,7 +16,7 @@ logger = logging.getLogger(__name__) @router.post("/update-db") -async def update_db(*, _: None = Depends(require_pp_api_key)) -> UpdateDbResponse: +async def update_db(_: None = Security(require_pp_api_key)) -> UpdateDbResponse: """Endpoint to update the AI-database.""" service = await DataProcessorService.create() await service.update_database() diff --git a/src/dataquery/router.py b/src/dataquery/router.py index ee927cd..ae8d8a4 100644 --- a/src/dataquery/router.py +++ b/src/dataquery/router.py @@ -1,7 +1,9 @@ """Router for data query endpoints.""" import logging -from fastapi import APIRouter, Depends, Path +from fastapi import APIRouter +from fastapi import Path +from fastapi import Security from src.dataquery.schemas import ( DatabaseSchemaResponse, @@ -21,7 +23,7 @@ logger = logging.getLogger(__name__) @router.post("/query", response_model=SqlQueryResponse) async def execute_sql_query( request: SqlQueryRequest, - _: None = Depends(require_db_api_key), + _: None = Security(require_db_api_key), ) -> SqlQueryResponse: """Execute a SELECT SQL query against the database. @@ -44,7 +46,7 @@ async def execute_sql_query( @router.get("/schema", response_model=DatabaseSchemaResponse) async def get_database_schema( - _: None = Depends(require_db_api_key), + _: None = Security(require_db_api_key), ) -> DatabaseSchemaResponse: """Get information about all tables in the database. @@ -64,7 +66,7 @@ async def get_database_schema( @router.get("/schema/{table_name}", response_model=TableSchemaResponse) async def get_table_schema( table_name: str = Path(..., description="Name of the table to inspect"), - _: None = Depends(require_db_api_key), + _: None = Security(require_db_api_key), ) -> TableSchemaResponse: """Get detailed information about a specific table. diff --git a/src/dependencies.py b/src/dependencies.py index 4a2c966..c781b46 100644 --- a/src/dependencies.py +++ b/src/dependencies.py @@ -1,7 +1,7 @@ """Dependencies for FastAPI routers.""" -from fastapi import Depends from fastapi import HTTPException +from fastapi import Security from fastapi import status from fastapi.security import APIKeyHeader from fastapi.security.base import SecurityBase @@ -13,10 +13,11 @@ from src.settings import settings api_key_header: SecurityBase = APIKeyHeader( name="X-PP-API-Key", description="API key for preprocessor access", + scheme_name="PreprocessorKey", ) -def require_pp_api_key(api_key: str = Depends(api_key_header)) -> None: +def require_pp_api_key(api_key: str = Security(api_key_header)) -> None: """Validate the preprocessor API key. Args: @@ -37,10 +38,11 @@ def require_pp_api_key(api_key: str = Depends(api_key_header)) -> None: db_api_key_header: SecurityBase = APIKeyHeader( name="X-DB-API-Key", description="API key for database query access", + scheme_name="DatabaseKey", ) -def require_db_api_key(api_key: str = Depends(db_api_key_header)) -> None: +def require_db_api_key(api_key: str = Security(db_api_key_header)) -> None: """Validate the database API key. Args: