# UUID 통합 및 사용자 격리 계획 ## 작성일: 2025-08-28 ## 작성자: 51123 서버 관리자 ## 상태: 계획 수립 ## 목표: Frontend/Slack 사용자 통합, 워크스페이스별 로빙 공유, 개인별 대화 격리 --- ## 1. 현재 상황 ### ID 체계 혼재 - **Frontend**: Google OAuth → UUID4 (auth-server 생성) - **Slack**: Slack User ID (U091XXX...) - **DB**: UUID, username, slack_id 혼용 ### 문제점 - 같은 사용자가 서비스마다 다른 ID - rb8001 JWT 검증 미구현 (보안 취약) - ChromaDB 사용자 격리 없음 --- ## 2. 목표 아키텍처 ### 통합 ID 체계 ``` Google 로그인 → UUID 생성 → users 테이블 Slack 로그인 → UUID 조회/생성 → slack_user_mapping ``` ### 워크스페이스 구조 ``` workspace (로빙 1개) ├── user1 (UUID) - Frontend/Slack 통합 ├── user2 (UUID) - Frontend/Slack 통합 └── user3 (UUID) - Slack만 ``` ### 데이터 격리 - **공유**: 로빙 레벨, 스탯 - **격리**: 대화 내용, ChromaDB 기억, Gmail 토큰 --- ## 3. 구현 계획 ### Phase 1: 보안 (긴급) - [ ] rb8001 JWT 검증 구현 - [ ] X-User-Id 헤더 제거 - [ ] Bearer 토큰 필수화 ### Phase 2: ID 통합 - [ ] slack_user_mapping 활성화 - [ ] UUID5 → DB 조회 전환 - [ ] gmail_tokens slack_user_id 제거 ### Phase 3: 사용자 격리 - [ ] ChromaDB 사용자별 컬렉션 - [ ] conversation_logs user_id 정상화 - [ ] 대화 컨텍스트 분리 --- ## 4. 핵심 변경사항 ### rb8001 (51124 서버) ```python # 추가 필요: app/dependencies/auth.py async def get_current_user(authorization: str = Header()): # JWT 검증 # UUID 추출 return user_uuid ``` ### robeing-monitor (51124 서버) - UUID5 제거 → slack_user_mapping API 사용 ### Gateway (51123 서버) - 이미 UUID 사용 중 ✅ --- ## 5. 테스트 시나리오 1. happybell80이 Frontend 로그인 → UUID 확인 2. 같은 사용자 Slack DM → 같은 UUID 매핑 3. 다른 사용자와 대화 격리 확인 4. 워크스페이스 로빙 공유 확인 --- ## 관련 문서 - 250827_JWT_인증_구현_COMPLETED.md - 250827_UUID_username_혼용_CRITICAL.md - 250819_claude_사용자구분및ChromaDB격리문제.md