* [PATCH manager 1/2] fix #4588: ui: acme: allow setting the alias of DNS domains
2026-10-04 11:58 [PATCH manager/widget-toolkit 0/2] fix #4588: acme: allow setting the alias of DNS domains Michal Fox
@ 2026-10-04 11:58 ` Michal Fox
2026-10-04 11:58 ` [PATCH widget-toolkit 2/2] acme: domain edit: " Michal Fox
1 sibling, 0 replies; 3+ messages in thread
From: Michal Fox @ 2026-10-04 11:58 UTC (permalink / raw)
To: pve-devel
Domains validated with the DNS challenge can have an alias, so that the
challenge record is created on another domain, which the
'_acme-challenge' record of the domain points to with a CNAME. This is
useful if the DNS plugin should not be able to update the zone of the
domain itself.
But the alias could only be set on the CLI, as the edit window only
kept an existing one in a hidden field. Show it as a text field for
domains with the DNS challenge type, like the plugin.
Signed-off-by: Michal Fox <me@dualfroz.com>
---
Tested in the browser with the domain edit window: the field is only
shown for DNS domains, an existing alias gets loaded, a cleared alias
is removed from the property string, and none is submitted for HTTP
domains.
www/manager6/node/ACME.js | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/www/manager6/node/ACME.js b/www/manager6/node/ACME.js
index 773d0d29..7194fd01 100644
--- a/www/manager6/node/ACME.js
+++ b/www/manager6/node/ACME.js
@@ -332,16 +332,14 @@ Ext.define('PVE.node.ACMEDomainEdit', {
change: function (cb, value) {
let me = this;
let view = me.up('pveACMEDomainEdit');
- let pluginField = view.down('field[name=plugin]');
- pluginField.setDisabled(value !== 'dns');
- pluginField.setHidden(value !== 'dns');
+ for (const name of ['plugin', 'alias']) {
+ let field = view.down(`field[name=${name}]`);
+ field.setDisabled(value !== 'dns');
+ field.setHidden(value !== 'dns');
+ }
},
},
},
- {
- xtype: 'hidden',
- name: 'alias',
- },
{
xtype: 'pveACMEPluginSelector',
name: 'plugin',
@@ -357,6 +355,14 @@ Ext.define('PVE.node.ACMEDomainEdit', {
value: '',
fieldLabel: gettext('Domain'),
},
+ {
+ xtype: 'proxmoxtextfield',
+ name: 'alias',
+ disabled: true,
+ hidden: true,
+ fieldLabel: gettext('Alias'),
+ emptyText: Proxmox.Utils.noneText,
+ },
],
},
],
--
2.43.0
^ permalink raw reply related [flat|nested] 3+ messages in thread* [PATCH widget-toolkit 2/2] acme: domain edit: allow setting the alias of DNS domains
2026-10-04 11:58 [PATCH manager/widget-toolkit 0/2] fix #4588: acme: allow setting the alias of DNS domains Michal Fox
2026-10-04 11:58 ` [PATCH manager 1/2] fix #4588: ui: " Michal Fox
@ 2026-10-04 11:58 ` Michal Fox
1 sibling, 0 replies; 3+ messages in thread
From: Michal Fox @ 2026-10-04 11:58 UTC (permalink / raw)
To: pve-devel
Domains validated with the DNS challenge can have an alias, so that the
challenge record is created on another domain, which the
'_acme-challenge' record of the domain points to with a CNAME.
But the alias could only be set on the CLI, as the edit window only
kept an existing one in a hidden field. Show it as a text field for
domains with the DNS challenge type, like the plugin.
As a side effect, an existing alias is not kept anymore when switching
a domain to the HTTP challenge type with separate domain entries, like
it is done in Proxmox Mail Gateway, where it has no meaning.
Signed-off-by: Michal Fox <me@dualfroz.com>
---
Tested in the browser the same way as the PVE window, both with the
'domains' list (PBS) and with separate domain entries and usage (PMG).
src/window/ACMEDomains.js | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/src/window/ACMEDomains.js b/src/window/ACMEDomains.js
index a2d2f83..029d427 100644
--- a/src/window/ACMEDomains.js
+++ b/src/window/ACMEDomains.js
@@ -142,16 +142,14 @@ Ext.define('Proxmox.window.ACMEDomainEdit', {
change: function (cb, value) {
let me = this;
let view = me.up('pmxACMEDomainEdit');
- let pluginField = view.down('field[name=plugin]');
- pluginField.setDisabled(value !== 'dns');
- pluginField.setHidden(value !== 'dns');
+ for (const name of ['plugin', 'alias']) {
+ let field = view.down(`field[name=${name}]`);
+ field.setDisabled(value !== 'dns');
+ field.setHidden(value !== 'dns');
+ }
},
},
},
- {
- xtype: 'hidden',
- name: 'alias',
- },
{
xtype: 'pmxACMEPluginSelector',
name: 'plugin',
@@ -170,6 +168,14 @@ Ext.define('Proxmox.window.ACMEDomainEdit', {
value: '',
fieldLabel: gettext('Domain'),
},
+ {
+ xtype: 'proxmoxtextfield',
+ name: 'alias',
+ disabled: true,
+ hidden: true,
+ fieldLabel: gettext('Alias'),
+ emptyText: Proxmox.Utils.noneText,
+ },
{
xtype: 'combobox',
name: 'usage',
--
2.43.0
^ permalink raw reply related [flat|nested] 3+ messages in thread