Skip to content

feat(ssh): display compact terminal QR code for web authentication URLs - #2560

Open
mtthsbrd wants to merge 8 commits into
warp-tech:mainfrom
mtthsbrd:feature/terminal-qr-code
Open

mtthsbrd wants to merge 8 commits into
warp-tech:mainfrom
mtthsbrd:feature/terminal-qr-code

Conversation

@mtthsbrd

@mtthsbrd mtthsbrd commented Sep 7, 2026 •

Copy link
Copy Markdown
Contributor
  • Add qrcode crate to workspace dependencies
  • Implement render_qr_code_terminal in warpgate-common using ANSI background styling and Unicode lower half-blocks to eliminate line-height gaps
  • Add database migration m00089_ssh_show_qr_code adding ssh_show_qr_code to the parameters table (defaults to true)
  • Expose ssh_show_qr_code in Parameters entity and Admin API
  • Add switch toggle under SSH section in Admin Web UI
  • Update warpgate-protocol-ssh to read ssh_show_qr_code from Parameters and render QR code alongside web authentication instructions
  • Add unit tests for terminal QR code rendering and SSH instruction formatting

Description

Sometimes the screen/computer displaying the URL for web authentication will not have a browser / copy&paste / whateverthereason. In these cases having a QR code displayed can improve UX: 1.) Scan the barcode, 2.) Authenticate on the device you scanned with 3.) Continue on terminal.

Per maintainer request, this is implemented as a dynamic parameter (ssh_show_qr_code) with a UI toggle in the Admin console rather than a static config file option.

AI Usage

Choose the level of AI involvement for this PR.

  • Fully vibe coded
  • AI-designed, AI-coded, manually checked
  • Human-designed, AI-coded
  • Human-designed, human-coded (includes AI autocompletions and boilerplate gen)

This is not to block AI contributions but rather to speed up PR review (saves time on trying to deduce the logic behind AI hallucinations).

@Eugeny

Eugeny commented Sep 9, 2026

Copy link
Copy Markdown
Member

Thank you for the PR! Please update the option to be a Parameter fields with a UI toggle instead of a config file option.

@mtthsbrd
mtthsbrd force-pushed the feature/terminal-qr-code branch from 18ac96c to df8415a Compare September 11, 2026 06:14
@mtthsbrd

Copy link
Copy Markdown
Contributor Author

Updated as requested!

  • Rebased onto latest main.
  • Added migration m00089_ssh_show_qr_code adding ssh_show_qr_code (boolean, default true) to the parameters table.
  • Exposed ssh_show_qr_code in Parameters entity and Admin API.
  • Added a switch toggle under the SSH section in the Web Admin UI (Terminal display -> Display QR code for login URLs).
  • Updated openapi-schema.json.
  • Updated warpgate-protocol-ssh to read ssh_show_qr_code from the database parameters instead of warpgate.yaml.
  • Removed show_qr_code from SshConfig.

@mtthsbrd
mtthsbrd force-pushed the feature/terminal-qr-code branch from df8415a to 3b8a560 Compare September 11, 2026 06:17
…und styling

- Add qrcode dependency to workspace and warpgate-common
- Implement render_qr_code_terminal in warpgate-common using Unicode lower-half block (▄) and ANSI background styling to eliminate terminal line-height gaps
- Add unit tests for render_qr_code_terminal
@mtthsbrd
mtthsbrd force-pushed the feature/terminal-qr-code branch 2 times, most recently from f565af6 to 901a249 Compare September 13, 2026 09:13
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.

2 participants