Merge branch 'main' into default-data

This commit is contained in:
Edwin Jose 2025-09-04 15:41:03 -04:00
commit 34739193eb
2 changed files with 57 additions and 13 deletions

View file

@ -13,12 +13,25 @@ async def upload(request: Request, document_service, session_manager):
user = request.state.user
jwt_token = request.state.jwt_token
from config.settings import is_no_auth_mode
# In no-auth mode, pass None for owner fields so documents have no owner
# This allows all users to see them when switching to auth mode
if is_no_auth_mode():
owner_user_id = None
owner_name = None
owner_email = None
else:
owner_user_id = user.user_id
owner_name = user.name
owner_email = user.email
result = await document_service.process_upload_file(
upload_file,
owner_user_id=user.user_id,
owner_user_id=owner_user_id,
jwt_token=jwt_token,
owner_name=user.name,
owner_email=user.email,
owner_name=owner_name,
owner_email=owner_email,
)
return JSONResponse(result, status_code=201) # Created
except Exception as e:
@ -48,12 +61,25 @@ async def upload_path(request: Request, task_service, session_manager):
user = request.state.user
jwt_token = request.state.jwt_token
from config.settings import is_no_auth_mode
# In no-auth mode, pass None for owner fields so documents have no owner
if is_no_auth_mode():
owner_user_id = None
owner_name = None
owner_email = None
else:
owner_user_id = user.user_id
owner_name = user.name
owner_email = user.email
task_id = await task_service.create_upload_task(
user.user_id,
owner_user_id,
file_paths,
jwt_token=jwt_token,
owner_name=user.name,
owner_email=user.email,
owner_name=owner_name,
owner_email=owner_email,
)
return JSONResponse(
@ -146,18 +172,31 @@ async def upload_bucket(request: Request, task_service, session_manager):
jwt_token = request.state.jwt_token
from models.processors import S3FileProcessor
from config.settings import is_no_auth_mode
# In no-auth mode, pass None for owner fields so documents have no owner
if is_no_auth_mode():
owner_user_id = None
owner_name = None
owner_email = None
task_user_id = None
else:
owner_user_id = user.user_id
owner_name = user.name
owner_email = user.email
task_user_id = user.user_id
processor = S3FileProcessor(
task_service.document_service,
bucket,
s3_client=s3_client,
owner_user_id=user.user_id,
owner_user_id=owner_user_id,
jwt_token=jwt_token,
owner_name=user.name,
owner_email=user.email,
owner_name=owner_name,
owner_email=owner_email,
)
task_id = await task_service.create_custom_task(user.user_id, keys, processor)
task_id = await task_service.create_custom_task(task_user_id, keys, processor)
return JSONResponse(
{"task_id": task_id, "total_files": len(keys), "status": "accepted"},

View file

@ -207,13 +207,18 @@ class S3FileProcessor(TaskProcessor):
"page": chunk["page"],
"text": chunk["text"],
"chunk_embedding": vect,
"owner": self.owner_user_id,
"owner_name": self.owner_name,
"owner_email": self.owner_email,
"file_size": file_size,
"connector_type": "s3", # S3 uploads
"indexed_time": datetime.datetime.now().isoformat(),
}
# Only set owner fields if owner_user_id is provided (for no-auth mode support)
if self.owner_user_id is not None:
chunk_doc["owner"] = self.owner_user_id
if self.owner_name is not None:
chunk_doc["owner_name"] = self.owner_name
if self.owner_email is not None:
chunk_doc["owner_email"] = self.owner_email
chunk_id = f"{slim_doc['id']}_{i}"
try:
await opensearch_client.index(