2.1 KiB
2.1 KiB
UUID 통합 시스템 구현 로드맵
날짜: 2025-08-31 목표: 모든 서비스에서 UUID를 Primary Key로 사용
현재 문제
- rb8001: UUID 매핑 제공하나 내부 혼용
- skill-email: slack_id 직접 사용 (UUID 미지원)
- Gateway: JWT에서 UUID 추출
- ChromaDB: 일관성 없는 collection 명명
영향: 서비스 간 통신 오류, 데이터 불일치
Phase 1: DB 스키마 통일 (✅ 완료)
완료된 작업
1. 외래 키 제약 ✅
conversation_log.user_id→user.id(main_db.py:146)gmail_token.user_id→user.id(이미 구현됨)
2. 인덱스 ⚠️ 부분 완료
- 일부 테이블에 인덱스 존재 (ir_deck_evaluations, robeing_diary 등)
conversation_log.user_id,gmail_token.user_id인덱스는 확인 필요
3. 데이터 검증 ⏳ 미착수
- orphaned UUID 확인
- NULL UUID 처리
Phase 2: 서비스 수정 (✅ 완료)
skill-email ✅
- 파일:
services/db_credentials_provider.py - 변경: UUID 지원 추가 완료 (250920)
- 추가 수정: UUID 강제 (250926, 2025-12-17)
rb8001 ✅
- 파일:
app/skills/email_integration.py - 변경: UUID 우선 사용 완료 (250926)
ChromaDB ✅
- Collection 명명:
{service}_{identifier}_{type}통일 완료 (250920) - 예:
rb8001_53529291-5050-4daa-89fb-008b546feb63_memory - 참고:
troubleshooting/250920_chromadb_collection_naming_unification.md
Phase 3: Gateway 통합 (✅ 완료)
JWT 표준화 ✅
{
"sub": "uuid", # user.id
"username": "happybell80",
"email": "user@example.com"
}
- auth-server에서 UUID를 sub에 포함하여 발급 중
헤더 표준화 ✅
X-User-Id: UUID (모든 내부 API)- Slack ID는 oauth_providers JSONB에만 저장
- Gateway에서 UUID 변환 후 전달 중
검증
테스트 시나리오:
- Gmail 재인증 → JWT 발급 → UUID 확인
- skill-email 호출 → UUID로 토큰 조회
- ChromaDB 저장 → collection 명명 확인
참고
troubleshooting/250911_PostgreSQL_테이블명_단수형_통일.mdtroubleshooting/250924_UUID_체계_전환_및_대화저장_오류.md