설정 › API 액세스에서 개인 액세스 토큰을 만들면 스크립트나 MCP 클라이언트가 사용자를 대신해 Dvina를 사용할 수 있습니다. 관리자는 같은 곳에서 웹훅을 추가해 Livespace의 이벤트를 자체 시스템에 전송할 수도 있습니다.
API 액세스는 Enterprise 요금제에 포함됩니다. 모든 멤버가 자신의 토큰을 만들 수 있으며, 웹훅은 소유자와 관리자에게만 표시됩니다.
토큰 만들기
- 설정을 열고 API 액세스를 선택하세요.
- 개인 액세스 토큰에서 토큰 만들기를 선택하세요.
- 나중에 어디에 사용하는 토큰인지 알 수 있도록 이름을 입력하세요.
- 액세스에서 읽기 전용 또는 읽기 및 쓰기를 선택하세요.
- 만료 시점을 선택하세요. 30일 후, 90일 후, 365일 후 또는 만료되지 않음을 선택할 수 있습니다.
- 토큰 만들기를 선택하세요.
- 토큰 복사에서 토큰을 복사해 안전한 곳에 보관하세요. 토큰은 이때만 표시됩니다.
토큰은 토큰을 만든 Livespace에서 사용자를 대신해 작동하며, 해당 Livespace에서 사용자의 현재 역할에 따른 권한을 갖습니다. 읽기 전용 토큰은 읽기만 가능하며, 어떤 항목도 추가하거나 변경할 수 없습니다.
MCP 클라이언트에서 토큰을 사용하는 방법은 OAuth 대신 API 키로 연결하기를 참고하세요.
토큰 확인, 재발급 또는 폐기하기
개인 액세스 토큰에 사용자의 토큰과 각 토큰의 액세스 권한이 표시됩니다. 토큰을 선택하면 시작 문자열, 액세스, 마지막 사용 시점, 만료 시점을 확인할 수 있습니다.
- 토큰을 교체하려면 **재발급…**을 선택한 다음 재발급을 선택해 확인하세요. 새 토큰이 기존 토큰을 대체하며, 기존 토큰은 즉시 작동을 멈춥니다. 토큰 복사에서 새 토큰을 복사하세요.
- 토큰 사용을 중단하려면 **폐기…**를 선택한 다음 폐기를 선택해 확인하세요. 해당 토큰을 사용하는 모든 항목이 즉시 작동을 멈춥니다.
토큰 생성, 재발급, 폐기는 감사 로그에 기록됩니다.
웹훅 추가하기
웹훅은 감사 로그와 동일한 기록인 Livespace의 이벤트를 지정한 주소로 전송합니다.
- 설정 › API 액세스의 웹훅에서 웹훅 추가를 선택하세요.
- 이름과 URL을 입력하세요. 공개적으로 접근할 수 있는 HTTPS URL을 사용하세요.
- 이벤트를 비워 두면 모든 이벤트가 전송됩니다. 특정 이벤트만 받으려면
member.added또는sharing.*처럼 작업과 영역을 나열하세요. - 추가를 선택하세요.
- 서명 비밀 키 복사에서 비밀 키를 복사하세요. 비밀 키는 이때만 표시됩니다.
Dvina에 Dvina에서 이 주소에 접근할 수 없습니다라고 표시되면 공개적으로 접근할 수 있는 HTTPS URL을 사용하세요.
각 요청의 서명 확인하기
Dvina는 이벤트를 JSON 형식으로 일괄 전송하고 모든 요청에 서명합니다. 서명 비밀 키를 사용해 요청이 Dvina에서 보낸 것인지 확인하세요.
- 각 요청에는
t=<timestamp>,v1=<signature>형식의X-Dvina-Signature헤더가 포함됩니다. - 서명은 타임스탬프, 마침표, 요청 본문을 순서대로 이어 붙인 값을 서명 비밀 키로 HMAC-SHA256 처리한 16진수 값입니다.
- 직접 서명을 계산해 비교하세요. 서명이 일치하지 않거나 타임스탬프가 너무 오래된 요청은 거부하세요.
웹훅 확인 또는 변경하기
웹훅에 웹훅 목록과 각 웹훅의 상태가 표시됩니다. 상태는 켜짐, 일시 중지됨 또는 실패 중입니다. 웹훅을 선택하면 세부 정보를 볼 수 있습니다.
- 변경하려면 이름, URL 또는 이벤트를 수정한 다음 저장을 선택하세요.
- 일시 중지하려면 이벤트 전송을 끄세요. 다시 켜면 전송이 재개됩니다.
- 작동 상태를 확인하려면 상태와 전송됨으로 표시된 이벤트 수를 확인하세요. 실패 중인 웹훅에는 마지막 오류가 표시됩니다. Dvina는 계속 재시도하며 감사 로그에 실패를 기록합니다.
- 서명 비밀 키를 변경하려면 **새 서명 비밀 키…**를 선택한 다음 확인하세요. 요청은 즉시 새 비밀 키로 서명되므로 수신 측도 바로 업데이트하세요.
- 삭제하려면 **삭제…**를 선택한 다음 삭제를 선택하여 확인하세요. 해당 웹훅으로는 더 이상 아무것도 전송되지 않습니다.