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 accountCONNECTORS
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
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 accountGoogle 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: authenticationGmail, 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: integrationTRẠNG THÁI THẬT TỪNG CONNECTOR
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.
THU HỒI ĐÚNG PHẠM VI
Vì google:identity và google: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
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
Đâ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.