-
Notifications
You must be signed in to change notification settings - Fork 0
Support shared connection profiles via TOML config file #35
Copy link
Copy link
Open
Labels
featureProduct featureProduct feature
Description
Problem
Connection profiles are stored in VS Code's global state, which is local to each machine and not shareable. Teams working on the same Exasol databases must manually configure each connection on every developer's machine. There's no way to version-control or share connection profiles.
Proposal
Support an optional connections.toml file that defines connection profiles. The extension discovers it automatically and merges profiles with the existing VS Code-managed connections.
File location (in priority order)
.exasol/connections.tomlin the workspace root~/.exasol/connections.tomlfor user-global profiles
Format
[connections.production]
host = "exadb.company.com"
port = 8563
user = "analytics_user"
tls_mode = "full"
[connections.staging]
host = "exadb-staging.company.com"
port = 8563
user = "dev_user"
tls_mode = "fingerprint"
fingerprint = "AB12CD34..."Passwords are never stored in the TOML file — they remain in VS Code's secure secret storage. On first use, the extension prompts for the password and stores it securely.
Behavior
- TOML-defined connections appear in the connections tree alongside VS Code-managed connections, with a distinct icon (e.g.,
$(file)) to indicate they come from a config file - Editing a TOML connection opens the file in the editor instead of the connection form
- TOML connections are read-only in the UI (edit the file directly)
- The extension watches the file for changes and refreshes automatically
- If the same connection name exists in both TOML and VS Code state, the TOML version takes precedence
Why TOML
- Human-readable and easy to edit by hand
- Standard format with well-supported parsers (
@iarna/tomlorsmol-toml) - Natural fit for connection profiles (flat key-value with sections)
- Can be committed to repos (without passwords) for team sharing
.gitignore-friendly for personal overrides
Scope
- TOML parser dependency (
smol-toml— zero-dependency, 12KB) - File discovery and watching (
vscode.workspace.createFileSystemWatcher) - Merge TOML profiles into connection list
- Distinct icon and read-only behavior for file-based connections
- "Open Connections File" command to create/edit the TOML file
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
featureProduct featureProduct feature