ragdesk — thiết kế kết nối nguồn (OAuth)

ragdesk — thiết kế kết nối nguồn (OAuth) An architecture diagram generated by Archify. Provider consoles · GitHub · Atlassian · Google · Một lần · vai trò builder · 1 lần Provider consoles GitHub · Atlassian · Google 1 lần defaults.py · client ID công khai · Một lần · vai trò builder · đi kèm build defaults.py client ID công khai đi kèm build Desktop app · Tauri · Sources cards · Mỗi máy · vai trò user (cũng chính bro) · bạn bấm Connect Desktop app Tauri · Sources cards bạn bấm Connect ragdesk serve · loopback API :8765 · Mỗi máy · vai trò user (cũng chính bro) ragdesk serve loopback API :8765 credentials.json · refresh token · PAT · Mỗi máy · vai trò user (cũng chính bro) · 0600 · cục bộ credentials.json refresh token · PAT 0600 · cục bộ GitHub · device flow (RFC 8628) · Nhà cung cấp · consent diễn ra ở browser · GitHub GitHub device flow (RFC 8628) Atlassian · OAuth 2.0 3LO + PKCE · Nhà cung cấp · consent diễn ra ở browser Atlassian OAuth 2.0 3LO + PKCE Google Drive · OAuth PKCE + loopback · Nhà cung cấp · consent diễn ra ở browser Google Drive OAuth PKCE + loopback đăng ký 1 lần → client ID client ID đọc lúc chạy HTTP loopback device code → token browser consent → token browser consent → token lưu token (0600) Một lần · vai trò builder Mỗi máy · vai trò user (cũng chính bro) Nhà cung cấp · consent diễn ra ở browser Legend Frontend Backend Database External

Một lần · builder (bro)

  • • Đăng ký 3 OAuth app: GitHub OAuth app, Atlassian 3LO, Google Desktop client (~10 phút)
  • • client ID là công khai → dán vào src/ragdesk/defaults.py hoặc set env
  • • Từ đó mọi bản build đều one-click; user không đăng ký gì

Mỗi máy · user (cũng chính bro)

  • • Bấm Connect → browser mở trang consent (~30 giây)
  • • refresh token lưu ở ~/.config/ragdesk/credentials.json (0600)
  • • Bro giữ cả 2 vai: đăng ký một lần, consent mỗi máy / mỗi account

Caveat từng provider

  • • GitHub: device flow, không cần verification, không trần user
  • • Atlassian: app mặc định private (chỉ bro); muốn user khác phải bật Sharing
  • • Google Drive: cảnh báo 'unverified' + trần 100 users
  • • Không đăng ký gì vẫn dùng được: gh CLI / PAT, Confluence API token