Skip to main content Skip to navigation Skip to footer

Config Storage

Zero-knowledge encrypted config sync with passkey-based encryption

Config Storage

Config storage provides zero-knowledge encrypted synchronization of your CLI configuration across devices. Your configs are encrypted with keys derived from your passkey — the server never sees plaintext data.

Prerequisites

  • Two-factor authentication enabled on your account
  • Passkey provider with PRF support: FIDO2 security key (e.g. YubiKey), iCloud Keychain, Google Password Manager, 1Password, or Dashlane
  • Browser: Chrome 133+, Edge 133+, Firefox 130+, or Safari 17+

Setup

  1. Navigate to Config Storage in the sidebar, then click Set Up Config Storage
  2. The requirements checklist verifies your browser, 2FA, and session status
  3. Click Start Setup — you’ll need to touch your security key twice:
    • First touch: registers the passkey
    • Second touch: derives encryption keys via PRF
  4. Setup complete — your passkey secret is stored in your OS keyring

After setup, daily CLI operations (push/pull) work without the passkey.

PRF Provider Compatibility

ProviderPRF SupportPlatforms
YubiKey / FIDO2 security keysWindows 11, macOS, Linux
iCloud KeychainmacOS 15+, iOS 18+
Google Password ManagerAndroid
1PasswordAndroid, iOS
DashlaneCross-platform
Bitwarden extensionIn development
Windows HelloNot supported

Member Management

Config storage is scoped per organization. Members are managed via the web portal:

  • View members: Config Storage → Members
  • Add member: Currently via CLI only (web UI planned)
  • Remove member: Click the remove button on the Members page (requires 2FA + re-authentication)

Safety guards prevent removing the last active member or removing yourself.

Security

  • Zero-knowledge: The server stores triple-encrypted data it cannot decrypt
  • Split-key: Decryption requires both your passkey secret (client) and server secret (server)
  • Rotating tokens: Each API call uses a fresh token; old tokens self-destruct
  • IP binding: Tokens are bound to your IP on first use
  • Instant revocation: Removed members lose access within 30 seconds

Troubleshooting

ErrorCauseFix
PRF not supportedAuthenticator lacks PRF extensionUse YubiKey, iCloud Keychain, 1Password, or Dashlane
X25519 not supportedBrowser version too oldUpdate to Chrome 133+, Edge 133+, Firefox 130+, or Safari 17+
Already configuredStore exists for your organizationVisit /account/config-storage to manage
Config storage not configuredServer missing blob storageContact your admin to configure R2/RustFS
Token expiredNo activity for 24 hoursRun any config storage command to refresh
Cannot remove last memberWould lock out the store permanentlyAdd another member first