Not quite clear.
The possibilities that can be realized through plugins will depend on the editorial board of the mattermost?
or talking about something that her version now just does not support plugins?
Thanks @danilvoe for your interest!
The stewardship principles that guide the development of the open source project (Team Edition) will also guide the development of the plugin framework.
As an example, a pre-packaged plugin for highly customized compliance rules would complicate admiministration and limit user freedom whereas the open source project is intended to have near zero administration without hard limits.
The question was that the plug-ins (provided that the developer of the plug-in was not initially limited to writing) would be technically limited as far as possible, depending on the version.
Thanks @danilvoe, good question.
There are some limitations what the plugin developer can do. For instance, not all the UI components can be overwritten quite yet and the developer might need plugin APIs or hooks that aren’t available yet. The plan is to add support and extend the ability of plugins over time based on customer and community feedback.
This is similar to webhook integrations where we add support for additional features over time (personal access tokens, message buttons, etc).
Let me know if that helps?
I am trying to add zoom plugin in Mattermost 4.5 version.But its not working.
I have done below steps:
I have created Zoom developer account and use API key and secret in system console Plugins zoom.
I have use webhook url to zoom webhook settings in API credentials.
Then activate the zoom plugin.
After that zoom plugin is not display in default channel.
I have solved the issue. Web socket was not connecting but when SSL add the issue resolved.
[SOLVED] Upgraded to 4.5 -- LDAP Problem
I’m getting the error:
[2018/01/03 10:04:18 GMT] [EROR] failed to start up plugins: mkdir ./client/plugins: no such file or directory
I’ve checked my perms. They all seem healthy. The plugin dir even seems to exist…
# pwd /opt/mattermost # ls -l client | grep plugins drwxr--r--. 2 mattermost mattermost 6 Nov 27 08:30 plugins
other things seem to be working ok (file attachments, custom emoji, etc)
I get this at startup, or when trying to enable plugins. In context with the nearby messages:
[2018/01/03 13:40:29 GMT] [INFO] Starting up plugins [2018/01/03 13:40:29 GMT] [EROR] failed to start up plugins: mkdir ./client/plugins: no such file or directory [2018/01/03 13:40:29 GMT] [INFO] Starting up plugins [2018/01/03 13:40:29 GMT] [EROR] failed to start up plugins: mkdir ./client/plugins: no such file or directory [2018/01/03 13:40:33 GMT] [EROR] /api/v4/plugins/webapp:GetActivePluginManifests code=501 rid=asdf uid=zxcv ip=22.214.171.124 Plugins have been disabled. [details: ]
Just to confirm, I am using 4.5.0…
@rheouk is there a
client directory inside your
mattermost folder? Also can you share the service configuration you’re using?
For example on Ubuntu 14.04 it might be:
start on runlevel  stop on runlevel  respawn limit nofile 50000 50000 chdir /opt/mattermost setuid mattermost exec bin/platform
@jwilander here you go:
[root@matterhost ~]# systemctl status mattermost ● mattermost.service - Mattermost Loaded: loaded (/usr/lib/systemd/system/mattermost.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2018-01-03 09:49:37 GMT; 5h 24min ago Main PID: 14880 (platform) CGroup: /system.slice/mattermost.service └─14880 /opt/mattermost/bin/platform Jan 03 15:04:29 matterhost.example.com platform: [2018/01/03 15:04:29 GMT] [EROR] /api/v4/plugins/webapp:GetActivePlugi...ls: ] [root@matterhost ~]# ls -l /opt/mattermost total 196 drwxr-xr-x. 3 mattermost mattermost 35 Dec 15 23:18 bin drwxr-xr-x. 7 mattermost mattermost 16384 Dec 15 23:17 client drwxr-xr-x. 2 mattermost mattermost 4096 Jan 3 09:49 config -rw-r--r--. 1 mattermost mattermost 2044 Dec 15 23:17 ENTERPRISE-EDITION-LICENSE.txt drwxr-xr-x. 2 mattermost mattermost 24 Dec 15 23:17 fonts drwxr-xr-x. 2 mattermost mattermost 4096 Dec 15 23:17 i18n drwxr-xr-x. 2 mattermost mattermost 4096 Dec 15 23:17 logs -rw-r--r--. 1 mattermost mattermost 147575 Dec 15 23:17 NOTICE.txt -rw-r--r--. 1 mattermost mattermost 5181 Dec 15 23:17 README.md drwxr-xr-x. 2 mattermost mattermost 4096 Dec 15 23:17 templates drwxr-xr-x. 3 mattermost mattermost 17 Sep 13 23:32 webapp
Can you try updating your WorkingDirectory to
WorkingDirectory=/opt/mattermost? My bet is that it’s looking in
/opt/mattermost/bin/client/plugins/ instead of
great spot - that sorted it! (and I even spotted a similar fix in the docker build - didn’t spot it in my own unit file… )
You called the
[root@matterhost bin]# ls -l total 48568 -rwxr-xr-x. 1 mattermost mattermost 49731993 Dec 15 23:18 platform drwxr--r--. 2 mattermost mattermost 6 Nov 27 08:30 plugins [root@matterhost bin]# pwd /opt/mattermost/bin
Awesome, glad we figured it out. I think we’re also going to make some updates to make this less likely to be an issue in the future and we also have some ideas about better error handling/reporting that should make figuring out issues easier.
I’ve been playing a bit with the plugins system (mainly to add slash commands without having to install anything else outside Mattermost), and I have a few feedbacks points to make
It wasn’t obvious in the documentation how to get the TeamId (which is required to register slash command). Looking at the PR that introduced the slash command support in plugins, I found that I simply needed to add TeamId to the Plugin struct. How does that work ? Are there other ‘magic’ attributes that work the same way (maybe
Enabledwhich I saw in the JIRA plugin example)?
When there’s an error while activating a plugin from the Management page, the plugin appears activated even though it’s not (you have to go to the logs to see the error, or refresh the page to see the deactivated status).
When the plugin configuration is modified via its dedicated page, the plugin is deactivated and needs to be activated manually again. I find that really weird so maybe it’s an error on my part?
When defining my slash commands, I set the
AutoCompleteHintproperty but no hint appears when the command is displayed in the autocompletion list.
Is it wanted that configuration pages of deactivated plugins are visible in the menu?
The plugin framework is a cool tool and it’s going to be a joy to use it to make Mattermost even more useful, thank you for your work
Always happy to get feedback on plugins!
There are no plugin fields with any special meaning. If you’re looking at the TeamId field of the test plugin here, note that it’s populated by the test here. Your plugin is probably working now because the team id isn’t actually required (and should still work if you removed the field). For example, see the code for our /memes plugin. The only thing that’s required to register a command is the trigger.
That page needs a lot of work. :-/
That’s definitely not intended behavior. The plugin shouldn’t be deactivated at all, and the OnConfigurationChange hook should fire. If you have any relevant log messages or other details, I’ll be glad to investigate this if needed. (I did just try this locally though and things seemed to work fine for me.)
I assume you’re also settingWent ahead and tested this. It’s a bug and here’s the fix.
I think so. For some plugins it makes sense to configure them before activating them for the first time.
I can investigate 3
and 4 if it looks like something’s not working right. And if you think of any cool plugins that you want to build, but find we haven’t implemented all of the plugin APIs you would need, let us know. We’re pretty receptive to feature requests for plugins right now.
You can also join us in our dev toolkit channel if you have more questions or feedback: https://pre-release.mattermost.com/core/channels/developer-toolkit
Thank you for all these informations, and the memes plugin that had escaped my searches and provides lots of examples (also, fun to use)
Regarding #3, I havent reproduced it recently so it must have been a bug in my code (or my brain).
There is a feeling that the support for plugins has stalled, what with the development of https://github.com/mattermost/mattermost-developer-kit?
Hey @danilvoe! Great question.
We’ve been working on the following items in recent releases:
- v4.10: Added better plugin error handling and reporting. Extended our developer documentation to cover integrations https://developers.mattermost.com/integrate/getting-started/
- v4.9: Added more flexibility to format text, emojis and Markdown, as well as support for plugins to add actions to the Mattermost Main Menu dropdown.
- v4.8: Extended our plugin documentation at https://developers.mattermost.com/extend/plugins/
Here are some upcoming changes we’re planning on:
- Ability for plugins to intercept, modify or reject messages before they’re written to the database (PR #8791). This supports the following:
- Plugins see every post going into the system, including system messages (with some exceptions)
- Plugins can reject/modify any post before it reaches the DB, including system messages. Supports things like profanity filters. Example here: https://github.com/mattermost/mattermost-plugin-profanity-filter/blob/master/server/plugin.go
- Plugins can modify any field on the post object. This includes doing interesting things like setting CreateAt to 5 minutes from now or 5 years ago.
- Release a pre-built Gfycat plugin across desktop and mobile
Summer 2018 (subject to change)
- Add updating user statuses to the plugin API
- Sample use case: Automatically update user status in Mattermost based on your meeting calendar in Gmail or Outlook/Exchange
- Add support for plugins to add options in the […] post dropdown menu
- Sample use case: Report inappropriate post via the […] post dropdown menu
- Add support to customize file upload icon
- Sample use case: Upload files from Google Drive or OneDrive via the file upload icon
- Enhance webhook interactive message capabilities through (currently supports interactive buttons)
- Message menus
- Forms and dialogs