DOCS/troubleshooting/251014_slack_lists_file_attachment.md
Claude-51124 54782ac8be docs: Slack Lists 파일 첨부 테스트 결과 및 문서 작성 원칙 준수
- 100줄 이하로 축소 (153줄 → 84줄)
- 이모지 제거
- 테스트 파일 위치 skill-slack/tests/로 수정
- 교훈 섹션 유지

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-14 21:10:23 +09:00

2.9 KiB

Slack Lists 첨부파일 업로드 구현

날짜: 2025-10-14 작성자: happybell80 관련 파일: rb8001/app/scheduler/jobs/coldmail_briefing.py 전체 시나리오: 251014_coldmail_ir_analysis_scenario.md


문제 상황

  • coldmail_briefing.py:204: attachment 필드에 document_id 문자열 전달
  • Slack Lists API는 file_id 필요 (skill-slack/tests/test_slack_lists.py:112)
  • 전체 목표: IR PDF 분석 → 기업 평가 → 베이지안 확률 → Slack 보고서

선행 작업: 파일 영속성 문제 (해결 완료)

상세: 251014_skill-rag-file_sshfs_allow_other_해결.md


현재 상태

  • skill-rag-file: 업로드 API만 존재, 다운로드 API 없음
  • skill-slack: Lists API 존재, files_upload_v2 통합 없음
  • test_slack_lists.py:81-88, 112, 192: files_upload_v2 검증 완료

해결 방안

우선순위 1: skill-rag-file 다운로드 API

  • app/api/download.py (신규): GET /api/download/{document_id}
  • main.py:55: router 추가

우선순위 2: skill-slack 파일 업로드 API

  • app/api/endpoints/files.py (신규): POST /api/v1/files/upload
  • files_upload_v2 래핑, file_id 반환

우선순위 3: coldmail_briefing.py 통합

  • coldmail_briefing.py:159-204: document_id → file_id 변환
  • 다운로드 → 업로드 → attachment 필드에 [file_id] 전달

테스트 완료 (2025-10-14)

테스트 환경

  • 워크스페이스: 로빙팀 (T0925SXPS4D), 리스트: F09J1HPPQJG
  • 채널: C09HR9BMT51, 토큰: ROBEING_SLACK_BOT_TOKEN

검증 결과

  • files_upload_v2(file, title) 성공 (channel 파라미터 없이 업로드)
  • slackLists.items.create 성공, attachment: [file_id] 전달 확인
  • 테스트 파일: skill-slack/tests/test_lists_with_file.py, test_lists_all_fields.py

테스트 리스트 컬럼 (F09J1HPPQJG)

  • Col00: checkbox, Col01: user, Col02: date
  • Col09HQTDUM0T: rich_text(name)
  • Col09JATRA4GZ: email, Col09HGCGB45D: attachment, Col09JRU1U1FA: checkbox

운영 환경 확인 필요

  • Company X 리스트 (F09L4S2C6BG) 컬럼 ID는 다를 수 있음
  • Slack App 재설치 후 lists:read/write 권한 확인 필요

교훈

channel 파라미터 필수 여부 미확인

  • files_upload_v2는 channel 없이도 업로드 가능
  • 문서(test_slack_lists.py:192)에 명시되어 있었으나 미확인
  • 교훈: 테스트 코드 주석과 구현 예시 우선 확인

테스트/운영 환경 리스트 구조 차이

  • F09J1HPPQJG(테스트)와 F09L4S2C6BG(운영)는 별도 리스트
  • 컬럼 ID가 다를 가능성 있음
  • 교훈: 운영 배포 전 실제 리스트 구조 확인 필수

Slack App scope 재설치 프로세스

  • scope 추가 시 각 워크스페이스별 재설치 필요
  • 앱 소유자만 api.slack.com/apps 접근 가능
  • 교훈: 멀티 워크스페이스 앱은 OAuth URL 생성하여 관리자에게 전달