Skip to content

Add registry credential management and UI enhancements - #151

Merged
mstrhakr merged 18 commits into
devfrom
mstrhakr/issue148
Sep 24, 2026
Merged

mstrhakr merged 18 commits into
devfrom
mstrhakr/issue148

Conversation

@mstrhakr

Copy link
Copy Markdown
Owner

Introduce a credential backend for managing registry credentials, enhance the UI with a credential manager and stack selector, and ensure proper handling of GitHub OAuth credential fields. Fixes include locking credential fields and supporting credential encryption without sodium.

Copilot AI lite review requested due to automatic review settings September 14, 2026 02:18
@mstrhakr mstrhakr self-assigned this Sep 14, 2026

This comment was marked as resolved.

@mstrhakr mstrhakr linked an issue Sep 14, 2026 that may be closed by this pull request
- Show the verification URL as readable text alongside the existing link
- Add a dedicated Copy button next to the device code so it can be
  re-copied anytime (e.g. after a clipboard manager clears it)
- Render a QR code (vendored qrcode-generator, MIT licensed) so the
  GitHub device sign-in can be completed from a phone by scanning
- GitHubDeviceAuth now also returns verification_uri_complete when
  GitHub provides it, used to pre-fill the code in the QR flow
…operations

- CredentialVault::materializeDockerConfig() now logs the credential's
  friendly name and registry host (never the secret) whenever it's
  used to build a Docker auth config
- compose.sh logs when up/pull/update run with no credential attached
  to the stack, so anonymous pulls are visible instead of silent
- compose_autoupdate.sh logs the same for scheduled auto-updates, and
  resolves the credential after the project name is finalized so the
  log line always includes it
…edential test/renewal check

- credential_config.php now also prints the credential's friendly
  name/registry as a second line so callers can echo it, instead of
  only logging it to syslog where it was easy to miss
- compose.sh and compose_autoupdate.sh now log 'Using registry
  credential ...' inline alongside the other DEBUG command lines,
  fixing the case where a configured credential produced no visible
  log line at all
- Add CredentialVault::testCredential(), which performs the standard
  Docker Registry v2 auth handshake (ping /v2/, follow the Bearer
  challenge to the token endpoint) to verify a saved credential still
  authenticates, without ever exposing the secret
- Add a 'testCredential' Exec.php action and a Test button per
  credential row in the UI; failures surface a message suggesting the
  token may have expired/been revoked and prompting renewal
- Add CredentialVault::getCredentialSummary() and a unit test
- GitHubDeviceAuth::start()/poll() accept an existing credential id so
  a re-authorization updates that credential in place (same id, same
  stack assignments, original custom name preserved) instead of
  creating a duplicate
- Add a 'Renew access' button in the edit modal for GitHub OAuth
  credentials that re-runs the device sign-in flow against the
  existing credential
- The 'Credential rejected' result from Test now offers a one-click
  Renew action (kicks off GitHub sign-in immediately) or opens the
  edit modal focused on the token field for manual credentials
- Add a unit test covering renewal id/name preservation
@mstrhakr
mstrhakr merged commit 9ce7e23 into dev Sep 24, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support custom DOCKER_CONFIG dir

2 participants