We're updating the issue view to help you get more done.Learn more

Plugin configuration not saved in System Console

GitHub issue: https://github.com/mattermost/mattermost-server/issues/8713

Summary
Plugin configuration gets corrupted upon saving the configuration via system console.

Steps to reproduce
Enable plugins (system console -> plugins -> configuration)
Attempt to configure e.g. Jira plugin (system console -> plugins -> jira). Save the form.
Switch to another system console panel and then come back to Jira plugin configuration.
Version: 4.9.1

Expected behavior
Jira configuration is saved correctly. Values are copied to config.json.

Observed behavior
Jira configuration is saved in a corrupted format. If PluginSettings.Plugins.jira tree does not exist in config.json, it is added with null values and wrong capitalization (should be UserName, it is saved as username). If PluginSettings.Plugins.jira tree does exist, settings are preserved but key capitalization is changed to lowercase, making those settings unavailable to plugins.

Expected:
"Plugins": {
"jira":

{ "Enabled": true, "Secret": "randomly generated secret", "UserName": "user-selected-username" }

}

Actual:
"Plugins": {
"jira":

{ "enabled": null, "secret": null, "username": null }

}

Possible fixes
Problem seems to be about config.json serialization. UI and plugins expect these JSON keys to be CamelCase, but the whole PluginSettings.Plugin tree is automatically converted to lowercase keys upon saving. I can get plugins to work by editing the config manually, however any attempt to save anything in the system console will corrupt existing plugin settings.

Status

Mana

2

Assignee

Joram Wilander

Reporter

Lindy Isherwood

Fix versions

Mattermost Team

ABC

Sprint

None

Labels

QA Assignee

Dylan Haussermann

QA Test Steps

1. Open the system console and go to the Zoom or Jira plugin's settings (can test on ci-linux-postgres) 2. Change some settings and save them 3. Refresh the page, changes should be there 4. Try modifying the settings in different ways (blanking then saving, etc.) to try to find other issues

QA Testing Areas

Plugins