feat(desktop): replace keychain storage with encrypted file storage

Merged
SA
1y ago
+127-16

Summary

  • Replace Electron's safeStorage API with custom AES-256-GCM encryption
  • Eliminates macOS Keychain permission prompts that were confusing users
  • Uses machine-derived keys (hardware UUID on macOS, machine-id on Linux, MachineGuid on Windows)

Test plan

  • Verify login flow works without Keychain prompt on macOS
  • Verify tokens persist across app restarts
  • Verify tokens are encrypted in ~/.superset/auth-session.enc

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Stronger, machine-bound encryption for locally stored authentication tokens for improved security and portability across platforms.
  • Behavior Changes
    • Token storage now always encrypts session data on disk rather than relying on platform keychains; loading relies on the encrypted file being readable and decryptable.

✏️ Tip: You can customize this high-level summary in your review settings.