Where DevOpsPad stores connections

Connection metadata (names, hosts, ports, usernames, environments, kubeconfig paths and SSH settings) is stored in a single file, workspace.json, in your user configuration folder. Every secret is stored separately in the operating system’s credential store under the service name devopspad. Nothing is sent to a server; DevOpsPad has no account or cloud sync.

On macOS the file is ~/Library/Application Support/DevOpsPad/workspace.json and the secrets live in the login keychain.

File locations

DevOpsPad uses Go’s os.UserConfigDir():

Platform Folder
macOS ~/Library/Application Support/DevOpsPad/
Linux (source builds) $XDG_CONFIG_HOME/DevOpsPad/, usually ~/.config/DevOpsPad/
Windows (source builds) %AppData%\DevOpsPad\

The folder contains:

  • workspace.json: connection profiles and AI provider settings without the API key.
  • workspace.json.backup: a copy written after each successful save.

What goes where

Data Location
Connection name, engine, host, port, username, database, environment, TLS flag workspace.json
Kubeconfig path and context name workspace.json (the kubeconfig itself stays where it is)
SSH host, user, method, private key path, known_hosts path, fingerprint workspace.json
Database password, SSH password, SSH key passphrase Keychain, service devopspad
AI API key Keychain, service devopspad
Saved queries and optional query drafts The app’s local webview storage, not encrypted. See restore query drafts
Query history Memory only; cleared when the app closes

How the file is written

  • The folder is created with owner-only permissions (0700), and the file is written through an owner-only temporary file.
  • Writes are atomic: DevOpsPad writes a temporary file, flushes it to disk and renames it over workspace.json, so a crash never leaves a half-written file.
  • Keychain updates and file writes succeed or fail together; see keychain secrets.
  • The file is limited to 4 MiB.

If the file is damaged

DevOpsPad never replaces an unreadable or invalid workspace with an empty one. If workspace.json cannot be parsed, contains unexpected fields or a password, or was saved by a newer version, the app reports the problem and leaves the file untouched.

To recover manually:

  1. Quit DevOpsPad.
  2. Copy workspace.json somewhere safe so you keep the damaged version.
  3. Copy workspace.json.backup to workspace.json.
  4. Start DevOpsPad again.

The backup contains metadata only. Keychain entries are not part of it; if a secret is missing, enter it again with Edit connection.

If the file was written by a newer version, install that version instead of editing the file. See update DevOpsPad.

Frequently asked questions

Are passwords stored in workspace.json?

No. Passwords, SSH passwords, key passphrases and the AI API key are stored only in the OS keychain. DevOpsPad refuses to load a workspace file that contains a password.

Can I sync connections between computers?

Not in this version. Connections are local to one machine. Infra project mappings can be shared through Git, but connection profiles and secrets cannot.