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