diff --git a/pkg/datasource.go b/pkg/datasource.go index 86974bc..b59401b 100644 --- a/pkg/datasource.go +++ b/pkg/datasource.go @@ -212,7 +212,6 @@ func (ds *ZabbixDatasource) GetDatasource(pluginContext backend.PluginContext) ( ds.logger.Debug(fmt.Sprintf("Datasource cache miss (Org %d Id %d '%s' %s)", pluginContext.OrgID, dsSettings.ID, dsSettings.Name, dsInfoHash)) - ds.logger.Debug("DS config", "settings", pluginContext.DataSourceInstanceSettings) dsInstance, err := ds.NewZabbixDatasource(pluginContext.DataSourceInstanceSettings) if err != nil { ds.logger.Error("Error initializing datasource", "error", err) diff --git a/src/datasource-zabbix/components/ConfigEditor.tsx b/src/datasource-zabbix/components/ConfigEditor.tsx index 04b0604..1ef1b8a 100644 --- a/src/datasource-zabbix/components/ConfigEditor.tsx +++ b/src/datasource-zabbix/components/ConfigEditor.tsx @@ -16,6 +16,17 @@ export const ConfigEditor = (props: Props) => { // Apply some defaults on initial render useEffect(() => { + const { jsonData, secureJsonFields } = options; + + // Set secureJsonFields.password to password and then remove it from config + const { password, ...restJsonData } = jsonData; + if (!secureJsonFields?.password) { + if (!options.secureJsonData) { + options.secureJsonData = {}; + } + options.secureJsonData.password = password; + } + onOptionsChange({ ...options, jsonData: { @@ -23,7 +34,7 @@ export const ConfigEditor = (props: Props) => { trendsFrom: '', trendsRange: '', cacheTTL: '', - ...options.jsonData, + ...restJsonData, }, }); @@ -231,10 +242,6 @@ const secureJsonDataChangeHandler = ( ) => { onChange({ ...value, - jsonData: { - ...value.jsonData, - password: '', - }, secureJsonData: { ...value.secureJsonData, [key]: event.currentTarget.value,