Skip to main content

Credentials Stay Local

Your Google credentials are stored on your device and never pass through Querylab.io servers.


How It Works

The desktop app uses macOS Keychain to store all sensitive tokens. This is the same system macOS uses for passwords, certificates, and other secrets.

TokenStorageEncryption
Google refresh tokenmacOS KeychainHardware-backed
App refresh tokenmacOS KeychainHardware-backed
Google access tokenIn-memory onlyNever written to disk
App session tokenlocalStorageStandard browser storage

Desktop vs Web Credential Storage

DesktopWeb
StoragemacOS Keychain (encrypted, hardware-backed)Browser localStorage (unencrypted)
PersistenceSurvives browser cache clearsLost on cache clear
AccessOnly Querylab.io process can readAny script on the domain
VisibilityViewable in Keychain Access appViewable in DevTools

OAuth Flow

The desktop app uses the RFC 8252 loopback redirect flow — the most secure OAuth method for native apps:

  1. Querylab.io starts a local server on a random port
  2. Your browser opens Google's consent page
  3. Google redirects to http://127.0.0.1:{PORT}/callback — traffic never leaves your machine
  4. Tokens are exchanged directly between the app and Google
  5. Only an identity token is sent to Querylab.io's backend to verify your account

Your Google refresh token never touches Querylab.io servers.


Managing Credentials

View stored credentials: Open macOS Keychain Access and search for "querylab"

Reset all credentials: Help > Reset Auth State (Cmd+Shift+R)

Debug auth issues: Help > Debug Auth State — shows which tokens are present without revealing values