microsoft / microsoft/vscode-pgsql
Dev container connections lose SecretStore entry on rebuild
まだ誰も着手していません。
- 主要言語
- 言語のデータがありません
- スター
- 395
- フォーク
- 33
- 平均マージ
- 1時間 46分
- マージ済み PR(30日)
- 3
説明
Summary
When a workspace connection profile is stored in .vscode/settings.json with a
password field, the extension automatically strips the plaintext password from
the file (expected — plaintext passwords shouldn't be committed). However, when a
Dev Container is rebuilt or VS Code re-establishes the remote connection, the
corresponding SecretStore entry is not present, leaving the connection in a broken
state until the user manually opens the connection editor and re-saves.
Steps to reproduce
- Add a connection profile to
.vscode/settings.json(or check one in) with a
passwordfield populated. - Open the workspace in a Dev Container.
- Observe the
passwordfield is immediately stripped fromsettings.jsonby the
extension (expected behavior). - The connection is shown as errored in the extension — it has no password to use.
- Open the connection editor in the extension UI, make no changes, and click Save.
- The connection now works (SecretStore entry is created).
- Rebuild the Dev Container (e.g., to update a dependency or add an extension).
- After rebuild, the connection is broken again — back to step 4.
Expected behavior
On first activation of a connection profile from workspace settings, the extension
should prompt for the password and store it in SecretStore — or otherwise surface
a clear recovery path — rather than silently leaving the connection in an errored
state. Subsequent cold starts (e.g., container rebuild) should also trigger this
flow if no SecretStore entry exists for the profile.
Actual behavior
The connection is left silently broken. The only workaround is to open the
connection editor and re-save, which is not obvious and must be repeated on every
container rebuild.
Workaround
Open the connection via the extension UI → Edit → Save (no changes needed). This
creates the SecretStore entry and the connection begins working. Must be repeated
after each container rebuild.
Environment
- Extension version: v1.19.0 (pre-release)
- VS Code: remote / Dev Container
- Connection storage:
.vscode/settings.json(workspace scope)
Related
- Closes #191 (the connection-storage-in-workspace-settings feature request, now
shipped — this is a follow-on friction point in the devcontainer flow) - Related: #143 (password retrieval via custom mechanism)
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
workspace スコープの .vscode/settings.json 接続フローと、Dev Container の再ビルド後の最初のアクティベーションから始めます。接続エディターが SecretStore エントリを作成する方法と、エントリがない場合に拡張機能がどのように処理するかを追跡します。再ビルドされたコンテナーがパスワードを求めるか、明確な復旧手順を表示し、接続が暗黙に失敗しなくなれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- postgresql, vscode
- 領域
- authentication, devtools
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 静か
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 48/100