Fixes two compatibility issues in workspace isolation: 1. Problem: lightrag_server.py calls initialize_pipeline_status() without workspace parameter, causing pipeline to initialize in global namespace instead of rag's workspace. Solution: Add set_default_workspace() mechanism in shared_storage. LightRAG.initialize_storages() now sets default workspace, which initialize_pipeline_status() uses when called without parameters. 2. Problem: /health endpoint hardcoded to use "pipeline_status", cannot return workspace-specific status or support frontend workspace selection. Solution: Add LIGHTRAG-WORKSPACE header support. Endpoint now extracts workspace from header or falls back to server default, returning correct workspace-specific pipeline status. Changes: - lightrag/kg/shared_storage.py: Add set/get_default_workspace() - lightrag/lightrag.py: Call set_default_workspace() in initialize_storages() - lightrag/api/lightrag_server.py: Add get_workspace_from_request() helper, update /health endpoint to support LIGHTRAG-WORKSPACE header Testing: - Backward compatibility: Old code works without modification - Multi-instance safety: Explicit workspace passing preserved - /health endpoint: Supports both default and header-specified workspaces Related: #2353 |
||
|---|---|---|
| .. | ||
| deprecated | ||
| __init__.py | ||
| faiss_impl.py | ||
| json_doc_status_impl.py | ||
| json_kv_impl.py | ||
| memgraph_impl.py | ||
| milvus_impl.py | ||
| mongo_impl.py | ||
| nano_vector_db_impl.py | ||
| neo4j_impl.py | ||
| networkx_impl.py | ||
| postgres_impl.py | ||
| qdrant_impl.py | ||
| redis_impl.py | ||
| shared_storage.py | ||