-
Notifications
You must be signed in to change notification settings - Fork 336
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mattermost integration designed #4412
Comments
Stale issue |
still a thing we are contractually obligated to do 🙃 |
A Mattermost integration was one of the top most requested integrations from the Parabol User Feedback Survey 🔒. |
I've been doing some research in this area. Here's a design proposal. Mattermost Integration ProposalOverviewMattermost is a real-time message and collaboration service similar to Slack. Where Mattermost differs is it is open-source. It has become popular with institutions where private-hosted or single-tenant software is preferred to multitenant SaaS. As @enriquesanchez noted above, adding a Mattermost integration was the most popularly requested integration. In fact after parsing these same data, @avivapinchas found that Mattermost scored as the most-requested integration among the over 300 survey respondents. Adding integrations to MattermostLike Slack, Mattermost has a marketplace. However, unlike Slack many of these integrations need to be written as source-level plugins loaded on the user's system. For services which only require authenticated notifications be sent (like ours), Mattermost provides additional mechanisms for authenticated incoming messages: OAuth 2.0, personal access tokens, and incoming webhooks. Each of these facilities may be disabled by administrators, and only incoming webhooks are enabled by default. To support a new generation of interactive, serverless integrations Mattermost is also developing a system they call Mattermost Apps. It is currently in developer preview. Message formatMattermost offers similar (and in many ways, superior) formatting options to Slack. Achieving functional and design parity with our current notification messages will not be an issue. Options
Proposed directionI propose we take approach #4:
Should we find a broad and welcoming audience, I propose we consider evaluating option #2 and/or #5 as possible future enhancements. We may find supporting multiple levels of integration advantageous to our users: all could at least use webhooks, while users on permissive enough systems could use the interactive capabilities provide via approach #5. Adding integration, configuration, and removal:I propose the configuration panel looks like: Configuration is team-wide. All users share a single webhook configuration per team. Removal is simply: Note: there is no token refreshment as there are no tokens to refresh. Notification typesNotifications should resemble what we emit today for Slack: Start meetingEnd meetingStage timer startIf the Mattermost integration is added, but not Slack, the in-meeting panel looks like: Stage timer stopKey differences from slack integration today
EDITS:
|
From a design stand point this looks good to me 👍. I like that we're reusing most of the design we already have in place for the Slack integration. The table/button hack is very clever! 😃 The only suggestion I have is to add a small explanation on how the required webhook can be obtained. I'm not sure this would be obvious to everyone and it wouldn't hurt to point folks in the right direction. |
Issue - Enhancement
Mattermost is a collaboration platform similar to Slack popular in the regulated market. We're contractually obligated to build a Mattermost integration for the DoD by 2021 Jan 01.
The first step to developing this integration will be to design it.
Related: #3538
Acceptance Criteria (optional)
Users can:
CRUD Mattermost integration on their team
Notifications designed, mirroring today's Slack integration (at a minimum)
Set of implementation issues created
Estimated effort: 13 points (see CONTRIBUTING.md)
The text was updated successfully, but these errors were encountered: