Skip to content

feat(kakao): self-message 네이티브 도구 — 공식 REST 나에게 보내기 (INT-2322)#96

Closed
unohee wants to merge 1 commit into
mainfrom
feat/int-2322-kakao-self-message
Closed

feat(kakao): self-message 네이티브 도구 — 공식 REST 나에게 보내기 (INT-2322)#96
unohee wants to merge 1 commit into
mainfrom
feat/int-2322-kakao-self-message

Conversation

@unohee

@unohee unohee commented Jul 2, 2026

Copy link
Copy Markdown
Owner

INT-2319(메신저 MCP) 분해 A — 공식 카카오 REST "나에게 보내기"로 VEGA→내 카톡 push 채널. 검수·비즈앱 불필요, 크로스플랫폼(REST), 정책 리스크 없음.

구현

  • pipeline/auth/kakao.py — 카카오 OAuth(slack.py 동형): state fail-closed(INT-2233 패턴), access 12h/refresh 60일 자동 갱신, REST 키는 Keychain 전용(하드코딩·env 폴백 없음)
  • pipeline/tools_kakao.pykakao_send_to_me(text, link_url) (200자 절단, 401 시 refresh 재시도)
  • registry/oauth 라우터/onboarding 등록 (/kakao/auth 콜백은 html.escape — INT-2232 준수)

검증

  • 테스트 18종 + 기존 registry/oauth_xss/workspace = 87 passed
  • mutation: state 게이트 무력화 → 3 테스트 kill 확인
  • 평문 키 하드코딩 검사 clean

실 사용까지 남은 외부 단계 (머지 후)

  1. 카카오 개발자 콘솔: 카카오 로그인 활성화 + talk_message 동의항목 + Redirect URI http://127.0.0.1:8100/kakao/callback 등록
  2. Keychain에 KAKAO_REST_API_KEY 저장 (노출됐던 키는 재발급 권장 — INT-2319 보안 정정 참조)
  3. 설정 → 워크스페이스에서 카카오 연결 → 실전송 1회 확인

INT-2319(메신저 MCP) 분해 A. 공식 카카오 REST로 VEGA→사용자 카톡 push 채널.
검수·비즈앱 불필요, REST라 크로스플랫폼, 정책 리스크 없음.

- pipeline/auth/kakao.py: 카카오 로그인 OAuth (slack.py 동형). state fail-closed
  (INT-2233 패턴), access 12h/refresh 60일 자동 갱신(응답에 refresh 있을 때만 교체),
  REST 키는 Keychain KAKAO_REST_API_KEY 전용 — 하드코딩·env 폴백 없음.
- pipeline/tools_kakao.py: kakao_send_to_me(text, link_url) →
  /v2/api/talk/memo/default/send. 200자 절단, 빈 link 400 시 폴백, 401 시 refresh
  1회 재시도.
- tools.py/tool_registry.py: KAKAO 스키마·함수 병합 + WORKSPACE_TOOLSETS "kakao".
- web/routers/oauth.py: /kakao/auth + /kakao/callback (html.escape — INT-2232 준수).
- web/routers/onboarding.py: kakao 플러그인 카탈로그 + 상태 + disconnect.

검증: 테스트 18종(state fail-closed·keychain 저장·refresh·전송 페이로드·미인증
에러·registry 등록) — kakao+registry+oauth_xss+workspace 87 passed. mutation
(state 게이트 무력화 → 3 테스트 kill) 확인.

실 E2E 잔여(외부): 카카오 콘솔에서 로그인 활성화 + talk_message 동의항목 +
redirect_uri(http://127.0.0.1:8100/kakao/callback) 등록, Keychain에 REST 키 저장.
@unohee

unohee commented Jul 2, 2026

Copy link
Copy Markdown
Owner Author

사용자 결정으로 폐기 — 카카오 알림(self-message) 채널 불필요. 코드는 브랜치(feat/int-2322-kakao-self-message)에 보존, 필요 시 재개 가능.

@unohee unohee closed this Jul 2, 2026
@unohee unohee deleted the feat/int-2322-kakao-self-message branch July 2, 2026 10:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant