docs: slack_canvas 테이블 정의 및 Canvas 검증 결과 추가

Made-with: Cursor
This commit is contained in:
Claude-51124 2026-03-16 12:46:16 +09:00
parent 7a18f206b4
commit ed5f890fda
2 changed files with 24 additions and 1 deletions

View File

@ -149,6 +149,19 @@
**제약조건**: `UNIQUE(slack_workspace_id, channel_id)` - 워크스페이스 내 채널 ID 중복 방지
### slack_canvas
| 컬럼명 | 타입 | NULL | 설명 |
|--------|------|------|------------|
| id | UUID | NO | PK |
| slack_channel_id | UUID | NO | FK → slack_channel |
| canvas_id | VARCHAR(32) | NO | Slack Canvas/파일 ID (예: F0AL6L34CV9) |
| title | VARCHAR(255) | YES | Canvas 제목 (예: 온보딩 회의) |
| metadata | JSONB | YES | 추가 메타데이터 |
| created_at | TIMESTAMPTZ | NO | |
| updated_at | TIMESTAMPTZ | NO | |
**제약조건**: `UNIQUE(canvas_id)` - Slack에서 canvas_id는 전역 고유
---
## 4. 사용자 설정 및 토큰 테이블

View File

@ -152,7 +152,17 @@ settings:
- **이미지 첨부**: 이미지는 외부 공개 URL을 사용하거나, Slack에 먼저 업로드한 후 `permalink`를 통해 참조해야 합니다. Base64 인코딩 방식 등은 지원되지 않습니다.
- **데이터 보관 정책**: 로빙이 캔버스 내용을 외부 DB에 장기 보관하거나 인덱싱할 경우, Slack의 데이터 보관 및 사용 정책을 준수해야 합니다. 민감 정보 처리 시 특히 주의가 필요합니다.
## 5. 빠른 구현을 위한 체크리스트
## 5. 검증 결과 (2025-03)
**채널 탭 Canvas 읽기**: `files:read`만으로 가능함.
- 채널: C0ALCV5S0FL (ir컨설팅서비스-및-랜딩페이지)
- Canvas "온보딩 회의": `files.list(types=canvas, channel=...)``files.info``url_private` GET으로 본문(HTML) 다운로드 가능
- canvas_id: F0AL6L34CV9
- `canvases.sections.lookup` / `canvases.edit``canvases:read`/`canvases:write` 스코프 추가 필요 (현재 Company-X 봇에 없음)
- 검증 스크립트: `rb8001/scripts/test_canvas_access.py`
## 6. 빠른 구현을 위한 체크리스트
1. **[ ]** 로빙의 Slack 앱 매니페스트에 `canvases:write`, `canvases:read`, `files:read` 스코프를 추가하고 앱을 재설치합니다.
2. **[ ]** `canvases.create`를 호출하여 첫 캔버스를 생성하고, 반환된 `canvas_id`를 저장하는 로직을 구현합니다.