From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id 9BA071FF0E7 for ; Fri, 10 Jul 2026 18:26:37 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 96B432142F; Fri, 10 Jul 2026 18:26:36 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783700751; x=1784305551; darn=lists.proxmox.com; h=content-type:subject:to:from:date:message-id:from:to:cc:subject :date:message-id:reply-to:content-type; bh=R58zkm6D9pJ8wTBIULRB9EZn+fte0lhFFSoUyhSc46E=; b=sSFUNDSTU0dN48HQXLx70yfbyBWNuyUzUdaACqdch1gAiVGLK3pJSMMS9kGH+j9Nni r/E0B7uxgmiwP5ypsBB/wYJUqItJDm6jQlWDfiA+LcRoIcKHM3Ulo0+dwpDgdYZWHI/n w+NXElSUrFNpS6NDML8JW7Y8jRR8rDMMSKMChVTNHaHnYN6w5x1NS7HhdusioWLCLEjB HjybCpmu3TixjA5B0NcBXKeAmd7GW5NS2wrPEQHKUvegMDENCzRDT4TNEdt4MD4q+L/Q dsRPqEEMbRTOM51ZC1bSR/tStHI6M8ueXNom40qNKCXaE0zQRn7cW0apJvwc8N5ucUTb LtMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783700751; x=1784305551; h=content-type:subject:to:from:date:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=R58zkm6D9pJ8wTBIULRB9EZn+fte0lhFFSoUyhSc46E=; b=sAAT0Lvr7GuYbQK3/HLwRUtZSM6mzTKFpceD5DpTz9/1bS2OfYuvXIJoBLV+xTowA2 qrA48KXmtwWMAqkfVKTgGJrLg7ldP193QhvydtzJlwiSmLYktB9DNiFmhilYGMld4vXf Qe9FcH9f87H3MVycnxtlEpSY6IQuWWxSh/SBENxmygEN0YZvI/DpWkg1EaMm9IYYFaPj W59uen4QLUP4SHKkqPXvFxmxTw3IymWXq19xRRCh8s7KbNOS0qUr24EczFr/fZyT5Bn1 +ObjBv0R/UncJ49zyatc+md3IK8YE3V2Ah5h3hYZOA6RKtth5CJoRGmJKLRkdl7lRWd4 yhWg== X-Gm-Message-State: AOJu0YwNtOf6ysduL55yzxmFcNrQXYneMqoCBvQqD54k60S5Pzgp++K6 VUwbyj0ErQ9VX/X6jTzVZ7b6UyyyXiLl18tf3iGvzh+0uNWGL/eTaXISNSdXOQ== X-Gm-Gg: AfdE7cmJ8xCr5k38kRkhH/IVEVWeGWIlcq9hgBk8Mvc9jfqEhtcKHRdOHqP+a3xWOXT PQNdM/1a/JK6eTCM9MzavQzu1xLKfcx8fxalEZdq2UzhFMjAsZ86Gi66i9Ol4z7DpCRrKubYZqu np8EQJmifzH+KRRHNBPqZTyb3JgHDp2BK5WxC3KsYRBhkyBfIAZV74Z/f8eWKjDmA0xditMl3jN E2CoP7lal0K4a0raA1lG+BOfCkSN9V/SkKr1/R09Ij5csEXZAhlPhvgUpls+PfH1HoA06fgqzRX /1UTmeZNbVMOPpMw4q2klGO3iMlkiG+XswFZtdZNwfu/P/lmu/vGc7LQwkcifxzzYfYW0YD2hqS ZtRil9bEHmV+VaHqg5WvlRZU7AEy5kaCuVjeoFGtUDLi+MtXK6hVX5T2ChdS27rK8cP+9ztHX0v Wtzmg6XS0= X-Received: by 2002:a05:690e:4287:10b0:664:ae68:33a2 with SMTP id 956f58d0204a3-667d7c5d42amr1565d50.67.1783700751049; Fri, 10 Jul 2026 09:25:51 -0700 (PDT) Message-ID: <6a511d0e.201ddd8e.107a97.f791@mx.google.com> Date: Fri, 10 Jul 2026 09:25:50 -0700 (PDT) From: Ciro Iriarte To: pve-devel@lists.proxmox.com Subject: [RFC storage, manager] schema-driven web UI dialog for custom storage plugins Content-Type: text/plain; charset=UTF-8 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 KAM_ASCII_DIVIDERS 0.8 Email that uses ascii formatting dividers and possible spam tricks 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: JF5YKGCPOO7W7AQDMW3NSNELMPWHI32B X-Message-ID-Hash: JF5YKGCPOO7W7AQDMW3NSNELMPWHI32B 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 X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Hello, I'd like feedback on a supported way for a custom storage plugin to contribute its create/edit dialog to the web UI, so third-party plugins no longer have to inject JavaScript into pve-manager's index.html.tpl. Decision I am asking about -------------------------- Should pve-storage let a plugin declare a GUI form schema that pve-manager renders into the storage add/edit dialog, instead of the plugin shipping ExtJS and patching index.html.tpl? If yes, I propose the minimal contract below. Background ---------- A custom storage plugin (PVE::Storage::Custom) registers its config properties server-side via properties()/options(), but there is no supported way to contribute the create/edit dialog. The only working method today is to ship an ExtJS panel and inject a