CONNECTORS

Đăng nhập Google
không cấp quyền Gmail.

Yana tách rõ 3 khái niệm: hồ sơ Studio cục bộ, danh tính đăng nhập (tuỳ chọn), và từng connector dịch vụ — mỗi cái có phạm vi quyền và credential riêng, không cái nào tự động cấp quyền cho cái khác.

3 KHÁI NIỆM TÁCH BIỆT

Không trộn hồ sơ, danh tính và quyền dịch vụ.

Hồ sơ Studio cục bộ

Danh tính cho người dùng máy này. Mật khẩu băm bằng scrypt, lưu local. Không có tài khoản Yana trên server nào.

local password scrypt hash no server account

Danh tính đăng nhập (tuỳ chọn)

Google Sign-in — scope chỉ openid profile email. Chỉ để xác minh danh tính, không mang theo quyền dịch vụ nào.

google:identity scope: openid profile email purpose: authentication

Connector dịch vụ

Gmail, GitHub, Slack, Notion — mỗi cái là một OAuth grant riêng, scope riêng, token riêng, revoke riêng.

google:gmail scope: gmail.readonly purpose: integration

TRẠNG THÁI THẬT TỪNG CONNECTOR

Không tô hồng cái nào chưa xong.

Website này không tuyên bố mọi connector đều sẵn sàng như nhau. Dưới đây là trạng thái thật.

Google (identity + Gmail)hoạt động, PKCE + loopback callback
GitHubhoạt động qua device flow, cần client ID public
Slackchưa — cần trusted token broker
Notionchưa — cần trusted token broker

THU HỒI ĐÚNG PHẠM VI

Thu hồi Gmail không đăng xuất Google.

google:identitygoogle:gmail là hai OAuth grant độc lập, thu hồi một cái không ảnh hưởng cái còn lại — kể cả khi cả hai cùng dùng một provider Google.

LƯU TRỮ CREDENTIAL

Không có token nào rời khỏi main process.

Token mã hoá qua Electron safeStorage (dựa trên OS Keychain), ghi file atomic, quyền 0600. Renderer (giao diện) không bao giờ nhận được token thật — chỉ nhận trạng thái kết nối (connected/expired/error).

YANA PRINCIPLE

Mỗi kết nối có quyền và credential riêng.

Đây không phải một câu slogan — đó là cách IntegrationManager thật sự lưu và thu hồi từng connector, độc lập với nhau.