diff --git a/troubleshooting/250902_slack_bot_install_url_analysis.md b/troubleshooting/250902_slack_bot_install_url_analysis.md index 67fa459..f0ee60f 100644 --- a/troubleshooting/250902_slack_bot_install_url_analysis.md +++ b/troubleshooting/250902_slack_bot_install_url_analysis.md @@ -147,12 +147,48 @@ im:read, im:history, users:read, team:read, files:read, app_mentions:read - ~~workspace_members 조회 코드 주석 처리됨~~ **해결 내용:** -1. WorkspaceMember 조회 로직 활성화 (Line 411-419) -2. 하드코딩 UUID 제거 (Line 422) -3. is_active 체크 추가 -4. WorkspaceMember import 추가 -5. info@company-x.partners가 Company-X workspace (99d22d6b-d327-4fa4-bd2f-d228c11056e2)로 연결됨 +1. ~~WorkspaceMember 조회 로직 활성화 (Line 411-419)~~ → sqlalchemy text() 직접 쿼리로 변경 +2. 하드코딩 UUID 제거 (Line 422) ✅ +3. is_active 체크 추가 ✅ +4. ~~WorkspaceMember import 추가~~ → 모델 없어서 제거, text() 사용 +5. info@company-x.partners가 Company-X workspace (99d22d6b-d327-4fa4-bd2f-d228c11056e2)로 연결됨 ✅ -**남은 문제:** -- state 불일치 시: "잘못된 요청입니다" HTML 반환 -- 서버 재시작 시 봇 설치 진행 중인 사용자 실패 (메모리 dict 사용) \ No newline at end of file +**추가 해결 (2025-09-02):** +- oauth_states 메모리 dict → Redis 전환 완료 +- Line 436-446: `await redis_client.setex(f"oauth:passport:{state}", 300, ...)` +- Line 490-502: Redis get/delete 사용 +- 서버 재시작 시에도 state 유지됨 + +**WorkspaceMember 모델 이슈:** +- app/models/workspace.py에 WorkspaceMember 클래스 정의 없음 +- workspace_members 테이블 직접 쿼리로 해결 +- ~~`SELECT workspace_id FROM workspace_members WHERE user_id = :user_id::uuid AND is_active = true`~~ +- `SELECT workspace_id FROM workspace_members WHERE user_id = (:user_id)::uuid AND is_active = true` (괄호 필수) + +### 5.4 추가 이슈 해결 (2025-09-02 저녁) + +**SLACK_REDIRECT_URI 불일치:** +- .env: `/auth/slack/callback` → `/auth/slack/passport/callback` 수정 +- Slack App 설정: 3개 URL 모두 등록 (callback, login/callback, passport/callback) + +**SlackWorkspace 모델 불일치:** +- 모델 정의: `company_id` (Line 44, ForeignKey는 companies.id) +- 코드 사용: `workspace_id` 시도 → `company_id`로 수정 필요 +- Line 542, 557, 631, 674, 713: workspace_id → company_id +- DB 현실: companies 테이블 없음, workspaces 테이블 사용 중 + +**Company-X 설정 상태:** +- workspace_id: 99d22d6b-d327-4fa4-bd2f-d228c11056e2 +- 총 8명: company-x.partners(6) + sigong-ip.com(2) +- info@company-x.partners: OWNER role +- **봇 설치 실패**: Foreign Key 에러 (companies 테이블 없음) + +### 5.5 최종 이슈 (해결 필요) + +**Foreign Key 문제:** +- 모델: `ForeignKey("companies.id")` 참조 +- 실제 DB: companies 테이블 없음, workspaces 테이블 존재 +- 기존 2개 레코드도 잘못된 company_id 참조 중 +- 해결 방법: + 1. DB 마이그레이션 (company_id → workspace_id, FK 수정) + 2. 또는 모델에서 ForeignKey 제거 \ No newline at end of file