pgadmin-org / pgadmin-org/pgadmin4

[Snap] Show actionable warning when password-manager-service is not connected instead of falling back to master password silently

Open
#9,919 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Feature
Dominant language
Python
Stars
3.8k
Forks
891
Avg merge
4d 7h
Merged PRs (30d)
8

Description

Describe the bug / feature request

When pgAdmin 4 is installed via snap and the password-manager-service
interface is not connected, pgAdmin silently falls back to requiring a
master password with no explanation why.

Since pgAdmin 7.2+, the OS keyring is the default and preferred storage
for saved passwords in desktop mode. However, snap's strict confinement
prevents keyring access unless the user explicitly runs:

snap connect pgadmin4:password-manager-service

This is not documented anywhere in the app, and most users will never
find it. The only hint is in the pgadmin4-snap GitHub README, which most
users never read.

Expected behavior

When pgAdmin detects that the OS keyring is unavailable (e.g.
NoKeyringError), it should:

  1. Show a clear, user-friendly message explaining that the system keyring
    is not accessible
  2. On Linux snap installs specifically, suggest the fix:
    snap connect pgadmin4:password-manager-service
  3. Offer master password as a fallback option with explanation

Current behavior

pgAdmin silently falls back to prompting for a master password with no
explanation, leading users to spend significant time trying to disable
the master password via config files (which is impossible to do via
config_local.py on snap due to read-only filesystem and snap Python path
isolation).

Steps to reproduce

  1. Install pgAdmin via snap: sudo snap install pgadmin4
  2. Open pgAdmin
  3. Observe master password prompt with no explanation

Fix

The fix in master_password.py where NoKeyringError is caught could
be extended to surface a user-facing message. Additionally, requesting
auto-connect approval from the Snap Store team for the
password-manager-service interface would solve this entirely.

Environment

  • OS: Ubuntu (snap install)
  • pgAdmin version: 9.14
  • Package type: Snap

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in master_password.py at the NoKeyringError catch and follow how the master-password prompt is surfaced; reproduce the documented snap installation with the password-manager-service interface disconnected. Done means the unavailable keyring is explained, the snap command is suggested where applicable, and the master-password fallback is clearly identified.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
desktop, security
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.