feat: make all authentication optional
This commit is contained in:
parent
624b4a6a61
commit
3e35c49ebd
5 changed files with 32 additions and 7 deletions
|
|
@ -9,7 +9,7 @@ from fastapi import Form, File, UploadFile, Depends
|
|||
from typing import List, Optional, Union, Literal
|
||||
|
||||
from cognee.modules.users.models import User
|
||||
from cognee.modules.users.methods import get_authenticated_user
|
||||
from cognee.modules.users.methods import get_optional_authenticated_user, get_default_user
|
||||
from cognee.shared.utils import send_telemetry
|
||||
from cognee.modules.pipelines.models import PipelineRunErrored
|
||||
from cognee.shared.logging_utils import get_logger
|
||||
|
|
@ -25,7 +25,7 @@ def get_add_router() -> APIRouter:
|
|||
data: List[UploadFile] = File(default=None),
|
||||
datasetName: Optional[str] = Form(default=None),
|
||||
datasetId: Union[UUID, Literal[""], None] = Form(default=None, examples=[""]),
|
||||
user: User = Depends(get_authenticated_user),
|
||||
user: Optional[User] = Depends(get_optional_authenticated_user),
|
||||
):
|
||||
"""
|
||||
Add data to a dataset for processing and knowledge graph construction.
|
||||
|
|
@ -62,6 +62,10 @@ def get_add_router() -> APIRouter:
|
|||
- The ALLOW_HTTP_REQUESTS environment variable controls URL processing
|
||||
- datasetId value can only be the UUID of an already existing dataset
|
||||
"""
|
||||
# Use default user for anonymous requests
|
||||
if user is None:
|
||||
user = await get_default_user()
|
||||
|
||||
send_telemetry(
|
||||
"Add API Endpoint Invoked",
|
||||
user.id,
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ from starlette.status import WS_1000_NORMAL_CLOSURE, WS_1008_POLICY_VIOLATION
|
|||
from cognee.api.DTO import InDTO
|
||||
from cognee.modules.pipelines.methods import get_pipeline_run
|
||||
from cognee.modules.users.models import User
|
||||
from cognee.modules.users.methods import get_authenticated_user
|
||||
from cognee.modules.users.methods import get_optional_authenticated_user, get_default_user
|
||||
from cognee.modules.users.get_user_db import get_user_db_context
|
||||
from cognee.modules.graph.methods import get_formatted_graph_data
|
||||
from cognee.modules.users.get_user_manager import get_user_manager_context
|
||||
|
|
@ -46,7 +46,7 @@ def get_cognify_router() -> APIRouter:
|
|||
router = APIRouter()
|
||||
|
||||
@router.post("", response_model=dict)
|
||||
async def cognify(payload: CognifyPayloadDTO, user: User = Depends(get_authenticated_user)):
|
||||
async def cognify(payload: CognifyPayloadDTO, user: Optional[User] = Depends(get_optional_authenticated_user)):
|
||||
"""
|
||||
Transform datasets into structured knowledge graphs through cognitive processing.
|
||||
|
||||
|
|
@ -92,6 +92,10 @@ def get_cognify_router() -> APIRouter:
|
|||
## Next Steps
|
||||
After successful processing, use the search endpoints to query the generated knowledge graph for insights, relationships, and semantic search.
|
||||
"""
|
||||
# Use default user for anonymous requests
|
||||
if user is None:
|
||||
user = await get_default_user()
|
||||
|
||||
send_telemetry(
|
||||
"Cognify API Endpoint Invoked",
|
||||
user.id,
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ from cognee.api.DTO import InDTO, OutDTO
|
|||
from cognee.modules.users.exceptions.exceptions import PermissionDeniedError
|
||||
from cognee.modules.users.models import User
|
||||
from cognee.modules.search.operations import get_history
|
||||
from cognee.modules.users.methods import get_authenticated_user
|
||||
from cognee.modules.users.methods import get_optional_authenticated_user, get_default_user
|
||||
from cognee.shared.utils import send_telemetry
|
||||
|
||||
|
||||
|
|
@ -33,7 +33,7 @@ def get_search_router() -> APIRouter:
|
|||
created_at: datetime
|
||||
|
||||
@router.get("", response_model=list[SearchHistoryItem])
|
||||
async def get_search_history(user: User = Depends(get_authenticated_user)):
|
||||
async def get_search_history(user: Optional[User] = Depends(get_optional_authenticated_user)):
|
||||
"""
|
||||
Get search history for the authenticated user.
|
||||
|
||||
|
|
@ -50,6 +50,10 @@ def get_search_router() -> APIRouter:
|
|||
## Error Codes
|
||||
- **500 Internal Server Error**: Error retrieving search history
|
||||
"""
|
||||
# Use default user for anonymous requests
|
||||
if user is None:
|
||||
user = await get_default_user()
|
||||
|
||||
send_telemetry(
|
||||
"Search API Endpoint Invoked",
|
||||
user.id,
|
||||
|
|
@ -66,7 +70,7 @@ def get_search_router() -> APIRouter:
|
|||
return JSONResponse(status_code=500, content={"error": str(error)})
|
||||
|
||||
@router.post("", response_model=list)
|
||||
async def search(payload: SearchPayloadDTO, user: User = Depends(get_authenticated_user)):
|
||||
async def search(payload: SearchPayloadDTO, user: Optional[User] = Depends(get_optional_authenticated_user)):
|
||||
"""
|
||||
Search for nodes in the graph database.
|
||||
|
||||
|
|
@ -93,6 +97,10 @@ def get_search_router() -> APIRouter:
|
|||
- To search datasets not owned by the request sender, dataset UUID is needed
|
||||
- If permission is denied, returns empty list instead of error
|
||||
"""
|
||||
# Use default user for anonymous requests
|
||||
if user is None:
|
||||
user = await get_default_user()
|
||||
|
||||
send_telemetry(
|
||||
"Search API Endpoint Invoked",
|
||||
user.id,
|
||||
|
|
|
|||
|
|
@ -5,3 +5,4 @@ from .get_default_user import get_default_user
|
|||
from .get_user_by_email import get_user_by_email
|
||||
from .create_default_user import create_default_user
|
||||
from .get_authenticated_user import get_authenticated_user
|
||||
from .get_optional_authenticated_user import get_optional_authenticated_user
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
from ..get_fastapi_users import get_fastapi_users
|
||||
|
||||
# Create optional authenticated user dependency using FastAPI Users' built-in optional parameter
|
||||
fastapi_users = get_fastapi_users()
|
||||
get_optional_authenticated_user = fastapi_users.current_user(
|
||||
optional=True, # Returns None instead of raising HTTPException(401)
|
||||
active=True # Still require users to be active when authenticated
|
||||
)
|
||||
Loading…
Add table
Reference in a new issue