Перейти до вмісту

� Архітектура Десктопного Клієнта (Tauri v2 + Rust)

📌 Чому Tauri v2 замість Electron?

ПараметрElectronTauri v2 (SmartFeed Studio)
Розмір інсталятора80–120 МБ+~10–15 МБ
Споживання оперативної пам’яті (RAM)200–450 МБ у простої~30–50 МБ
Вбудований рушійОкремий важкий ChromiumСистемний WebView (WebKit/WebView2)
Безпека ядраNode.js (ризик прототипного забруднення)Суворе керування пам’яттю на Rust
Доступ до ОСОбмежений або через важкі аддониНативні Rust-крейти (keyring, rusqlite)

🔒 Апаратна Безпека: OS Keychain & SQLCipher

  1. Збереження JWT Refresh Токенів (keyring crate):

    • Файл: apps/desktop/src-tauri/src/lib.rs.
    • Замість ненадійного localStorage у браузері, функція store_refresh_token записує токен у системне апаратне сховище ОС:
      • macOS: Apple Keychain Services.
      • Windows: Windows Credential Manager.
      • Linux: Secret Service API / GNOME Keyring / KWallet.
    • При запуску додатку Rust команда get_refresh_token зчитує токен, а при логауті delete_refresh_token надійно стирає його.
  2. Локальне Кешування Товарів (rusqlite + sqlcipher):

    • Великі каталоги (десятки тисяч рядків) зберігаються в локальній базі даних SQLite, зашифрованій ключем за алгоритмом AES-256 (SQLCipher).
    • Навіть при фізичному доступі до жорсткого диска неможливо прочитати товарні дані або ціни без ключа розшифрування.