From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [45.144.208.40]) by lore.proxmox.com (Postfix) with ESMTPS id 04DD41FF143 for ; Sat, 18 Jul 2026 20:19:39 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id D4EED21456; Sat, 18 Jul 2026 20:19:37 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784398763; x=1785003563; darn=lists.proxmox.com; h=references:in-reply-to:subject:cc:to:from:date:message-id:from:to :cc:subject:date:message-id:reply-to:content-type; bh=SlQmHNvf86qweqaFf0q33EKEzn5tFYUORxa5Vy+N05Y=; b=f3/F/e7BgNOrMB4p7z7/FYAFQVn2WmFPnkcK2oAnmBrE/AhDuCVZVieLW/mzKhY1md VHa534ZMLoIGEsIh3YbX2/AKG6vW2n00bhN5U/n8dnRS4P08BASXd6w8OtDmEQvA5Udd 5NbbJPdHdUlPHEXu+6/x8Bmup2BwxYPVk9RI71Bib2VzGVv2SfGExGct2zs4QGliK+yb vv9H5f4cu4ZVr3ACcQu+zVf3zq8ytCGrVmwOB3FDMWXizmPAwvh34bWJPmdS8P4UGWjK vnmWmoMqy3kkdcejL0arbWu/XUKCubXM32itkvOSyrt1D6pcChMim7fH+2YVMD+QrL2D ugJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784398763; x=1785003563; h=references:in-reply-to:subject:cc:to:from:date:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=SlQmHNvf86qweqaFf0q33EKEzn5tFYUORxa5Vy+N05Y=; b=pfOG6LeGK086as1awgIfOXkOdtDt9bCX/mvJdVYBn3/XaXKKuUz9+qxrznV5Z2eNeO +uGBAE7A7Fm3EahICETt6su9JGm0lltjMkhx0U7V+f8byuhfE7NhrklXRzu4sh40Sx3h idRCqIlw+OgeZDM+GKrSd68lfgwsa9FiqIt1RE8GhRNHXm88i7aX2LanaQRgINCJoZRl 9Z/LYB64EfHxp6zYiG7jzDpwXoGnBzml4ht5vRnB0+WG9+T4rUP7IWrl/ChRE8wC5i5l Z9metNtr7cp+NVNMhfnVcvO/td5vwTk7M4AysL4QvFuZA7czorKROjqRUZ5nzUt3FkYx LvGw== X-Forwarded-Encrypted: i=1; AHgh+RrDouPRhhUJYURnH/m6vP89ByJLJcFdI8krrc0U1swK7vvpSP1Im6vXmiEXzPEbF7IPplukMrimktY=@lists.proxmox.com X-Gm-Message-State: AOJu0YyfRhr+IjiSfvn8V0q6LB2zpbXc5bx0OiLoSQdC1W90bzpQMyTg z3/Z4c7JVk+8FKZnaObfDNS3UgVWadzOPst/BhaGhc7E8NeqN1hiydff X-Gm-Gg: AfdE7ckwTp2FroR9o+jvCiTMoCz4hvvdfPmndQ55D5H1pLmBcfWg/SPimMZRpy6Okw7 h6kjtVpY3fFRuojvmEww223IouCo+j3mk3e24qaWb29PRWiKhM+mz1ypgvzIqeTtxLAWElobpFg ac1CqysOWD3YbrtzfL6wwYfzFc3UvhPglNVAt01TDsL90lsGkscPgmc7JxbnA1QaNaYFUTBQEa8 bgtg1Ar/hzVlZkhPpAw7wW46KxQI9TA+ic8kKqyQtvNUzUm+sIX/l4O6HTPXaferJyviCupUQmN H2hlpiXjKGH2+h6uu2Z1unk9VVwt6M4o0lsTR6Dc9jvss1D/msZGN7+PIb1h1ljn2uow029byD0 IhShOXae2GqKpc31YxkS5KXUuvftbrQbHQoJ/uPHdQp0hBv+jPC6ERLyfA9liSwalxXyvhRrm X-Received: by 2002:a17:90b:580c:b0:38e:47e0:3ddd with SMTP id 98e67ed59e1d1-38e4b53b623mr8204081a91.34.1784398763116; Sat, 18 Jul 2026 11:19:23 -0700 (PDT) Message-ID: <6a5bc3aa.1728eaf3.2a2f6.730c@mx.google.com> Date: Sat, 18 Jul 2026 11:19:22 -0700 (PDT) From: Ciro Iriarte To: Thomas Lamprecht Subject: Re: [PATCH common/manager/proxmox-widget-toolkit/storage 00/13] GUI Support for Custom Storage Plugins In-Reply-To: <4d0f0ae5-5069-4aac-83f4-b9f1acfda0b5@proxmox.com> References: <20260623143402.772452-1-m.carrara@proxmox.com> <6a5791cb.f6216423.106138.670b@mx.google.com> <4d0f0ae5-5069-4aac-83f4-b9f1acfda0b5@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.200 Adjusted score from AWL reputation of From: address DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain DMARC_PASS -0.1 DMARC pass policy FREEMAIL_FROM 0.001 Sender email is commonly abused enduser mail provider RCVD_IN_DNSWL_NONE -0.0001 Sender listed at https://www.dnswl.org/, no trust 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: GMIGPGMRGP7WB7P2F3BDFANVMODFRW6X X-Message-ID-Hash: GMIGPGMRGP7WB7P2F3BDFANVMODFRW6X X-MailFrom: cyruspy@gmail.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 CC: pve-devel@lists.proxmox.com X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Hi Thomas, On P1: agreed, and the Rust UI framework settles it. If index.html.tpl injection is going away, a blessed JS override path would only be a dead end I'd have to migrate off later, so I'd rather it not exist. The part I'd still like to see land eventually is the backend method you sketched -- a plugin-provided live verification the UI can call. That covers my actual use cases (credential and endpoint validation, and eventually populating pool IDs from the array) without any client-side plugin code. I'm not asking for it in this series; I'd just like it kept on the map, and I'm happy to be a test case when you get to it. An array with a REST control plane is a reasonable worst case, since a credential check is a network round trip that can take seconds. Meanwhile I've implemented check_connection() in my plugin -- it connects to the management endpoint and reaches the pool, so an unreachable array now reports as offline rather than silently passing. on_add_hook() already did the same probe at add time. On the deferred items, I'd rather send patches than keep asking. Starting with P6 (the docs link) since it's the smallest and has no schema semantics to bikeshed -- an external-marked link per plugin, as you described. If that shape works, P5 (a human label alongside enum values, so operators see "Ops Center Configuration Manager" instead of "ops-center-cm") would follow. On P4 I'd narrow what I originally asked for. Max is right that translating arbitrary Perl regex to ECMAScript isn't worth the risk, so not that: just a lookup table mapping the named formats that already exist in JSONSchema.pm -- ip, ipv4, ipv6 and similar -- to the vtypes that already exist in the widget toolkit. Driver-specific formats stay server-side. That makes it a table rather than a translation problem. I'll hold all three until the base series lands, unless you'd rather see them on top of it -- no point creating rebase churn while v2 is in review. Nothing from me on P2/P3; the default layout groundwork should come first. The plugin code: https://github.com/ciroiriarte/pve-FCLUPlugin That's a vendor-neutral framework (generic core plus per-vendor drivers); the Hitachi VSP driver is the reference implementation and the only one live-validated so far, against a VSP E590H. The index.html.tpl injection I mentioned is in there, so it also serves as a worked example of the workaround this series retires. Thanks, Ciro