docs: 웹 콘솔 기반 Event 문서 추가 및 Event 명칭으로 통일#180
Conversation
서버에서 Webhook CRUD가 웹 로그인(JWT) 기반으로 이동(datagsm-server#353)함에 따라, Webhook을 별도 top-level 섹션으로 재작성합니다. - /webhook 개요·콘솔 관리 가이드·이벤트 페이로드 명세·서명 검증 가이드 추가 - 네비게이션(constants.ts)에 Webhook 섹션 추가
서버에서 Webhook이 Event로 리네이밍(datagsm-server#373)됨에 따라 문서의 명칭과 경로를 Event 기준으로 통일합니다. - /webhook → /event, events 하위 페이지 → /event/payloads - Webhook 용어를 Event로 통일, /v1/webhooks → /v1/events, WebhookEvent → EventType - 네비게이션(constants.ts) 라벨·경로·아이콘 갱신 - 서명 헤더(X-DataGSM-Signature) 및 페이로드 계약은 변경 없음 유지
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Code Review
This pull request introduces comprehensive documentation for the new Event webhook feature in DataGSM, including console management, payload specifications, and signature verification guides with multi-language code examples. The feedback focuses on improving the documentation quality and code robustness: replacing HTML anchor tags with standard Markdown links to prevent full page reloads in Next.js, safely handling buffer lengths in the Node.js HMAC verification example to avoid potential server crashes, and leveraging standard library utilities (MessageDigest.isEqual) in Java and Kotlin for safer constant-time signature comparisons.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
멀티바이트 입력 시 문자열 길이는 같아도 UTF-8 버퍼 바이트 길이가 달라 crypto.timingSafeEqual이 TypeError를 던질 수 있어, 버퍼로 먼저 변환한 뒤 바이트 길이를 비교하도록 수정합니다.
수동 XOR 루프 대신 표준 라이브러리의 java.security.MessageDigest.isEqual로 상수 시간 비교를 수행하도록 변경해 안전성과 가독성을 높입니다.
zip/fold 기반 수동 XOR 구현 대신 java.security.MessageDigest.isEqual을 사용해 코드를 간결하게 하고 상수 시간 비교 실수 여지를 줄입니다.
혹시 llms.txt 파일이 무엇인가요? 프로젝트 내에서 파일을 검색해보아도 찾을 수 없습니다. |
apps/docs/public/llms.txt 경로에 있는 파일입니다 |
새로 추가된 Event 문서(개요·웹 콘솔 관리·페이로드 명세·서명 검증)를 llms.txt 색인과 서비스 설명에 반영합니다.
d8c741b 수정하였습니다! |
개요 💡
datagsm-server#353으로 Webhook CRUD가 OpenAPI(API Key) 경로에서 웹 로그인(JWT) 기반으로 이동하면서 이전에 datagsm-client#178에서 제거했던 Webhook 문서를 다시 작성합니다.
이어서 datagsm-server#373으로 서버에서
Webhook이Event로 리네이밍됨에 따라, 문서의 명칭과 경로를 모두Event기준으로 통일했습니다. 최종 사이드바 top-level 구성은 OpenAPI · OAuth · Event 세 개입니다.작업내용 ⌨️
문서 추가 (
apps/docs/src/app/event/)page.mdx— Event 개요. 웹 콘솔 관리 방식, 동작 흐름(mermaid), 지원 이벤트 9종, 전송 정책, 10개 제한, secret 1회 노출 안내console/page.mdx— 웹 콘솔에서 Event 등록·조회·수정·삭제하는 사용 가이드 (로그인 세션 기반)payloads/page.mdx— 이벤트 페이로드 공통 구조 + 이벤트별data명세 9종signature/page.mdx—X-DataGSM-SignatureHMAC-SHA256 서명 검증 가이드 (Node/Python/Java/Kotlin 예제)Event 명칭·경로 통일 (datagsm-server#373 반영)
/webhook→/event,/webhook/events→/event/payloads/v1/webhooks→/v1/events,webhookId→eventIdWebhook→Event, enumWebhookEvent→EventTypeconstants.ts) 라벨·경로·아이콘 갱신변경 없이 유지된 계약 — 서명 헤더(
X-DataGSM-Signature), 페이로드 필드(id/event/timestamp/data), 이벤트명(student.graduated등), DTO 필드(target_url/events/secret/is_active)는 그대로입니다.관련 이슈 🚨
datagsm-openapi에서datagsm-web모듈로 이동 datagsm-server#353 (Webhook CRUD 웹 로그인 기반 이동)webhook명칭을event로 통일 datagsm-server#373 (Webhook → Event 리네이밍)리뷰 요청사항 👀
apps/client)는 아직/webhooks경로와 "웹훈" UI 라벨,/v1/webhooksAPI를 사용 중입니다(server#373 미반영). 문서는 server#373 기준으로Event로 통일했으므로, 추후 클라이언트 마이그레이션이 별도로 필요합니다. 이 시점 차이를 어떻게 안내할지 의견 주시면 반영하겠습니다.