Skip to content

Security: choiahrok/thync

Security

docs/security.md

데이터와 보안

문서 목차 · 프로젝트 소개

thync는 수집한 작업 정보를 로컬 화면에 제공합니다. 외부 서비스 조회와 PR 위임 과정에서는 해당 서비스와 통신합니다. 아래에서 저장 위치, 접근 방식, 서비스별 쓰기 범위를 확인할 수 있습니다.

접근 토큰과 저장 위치

서버는 THYNC_HOME(기본 ~/.thync) 디렉터리를 0700, 접근 토큰 파일을 0600으로 설정합니다. Jira·Notion 토큰 파일도 설정 안내에 따라 0600으로 만듭니다. 개인 경로·회사 설정·토큰·수집 데이터는 저장소 밖에 둡니다.

서버는 127.0.0.1에서 실행합니다. 정적 화면은 토큰 없이 제공하지만, /graph.json과 쓰기 요청은 X-Thync-Token 헤더가 서버 토큰과 일치해야 허용합니다. 같은 머신의 다른 사용자도 로컬 주소에 접속할 수 있으므로 토큰을 함께 확인합니다. 요청의 Host가 로컬 호스트 이름인지도 검사합니다.

브라우저는 최초 접속 주소의 #t=에서 토큰을 읽어 localStorage에 저장한 뒤 주소창에서 지웁니다. 토큰은 URL 쿼리에 넣지 않습니다. 원격 서버를 사용할 때는 SSH 포트 포워딩으로 연결합니다.

데이터 흐름과 쓰기 범위

대상 읽거나 처리하는 내용 쓰기 범위
로컬 파일 설정, 카드, 이름 변경, 위임 기록, 선택적으로 Claude Code 세션 로그 카드 편집·이름 변경·위임 상태 등을 THYNC_HOME 또는 설정한 카드 폴더에 저장합니다
GitHub gh로 내 커밋·리뷰 요청·내 PR을 조회합니다 사용자가 위임한 다른 사람의 PR에 리뷰와 선택적 승인을 게시합니다. 내 PR은 실행한 스킬이 수정·push할 수 있습니다
Jira 설정한 API로 티켓을 조회합니다 쓰지 않습니다
Notion 설정한 API로 페이지를 조회합니다 쓰지 않습니다
Claude CLI PR 위임 시 PR 정보·diff 또는 로컬 저장소 내용을 처리합니다 외부 통신과 데이터 처리는 해당 CLI 설정과 서비스 정책을 따릅니다

Jira·Notion 요청은 리다이렉트를 따라가지 않아 토큰이 다른 호스트로 전달되는 것을 차단합니다. 출처별 수집 범위와 주기는 설정 안내에 설명합니다.

PR 위임의 권한 범위

대상 실행 방식 결과
다른 사람의 PR 임시 폴더에서 읽기 도구만 허용한 claude -p --restricted로 실행합니다 thync가 받은 JSON을 검증해 GitHub 리뷰와 선택적 승인을 등록합니다
내 PR 로컬 저장소의 tmux 세션에서 --permission-mode auto로 스킬을 실행합니다 스킬이 파일 수정·커밋·push 등 작업을 수행합니다

PR 본문이나 리뷰어 코멘트는 외부에서 작성한 입력입니다. 여기에 숨은 지시가 리뷰 문구와 승인 판단을 왜곡할 수 있습니다. 자동 승인 조건은 위임 안내에서 확인할 수 있습니다.

내 PR에서 설정한 Read(...) 금지 목록은 해당 도구에 적용하는 제한입니다. 전체 프로세스를 격리하는 운영체제 샌드박스를 뜻하지 않습니다.

세션 로그 연동의 한계

Claude Code 세션 로그는 공개된 형식이 아니므로 Claude Code 버전에 따라 읽기에 실패할 수 있습니다. 세션 로그를 사용하지 않으려면 sources에서 claude_code를 제외합니다. 이 경우 PR 위임 기능도 비활성화됩니다.

There aren't any published security advisories