Skip to main content
Salesgraph Assist is designed for instant startup and resilience against network interruptions through an encrypted local cache.

How It Works

The app maintains a local cache file at ~/Library/Application Support/salesgraph-desktop/cache.json. This file is encrypted using Electron’s safeStorage API, which leverages the macOS Keychain for key management. The cache stores two types of data:
DataPurpose
SessionYour authentication state, so the app can display your profile immediately on launch
MeetingsYour meeting list, so meetings are visible even before the API responds

Loading Strategy

On each app launch and when navigating to the meeting list:
  1. Cache first — Data is loaded from the local encrypted cache and displayed immediately.
  2. API refresh — The app fetches fresh data from the server in the background.
  3. Seamless update — When the API response arrives, the UI updates with the latest data.
This two-phase approach means the app feels responsive on every launch, regardless of network speed.

Cache Updates

The cache is updated whenever fresh data arrives from the API:
  • After a successful session refresh
  • After fetching the latest meeting list
  • After a recording is completed
Cache writes use merge semantics — updating the session doesn’t overwrite cached meetings, and vice versa.

Encryption

All cached data is encrypted at rest:
  • Encryption method — Electron’s safeStorage.encryptString() and decryptString()
  • Key storage — Encryption keys are managed by the macOS Keychain, not stored on disk
  • Scope — Each macOS user account has its own Keychain-backed keys
This ensures that cached authentication tokens and meeting data are protected even if the cache file is accessed directly.

Cache Clearing

The cache is cleared when you log out. This removes all stored session data and meeting lists from disk, ensuring no data persists after sign-out.