docs: 51124 서버 확인 정보로 문서 업데이트

- ChromaDB 컬렉션명 생성 로직 정확한 경로 및 코드 추가
- Robing 서비스 정확한 포트 번호 (8001, 10508, 10408)
- JWT Secret 불일치 문제 추가
- user_id vs username 처리 문제 구체화
- 환경변수 현황 업데이트
This commit is contained in:
happybell80 2025-08-16 11:29:52 +09:00
parent 40ca4598b6
commit 77bfe61db9

View File

@ -42,7 +42,8 @@
#### 환경 변수 #### 환경 변수
- JWT_SECRET_KEY: `ro-being-auth-jwt-secret-key-2024` - JWT_SECRET_KEY: `ro-being-auth-jwt-secret-key-2024`
- JWT_ALGORITHM: `HS256` - JWT_ALGORITHM: `HS256`
- JWT_ACCESS_TOKEN_EXPIRE_MINUTES: 30일 - JWT_EXPIRATION_DAYS: 30 (일) # 코드에서 사용
- JWT_ACCESS_TOKEN_EXPIRE_MINUTES: 30 (분) # .env에만 존재, 미사용
#### 이메일-유저명 매핑 (하드코딩) #### 이메일-유저명 매핑 (하드코딩)
```python ```python
@ -69,7 +70,7 @@ export async function sendMessage(text: string, userId: string = 'test_user') {
} }
``` ```
### 4. Robing Gateway (포트 10100) ### 4. Robing Gateway (포트 8100)
#### 현재 처리 방식 #### 현재 처리 방식
```python ```python
@ -82,11 +83,23 @@ x_user_id: Optional[str] = Header(None) # X-User-Id 헤더만 확인
#### ChromaDB 컬렉션명 생성 #### ChromaDB 컬렉션명 생성
```python ```python
# storage.py:84 (추정) # rb10508_micro/app/core/memory/storage.py
collection_name = f"{robing_id}_{user_id}_episodic" collection_name = f"{settings.ROBING_ID}_{username if username else 'default'}_{memory_type}"
# 현재: rb10508_test_default_episodic (모든 사용자 공유!) # 현재: rb10508_test_default_episodic (모든 사용자 공유!)
# 문제: endpoints.py에서 username 전달하지 않음
# endpoints.py:22 - 기본값: "default_user"
``` ```
#### 서비스 포트
- rb8001: 포트 8001
- rb10508_micro: 포트 10508
- rb10408_test: 포트 10408
#### 환경변수 현황
- AUTH_SERVER_URL: `http://192.168.219.45:9000` (설정됨)
- JWT_SECRET_KEY: `your-jwt-secret-key` (기본값, 변경 필요)
## 주요 문제점 ## 주요 문제점
### 1. 인증 토큰 미전송 ⚠️ ### 1. 인증 토큰 미전송 ⚠️
@ -99,8 +112,9 @@ collection_name = f"{robing_id}_{user_id}_episodic"
- X-User-Id 헤더만 확인 (누구나 위조 가능) - X-User-Id 헤더만 확인 (누구나 위조 가능)
### 3. 사용자 식별 실패 ⚠️ ### 3. 사용자 식별 실패 ⚠️
- username이 제대로 전달되지 않아 'default'로 폴백 - endpoints.py에서 username 파라미터를 storage.py로 전달하지 않음
- ChromaDB 컬렉션을 모든 사용자가 공유 - user_id는 받지만 username으로 변환하지 않음
- ChromaDB 컬렉션을 모든 사용자가 공유 (rb10508_test_default_episodic)
### 4. 이메일-유저명 매핑 하드코딩 📝 ### 4. 이메일-유저명 매핑 하드코딩 📝
- 새 사용자 추가 시 코드 수정 필요 - 새 사용자 추가 시 코드 수정 필요
@ -113,7 +127,8 @@ collection_name = f"{robing_id}_{user_id}_episodic"
### 6. 변수명 불일치 혼란 🔄 ### 6. 변수명 불일치 혼란 🔄
- user_id vs username vs email 혼용 - user_id vs username vs email 혼용
- JWT의 'sub'가 username인지 user_id인지 불명확 - JWT의 'sub'에 username 저장 중 (gmail.py:184)
- endpoints.py는 user_id 사용, storage.py는 username 필요
### 7. Slack 통합과 인증 체계 불일치 🔗 ### 7. Slack 통합과 인증 체계 불일치 🔗
- **Slack OAuth와 Google OAuth 별개 운영** - **Slack OAuth와 Google OAuth 별개 운영**
@ -142,6 +157,11 @@ collection_name = f"{robing_id}_{user_id}_episodic"
- Google 권한: gmail.modify, calendar.events 등 - Google 권한: gmail.modify, calendar.events 등
- 같은 사용자가 두 가지 인증 경로 보유 - 같은 사용자가 두 가지 인증 경로 보유
### 8. JWT Secret 불일치 🔑
- Auth Server: `ro-being-auth-jwt-secret-key-2024`
- Robing Services: `your-jwt-secret-key` (기본값)
- 토큰 검증 시 실패할 수 있음
## 결정 필요 사항 ## 결정 필요 사항
### 1. 주요 식별자 선택 ### 1. 주요 식별자 선택
@ -265,10 +285,14 @@ if authorization:
username = payload.get("sub") # 또는 username username = payload.get("sub") # 또는 username
``` ```
### 3. Robing Service (storage.py) ### 3. Robing Service (rb10508_micro)
```python ```python
# username 기반 컬렉션 생성 # endpoints.py 수정 필요:
collection_name = f"{robing_id}_{username}_episodic" # 1. JWT 토큰에서 username 추출
# 2. storage 함수 호출 시 username 전달
# storage.py는 이미 준비됨:
collection_name = f"{settings.ROBING_ID}_{username if username else 'default'}_{memory_type}"
``` ```
## 단계별 구현 계획 ## 단계별 구현 계획