perf: avoid redundant knowledge re-fetch in update_knowledge_access_by_id (#23799)
After set_access_grants, the handler was reloading the same knowledge record via get_knowledge_by_id, which triggers an extra SELECT plus a nested fetch of access grants. set_access_grants already returns the newly-written grants and the local knowledge object is otherwise unchanged, so update it in place and reuse it for the response. https://claude.ai/code/session_01S18Lgqbih7Ry2JZUUv8TxF Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -539,10 +539,12 @@ async def update_knowledge_access_by_id(
|
|||||||
'sharing.public_knowledge',
|
'sharing.public_knowledge',
|
||||||
)
|
)
|
||||||
|
|
||||||
await AccessGrants.set_access_grants('knowledge', id, form_data.access_grants, db=db)
|
knowledge.access_grants = await AccessGrants.set_access_grants(
|
||||||
|
'knowledge', id, form_data.access_grants, db=db
|
||||||
|
)
|
||||||
|
|
||||||
return KnowledgeFilesResponse(
|
return KnowledgeFilesResponse(
|
||||||
**(await Knowledges.get_knowledge_by_id(id=id, db=db)).model_dump(),
|
**knowledge.model_dump(),
|
||||||
files=await Knowledges.get_file_metadatas_by_id(id, db=db),
|
files=await Knowledges.get_file_metadatas_by_id(id, db=db),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user