diff --git a/troubleshooting/250828_UUID_통합_및_사용자_격리_계획.md b/troubleshooting/250828_UUID_통합_및_사용자_격리_계획.md new file mode 100644 index 0000000..42e434c --- /dev/null +++ b/troubleshooting/250828_UUID_통합_및_사용자_격리_계획.md @@ -0,0 +1,96 @@ +# 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 \ No newline at end of file