docs: slack_canvas 테이블 정의 및 Canvas 검증 결과 추가
Made-with: Cursor
This commit is contained in:
parent
7a18f206b4
commit
ed5f890fda
@ -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. 사용자 설정 및 토큰 테이블
|
||||
|
||||
@ -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`를 저장하는 로직을 구현합니다.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user