AI가 일합니다. 결정권은 당신에게 있습니다.

커넥터

Google 로그인만으로
Gmail 접근 권한이 생기지는 않습니다.

Yana는 로컬 Studio 프로필, 선택적인 로그인 신원, 서비스별 커넥터를 구분합니다. 각 커넥터에는 독립적인 권한 범위와 인증 정보가 있으며 하나를 연결해도 다른 서비스의 권한이 자동으로 부여되지 않습니다.

서로 다른 세 가지 개념

프로필, 로그인 신원, 서비스 권한은 별개입니다.

로컬 Studio 프로필

이 컴퓨터 사용자를 구분하는 로컬 프로필입니다. 비밀번호를 scrypt로 해시해 로컬에 저장하며 서버의 Yana 계정을 만들지 않습니다.

로컬 비밀번호 scrypt 해시 서버 계정 없음

로그인 신원 (선택 사항)

Google 로그인 — 허용 범위: openid profile email. 신원만 확인하며 서비스 접근 권한은 부여하지 않습니다.

google:identity scope: openid profile email 용도: 신원 확인

서비스 커넥터

Gmail, GitHub, Slack, Notion — 각각 고유한 OAuth 권한, 고유한 범위, 고유한 토큰, 고유한 취소 기능을 가지고 있습니다.

google:gmail scope: gmail.readonly 용도: 서비스 연동

각 커넥터의 실제 상태

아직 완성되지 않은 부분도 분명히 밝힙니다.

모든 커넥터가 같은 수준으로 준비된 것은 아닙니다. 실제 구현 상태를 보여 줍니다.

Google (신원 + Gmail)작동 중 · PKCE + 루프백 콜백
GitHub기기 인증 흐름으로 작동 · 공개 클라이언트 ID 필요
Slack미완성 · 신뢰할 수 있는 토큰 중개 서비스 필요
Notion미완성 · 신뢰할 수 있는 토큰 중개 서비스 필요

필요한 권한만 철회

Gmail 접근 권한을 철회해도 Google에서 로그아웃되지 않습니다.

그 이유는 google:identity 그리고 google:gmail 가 서로 독립적인 OAuth 권한이기 때문입니다. 같은 Google 제공자를 사용해도 하나를 취소하면 다른 하나까지 취소되지는 않습니다.

인증 정보 저장

토큰은 메인 프로세스 밖으로 전달되지 않습니다.

토큰은 Electron의 safeStorage 로 암호화합니다. 운영체제 키체인을 사용하며, 원자적으로 쓰고 파일 권한을 0600으로 설정합니다. 렌더러(UI)는 실제 토큰 대신 연결 상태 (연결됨 / 만료됨 / 오류)만 받습니다.

Yana 원칙

모든 연결에는 별도의 권한과 인증 정보가 있습니다.

단순한 슬로건이 아닙니다. IntegrationManager 는 실제로 각 커넥터를 독립적으로 저장하고 권한을 철회합니다.