docs: UUID 통합 계획에 실제 확인 정보 반영

This commit is contained in:
happybell80 2025-08-28 17:27:46 +09:00
parent 45ce06ab2f
commit 5814626c94

View File

@ -7,17 +7,25 @@
--- ---
## 1. 현재 상황 ## 1. 현재 상황 (2025-08-28 확인)
### ID 체계 혼재 ### ID 체계 현황
- **Frontend**: Google OAuth → UUID4 (auth-server 생성) - **Frontend**: JWT sub에 UUID 사용 ✅
- **Slack**: Slack User ID (U091XXX...) - **Gateway**: UUID로 인증 ✅
- **DB**: UUID, username, slack_id 혼용 - **slack_user_mapping**: Slack ID → UUID 매핑 활성화 ✅
- **rb8001**: Slack ID 그대로 사용 (String) ❌
### 실제 데이터
```
happybell80: U0925SXQFDK → 1e16e9d5-59f3-54da-a661-8abeabff4230
0914eagle: U091UNVE41M → b6ea2ee0-a15a-5cf4-93a9-a9ca20d4c4a0
cdctfm: U092F7FQ55L → 69ae4ea9-a15f-5110-9f5d-6568e380fcfb
```
### 문제점 ### 문제점
- 같은 사용자가 서비스마다 다른 ID - rb8001 JWT 미구현 (기본 시크릿 키)
- rb8001 JWT 검증 미구현 (보안 취약) - rb8001이 Slack ID를 UUID로 변환 안 함
- ChromaDB 사용자 격리 없음 - ChromaDB 컬렉션 비어있음 `[]`
--- ---
@ -46,14 +54,14 @@ workspace (로빙 1개)
## 3. 구현 계획 ## 3. 구현 계획
### Phase 1: 보안 (긴급) ### Phase 1: 보안 (긴급)
- [ ] rb8001 JWT 검증 구현 - [ ] rb8001 JWT_SECRET_KEY 설정 (Gateway와 동일)
- [ ] X-User-Id 헤더 제거 - [ ] rb8001 Bearer 토큰 검증 구현
- [ ] Bearer 토큰 필수화 - [ ] X-User-Id 헤더 의존 제거
### Phase 2: ID 통합 ### Phase 2: ID 통합
- [ ] slack_user_mapping 활성화 - [x] slack_user_mapping 테이블 활성화 (확인됨)
- [ ] UUID5 → DB 조회 전 - [ ] rb8001에서 Slack ID → UUID 변
- [ ] gmail_tokens slack_user_id 제거 - [ ] robeing-monitor UUID5 제거
### Phase 3: 사용자 격리 ### Phase 3: 사용자 격리
- [ ] ChromaDB 사용자별 컬렉션 - [ ] ChromaDB 사용자별 컬렉션
@ -64,29 +72,40 @@ workspace (로빙 1개)
## 4. 핵심 변경사항 ## 4. 핵심 변경사항
### rb8001 (51124 서버) ### rb8001 (51124 서버) - 로컬 개발자 작업
```python ```python
# 추가 필요: app/dependencies/auth.py # 1. JWT 검증 (/app/auth.py 수정)
async def get_current_user(authorization: str = Header()): JWT_SECRET_KEY = os.getenv("JWT_SECRET_KEY") # Gateway와 동일
# JWT 검증
# UUID 추출 # 2. Slack 이벤트 처리 시 UUID 변환
return user_uuid slack_id = event['user'] # U0925SXQFDK
user_uuid = await get_uuid_from_slack(slack_id) # slack_user_mapping 조회
``` ```
### robeing-monitor (51124 서버) ### slack_user_mapping API (51123 서버)
- UUID5 제거 → slack_user_mapping API 사용 ```python
@app.get("/api/slack/{slack_id}/uuid")
async def get_uuid(slack_id: str):
# DB 조회하여 UUID 반환
```
### Gateway (51123 서버) ### Gateway (51123 서버)
- 이미 UUID 사용 중 ✅ - 이미 UUID 사용 중 ✅
--- ---
## 5. 테스트 시나리오 ## 5. 검증된 사실
1. happybell80이 Frontend 로그인 → UUID 확인 ### 작동 중
2. 같은 사용자 Slack DM → 같은 UUID 매핑 - auth-server: JWT sub에 UUID 사용
3. 다른 사용자와 대화 격리 확인 - Gateway: JWT 검증 및 UUID 추출
4. 워크스페이스 로빙 공유 확인 - slack_user_mapping: 3명 데이터 확인
- Frontend: localStorage에 UUID 저장
### 미구현
- rb8001: JWT 검증 없음 (app/auth.py 있지만 미사용)
- rb8001: Slack ID를 UUID로 변환 안 함
- ChromaDB: 컬렉션 없음
--- ---