docs: Slack 봇 설치 최종 이슈 문서화

- Company-X 봇 설치 실패 (Foreign Key 에러)
- companies 테이블 없음, workspaces 테이블로 마이그레이션 필요
- company_id → workspace_id 전체 변경 필요
This commit is contained in:
happybell80 2025-09-02 20:12:26 +09:00
parent 9a836a8381
commit dec98bf0b8

View File

@ -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 사용)
**추가 해결 (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 제거