diff --git a/plans/250831_unified_id_system_implementation_roadmap.md b/plans/250831_unified_id_system_implementation_roadmap.md index 7481d85..462b9ec 100644 --- a/plans/250831_unified_id_system_implementation_roadmap.md +++ b/plans/250831_unified_id_system_implementation_roadmap.md @@ -13,7 +13,7 @@ - **rb8001**: UUID 매핑 API 제공하지만 내부적으로 혼용 - **skill-email**: slack_id 직접 사용 (UUID 미지원) - **Gateway**: JWT에서 UUID 추출 후 전달 -- **ChromaDB**: 일관성 없는 collection 명명 체계 +- **ChromaDB**: 일관성 없는 collection 명명 체계 → 서비스별 prefix 방식으로 통일 필요 ({service}_{uuid}) ### 1.2 영향 범위 - 서비스 간 통신 오류 발생 @@ -140,8 +140,8 @@ async def list_emails(request: EmailRequest): # user_id를 UUID로 받음 user_uuid = request.user_id # 이제 UUID - # ChromaDB collection 명명 규칙 통일 - collection_name = f"user_{user_uuid}_emails" # UUID 사용 + # ChromaDB collection 명명 규칙 통일 (서비스별 prefix) + collection_name = f"skill_email_{user_uuid}" # 서비스_UUID 형식 credentials = await credentials_provider.get_credentials(user_uuid) # ... @@ -201,7 +201,7 @@ async def handle_slack_event(request: Request): --- ### Phase 4: ChromaDB Collection 정리 (Day 7) -**목표**: UUID 기반 일관된 명명 체계 적용 +**목표**: 서비스별 prefix + UUID 기반 일관된 명명 체계 적용 #### 4.1 Collection 마이그레이션 스크립트 ```python @@ -230,7 +230,9 @@ async def migrate_collections(): user_uuid = await get_uuid_from_slack_id(slack_id) if user_uuid: - new_name = f"user_{user_uuid}_emails" + # 서비스별 prefix 방식 (예: rb8001_{uuid}, skill_email_{uuid}) + service_name = old_name.split("_")[0] if "_" in old_name else "rb8001" + new_name = f"{service_name}_{user_uuid}" # 컬렉션 복사 old_collection = client.get_collection(old_name) @@ -305,8 +307,8 @@ async def test_full_flow(): emails = await fetch_emails(user_uuid) assert emails is not None - # 5. ChromaDB 컬렉션 확인 - collection_name = f"user_{user_uuid}_emails" + # 5. ChromaDB 컬렉션 확인 (서비스별 prefix) + collection_name = f"skill_email_{user_uuid}" collection = chromadb_client.get_collection(collection_name) assert collection is not None @@ -394,7 +396,7 @@ if not uuid_mapping: - ✅ 모든 서비스가 UUID를 primary key로 사용 - ✅ Slack ID는 진입점에서만 UUID로 변환 -- ✅ ChromaDB 컬렉션명 통일 (user_{uuid}_*) +- ✅ ChromaDB 컬렉션명 통일 ({service}_{uuid} 형식) - ✅ 서비스 간 통신 오류 0% - ✅ 기존 기능 100% 하위 호환성 유지