From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 5CFAC1FF136 for ; Mon, 18 May 2026 15:41:41 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 4A209137F4; Mon, 18 May 2026 15:41:40 +0200 (CEST) Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Mon, 18 May 2026 15:41:07 +0200 Message-Id: Subject: Re: [RFC PATCH datacenter-manager v3 12/12] ui: registry: add Add-and-Assign wizard from Assign Key dialog From: "Lukas Wagner" To: "Thomas Lamprecht" , X-Mailer: aerc 0.21.0-0-g5549850facc2-dirty References: <20260515074623.766766-1-t.lamprecht@proxmox.com> <20260515074623.766766-13-t.lamprecht@proxmox.com> In-Reply-To: <20260515074623.766766-13-t.lamprecht@proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1779111654894 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.054 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: OFDKMRKBK5Y6PANNE6NOL3HMUH3PXBSA X-Message-ID-Hash: OFDKMRKBK5Y6PANNE6NOL3HMUH3PXBSA X-MailFrom: l.wagner@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: On Fri May 15, 2026 at 9:43 AM CEST, Thomas Lamprecht wrote: > Wire a small two-step wizard reachable from the per-node Assign Key > dialog's "Add new key..." button: paste a key, click Next, and land > back on the Assign selector with the just-added key pre-selected > and the original (remote, node) target preserved. > > Optional UX shortcut for the empty-pool case; see the post-`---` > RFC note for the keep-vs-drop trade-off. > > Signed-off-by: Thomas Lamprecht > --- > > New in v3, sent as RFC and probably should be skipped on apply: it > crowds the Assign Key dialog with an extra "Add new key..." button and a > separate two-step wizard that competes with the natural left-panel Add > path (i.e., just add a key on the left, the selection on the right stays > intact and thus one can trivially continue there afterwards). Two > discoverability paths for the same outcome is worse than one slightly > longer path. > Instead of spawning the new wizard from the "Assign Dialog", you could also try to attempt to combine everything into a single dialog: (x) Use existing key from pool pbsc-fffffffffffffffffffffffff < Regular table, same as alread= y exists pbsc-aaaaaaaaaaaaaaaaaaaaaaaaa ( ) Add new key to pool [ ] < Text field for adding a singl= e key [Cancel] [Assign] I guess the 'tricky' part is that the "Assign" now has to do 2 POSTS, one for the key import, one for the assignment, which could be a bit awkward if there are failures (e.g., what do you do if adding the key to the pool works, but the assignment fails?). We could have a single "Add and assign" action in the API to simplify UI implementation, but not sure how well that fits in the existing API design. That being said, the UX without this patch is already quite acceptable and we probably can well live without this shortcut. In general, these shortcuts are very useful if the user has to otherwise 'backtrack' and discard previously entered information (Example: A wizard with many steps, but on the last step the user notices that they need to add some kind of prerequisite first -- same situation as we recently with the tokens for automated installations). Here, closing the "Assign Key" dialog in order to first import the key to the pool is a rather cheap action, that would (hopefully) not frustrate users too much.