0
0
mirror of https://github.com/openwrt/luci.git synced 2025-09-20 14:39:22 +00:00
Files
Nat Gist 3a45003bfb luci-app-statistics: Adds ability to configure encrypted connections in the MQTT package
Updates mqtt.js to add user interface to configure a path to a CA Cert file to be used by MQTT to verify the servers certificate, and adds a setting to configure the TLS verison to be used for the conneciton. Also updates stat-genconfig to then copy these settings into the generated collectd.conf

Signed-off-by: Nat Gist <nat.gist@gmail.com>
2025-08-25 19:27:53 +03:00

102 lines
3.1 KiB
JavaScript

'use strict';
'require baseclass';
'require form';
return baseclass.extend({
title: _('Mqtt Plugin Configuration'),
addFormOptions: function(s) {
let o, ss;
o = s.option(form.Flag, 'enable', _('Sends or receives data via mqtt'));
o = s.option(form.SectionValue, '__blocks', form.GridSection, 'collectd_mqtt_block');
o.depends('enable', '1');
ss = o.subsection;
ss.anonymous = true;
ss.addremove = true;
o = ss.option(form.ListValue, 'blocktype', _('Type'));
o.value('Publish', _('Publish'));
o.value('Subscribe', _('Subscribe'));
o.default = 'Publish';
o = ss.option(form.Value, 'name', _('Name'));
o.optional = false;
o.rmempty = false;
o = ss.option(form.Value, 'Host', _('Host'));
o.datatype = 'host';
o.optional = false;
o.rmempty = false;
o = ss.option(form.Value, 'Port', _('Port'));
o.datatype = 'port';
o.optional = true;
o = ss.option(form.Value, 'User', _('User'));
o.optional = true;
o = ss.option(form.Value, 'Password', _('Password'));
o.password = true;
o.optional = true;
o.modalonly = true;
o = ss.option(form.ListValue, 'Qos', _('QoS'));
o.value('0', _('0 - At most once'));
o.value('1', _('1 - At least once'));
o.value('2', _('2 - Exactly once'));
o.modalonly = true;
o.optional = true;
o = ss.option(form.Value, 'Prefix', _('Prefix'));
o.depends('blocktype', 'Publish');
o.optional = true;
o.modalonly = true;
o = ss.option(form.ListValue, 'Retain', _('Retain'));
o.depends('blocktype', 'Publish');
o.value('true', _('True'));
o.value('false', _('False'));
o.optional = true;
o.modalonly = true;
o = ss.option(form.ListValue, 'StoreRates', _('StoreRates'));
o.depends('blocktype', 'Publish');
o.value('true', _('True'));
o.value('false', _('False'));
o.modalonly = true;
o.optional = true;
o = ss.option(form.ListValue, 'TLSProtocol', _('TLSProtocol'));
o.depends('blocktype', 'Publish');
o.value('tlsv1.2', _('TLS 1.2'));
o.value('tlsv1.3', _('TLS 1.3'));
o.modalonly = true;
o.optional = true;
o = ss.option(form.Value, 'CACert', _('CACert'));
o.depends({'TLSProtocol': 'tls', '!contains': true });
o.optional = true;
o.modalonly = true;
o.default = '/etc/ssl/certs/ca-certificates.crt';
o = ss.option(form.ListValue, 'CleanSession', _('CleanSession'));
o.depends('blocktype', 'Subscribe');
o.value('true', _('True'));
o.value('false', _('False'));
o.optional = true;
o.modalonly = true;
o = ss.option(form.Value, 'Topic', _('Topic'));
o.depends('blocktype', 'Subscribe');
o.optional = true;
o.modalonly = true;
},
configSummary: function(section) {
return _('Mqtt plugin enabled');
}
});