docs/main/product-overview/unsupported-legacy-releases.mdx
import Inc0_common_esr_support_upgrade from './common-esr-support-upgrade.mdx'; import Inc1_common_esr_support_upgrade from './common-esr-support-upgrade.mdx';
This documentation contains comprehensive changelog details for all legacy Mattermost releases including v9.x, v8.x, and v7.x versions that have reached their end of support lifecycle.
<Inc0_common_esr_support_upgrade />
CategoryId column in SidebarChannels table to improve query performance. No database downtime is expected for this upgrade. It takes around 2s to add the index on a table with 1.2M rows for PostgreSQL, and it takes around 5s on MySQL on a table with 300K rows. The migrations are fully backwards-compatible and no table locks or existing operations on the table are impacted by this upgrade. Zero downtime is expected when upgrading to this release. The SQL queries included are CREATE INDEX idx_sidebarchannels_categoryid ON SidebarChannels(CategoryId); for MYSQL and CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_sidebarchannels_categoryid ON sidebarchannels(categoryid); for PostgreSQL.LinkMetadata table.DeleteAt flag in the database could cause issues with some APIs.NewWebConn MM-60307.ElasticsearchSettings.Backend has been added to differentiate between Elasticsearch and OpenSearch. The default value is elasticsearch, which breaks support for AWS Elasticsearch v7.10.x since the official v8 client only works from Elasticsearch v7.11 and higher versions. See the important note below for details.action.destructive_requires_name to false in elasticsearch.yml to allow for wildcard operations to work.AWS Elasticsearch
If you're using AWS Elasticsearch, you must:
ElasticsearchSettings.Backend configuration setting value from elasticsearch to opensearch manually or using mmctl. This value cannot be changed using the System Console. See the Mattermost Elasticsearch backend type documentation for additional details.If you upgrade from a release earlier than v9.5, please read the other Important Upgrade Notes.
See this walkthrough video on some of the improvements in our latest release below.
@mention will not notify the recipient" in the post edit dialog.RemoteTeamId field of the RemoteCluster entity as deprecated.Name and DisplayName of groups.mmctl job list and mmctl job update.AdvancedLoggingJSON via mmctl is now supported.New setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
TerminateSessionsOnPasswordChange to configure the sessions revocation during password resets.ElasticsearchSettings in config.json:
Backend to differentiate between Elasticsearch and OpenSearch. The default value is elasticsearch.GET /api/v4/jobs, job_type and status.PATCH /api/v4/jobs/{job_id}/status.AddChannelMember to accept a list of userIds.PermissionManagePostBleveIndexesJobPermissionManageDataRetentionJobPermissionManageComplianceExportJobPermissionManageElasticsearchPostIndexingJobPermissionManageElasticsearchPostAggregationJobPermissionManageLdapSyncJobv1.21.8.stylelint, and added elastic/go-elasticsearch to https://github.com/mattermost/mattermost/.If you upgrade from a release earlier than v9.5, please read the other Important Upgrade Notes.
See this walkthrough video on some of the improvements in our latest release below.
PluginSiteStatsHandler to support more advanced visualization types.channel_deleted/channel_restored messages from private channels to non-members.getStatusesByIds and getProfilesByIds network calls. The interval of which is configurable with the UsersStatusAndProfileFetchingPollIntervalMilliseconds configuration variable.RefreshPostStats job could fail.visibilitychange JavaScript browser event had not been added for updating the user's current timezone.EnableClientMetrics setting not being available in the System Console.New setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ExperimentalSettings in config.json:
UsersStatusAndProfileFetchingPollIntervalMilliseconds to configure the interval of getStatusesByIds and getProfilesByIds network calls.GetUsersByIds to retrieve a list of users by their ids.v1.21.8.MetricsSettings.EnableClientMetrics MM-58823.beacon.enabled set to false MM-58777.If you upgrade from a release earlier than v9.5, please read the other Important Upgrade Notes.
See this walkthrough video on some of the improvements in our latest release below.
ERROR_SAFE_LIMITS_EXCEEDED.mmctl import validate command.mmctl user active and mmctl user deactivate.PostPriority feature flag.NotFound errors in store.PasswordMaximumLength).aria-label for sidebar channel buttons.mmctl import process --bypass-upload --local doesn't work if the server is in High Availability.New setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ExperimentalSettings in config.json:
DisableWakeUpReconnectHandler to disable the wake up on reconnect handler.SelfHostedPurchase setting.MetricsSettings in config.json:
EnableClientMetrics to control new client performance metrics.EnableNotificationMetrics.ExperimentalAuditSettings through the user interface in the System Console. Cloud administrators can now change the AdvancedLoggingJSON value for the ExperimentalAuditSettings. This is the only configuration that Cloud administrators are able to adjust. Feature flag ExperimentalAuditSettingsSystemConsoleUI must be enabled in order to leverage this new user interface.mattermost_http_websockets_total metric to track all open WebSocket connections, regardless of whether they are authenticated.origin_client label to the mattermost_http_websockets_total Prometheus metric.v1.21.8.@stripe/react-stripe-js and @stripe/stripe-js, and added web-vitals at https://github.com/mattermost/mattermost.If you upgrade from a release earlier than v9.7, please read the other Important Upgrade Notes.
See this walkthrough video on some of the improvements in our latest release below.
ReplicaLagSettings in the Support Packet.make command.IsOAuth field from AppError.bool is now used for license_is_trial in the Support Packet.extract-content) was added to the mmctl import process that allows the server to skip content extraction during the import phase./api/v4/channels/{channel_id}/bookmarks./api/v4/channels/{channel_id}/bookmarks/{bookmark_id}./api/v4/channels/{channel_id}/bookmarks./api/v4/channels/{channel_id}/bookmarks/{bookmark_id}./api/v4/channels/{channel_id}/bookmarks/{bookmark_id}/sort_order.UpdateUserRoles in pluginapi.pluginapi.ProfileImageBytes to simplify bot setup from a plugin.POST /channels, added a validation for display_name to not pass validation if the display name is empty.SamlSettings.EnableSyncWithLdap was set to true.support_packet.yaml wasn’t generated even if an error occurred.MaxUsersForStatistics wasn’t ignored when generating a Support Packet.EnsureBot function did not recreate the bot if it had been manually deleted.@-mentions.New setting option were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
FileSettings in config.json:
AmazonS3UploadPartSizeBytes and ExportAmazonS3UploadPartSizeBytes to control the part size used to upload files to an S3 store.ServiceSettings in config.json:
MaximumPayloadSizeBytes) from 100 kB to 300 kB. Existing servers need to manually update this value.ClusterSettings in config.json:
StreamingPort, MaxIdleConns, MaxIdleConnsPerHost and IdleConnTimeoutMilliseconds.ExperimentalSettings in config.json:
UseNewSAMLLibrary experimental setting.v1.21.8.MaximumPayloadSizeBytes) from 100 kB to 300 kB. Existing servers need to manually update this value.If you upgrade from a release earlier than v9.6, please read the other Important Upgrade Notes.
See this walkthrough video on some of the improvements in our latest release below.
help-text) from the interactive dialog field description to resolve the black text color in the dark theme.@mattermost/client and @mattermost/types to support TypeScript v5.x.NotificationsLog.--include-archived-channels flag is now respected for Direct Message channels.ResetReadTimeoutAppendMultipleStatementsFlagSetupConnectionSanitizeDataSource--local mode.en-AU language selection was not allowed.A new setting option was added to config.json. Below is a list of the addition and its default value on install. The setting can be modified in config.json, or the System Console when available.
CloudSettings in config.json:
Disable (via config.json, or environment variable), default false. When set to true, all requests to the Mattermost Customer Portal from a workspace will be disabled.stylelint to https://github.com/mattermost/mattermost/.v1.20.7.If you upgrade from a release earlier than v9.5, please read the other Important Upgrade Notes.
See this walkthrough video on some of the improvements in our latest release below.
state.entities.posts.selectedPostId.ChannelHasBeenCreated plugin hook not being called when a group channel was created.config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.ServiceSettings in config.json:
EnableOutgoingOAuthConnections configuration setting for Outgoing OAuth Connections integration type.@floating-ui/react, and removed @floating-ui/react-dom and @floating-ui/react-dom-interactions from https://github.com/mattermost/mattermost/.v1.20.7.NewWebConn MM-60307.CloudSettings.Disable (via config.json, or environment variable), default false. When set to true, all requests to the Mattermost Customer Portal from a workspace will be disabled.Value column of the Preferences table MM-57913.MaximumPayloadSizeBytes) from 100 kB to 300 kB. Existing servers need to manually update this value.@-mentions.ChannelHasBeenCreated plugin hook not being called when a group channel was created.If you upgrade from a release earlier than v9.4, please read the other Important Upgrade Notes.
See this walkthrough video on some of the improvements in our latest release below.
MoveThreadsEnabled was added and is default OFF. Changing this value to ON will enable the experimental Move Threads feature.where field is now rendered in model.AppError only when it's present.Get/List logic.--bypass-upload flag. There is no need to use the import upload command. NOTE: all of this is applicable only in local mode.createPost performance.App.HasPermissionToChannelgetPostsForChannelAroundLastUnreadpublishWebsocketEventForPermalinkPostcountMentionsFromPostWebSocketMessageHasBeenPosted plugin hook.config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.ServiceSettings in config.json:
MaximumPayloadSizeBytes to add a limit to the payload size of API endpoints passing in arrays.OutgoingIntegrationRequestsDefaultTimeout for integration requests.WranglerSettings in config.json:
AllowedEmailDomain - a CSV list of strings, where each is an email domain that is allowed to use the feature (e.g. - on community.mattermost.com, mattermost.com would allow staff to move a thread, while non-staff cannot).MoveThreadMaxCount - a number representing the maximum number of posts that can be in a thread for it to be moveable.MoveThreadToAnotherTeamEnable - a boolean value representing whether moving should work across teams.MoveThreadFromPrivateChannelEnable - a boolean value representing whether moving should work from within a private channel.MoveThreadFromDirectMessageChannelEnable - a boolean value representing whether moving should be allowed from within a group message.DataRetentionSettings in config.json:
MessageRetentionHours and FileRetentionHours, in order to support setting your global retention time in hours. DataRetentionSettings.MessageRetentionDays and DataRetentionSettings.FileRetentionDays are deprecated but we will continue to use their value until you set something for their hours equivalent. If Days are set then the hours configuration must be 0 and if hours is set then the days config must be 0. We do not support hours for granular retention policies. Due to how our Elasticsearch indexes are stored, Data retention will now also remove elastic search indexes equal to the day of the retention cut-off time.POST /api/v4/posts/<post ID>/move.UpdateChannelMembersNotifications plugin API.PreferencesHaveChanged plugin hook.GetPreferenceForUser plugin API.GET /api/v4/users/report for system admin user reporting.GET /api/v4/reports/users/count.@tanstack/react-table and prometheus/client_model to https://github.com/mattermost/mattermost/.v1.20.7.getChannelMemberOnly failed to fetch data when certain fields were NULL.If you upgrade from a release earlier than v9.3, please read the other Important Upgrade Notes.
See this walkthrough video on some of the improvements in our latest release below.
MessageExportSettings.GlobalRelaySettings.CustomerType now supports "CUSTOM".ServerMetrics hook to allow plugins to register a custom HTTP endpoint to serve their metrics under the server's metrics HTTP listener.mmctl websocket into the JSON parser.mmctl system supportpacket to download the Support Packet.oauth list for listing registered OAuth2 applications.config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.RefreshPostStatsRunTime in config.json:
RefreshPostStatsRunTime to add last login timestamp for users and to add materialized view and refresh job to keep track of post stats for PostgreSQL.GlobalRelayMessageExportSettings in config.json:
CustomSMTPServerName and CustomSMTPPort to allow setting a custom URL and port for Global Relay export. This enables compliance export to integrate with Proofpoint.@mattermost/desktop-api and ipaddr.js to https://github.com/mattermost/mattermost/.v1.20.7.See this walkthrough video on some of the improvements in our latest release below.
/access_problem page.ExperimentalTimezone setting. The Timezone feature is now always enabled and no longer behind a configuration setting.AdvancedLogging levels for LDAP messages.WebSocket messages sent to individual connections.MessagesWillBeConsumed to allow modifying post objects after they are grabbed from the database but before they are delivered to the client. This is behind a feature flag and disabled by default.ThreadView and AdvancedCreateComment components in the webapp plugin exported components list.invite_id was being reset on all team changes.number didn't handle a 0 value properly.MessageWillBeUpdated plugin hook to allow rejections.config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.DisplaySettings.ExperimentalTimezone setting.ServiceSettings in config.json:
DefaultUniqueReactionsPerPost and MaxUniqueReactionsPerPost to fix an issue where invalid reactions could be added to posts and to add a default limit for the number of reactions per post.NextSyncAt and Description columns are removed from the SharedChannelsRemotes table. Migration impact is considered to be minimal considering the possible table size.v1.20.7.If you upgrade from a release earlier than v9.1, please read the other Important Upgrade Notes.
See this walkthrough video on some of the improvements in our latest release below.
github.com/mattermost/gziphandler with github.com/klauspost/compress/gzhttp.textarea in interactive dialogs.config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.LogSettings in config.json:
MaxFieldSize to add the ability to size-limit log fields during logging.origin_client to the mattermost_api_time metrics.v1.20.7.MaxFieldSize to add the ability to size-limit log fields during logging.NativeAppSettings.AppCustomURLSchemes configuration setting.DeleteOrphanedRows queries. See the Important Upgrade Notes for notes on a new migration that was added. Removed feature flag DataRetentionConcurrencyEnabled. Data retention now runs without concurrency in order to avoid any performance degradation. Added a new configuration setting DataRetentionSettings.RetentionIdsBatchSize, which allows admins to to configure how many batches of IDs will be fetched at a time when deleting orphaned reactions. The default value is 100.desktop_login which makes earlier versions incompatible.If you upgrade from a release earlier than v9.0, please read the other Important Upgrade Notes.
See this walkthrough video on the highlights and some of the below improvements in our latest release.
/invite slash command now supports custom user groups.PluginSettings.EnableRemoteMarketplace documentation.mattermost-plugin-api into the mattermost GitHub repository.GET /api/v4/groups: include_archived and filter_archived. Added the ability to restore archived groups from the user groups modal.user_id is now included in all HTTP logs (debug level) to help determine who is generating unexpected traffic.GET /api/v4/groups and GET /api/v4/groups/:group_id. include_member_ids will add all the members user_ids to the group response objects. You can now also add group members to a channel, any members that are not part of the team can be added to the team through this flow and subsequently added the channel.UserHasBeenDeactivated.SetFileSearchableContent). The MessageHasBeenPosted plugin hook is now executed after the attachments are linked to the post.comment_on component.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettingsDefaultGfycatAPISecret and ServiceSettingsDefaultGfycatAPIKey configuration settings.TeamSettings in config.json:
EnableJoinLeaveMessageByDefault that sets the default value for UserSetting, ADVANCED_FILTER_JOIN_LEAVE.DisplaySettings in config.json:
MaxMarkdownNodes to limit the maximum complexity of markdown text on mobile.DataRetentionSettings in config.json:
RetentionIdsBatchSize, which allows admins to to configure how many batches of IDs will be fetched at a time when deleting orphaned reactions. The default value is 100.X-Forwarded-For request header to the audit stream for all Rest API calls.POST /api/v4/user/login/desktop_login. Modified OAuth/SAML flows to include desktop_login where applicable.GET /api/v4/channels/<channel-id>/common_teams to fetch list of teams common between members of a group message.POST /api/v4/channels/<channel-id>/convert_to_channel to convert a group message to a private channel.MessageHasBeenDeleted hook to the plugin API.request package into the public shared folder.v1.20.7.MaxFieldSize to add the ability to size-limit log fields during logging.NativeAppSettings.AppCustomURLSchemes configuration setting.channel_viewed websocket event was changed to multiple_channels_viewed, and is now only triggered for channels that actually have unread messages.If you upgrade from a release earlier than v8.1, please read the other Important Upgrade Notes.
Post Action plugin hook to allow plugins to register new items in the post menu.Post Editor Action plugin hook to allow plugins to register new items in the post editor menu.ManifestExecutables struct.UserAuth.Password field./opengraph endpoint as it was unused.Manifest.RequiredConfig field.NotificationWillBePushed plugin hook invoked before the push notification is processed and sent to the notification service. Plugins may modify or reject the push notification.SendPushNotification plugin api method which allows plugins to send push notifications to a specific user's mobile sessions.PluginSettings.EnableRemoteMarketplace functionality.PUT /api/v4/channels/{channelid} when the provided name already existed in the team.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in the config.json:
GiphySdkKey to replace Gfycat with Giphy in the gif picker.v1.19.5.@giphy/js-fetch-api and @giphy/react-components to https://github.com/mattermost/mattermost/.@react-native/eslint-config, @react-native/metro-config, and @tsconfig/react-native to https://github.com/mattermost/mattermost-mobile/.<Inc1_common_esr_support_upgrade />
MaximumPayloadSizeBytes) from 100 kB to 300 kB.textarea in interactive dialogs.MaxFieldSize to add the ability to size-limit log fields during logging.NativeAppSettings.AppCustomURLSchemes configuration setting.ServiceSettings.ExperimentalEnableHardenedMode is enabled, standard users authenticated via username and password will not be able to use post props reserved for integrations, such as override_username or override_icon_url.DeleteOrphanedRows queries. See the Important Upgrade Notes for notes on a new migration that was added. Removed feature flag DataRetentionConcurrencyEnabled. Data retention now runs without concurrency in order to avoid any performance degradation. Added a new configuration setting DataRetentionSettings.RetentionIdsBatchSize, which allows admins to to configure how many batches of IDs will be fetched at a time when deleting orphaned reactions. The default value is 100.https://github.com/reduxjs/redux-devtools in production builds is now allowed for webapp.DataRetentionConcurrencyEnabled, to enable/disable concurrency for data retention batch deletion. Also added a new configuration setting DataRetentionSettings.TimeBetweenBatchesMilliseconds to control the sleep time between batch deletions.mattermost database reset command no longer starts the application server. It will only start the store layer and truncate the tables excluding the migrations table.@here mention in the right-hand side.registerMessageWillBeUpdatedHook plugin hook.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
PasswordSettings in config.json:
EnableForgotLink to add the ability for admins to hide or customize the Forgot password link on the login page.FileSettings
GuestAccountsSettings in config.json:
HideTags to add the ability to remove the Guest badges from within the product.DataRetentionSettings in config.json:
TimeBetweenBatchesMilliseconds setting to control the sleep time between batch deletions.v1.19.5.Support for Mattermost Server v8.0 Major Release has come to the end of its life cycle on October 15, 2023. Upgrading Mattermost Server is required.
Insights has been deprecated for all new instances and for existing servers that upgrade to v8.0. See more details in this forum post on why Insights has been deprecated.
The Focalboard plugin is now disabled by default for all new instances and can be enabled in the System Console > Plugin settings.
The Channel Export and Apps plugins are now disabled by default.
Apps Bar is now enabled by default for on-prem servers. ExperimentalSettings.EnableAppBar was also renamed to ExperimentalSettings.DisableAppBar. See more details at:
Introduced the public submodule, housing the familiar model and plugin packages, but now discretely versioned from the server. It is no longer necessary to go get a particular commit hash, as Go programs and plugins can now opt-in to importing github.com/mattermost/mattermost-server/server/public and managing versions idiomatically. While this submodule has not yet shipped a v1 and will introduce breaking changes before stabilizing the API, it remains both forwards and backwards compatible with the Mattermost server itself.
In the main server package, the Go module path has changed from github.com/mattermost/mattermost-server/server/v8 to github.com/mattermost/mattermost/server/v8. But with the introduction of the public submodule, it should no longer be necessary for third-party code to import this server package.
As part of the public submodule above, a context.Context is now passed to model.Client4 methods.
Removed support for PostgreSQL v10. The new minimum PostgreSQL version is now v11.
The Mattermost public API for Go is now available as a distinctly versioned package. Instead of pinning a particular commit hash, use idiomatic Go to add this package as a dependency: go get github.com/mattermost/mattermost-server/server/public. This relocated Go API maintains backwards compatibility with Mattermost v7. Furthermore, the existing Go API previously at github.com/mattermost/mattermost-server/v6/model remains forward compatible with Mattermost v8, but may not contain newer features. Plugins do not need to be recompiled, but developers may opt in to using the new package to simplify their build process. The new public package is shipping alongside Mattermost v8 as version 0.5.0 to allow for some additional code refactoring before releasing as v1 later this year.
Three configuration fields have been added, LogSettings.AdvancedLoggingJSON, ExperimentalAuditSettings.AdvancedLoggingJSON, and NotificationLogSettings.AdvancedLoggingJSON which support multi-line JSON, escaped JSON as a string, or a filename that points to a file containing JSON. The AdvancedLoggingConfig fields have been deprecated.
The Go MySQL driver has changed the maxAllowedPacket size from 4MiB to 64MiB. This is to make it consistent with the change in the server side default value from MySQL 5.7 to MySQL 8.0. If your max_allowed_packet setting is not 64MiB, then please update the MySQL config DSN with an additional param of maxAllowedPacket to match with the server side value. Alternatively, a value of 0 can be set to to automatically fetch the server side value, on every new connection, which has a performance overhead.
Removed ExperimentalSettings.PatchPluginsReactDOM. If this setting was previously enabled, confirm that:
Removed deprecated PermissionUseSlashCommands.
Removed deprecated model.CommandArgs.Session.
Pass a context.Context to Client4 methods.
For servers wanting to allow websockets to connect from origins other than the origin of the site URL, please set the ServiceSettings.AllowCorsFrom configuration setting. Also ensure that the siteURL is set correctly.
In v8.0, the following repositories are merged into one: mattermost-server, mattermost-webapp and mmctl. Developers should read the updated Developer Guide for details.
Fixed an issue caused by a migration in the previous release. Query takes around 11ms on a PostgreSQL 14 DB t3.medium RDS instance. Locks on the preferences table will only be acquired if there are rows to delete, but the time taken is negligible.
Fixed an issue where a user would still see threads in the threads view of channels they have left. Migration execution time in PostgreSQL: Execution time: 58.11 sec, DELETE 2766690. Migration execution time in MySQL: Query OK, 2766769 rows affected (4 min 47.57 sec).
The file info stats query is now optimized by denormalizing the channelID column into the table itself. This will speed up the query to get the file count for a channel when selecting the right-hand pane. Migration times:
If you upgrade from a release earlier than v7.10, please read the other Important Upgrade Notes.
ExperimentalSettings.EnableAppBar was also renamed to ExperimentalSettings.DisableAppBar. See more details at:
SYSCONSOLE_WRITE_PLUGINS permissions.compass-components icon component with compass-icons.CTRL/CMD + K shortcut can now be used to insert link formatting when text is selected.pas and pascal code blocks are now higlighted.Added a new ConfigurationWillBeSaved plugin hook which is invoked before the configuration object is committed to the backing store.
Admins can now specify index names to ignore while purging indexes from Elasticsearch with the ElasticsearchSettings.IgnoredPurgeIndexes setting.
Added an option to use the German HPNS notification proxy.
New flags were added to the database migrate command as following:
auto-recover: If the migration plan receives an error during migrations, this command will try to rollback migrations already applied within the plan. This option is not recommended to be added without reviewing migration plan. You can review the plan by combining --save-plan and --dry-run flags.save-plan: The plan for the migration will be saved into the file store so that it can be used for reviewing the plan or to be used for downgrading.dry-run: Does not apply the migrations, but it validates how the migration would run with the given conditions.A new database subcommand "downgrade" was added to be able to rollback database migrations. The command either requires an update plan to rollback, or comma separated version numbers.
Removed /api/v4/users/stats network request from InviteMembersButton.
Self-hosted admins can now define a separate shipping address during in-product license purchase.
Added updates to the trial request forms to allow for a more tailored trial experience.
First admins will now have an onboarding experience that includes first team creation based on company name and invite members link steps.
Adds the ability to expand seats in-product for self-hosted servers.
Added the ability to search a partial first name, last name, nickname, or username on the System Console > Users page.
Contact Support now redirects users to Zendesk and pre-fills known information.
Added a mechanism for public routes on products and used it to support publicly shared Board links.
The database section in the System Console now has an additional read-only section which shows the active search backend in use. This can be helpful to confirm which search engine is currently active when there are multiple configured.
Updated Docker Base Image from Debian to Ubuntu 22.04 LTS.
Type-generated settings will now be generated (only for future generations) with a URL-safe version of base64 encoding.
Mattermost is now resilient against database replica outages and will dynamically choose a replica if it's alive. Also a config parameter ReplicaMonitorIntervalSeconds was added and the default value is 5. This controls how frequently unhealthy replicas will be monitored for liveness check.
event-id -> event_id) for consistency with other API arguments.CreateSidebarCategoryForTeamForUser.IsEnabled method to Elasticsearch.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
EnableInactivityEmail config setting.ProductSettings.ExperimentalSettings in config.json:
DelayChannelAutocomplete, to make the channel autocomplete only appear after typing a couple letters instead of immediately after a tilde.DisableRefetchingOnBrowserFocus, to disable re-fetching of channel and channel members on browser focus.DisableAppBar to enable apps bar by default.LogSettings.AdvancedLoggingJSON, ExperimentalAuditSettings.AdvancedLoggingJSON, and NotificationLogSettings.AdvancedLoggingJSON which support multi-line JSON, escaped JSON as a string, or a filename that points to a file containing JSON. The AdvancedLoggingConfig fields have been deprecated.ServiceSettings in config.json:
AllowPersistentNotifications, PersistentNotificationIntervalMinutes, PersistentNotificationMaxCount, PersistentNotificationMaxRecipients, to add a persistent notification option when sending urgent priority posts.ElasticsearchSettings in config.json:
IgnoredPurgeIndexes setting.v1.19.5.date-fns to https://github.com/mattermost/mattermost/.ServiceSettings.AllowCorsFrom configuration setting. Also ensure that the siteURL is set correctly.Mattermost v7.10.0 contains low to medium severity level security fixes. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
mattermost-server, mattermost-webapp, focalboard and mattermost-plugin-playbooks. Developers should read the updated Developer Guide for details. Playbooks and Boards will be core parts of the product that cannot be disabled.If you upgrade from a release earlier than v7.9, please read the other Important Upgrade Notes.
ServiceSettings.PostEditTimeLimit config setting no longer affects Plugins, Shared Channels, Integration Actions, or Mattermost Products.exclude_files_count parameter to exclude file counts from channel stats API.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in the config.json:
SelfHostedExpansion config setting was added to support incremental additions/changes to this feature.v1.19.5.date-fns to https://github.com/mattermost/mattermost-webapp/.MM_FEATUREFLAGS_INSIGHTSENABLED environment variable to false. See the Insights </welcome/insights.html>__ documentation for details.ServiceSettings.AllowCorsFrom configuration setting. Also ensure that the siteURL is set correctly.NotifyAdmin job reported an error for unlicensed servers.Mattermost v7.9.0 contains a low severity level security fix. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
Posts(OriginalId). For a database with 11.8 million posts, on a machine with a i7-11800H CPU (8 cores, 16 threads), 32GiB of RAM and SSD, the index creation takes 98.51s on MYSQL and 2.6s on PostgreSQL.Posts table will be locked during index creation. To avoid locking this table, admins can create the index manually before performing the upgrade using the following non-blocking query: CREATE INDEX CONCURRENTLY idx_posts_original_id ON Posts(OriginalId);.Posts table will remain locked until the migration is complete.If you upgrade from a release earlier than v7.8, please read the other Important Upgrade Notes.
ProductLimits.Integrations.SyncEnabled set to false.short_message for Gelf formatter is no longer allowed and params.Host is now used over params.IP for syslog config.exclude_files_count parameter to exclude file counts from the channel stats API.GET api/v4/posts/[POST_ID]/edit_history.DELETE /api/v4/cloud/delete-workspace.SentAt column to NotifyAdmin.NotifyAdmin.RequiredFeature column type to varchar(255).NotifyAdmin.RequiredPlan column type to varchar(100).v1.19.0.@mui/base, @mui/material and @mui/styled-engine-sc, and removed form-data from https://github.com/mattermost/mattermost-webapp/.MM_FEATUREFLAGS_INSIGHTSENABLED environment variable to false.Support for Mattermost Server v7.8 Extended Support Release has come to the end of its life cycle on November 15, 2023. Upgrading Mattermost Server is required.
MaxFieldSize to add the ability to size-limit log fields during logging.NativeAppSettings.AppCustomURLSchemes configuration setting.ServiceSettings.ExperimentalEnableHardenedMode is enabled, standard users authenticated via username and password will not be able to use post props reserved for integrations, such as override_username or override_icon_url.DeleteOrphanedRows queries. See the Important Upgrade Notes for notes on a new migration that was added. Removed feature flag DataRetentionConcurrencyEnabled. Data retention now runs without concurrency in order to avoid any performance degradation. Added a new configuration setting DataRetentionSettings.RetentionIdsBatchSize, which allows admins to to configure how many batches of IDs will be fetched at a time when deleting orphaned reactions. The default value is 100.DataRetentionConcurrencyEnabled was added to enable/disable concurrency for data retention batch deletion. New config setting DataRetentionSettings.TimeBetweenBatchesMilliseconds was added to control the sleep time between batch deletions.ServiceSettings.AllowCorsFrom configuration setting. Also ensure that the siteURL is set correctly.exclude_files_count parameter to exclude file counts from channel stats API.Mattermost v7.8.0 contains low to high severity level security fixes. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
PostPriority setting.If you upgrade from a release earlier than v7.5, please read the other Important Upgrade Notes.
/invite slash command.Self-hosted admins can now purchase licenses in-app when service setting SelfHostedPurchase is true.
Endpoint to portal added to detect whether a license is suitable for self-expansion. Customers over their seat limit can expand their license seats.
Airgapped purchase experience is now shown only when appropriate and a simplified authentication flow is now used for the self-hosted purchase.
The export file now contains the server version and a creation timestamp.
Total Activated Users was changed back to Total Active Users on the System Console > Reporting > Site Statistics page.
Added restore_group permission to the mmctl and to the System Console > Permissions.
Improved bulk export logging.
Compliance export jobs can now cancel the SQL query execution during server shutdown which will allow the job to exit faster.
The message export compliance job can now survive server restarts. The job will pause and save state when the server is shutting down, and resume from the previously saved state when the server starts back up.
Only one instance of the job will be automatically scheduled to run as per the MessageExportSettings.DailyRunTime config value.
Mattermost will throw an error if it detects an Elasticsearch version greater than 7.
The maximum size of uploaded emojis is reduced to 512KB to reduce image download bandwidth.
Users can now monitor the progress of the bulk export job via its metadata field. It is available at mmctl export job show <jobID>.
Compliance exports no longer time out when uploading to S3.
Users can now supply a certificate authority (CA) file and client certificates for the Elasticsearch client.
Enabled EnableOAuthServiceProvider by default.
Grafana metrics are now available for database connection metrics. They are:
max_open_connectionsopen_connectionsin_use_connectionsidle_connectionswait_count_totalwait_duration_seconds_totalmax_idle_closed_totalmax_idle_time_closed_totalmax_lifetime_closed_totalMade the registerChannelIntroButtonAction plugin API usable by plugins other than Boards.
The following new HTTP headers and values are now written on all responses. These default values should make sense in most installations and can be overridden by a reverse proxy or ingress configuration. Note that the empty Permissions-Policy header does not have any actual effect. Users are recommended to change it to a more restrictive value based on their use case. For more information, see the W3C Reference or this article.
Permissions-Policy:
Referrer-Policy: no-referrer
X-Content-Type-Options: nosniff
--center-channel-text CSS variable was used instead of --center-channel-color./public handling for subpaths.mysql.time_zone_name table./api/v4/system/notices/ on page load.GET /api/v4/posts/:post_id/info to allow checking if the post that a permalink is pointing to is accessible by joining teams or channels.GET /users.v1.18.1.MM_FEATUREFLAGS_INSIGHTSENABLED environment variable to false.PostPriority setting.Mattermost v7.7.0 contains low severity level security fixes. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
React v17 dependency.
findDOMNode being called on an unmounted component. While our starter template depended on an external version of React, it did not do the same for ReactDOM. Plugins need to update their webpack.config.js directives to externalize ReactDOM. For reference, see https://github.com/mattermost/mattermost-plugin-playbooks/pull/1489. Server-side only plugins are unaffected. This change can be done for existing plugins any time prior to upgrading to Mattermost v7.7 and is backwards compatible with older versions of Mattermost. If you run into issues, you can either enable ExperimentalSettings.PatchPluginsReactDOM or just disable the affected plugin while it's updated.Threads table by adding the ThreadTeamId column. See details for schema changes in the Important Upgrade Notes.If you upgrade from a release earlier than v7.5, please read the other Important Upgrade Notes.
@here mentions to clarify that people & timezone counts don't include the current user.ThreadStore.MarkAllAsUnreadByTeam.information_schema.columns view. This does not affect anything because usually there's only one installation in a given database, but this gives flexibility to users to store multiple Mattermost instances under a single database.acknowledgements field to the post's metadata.getPostSince didn't properly return deleted posts when Collapsed Reply Threads was enabled.OwnerId was not set for bots created via EnsureBotUser.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in the config.json:
PostPriority, to add an option to select a message priority label for root posts.AllowSyncedDrafts, to add an option to display a centralized page for draft messages.SelfHostedPurchase, to add an option for self-hosted admins to purchase licenses in-app.ExperimentalSettings in the config.json:
PatchPluginsReactDOM, to enable the patching of the React DOM library when loading web app plugins so that the plugin uses the version matching the web app.POST /api/v4/ldap/users/:user_id/group_sync_memberships to add (or re-add) users to all of their default teams and channels for all of the groups they're a member of.GET /api/v4/groups endpoint to get the ChannelMemberCount for a group.POST /api/v4/users/:user_id/posts/:post_id/ack and DELETE /api/v4/users/:user_id/posts/:post_id/ack.POST /api/v4/groups/:group_id:/restore.sort=display_name to GET /api/v4/users?in_group=<groupid>.api/v4/cloud/products/selfhosted.RegisterCollectionAndTopic(collectionType, topicType string) (error) was added to the Plugin API and the following hooks. This API method is in beta, subject to change, and not covered by our backwards compatibility guarantee.
UserHasPermissionToCollection(c *Context, userID, collectionType, collectionId string, permission *model.Permission) (bool, error)GetAllCollectionIDsForUser(c *Context, userID, collectionType string) ([]string, error)GetAllUserIdsForCollection(c *Context, collectionType, collectionID string) ([]string, error)GetTopicRedirect(c *Context, topicType, topicID string) (string, error)GetCollectionMetadataByIds(c *Context, collectionType string, collectionIds []string) (map[string]model.CollectionMetadata, error)GetTopicMetadataByIds(c *Context, topicType string, topicIds []string) (map[string]*model.TopicMetadata, error)PostAcknowledgements.post_acknowledgement_added and post_acknowledgement_removed.v1.18.1.MM_FEATUREFLAGS_INSIGHTSENABLED environment variable to false.Mattermost v7.5.0 contains a medium severity level security fix. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
ParentId column is dropped from the Posts table. Depending on the table size, if the column is not dropped before, a significant spike in database CPU usage is expected on MySQL databases. Writes to the table will be limited during the migration.PluginRegistry.registerCustomRoute, when you register a custom route component, you must specify a CSS grid-area in order for it to be placed properly into the root layout (recommended: grid-area: center).If you upgrade from a release earlier than v7.4, please read the other Important Upgrade Notes.
Ctrl/Cmd + Shift + U to filter channels by unread.Get categories with the "exclude" option did not return categories for deleted teams a user was no longer a member of.Add people modal.GetProfilesInChannel.getPostSince didn't properly return deleted posts when Collapsed Reply Threads was enabled.OwnerId was not set for bots created via EnsureBotUser.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
TeamSettings in the config.json:
EnableLastActiveTime to add a Last active status to the profile popover and to the Direct Message channel header that indicates when a user was last online.First-Inaccessible-File-Time to the APIs fetching single file information./api/v4/channels/{channel_id}/posts.PermissionService interface.v1.18.1.MM_FEATUREFLAGS_INSIGHTSENABLED environment variable to false.ParentId column is dropped from the Posts table. Depending on the table size, if the column is not dropped before, a significant spike in database CPU usage is expected on MySQL databases. Writes to the table will be limited during the migration.Mattermost v7.4.0 contains a medium severity level security fix. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
batchSize option has been added to the mattermost export CLI command to limit the number of items exported. By default, if it is not included, it exports all posts.@ in the right-hand side rendered a cut-off user suggestion list.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
EnableAPITriggerAdminNotifications to add an option to receive more context from the “Notify admin” feature to help Admins.EnableConfirmNotificationsToChannel is disabled, channel member counts by group API are no longer called.OmitConnection to the websocket broadcast parameters.v1.18.1.MM_FEATUREFLAGS_INSIGHTSENABLED environment variable to false.Mattermost v7.3.0 contains a medium severity level security fix. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
If you upgrade from a release earlier than v7.2, please read the other Important Upgrade Notes.
mattermost.com/pl/contact-sales and update the pricing modal user interface./marketplace slash command that brings up the marketplace modal for the Admin, and changed the /help command so that it now keeps the user internal to Mattermost.shouldRender function parameter to registerchannelHeaderMenuAction plugin function. This allows menu items to conditionally render depending on the current state prior to rendering.SiteURL was not set.true.Added new API endpoints:
GET /api/v4/users/me/top/dmsGET /api/v4/users/me/top/threadsGET /api/v4/teams/:team_id/top/team_membersGET /api/v4/teams/:team_id:/top/threadsAdded first_inaccessible_post_time to post API responses.
Adds query parameter include_deleted to endpoint: {{[http://your-mattermost-url.com/api/v4/posts/{post_id}/files/info}}](http://your-mattermost-url.com/api/v4/posts/%7Bpost_id%7D/files/info%7D%7D).
v1.18.1.@floating-ui/react-dom-interactions to https://github.com/mattermost/mattermost-webapp.MM_FEATUREFLAGS_INSIGHTSENABLED environment variable to false.Mattermost v7.2.0 contains low to medium severity level security fixes. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
Several schema changes impose additional database constraints to make the data more strict. All the commands listed below were tested on a 8 core, 16GB RAM machine. Here are the times recorded:
PostgreSQL (131869 channels, 2 teams):
CREATE TYPE channel_type AS ENUM ('P', 'G', 'O', 'D'); took 14.114 millisecondsALTER TABLE channels alter column type type channel_type using type::channel_type; took 3856.790 milliseconds (3.857 seconds)CREATE TYPE team_type AS ENUM ('I', 'O'); took 4.191 millisecondsALTER TABLE teams alter column type type team_type using type::team_type; took 116.205 millisecondsCREATE TYPE upload_session_type AS ENUM ('attachment', 'import'); took 4.266 millisecondsALTER TABLE uploadsessions alter column type type upload_session_type using type::upload_session_type; took 37.099 millisecondsMySQL (270959 channels, 2 teams):
ALTER TABLE Channels MODIFY COLUMN Type ENUM("D", "O", "G", "P"); took 13.24 secondsALTER TABLE Teams MODIFY COLUMN Type ENUM("I", "O"); took 0.04 secondsALTER TABLE UploadSessions MODIFY COLUMN Type ENUM("attachment", "import"); took 0.03 secondsIf you upgrade from a release earlier than v7.1, please read the other Important Upgrade Notes.
Archive Channel and Leave Channel menu actions.webSocketClient to Pluggable and PostWillRenderEmbed plugin registered components.getLastPostPerChannel selector for improved performance in channel sorting.YYYY-MM-DD.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
FileSettings in config.json:
AmazonS3RequestTimeoutMilliseconds was added which sets a timeout for requests to AWS S3. By default, the timeout is at 30 seconds.Has-Inaccessible-Posts for getPost and getPostByIDs APIs.v1.18.1.@types/color-hash, color-contrast-checker, color-hash, and webpack to https://github.com/mattermost/mattermost-webapp.MM_FEATUREFLAGS_INSIGHTSENABLED environment variable to false.Support for Mattermost Server v7.1 Extended Support Release has come to the end of its life cycle on May 15, 2023. Upgrading Mattermost Server is required.
exclude_files_count parameter to exclude file counts from channel stats API.ParentId column is dropped from the Posts table. Depending on the table size, if the column is not dropped before, a significant spike in database CPU usage is expected on MySQL databases. Writes to the table will be limited during the migration.getPostSince now properly returns deleted posts when Collapsed Reply Threads is enabled.Enterprise license is expired banner was undismissable MM-47396.Mattermost v7.1.0 contains low severity level security fixes. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
MaxImageDecoderConcurrency indicates how many images can be decoded concurrently at once. The default is -1, and the value indicates the number of CPUs present. This affects the total memory consumption of the server. The maximum memory of a single image is dictated by MaxImageResolution * 24 bytes. Therefore, we recommend that MaxImageResolution * MaxImageDecoderConcurrency * 24 should be less than the allocated memory for image decoding.Reactions table, so that users' reactions posted during this time won't be reflected in the database until the migrations are complete. This is fully backwards-compatible.
For MySQL:
ALTER TABLE Reactions ADD COLUMN ChannelId varchar(26) NOT NULL DEFAULT "";UPDATE Reactions SET ChannelId = COALESCE((select ChannelId from Posts where Posts.Id = Reactions.PostId), '') WHERE ChannelId="";CREATE INDEX idx_reactions_channel_id ON Reactions(ChannelId) LOCK=NONE;For PostgreSQL:
ALTER TABLE reactions ADD COLUMN IF NOT EXISTS channelid varchar(26) NOT NULL DEFAULT '';UPDATE reactions SET channelid = COALESCE((select channelid from posts where posts.id = reactions.postid), '') WHERE channelid='';CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_reactions_channel_id on reactions (channelid);If you upgrade from a release earlier than v7.0, please read the other Important Upgrade Notes.
MM_FEATUREFLAGS_INSIGHTSENABLED environment variable to false.IncludeSearchById was added to the channel search endpoint, allowing requests to include searches that match IDs in response.default_text_search_config value instead of being hardcoded to English. Mattermost System Admins should check this value in case of any discrepancies with what is expected.UserHasJoinedTeam callback to after a user is added to a team.viewChannel API during regular usage.getPostThread API calls.CreateAt being greater than that of the parent post.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
EnableInsecureOutgoingConnections is now applicable to S3 clients as well. If that is set, s3 clients will skip TLS verification.include_deleted query parameter was introduced to GetPost endpoint.v1.18.1.@floating-ui/react-dom and removed superagent and jasny-bootstrap from https://github.com/mattermost/mattermost-webapp/.MM_FEATUREFLAGS_INSIGHTSENABLED environment variable to false.Support for Mattermost Server v7.0 Major Release has come to the end of its life cycle on September 15, 2022. Upgrading Mattermost Server is required.
id_loaded push notifications MM-43655.Mattermost v7.0.0 contains medium severity level security fixes. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
MM_SERVICESETTINGS_SESSIONLENGTHWEBINDAYS with MM_SERVICESETTINGS_SESSIONLENGTHWEBINHOURS (x24 the value).MM_SERVICESETTINGS_SESSIONLENGTHMOBILEINDAYS with MM_SERVICESETTINGS_SESSIONLENGTHMOBILEINHOURS (x24 the value).MM_SERVICESETTINGS_SESSIONLENGTHSSOINDAYS with MM_SERVICESETTINGS_SESSIONLENGTHSSOINHOURS (x24 the value).FileInfo table. For MySQL, it takes around 19 seconds for a table of size 700,000 rows. The time required for PostgreSQL is negligible. The testing was performed on a machine with specifications of CPU - Intel i7 6-cores @ 2.6 GHz and Memory - 16 GB.false for self-hosted deployments.ServiceSettings.TrustedProxyIPHeader defaults to empty from now on. A previous bug prevented this from happening in certain conditions. Customers are requested to check for these values in their config and set them to nil if necessary. See more details here.If you upgrade from a release earlier than v6.7, please read the other Important Upgrade Notes.
support_packet.yaml file: Active users and License-supported users.ALT instead of SHIFT for Mac.SendEmailNotifications was not set to true.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
SessionLengthWebInDays to SessionLengthWebInHours.SessionLengthMobileInDays to SessionLengthMobileInHours.SessionLengthSSOInDays to SessionLengthSSOInHours.TrustedProxyIPHeader defaults to empty from now on. A previous bug prevented this from happening in certain conditions. Customers are requested to check for these values in their config and set them to nil if necessary.always-on and default-on settings to System Console > Posts for Collapsed Reply Threads. When enabled (default-on), users see Collapsed Reply Threads by default and have the option to disable it in Settings. When always on, users are required to use Collapsed Reply Threads and can't disable it.CollapsedThreads has been changed to always_on. This change impacts new Mattermost deployments, and doesn't affect existing configurations where this value is already set to some other value.ExperimentalSettings in config.json:
EnableAppBar to enable and disable the new Apps Bar. This setting is disabled by default, but we recommend enabling the Apps Bar for servers with Calls enabled since the Apps Bar helps make space for the dedicated Start Call button in the channel header.GET /api/v4/teams/:team_id/top/channels and GET /api/v4/users/me/top/channels to get top channels for a team and user.ConnectionId field to model.WebsocketBroadcast that allows broadcasting a message only to a specific connection.v1.18.1.ServiceSettings.TrustedProxyIPHeader defaults to empty from now on. A previous bug prevented this from happening
in certain conditions. Customers are requested to check for these values in their config and set them to nil if necessary. See more details here.Mattermost v6.7.0 contains low severity level security fixes. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
CREATE INDEX idx_posts_create_at_id on Posts(CreateAt, Id) LOCK=NONE;CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_posts_create_at_id on posts(createat, id);If you upgrade from a release earlier than v6.6, please read the other Important Upgrade Notes.
GetTeamsUnreadForUser when Collapsed Reply Threads is enabled.UserGroups DisplayName for improved autosuggest query performance.EmailSettings.EnableInactivityEmail was added.threadsOnly query parameter for getting user threads.SendPushNotifications config setting was set to false.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
EmailSettings in config.json:
EnableInactivityEmail setting to be able to disable inactive server email notifications.JobSettings in config.json:
CleanupConfigThresholdDays.ElasticsearchSettings in config.json:
BulkIndexingTimeWindowSeconds for both Elasticsearch and Bleve is now deprecated and no longer used. A new config parameter called BatchSize has been introduced instead. This parameter controls the number of objects that can be indexed in a single batch. This makes things more efficient and maintains a constant workload.POST /api/v4/users/{user_id}/teams/{team_id}/threads/{thread_id}/set_unread/{post_id} to set a thread as unread by post id.GET /api/v4/teams/:team_id/top/reactions and GET /api/v4/users/me/top/reactions to get top reactions for a team and user.UpdateUser API endpoint required a create_at field.api/v4/file/s3_test now requires FileSettings to be all set to run.api/v4/email/test now requires EmailSettings to be all set to run.fromWebhook property to the webapp plugin API.v1.18.1.react-native-math-view to https://github.com/mattermost/mattermost-mobile.flux and react-slidedown from https://github.com/mattermost/mattermost-webapp.@mattermost/compass-icons, bootstrap-dark, fs-extra, and pretty-bytes to https://github.com/mattermost/desktop.Alt instead of Shift for Mac MM-44172.ServiceSettings.TrustedProxyIPHeader defaults to empty from now on. A previous bug prevented this from happening
in certain conditions. Customers are requested to check for these values in their config and set them to nil if necessary. See more details here.SendPushNotifications config was set to false.Mattermost v6.6.0 contains a low severity level security fix. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
call into separate submit, form, refresh and lookup calls. If any users have created their own Apps, they have to be updated to the new system.If you upgrade from a release earlier than v6.5, please read the other Important Upgrade Notes.
ThreadAutoFollow is enabled but CollapsedThreads is disabled.registerCallButtonAction method to allow for displaying custom calls buttons in the channel header.ThreadAutoFollow has been changed to true. This does not affect existing configurations where this value is already set to false; however, we recommend enabling ThreadAutoFollow if you plan to enable Collapsed Reply Threads in the future.Automatically Follow Threads configuration setting to the System Console to expose the threadAutoFollow config setting to the User Interface.true.ThreadStore.GetThreadsForUser did not count correctly when no team ID was specified.zip file creation failed when adding attachments.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
ThreadAutoFollow has been changed to true. This does not affect existing configurations where this value is already set to false.v1.16.7.@tippyjs/react, react-popper, react-slidedown and smooth-scroll-into-view-if-needed , and removed prettier and xregexp from https://github.com/mattermost/mattermost-webapp.ServiceSettings.TrustedProxyIPHeader defaults to empty from now on. A previous bug prevented this from happening
in certain conditions. Customers are requested to check for these values in their config and set them to nil if necessary. See more details here.SendPushNotifications config was set to false.Mattermost v6.5.0 contains low to medium severity level security fixes. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
mattermost version CLI command does not interact with the database anymore. Therefore the database version is not going to be printed. Also, the database migrations are not going to be applied with the version sub command. A new db migrate sub command is added to enable administrators to trigger migrations.If you upgrade from a release earlier than v6.4, please read the other Important Upgrade Notes.
admin-advisor bot's ability to notify admins about missing support email.user_updated event.MM_FeatureFlag_EnableInactivityCheckJob feature flag.ThreadAutoFollow is enabled but CollapsedThreads is disabled. Learn more about ThreadAutoFollow and Collapsed Reply Threads here.CustomStatusEmoji component is now avoided on post hovering.TextBox links component below the post box while typing is now avoided.OnInstall() plugin hook.OnSendDailyTelemetry() plugin hook.mmctl config migrate reset the configuration settings to defaults if the settings were already in the database.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
EnableClientPerformanceDebugging setting to enable some options for users on the web app to enable and disable different parts of the web app to help us isolate performance issues while debugging.EnableCustomGroups setting to create and delete custom groups and to add and remove custom group members.POST /system/onboarding/complete to complete onboarding.GET api/v4/latest_version to fetch the latest Mattermost version.${baseUrl}/api/v4/channels/search?system_console=false and added additional parameters ${baseUrl}/api/v4/users/me/channels to fetch all the channel across teams and ${baseUrl}/api/v4/users/${userId/channel_members to fetch all the channel_members across teams).user-update websocket event handler to prevent extra get request to server for unsanitized user.ReliableClusterSend field to model.WebsocketBroadcast to allow sending events through the cluster using the reliable channel.v1.16.7.Mattermost v6.4.0 contains low severity level security fixes. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
db_migrations. Additionally, a db_lock table is used to prevent multiple installations from running migrations in parallel. Any downtime depends on how many records the database has and whether there are missing migrations in the schema. In case of an error while applying the migrations, please check this table first. If you encounter an issue please file an Issue by including the failing migration name, database driver/version, and the server logs.ALTER DATABASE <YOUR_DB_NAME> COLLATE = 'utf8mb4_general_ci',. Then do the server upgrade again and the migration will be successful.Error 1267: Illegal mix of collations when upgrading due to changing the default collation. This is caused by the database and the tables having different collations. If you get this error, please change the collations to have the same value with, for example, ALTER DATABASE <db_name> COLLATE = '<collation>'.If you upgrade from a release earlier than v6.3, please read the other Important Upgrade Notes.
.boardarchive extension and all new exports will only be in this format.ManifestExecutables.edit_at post details.postgresql schema designator.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
DataRetentionSettings in config.json:
EnableBoardsDeletion and BoardsRetentionDays to add support for Global Retention Policy for Boards.api/v4/config/migrate API endpoint has been removed in favor of the mmctl --local endpoint. API clients won't be able to access this endpoint without having physical access to the server.v1.16.7.@formatjs/intl-pluralrules and @formatjs/intl-relativetimeformat from https://github.com/mattermost/mattermost-webapp.msgpack/msgpack and pako to https://github.com/mattermost/mattermost-mobile.ServiceSettings.TrustedProxyIPHeader defaults to empty from now on. A previous bug prevented this from happening
in certain conditions. Customers are requested to check for these values in their config and set them to nil if necessary. See more details here.SendPushNotifications config was set to false.context deadline exceeded errors after upgrading to v6.3.CustomStatusEmoji component is now avoided on post hover.TextBox links component below post box is now avoided while typing.ThreadAutoFollow has been changed to false. This does not affect existing configurations where this value is already set to true MM-41351.ThreadAutoFollow and CollapsedThreads config settings were disabled MM-41350..pages content search is no longer available due to technical difficulties.ThreadAutoFollow and CollapsedThreads until Collapsed Reply Threads is promoted to general availability in Q2 2022. Learn more about these performance considerations here.IMPORTANT: If you upgrade from a release earlier than v6.2, please read the other Important Upgrade Notes.
mattermost.org to mattermost.com/community/.ServiceSettings.EnableReliableWebSockets promoted to general availability. For compatibility with older clients, the server will always return true for the /v4/config/client endpoint.showTeamSidebar in registerProducts, which, when set to true, displays the team sidebar in the product.ServiceSettings.EnableReliableWebSockets was removed, and the ability to buffer messages during a connection loss has been promoted to general availability. This setting is enabled for older clients to maintain backwards compatibility.v1.16.7.CTRL/CMD + SHIFT + A shortcut does not open Account Settings MM-38236.ThreadAutoFollow has been changed to false. This does not affect existing configurations where this value is already set to true MM-41351.ThreadAutoFollow and CollapsedThreads config settings were disabled MM-41350..pages content search is no longer available due to technical difficulties.Users.Timezone column had a default. This affected servers that had Mattermost v4.9 or earlier installed before upgrading to v6.0 or later MM-39297.ThreadAutoFollow and CollapsedThreads until Collapsed Reply Threads is promoted to general availability in Q2 2022. Learn more about these performance considerations here.If you upgrade from a release earlier than v6.1, please read the other Important Upgrade Notes.
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
DeveloperFlags.DesktopLatestVersion and DesktopMinVersion config settings.IsEnterpriseReady() plugin API.GET /api/v4/roles API endpoint.UpdateCustomStatus and RemoveUserCustomStatus plugin APIs for user custom status.v1.16.7.CTRL/CMD + SHIFT + A shortcut does not open Settings MM-38236.ThreadAutoFollow has been changed to false. This does not affect existing configurations where this value is already set to true MM-41351.ThreadAutoFollow and CollapsedThreads config settings were disabled MM-41350..pages content search is no longer available due to technical difficulties.Users.Timezone column had a default. This affected servers that had Mattermost v4.9 or earlier installed before upgrading to v6.0 or later MM-39297.create index concurrently idx_jobs_status_type on jobs (status,type);create index idx_jobs_status_type on Jobs (Status,Type);ThreadAutoFollow and CollapsedThreads until Collapsed Reply Threads is promoted to general availability in Q2 2022. Learn more about these performance considerations here.If you upgrade from a release earlier than v6.0, please read the other Important Upgrade Notes.
@here mention to the EnableConfirmNotificationsToChannel config setting to show a warning modal when over 5 members might be alerted with @here.registerMessageWillBeUpdatedHook(newPost, oldPost) client-side plugin hook to intercept edited messages.get flagged posts endpoint will now return only flagged posts for channels the user is a member of.61+ to 89+.60+ to 78+.10.9+ to 10.14+.style tag./code did not render initial whitespace characters.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
EnableInlineLatex to add support for inline Latex rendering.JobSettings in config.json
CleanupJobsThresholdDays. This defines the time gap in days beyond which older jobs will be removed. Default is -1 which means the feature is disabled. Setting to 0 will clean all completed jobs.Sessions.RolesChannelMembers.RolesTeamMembers.RolesPOST /api/v4/posts/search to perform searches across all channels.v1.16.7.fast-deep-equal, luxon, and react-window-infinite-loader to https://github.com/mattermost/mattermost-webapp.@mattermost/react-native-paste-input to https://github.com/mattermost/mattermost-mobile.Ctrl/Cmd+Shift+A shortcut does not open Account Settings MM-38236.DataRetentionSettings.EnableMessageDeletion was set to true MM-39378.Users.Timezone column had a default. This affected servers that had Mattermost v4.9 or earlier installed before upgrading MM-39297.LONGTEXT and the check was failing and causing the database migrations to run every restart.tableName and columnName for JSONB schema failures. When there was a schema upgrade failure related to jsonb columns, the log line didn't mention which table/column was affected.Legacy Command Line Tools. Most commands have been replaced by mmctl and new commands have been added over the last few months, making this tool a robust replacement.
Slack Import via the web app. The Slack import tool accessible via the Team Setting menu has been replaced by the mmetl tool that is much more comprehensive for the types of data it can assist in uploading.
MySQL versions below 5.7.12. Minimum support is now for 5.7.12+. This version introduced a native JSON data type that lets us improve performance and scalability of several database fields (most notably Users and Posts props). Additionally, version 5.6 (our current minimum version) reached EOL in February 2021.
Elasticsearch 5 and 6 - versions 5.x reached EOL in March of 2019, and versions 6.x reached EOL in November 2020. Our minimal supported version with Mattermost v6.0 is Elasticsearch version 7.0.
Windows 7 reached EOL in January 2020. We no longer provide support for Mattermost Desktop App issues on Windows 7.
DisableLegacyMFAEndpoint configuration setting.
ExperimentalTimezone configuration setting. The config setting is removed and the feature is promoted to general availability.
All legacy channel sidebar experimental configuration settings. We encourage customers using these settings to upgrade to v5.32 or later to access custom, collapsible channel categories among many other channel organization features. The deprecated settings include:
All configuration settings previously marked as “Deprecated”.
Changes to mattermost-server/model for naming consistency.
TimeoutStartSec in the provided systemctl service file is set to 1 hour. Customers using the Mattermost Kubernetes operator should be aware of the above migration information and choose the path that is most appropriate for them. If (1) is acceptable, then the normal upgrade process using the operator will suffice. For minimum downtime, follow (2) before using the operator to update Mattermost following the normal upgrade process.
Failed to alter column type. It is likely you have invalid JSON values in the column. Please fix the values manually and run the migration again. This means that the particular column has some invalid JSON values which need to be fixed manually. A common fix that is known to work is to wipe out all \u0000 characters. Please follow these steps:
SELECT COUNT(*) FROM <table> WHERE <column> LIKE '%\u0000%';UPDATE <table> SET <column> = regexp_replace(<column>, '\\u0000', '', 'g') where <column> like '%\u0000%';ThreadAutoFollow and CollapsedThreads until Collapsed Reply Threads is promoted to general availability in Q2 2022. Learn more about these performance considerations here.If you upgrade from a release earlier than v5.39, please read the other Important Upgrade Notes.
Add channel button to the current color and by team name.ChannelInviteModal and ChannelMembersModal components for plugins.playbooks and boards to restricted team URLs list. Conflict exists if users hit the URL to the team directly without the trailing channel, permalink or threads information (ie server/team) and they have a team name “playbooks” or “boards”. User would expect to be taken to their messaging team.TeamSettings.MaxNotificationsPerChannel on unlicensed servers (e.g. Team Edition)./channels/{channel_id}/privacy instead.Posts.ParentId in favor of the semantically equivalent Posts.RootId. Also removed CommandWebhook.ParentId and CompliancePost.ParentId for the same reason.ButtonText and ButtonColor settings were not reflected on the login screen.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
EnableOnboardingFlow, for enhanced user onboarding experience feature.EnablePermalinkPreviews to enable permalink previews.FileSettings in config.json:
MaxImageResolution config setting to control the maximum dimension (in pixels) of image uploads.EnableOnlyAdminIntegrationsRestrictCustomEmojiCreationRestrictPostDeleteAllowEditPostImageProxyTypeImageProxyURLImageProxyOptionsUseExperimentalGossipEnableTeamCreationRestrictTeamInviteRestrictPublicChannelManagementRestrictPrivateChannelManagementRestrictPublicChannelCreationRestrictPrivateChannelCreationRestrictPublicChannelDeletionRestrictPrivateChannelDeletionRestrictPrivateChannelManageMembersDisableLegacyMFAEndpointExperimentalTownSquareIsReadOnlyExperimentalHideTownSquareinLHSEnableXToLeaveChannelsFromLHSCloseUnusedDirectMessagesExperimentalChannelOrganizationExperimentalChannelSidebarOrganizationEnableLegacySidebarutils/authorization.go and moved any permissions to the MakeDefaultRoles() function.idx_posts_root_id_delete_at_create_atidx_channels_team_id_display_nameidx_channels_team_id_typeidx_threads_channel_id_last_reply_atidx_channelmembers_user_id_channel_id_last_viewed_atidx_channelmembers_channel_id_scheme_guest_user_ididx_posts_root_ididx_channels_team_ididx_threads_channel_ididx_channelmembers_user_idToJson/FromJson methods to be in the form ToJSON/FromJSON.Post.Props size limit to 800,000 characters.per_page query parameter instead of pageSize. This makes the threads API consistent with other endpoints, and automatically limits the number of requested threads with our param handling code. The pageSize query parameter will still be supported until version 6.0 of the server becomes the minimum version required by the mobile client.OnWebSocketConnect, OnWebSocketDisconnect and WebSocketMessageHasBeenPosted.model.ComparePassword method.Context.SourcePluginId field.(*model.Client4).CheckUserMfa.(*model.Client4).GetServerBusyExpires.model.ChannelListmodel.ChannelListWithTeamDatamodel.ChannelMembersmodel.Preferencesmodel.ProductNoticesplugin.Context.IpAddress to plugin.Context.IPAddress.v1.16.7.@mattermost/compass-components, @mattermost/compass-icons, styled-components and timezones.json, and removed react-inlinesvg from https://github.com/mattermost/mattermost-webapp.@types/redux-mock-store to https://github.com/mattermost/mattermost-mobile.Ctrl/Cmd+Shift+A shortcut does not open Account Settings MM-38236.Mattermost v5.39.0 contains a low level security fix. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
SuggestionList positioning.docx files uploaded with .doc extension.RawURLEncoding.ThreadAutoFollow setting must now be enabled in order to enable CollapsedThreads.1.16.7.The following deprecations are planned for the Mattermost v6.0 release, which is scheduled for 2021/10/13. This list is subject to change prior to the release.
Legacy Command Line Tools. All commands have been fully replaced by mmctl and new commands have been added over the last few months, making this tool a full and robust replacement.
Slack Import via the web app. The Slack import tool accessible via the Team Setting menu is being replaced by the mmetl tool that is much more comprehensive for the types of data it can assist in uploading.
MySQL versions below 5.7.7. Minimum support will now be for 5.7.12. This version introduced a native JSON data type that lets us improve performance and scalability of several database fields (most notably Users and Posts props). Additionally, version 5.6 (our current minimum version) reached EOL in February 2021.
Elasticsearch 5 and 6 - versions 5.x reached EOL in March of 2019, and versions 6.x reached EOL in November 2020. Our minimal supported version with Mattermost v6.0 will be Elasticsearch version 7.0.
Windows 7 reached EOL in January 2020. We will no longer provide support for Mattermost Desktop App issues on Windows 7.
DisableLegacyMFAEndpoint configuration setting.
ExperimentalTimezone configuration setting. The config setting will be removed and the feature will be promoted to general availability.
All legacy channel sidebar experimental configuration settings. We encourage customers using these settings to upgrade to v5.32 or later to access custom, collapsible channel categories among many other channel organization features. The settings being deprecated include:
All configuration settings previously marked as “Deprecated”.
Changes to mattermost-server/model for naming consistency.
config reload command was missing local-mode server-side implementation. MM-38082Mattermost v5.38.0 contains low to medium level security fixes. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
config.json file) has been removed in favor of the mmctl config reload command, which must be run to apply configuration changes after they are made on disk. This change improves configuration performance and robustness.fixCRTChannelMembershipCounts fix takes 1 minute and 20 seconds for a database containing approximately 4 million channel memberships and about 130,000 channels. The fixCRTThreadCountsAndUnreads fix takes about 3 minutes and 30 seconds for a database containing 56367 threads, 124587 thread memberships, and 220801 channel memberships. These are on MySQL v5.6.51.If you upgrade from a release earlier than v5.37, please read the other Important Upgrade Notes.
data_retention type job can now be run even if the global policy is disabled. The granular (i.e. team and channel-specific) policies will be executed when the data retention job is run. Please note there is a known issue where deleted posts get displayed in channels without new activity after the retention job is run. This issue is tracked with this ticket.Incident Collaboration was rebranded to Playbooks. Also the channel right-hand sidebar is redesigned, our own playbooks are shared as templates, and more triggers and actions were added.react-intl and <Timestamp/> usage in plugins.getPrevTrialLicense API request when loading the System Console on Team Edition.reply_count of 0 was always returned for GET single Post on /posts/<postid> API.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
PluginSettings in config.json:
ChimeraOAuthProxyURL to allow specifying Chimera URL that can be used by plugins to connect with pre-created OAuth applications.EnableReliableWebSockets now defaults to true.CreateChannelSidebarCategory, GetChannelSidebarCategories and UpdateChannelSidebarCategories to the Plugin API.1.16.0.classnames and react-window to https://github.com/mattermost/mattermost-webapp/.@react-native-community/datetimepicker, array.prototype.flat, and base-64 to https://github.com/mattermost/mattermost-mobile/.The following deprecations are planned for the Mattermost v6.0 release, which is scheduled for 2021/10/15. This list is subject to change prior to the release.
Legacy Command Line Tools. All commands have been fully replaced by mmctl and new commands have been added over the last few months, making this tool a full and robust replacement.
Slack Import via the web app. The Slack import tool accessible via the Team Setting menu is being replaced by the mmetl tool that is much more comprehensive for the types of data it can assist in uploading.
MySQL versions below 5.7.7. Minimum support will now be for 5.7.12. This version introduced a native JSON data type that lets us improve performance and scalability of several database fields (most notably Users and Posts props). Additionally, version 5.6 (our current minimum version) reached EOL in February 2021.
Elasticsearch 5 and 6 - versions 5.x reached EOL in March of 2019, and versions 6.x reached EOL in November 2020. Our minimal supported version with Mattermost v6.0 will be Elasticsearch version 7.0.
Windows 7 reached EOL in January 2020. We will no longer provide support for Mattermost Desktop App issues on Windows 7.
DisableLegacyMFA configuration setting.
ExperimentalTimezone configuration setting.
All legacy channel sidebar experimental configuration settings. We encourage customers using these settings to upgrade to v5.32 or later to access custom, collapsible channel categories among many other channel organization features. The settings being deprecated include:
All configuration settings previously marked as “Deprecated”.
Changes to mattermost-server/model for naming consistency.
5.39.2.ThreadAutoFollow has been changed to false. This does not affect existing configurations where this value is already set to true MM-41351.ThreadAutoFollow and CollapsedThreads config settings were disabled MM-41350..pages content search is no longer available due to technical difficulties.getPrevTrialLicense API request when loading the System Console on Team Edition. MM-37108platform binary and “--platform” flag have been removed. If you are using the “--platform” flag or are using the platform binary directly to run the Mattermost server application via a systemd file or custom script, you will be required to use only the mattermost binary.ThreadAutoFollow and CollapsedThreads until Collapsed Reply Threads is promoted to general availability in Q2 2022. Learn more about these performance considerations here.If you upgrade from a release earlier than v5.36, please read the other Important Upgrade Notes.
.jpeg files on Linux. Uploading .jpg files was already supported.user_update websocket event was generated for bot users.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
CollapsedThreads to add support for Collapsed Reply Threads (Beta).POST api/v4/groups/{group_id}/channels/{channel_id}/link to add a team ID to the response when linking a channel to a group.collapsed_threads_supported parameter to /channels/members/{userId}/view to indicate that the client supports collapsed threads.collapsed_threads_supported parameter to /users/{userId}/posts/{postId}/set_unread to indicate that the client supports collapsed threads.collapsed_threads_supported parameters to the server to indicate that the webapp supports collapsed reply threads.GET /trial-license/prev for fetching last used trial license.CustomStatus struct and modified the APIs to validate and handle them.1.15.5.reselect from https://github.com/mattermost/mattermost-webapp/.The following deprecations are planned for the Mattermost v6.0 release, which is scheduled for 2021/10/15. This list is subject to change prior to the release.
Legacy Command Line Tools. All commands have been fully replaced by mmctl and new commands have been added over the last few months, making this tool a full and robust replacement.
Slack Import via the web app. The Slack import tool accessible via the Team Setting menu is being replaced by the mmetl tool that is much more comprehensive for the types of data it can assist in uploading.
MySQL versions below 5.7.7. Minimum support will now be for 5.7.12. This version introduced a native JSON data type that lets us improve performance and scalability of several database fields (most notably Users and Posts props). Additionally, version 5.6 (our current minimum version) reached EOL in February 2021.
Elasticsearch 5 and 6 - versions 5.x reached EOL in March of 2019, and versions 6.x reached EOL in November 2020. Our minimal supported version with Mattermost v6.0 will be Elasticsearch version 7.0.
Windows 7 reached EOL in January 2020. We will no longer provide support for the Desktop App issues on Windows 7.
DisableLegacyMFA configuration setting.
ExperimentalTimezone configuration setting.
All legacy channel sidebar experimental configuration settings. We encourage customers using these settings to upgrade to v5.32 or later to access custom, collapsible channel categories among many other channel organization features. The settings being deprecated include:
All configuration settings previously marked as “Deprecated”.
Changes to mattermost-server/model for naming consistency.
config.json can reset when running the command systemctl restart mattermost, and when running any commands that write to the config (e.g. config or plugin) MM-33752, MM-32390.Mattermost v5.36.0 contains a high level security fix. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
UseExperimentalGossip has no effect and has only been kept for compatibility purposes. The setting to use gossip has been removed from the System Console. Note: For High Availability upgrades, all nodes in the cluster must use a single protocol. If an existing system is not currently using gossip, one node in a cluster can't be upgraded while other nodes in the cluster use an older version. Customers must either use gossip for their High Availability upgrade, or customers must shut down all nodes, perform the upgrade, and then bring all nodes back up.If you upgrade from a release earlier than v5.35, please read the other Important Upgrade Notes.
TCP_NO_DELAY is disabled for Websocket connections to allow for higher throughput.[email protected]_) has been removed. Admin Advisor will now prompt System Admins about missing configuration for the Support Email. This value is required, and it ensures Mattermost account requests are sent to the correct team for resolution.sysconsole_write_plugins permission./header and /purpose commands.EnableSyncWithLdapIncludeAuth was set to true, which caused the AuthData to be stored in AD/LDAP format.VerifySignature was enabled.ServiceSettings.ExtendSessionLengthWithActivity was set to.idmigrate command did not update values if they were not already present as LDAP attributes in the config.json.Ctrl+Cmd+F on the MacOS Desktop App opened the search instead of full-screened the app.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ComplianceSettings in config.json:
BatchSize. Compliance Monitoring CSV files are no longer limited to 30,000 rows.SupportSettings in config.json:
SupportEmail default value is now empty instead of [email protected]_.LogSettings in config.json:
EnableColor was added to LogSettings and NotificationLogSettings. Non-JSON console logs will now be colored if that field is set to true.ServiceSettings in config.json:
EnableReliableWebSockets, to make WebSocket messages more reliable by bufferring messages during a connection loss and then re-transmitting all unsent messages when the connection is revived.updateConfig and patchConfig).GetAllSharedChannels to match the field names for other channels APIs.RequestTrialLicense./ldap/sync endpoint now accepts a parameter include_removed_members which will force all LDAP group members back into the teams and channels synced to that group.removeUserRecentCustomStatus POST /status/custom/recent/delete.GetGroupMemberUsers and GetGroupsBySource to the plugin API to add plugin support for user groups.POST /api/v4/saml/reset_auth_data to reset SAML users' AuthData field to their email.GET /data_retention/policiesGET /data_retention/policies_countPOST /data_retention/policiesGET /data_retention/policies/{policy_id}PATCH /data_retention/policies/{policy_id}DELETE /data_retention/policies/{policy_id}GET /data_retention/policies/{policy_id}/teamsPOST /data_retention/policies/{policy_id}/teamsDELETE /data_retention/policies/{policy_id}/teamsPOST /data_retention/policies/{policy_id}/teams/searchGET /data_retention/policies/{policy_id}/channelsPOST /data_retention/policies/{policy_id}/channelsDELETE /data_retention/policies/{policy_id}/channelsPOST /data_retention/policies/{policy_id}/channels/searchGET /users/{user_id}/data_retention/team_policiesGET /users/{user_id}/data_retention/channel_policies1.15.5.lodash, memoize-one, and sass to https://github.com/mattermost/mattermost-webapp.react-native-startup-time and removed react-native-status-bar-size from https://github.com/mattermost/mattermost-mobile.The following deprecations are planned for the Mattermost v6.0 release, which is scheduled for 2021/10/15. This list is subject to change prior to the release.
Legacy Command Line Tools. All commands have been fully replaced by mmctl and new commands have been added over the last few months, making this tool a full and robust replacement.
Slack Import via the web app. The Slack import tool accessible via the Team Setting menu is being replaced by the mmetl tool that is much more comprehensive for the types of data it can assist in uploading.
MySQL versions below 5.7.7. Minimum support will now be for 5.7.12. This version introduced a native JSON data type that lets us improve performance and scalability of several database fields (most notably Users and Posts props). Additionally, version 5.6 (our current minimum version) reached EOL in February 2021.
Elasticsearch 5 and 6 - versions 5.x reached EOL in March of 2019, and versions 6.x reached EOL in November 2020. Our minimal supported version with Mattermost v6.0 will be Elasticsearch version 7.0.
Windows 7 reached EOL in January 2020. We will no longer provide support for the Desktop App issues on Windows 7.
DisableLegacyMFA configuration setting.
ExperimentalTimezone configuration setting.
All legacy channel sidebar experimental configuration settings. We encourage customers using these settings to upgrade to v5.32 or later to access custom, collapsible channel categories among many other channel organization features. The settings being deprecated include:
All configuration settings previously marked as “Deprecated”.
Changes to mattermost-server/model for naming consistency.
config.json can reset when running the command systemctl restart mattermost, and when running any commands that write to the config (e.g. config or plugin) MM-33752, MM-32390.readTimeout parameter in SqlSettings.DataSource (default is 30 seconds). The readTimeout datasource query parameter is now being ignored and the application provided SqlSettings.QueryTimeout should be used instead. MM-35767Mattermost v5.35.0 contains low and medium level security fixes. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
config.json file), in favor of an mmctl command that will need to be run to apply configuration changes after they are made. This change will improve configuration performance and robustness.If you upgrade from a release earlier than v5.34, please read the other Important Upgrade Notes.
markdown field is now posted by bot.RestrictLinkPreviews, and added a UI field for restricted domains under System Console > Site Configuration > Posts. Also expanded the logic that determines whether a post has a preview or not.model.GeneratePassword() for security reasons. An improved version is now being used internally to generate passwords for bulk-imported users.mattermost_db_replica_lag_abs and mattermost_db_replica_lag_time, both containing a label of "node", signifying which database host is the metric from.
ReplicaLagSettings was added under SqlSettings. This is an array of maps which contain three keys: DataSource, QueryAbsoluteLag, and QueryTimeLag. Each map entry is for a single replica instance. DataSource contains the database credentials to connect to the replica instance. QueryAbsoluteLag is a plain SQL query that must return a single row of which the first column must be the node value of the Prometheus metric, and the second column must be the value of the lag. QueryTimeLag is the same as above, but used to measure the time lag.QueryAbsoluteLag can be: select server_id highest_lsn_rcvd-durable_lsn as bindiff from aurora_global_db_instance_status() where server_id=<> and QueryTimeLag can be: select server_id, visibility_lag_in_msec aurora_global_db_instance_status() where server_id=<>. For MySQL Group Replication, the absolute lag can be measured from the number of pending transactions in the applier queue: select member_id, count_transactions_remote_in_applier_queue FROM performance_schema.replication_group_member_stats where member_id=<>. Overall, what query to choose is left to the administrator, and depending on the database and need, an appropriate query can be chosen.UserID as username if the value was invalid and did not log this.unsafe-inline.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
EnableFileSearch for file search feature.RestrictLinkPreviews setting to allow disabling link previews from certain domains.FileSettings in config.json:
ExtractContent and ArchiveRecursion for file search feature.ExperimentalSettings in config.json:
EnableRemoteClusterService for experimental Shared Channels feature.SqlSettings in config.json:
ReplicaLagSettings. This is an array of maps which contain three keys: DataSource, QueryAbsoluteLag, and QueryTimeLag.ChannelMembers table called MentionCountRoot. Please note that the migration can take up to a few minutes on installations with large numbers of channels/users.TotalMsgCountRoot to Channels table and MsgCountRoot column to ChannelMembers table. Please note that the migration can take several minutes to complete on large MySQL instances./teams/{team_id}/files/search API endpoint for files search.1.15.5.country-list, form-data, gfycat-sdk, redux-thunk, rudder-sdk-js, serialize-error and shallow-equals, and removed mattermost-redux from https://github.com/mattermost/mattermost-webapp.config.json can reset when running the command systemctl restart mattermost, and when running any commands that write to the config (e.g. config or plugin) MM-33752, MM-32390.Posts.FileIds type (PostgreSQL only)ThreadMemberships.UnreadMentionsChannels.SharedReactions.UpdateAtReactions.DeleteAtTeams, TeamMembers).SqlLite3 from the code.BleveSettings instead of on every config update.ServePluginPublicRequest./join command was case-sensitive.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ExportSettings to add support for compressed export files with attachments.1.15.5.core-js from https://github.com/mattermost/mattermost-mobile.Config.json can reset when running the command systemctl restart mattermost, and when running any commands that write to the config (e.g. config or plugin) MM-33752, MM-32390.abdullahceylan, aconitumnapellus, Adovenmuehle, aeomin, agarciamontoro, aggmoulik, AGMETEOR, agnivade, amyblais, amynicol1985, angeloskyratzakos, anurag6713, appleboy, asaadmahmood, asimsedhain, bbodenmiller, BenCookie95, berkeka, BharatKalluri, calebroseland, catalintomai, chenilim, chetanyakan, chikei, christian-lim, coltoneshaw, cpanato, cpoile, Crimson-riot, crspeller, ctlaltdieliet, cwarnermm, CyrilLD, danielsischy, deanwhillier, devinbinnie, djanda97, ebati, enahum, enelson720, esethna, ethervoid, firasm, flexo3001, flynbit, furqanmlk, gabrieljackson, gigawhitlocks, gruceqq, haardikdharma10, hahmadia, hanzei, haonm, hastadhana, hectorskypl, hmhealey, ianatha, icelander, IndushaS, iomodo, isacikgoz, it33, jamiehurewitz, jasonblais, jaydeland, jbutler992, jbutlerdev, jespino, jfrerich, jials, johnsonbrothers, josephbaylon, jp0707, JtheBAB, justinegeffen, jwilander, kaakaa, kayazeren, khos2ow, larkox, lawrencejohnson, levb, lieut-data, lindalumitchell, lucievr, lutfuahmet, Maekes, mahmud2011, mantlecurve, matt-w99, matthewbirtch, maxerenberg, metanerd, mgdelacroix, michelengelen, mickmister, microolapshare, migbot, minecraftchest1, mistikel, mkdbns, mkraft, mlongo4290, mrtpcet, msal4, Mshahidtaj, natalie-hub, nathanaelhoun, nevyangelova, nronas, ogi-m, opr77, pablovelezvidal, pat-s, phntom, pidgelar, potatogim, prapti, Prescise, proffalken, r-52, rakhi2104, rbradleyhaas, reflog, renjithgr, rodcorsi, saf6260, sakaitsu, saturninoabril, sbishel, shazm, spirosoik, stafot, streamer45, stylianosrigas, svelle, Szymongib, thePanz, toto6038, tsabi, uhlhosting, wget, wiersgallak, wiggin77, Willyfrog, xlanor, YoheiZuho, youtsumi, zefhemel, Zukerherr
mmctl config command didn't recognize newer settings (e.g. ClusterSettings.EnableGossipCompression) that were introduced in v5.33.0. MM-34046Mattermost v5.33.0 contains low-level security fixes. Upgrading to this release is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
Reactions table. A schema update is required and may take up to 15 seconds on first run with large data sets.proxy_http_version directive to 1.1. This facility will be removed in a future Mattermost version. It is strongly recommended to fix the proxy configuration to correctly use the WebSocket protocol.If you upgrade from a release earlier than v5.32, please read the other Important Upgrade Notes.
files as a reserved team name.ImportDelete job to periodically delete unused import files after a configurable retention period has passed.mattermost_system_server_start_time and mattermost_jobs_active metrics for improved debugging with Grafana dashboards.Reactions table. A schema update is required and may take up to 15 seconds on first run with large data sets.MaxFileSize from 50MB to 100MB.NotifyProps will not send an email notification. This is done to make it consistent with other parts of the import process where a change in user's attributes would also not send any notifications.mmctl channel move did not allow moving private channels.mmctl config set PluginSettings.EnableUploads to change a configuration value did not return an error.DownloadComplianceReport function in the Golang driver has been fixed to download a full report as a zip archive.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ClusterSettings in config.json:
EnableGossipCompression, to disable compression in the Gossip protocol. By default the value of the setting is true. This is done to maintain compatibility with old servers in a cluster. Once all servers in a cluster are upgraded, it is recommended to disable this setting for better performance.SqlSettings in config.json:
ConnMaxIdleTimeMilliseconds, to allow System Admins to control the maximum time a database connection can remain idle. The default value is set to 5 minutes.TeamSettings in config.json:
EnableCustomUserStatuses, to allow users to set descriptive status messages and optional status emoji that are visible to all users.1.15.5.types/react-overlays, crypto-browserify, process and stream-browserify, and removed node-semver from https://github.com/mattermost/mattermost-webapp.isomorphic-fetch from https://github.com/mattermost/mattermost-redux.GET /{team_id}/threads/{thread_id} API method for retrieving single threads./exports API endpoint to generate and manage export files./users/{user_id}/teams/{team_id}/threads/mention_counts API endpoint.GET /api/v4/cloud/subscription/stats API endpoint.GET /api/v4/cloud/subscription/limitreached/invite API endpoint.PUT /api/v4/users/<id>/status/custom, DELETE /api/v4/users/<id>/status/custom, and DELETE /api/v4/users/<id>/status/custom/recent API endpoints./api/v4/users/me/auth API endpoint can no longer be used to change passwords. This was a hidden feature that was not documented, but was nevertheless possible. We have removed this hidden feature./users/{user_id}/teams/{team_id}/threads API to support the unread=true query parameter./api/v4/users/{user_id}/teams/{team_id}/threads API endpoint now accepts "before" and "after" parameters instead of a page index.GET api/v4/subscription/stats API endpoint.UserUpdate WebSocket Event is now broadcast by two more APIs, plugin.UpdateUser and ConvertBotToUser.systemctl restart mattermost, and when running any commands that write to the config (e.g. config or plugin) MM-33752, MM-32390.a-c-sreedhar-reddy, aaronrothschild, aeomin, agarciamontoro, AGMETEOR, agnivade, Ampit, amyblais, amynicol1985, angeloskyratzakos, anurag6713, arjunagl, ashishbhate, aspleenic, BenCookie95, berkeka, bjorge82, calebroseland, carantunes, catalintomai, chenilim, chetanyakan, chikei, coltoneshaw, cpanato, cpoile, crspeller, ctlaltdieliet, cupakob, cwarnermm, daniron26, devinbinnie, djanda97, DSchalla, elyscape, enelson720, esethna, ethervoid, flynbit, furqanmlk, gabrieljackson, gruceqq, haardikdharma10, hahmadia, hanzei, harryfromwork, hectorskypl, helios1101, hmhealey, icelander, IndushaS, iomodo, isacikgoz, jasonblais, jatinjtg, jaydeland, jespino, jfrerich, johnsonbrothers, jomaxro, josephbaylon, jp0707, justinegeffen, jwilander, kaakaa, kashifsoofi, kayazeren, kojiGit55, komik966, koox00, kristinakvn, larkox, LauSam09, lawrencejohnson, Leats, levb, lieut-data, lucievr, lynn915, mahmud2011, matthewbirtch, metanerd, mgdelacroix, michelengelen, mickmister, migbot, mkraft, mlongo4290, natalie-hub, neilharris123, nevyangelova, nronas, nurefexc, ogi-m, onoklin, pablovelezvidal, petermcj, Quaqmre, rbradleyhaas, reflog, rodcorsi, rvillablanca, saf6260, saturninoabril, sbishel, SezalAgrawal, SimonSimonB, Soriyyx, stafot, streamer45, stylianosrigas, sudheerDev, Szymongib, thePanz, TQuock, uhlhosting, ultra1394, vpecinka, wget, wiersgallak
Mattermost v5.32.0 contains low level security fixes. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
ExperimentalChannelOrganization, EnableXToLeaveChannelsFromLHS, CloseUnusedDirectMessages, and ExperimentalHideTownSquareinLHS settings are only functional if the Legacy Sidebar (EnableLegacySidebar) is enabled since they are not compatible with the new sidebar experience. ExperimentalChannelSidebarOrganization has been deprecated, since the new sidebar is now enabled for all users.GetPostThread, GetPostsForChannel, GetPostsSince, GetPostsAfter, GetPostsBefore, and GetPostsAroundLastUnread now require an additional collapsedThreads parameter to be passed. Any client making use of these functions will need to update them when upgrading its dependencies.If you upgrade from a release earlier than v5.31, please read the other Important Upgrade Notes.
GOOS-GOOARCH combination in the plugin manifest.AnalyticsPostCount now avoids unnecessary table scans during various background jobs.webhook create endpoints to local mode and the ability to create webhooks for other users.remote_cluster_service under a license check.sysconsole_write_authentication permission./me post behaved differently within the Mattermost Web App and the Mobile App.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ExperimentalChannelSidebarOrganization setting and added a new EnableLegacySidebar setting. The new channel sidebar will be enabled system-wide by default.UseExperimentalGossip field under ClusterSettings is now true by default. This means that new installations will use the Gossip protocol for cluster communication. There will be no changes to existing installations. The Gossip protocol is now considered to be in General Availability and is the recommended clustering mode.ExperimentalDataPrefetch for all servers and removed the corresponding setting.NativeAppSettings in config.json:
AppCustomURLSchemes setting to add the ability to redirect to the mobile app after OAuth & SAML auth completion.1.15.5.teamId path parameter.Get Threads API to include total_unread_threads instead of total_unread_replies.collapsedThreads and collapsedThreadsExtended query parameters to:
api/v4/channels/{channel_id:[A-Za-z0-9]+}/postsapi/v4/users/{user_id:[A-Za-z0-9]+}/channels/{channel_id:[A-Za-z0-9]+}/posts/unreadapi/v4/posts/{post_id:[A-Za-z0-9]+}/threadShared column to the Channels table.systemctl restart mattermost, and when running any commands that write to the config (e.g. config or plugin) MM-33752, MM-32390.aaronrothschild, Aeiyko, aeomin, AGMETEOR, agnivade, ahmaddanialmohd, Ampit, amwolff, amyblais, angeloskyratzakos, antwigambrah, anurag6713, arjunagl, asaadmahmood, ashishbhate, aspleenic, Ayanrocks, balan2010, bbodenmiller, BenCookie95, ByeongsuPark, camgraff, chenilim, chikei, chrisfromredfin, coltoneshaw, compiledsound, coreyhulen, cpanato, cpoile, crspeller, ctlaltdieliet, cwarnermm, darkLord19, deanwhillier, devinbinnie, dmpichugin, ebroda, emilyhollinger, emskaplann, enahum, enelson720, esethna, FlipEnergy, flynbit, gabrieljackson, gigawhitlocks, gruceqq, haardikdharma10, hahmadia, hanzei, Hassall, hectorskypl, hmhealey, ialorro, iomodo, isacikgoz, it33, jasonblais, jaydeland, jespino, jfrerich, johnsonbrothers, josephbaylon, jp0707, justinegeffen, jwilander, kaakaa, kashifsoofi, kayazeren, khos2ow, koox00, kristinakvn, larkox, lawrencejohnson, levb, lieut-data, lindalumitchell, lmammino, lucievr, lynn915, madhavhugar, marianunez, maxerenberg, metanerd, mgdelacroix, mickmister, migbot, mlongo4290, moschlar, natalie-hub, nathanaelhoun, nevyangelova, nickmisasi, nikkinagar, nronas, ogi-m, onoklin, pablovelezvidal, prapti, R8s6, rbradleyhaas, reflog, rodcorsi, rolwin100, sadohert, saturninoabril, sbishel, schunka, shazm, shuang2411, SimonSimonB, srkgupta, stafot, streamer45, stylianosrigas, svenseeberg, Szymongib, thePanz, uhlhosting, vpecinka, vraravam, wf6DJd8a3xSSCZbn, wget, wiersgallak, wiggin77, Willyfrog, yukiisbored
mmctl channel move did not allow moving private channels. MM-32746config.json was sporadically getting reset upon CLI command execution. MM-32234FeatureFlags section was getting erroneously written to config.json. MM-32389PermanentDeleteChannel failed with "failed to get a thread" error. MM-31731Mattermost v5.31.0 contains a low level security fix. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
/dnd consecutively no longer unexpectedly toggles the user's status between "Do Not Disturb" and "Online", and will only set the user’s status to "Do Not Disturb".manage_remote_clusters permission.UnreadMentions column was missing in the ThreadMemberships table for servers upgrading from v5.29.0. Admins planning to enable Collapsed Reply Threads (available in beta in Q1 2021) are recommended to upgrade to v5.31.0 or later.FirstLoginSync didn't close the LDAP session.1.14.6.POST /api/v4/cloud/webhook endpoint.thread_updated, thread_follow_changed, and thread_read_changed.systemctl restart mattermost and when running any commands that write to the config (e.g. config or plugin) MM-33752, MM-32390.sysconsole_write_authentication permission. MM-29089UnreadMentions column was missing in the ThreadMemberships table for servers upgrading from v5.29.0. Admins planning to enable Collapsed Reply Threads (available in beta in Q1 2021) are recommended to upgrade to v5.30.2 or later.mmctl system version endpoint to print the remote server version.mmctl system status command output to include all the reported values.icon_emoji field in incoming webhooks to allow emojis to be specified with surrounding colons.ReactionHasBeenAdded and ReactionHasBeenRemoved.MM_CUSTOM_DEFAULTS_PATH environment variable.TestFileConnection failed due to permissions if S3PathPrefix was in use.PostInfo.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ExperimentalSettings in config.json:
EnableSharedChannels, to support managing shared channels feature.SamlSettings in config.json:
IgnoreGuestsLdapSync, to ignore guests when using SAML and synchronizing with LDAP.1.14.6.@stripe/react-stripe-js, @stripe/stripe-js, and @types/country-list to https://github.com/mattermost/mattermost-webapp.react-native-image-gallery from https://github.com/mattermost/mattermost-mobile.react-native-redash and react-native-share to https://github.com/mattermost/mattermost-mobile.minipreview to FileInfo table.post_deleted websocket event, System Admins are now notified when a user initiates a post deletion.config.json may reset itself to default values if the binary is run with the root user.sysconsole_write_authentication permission.UnreadMentions column was missing in the ThreadMemberships table for servers upgrading from v5.29.0. Admins planning to enable Collapsed Reply Threads (available in beta in Q1 2021) are recommended to upgrade to v5.29.2 or later.UnreadMentions column to ThreadMemberships table, and fixed server log warnings related to ThreadMemberships. Admins planning to enable Collapsed Reply Threads (available in beta in Q1 2021) are recommended to upgrade to v5.29.1 or later.ThreadAutoFollow has been added to support Collapsed Reply Threads releasing in beta in Q1 2021. This setting is enabled by default and may affect server performance. It is recommended to review our documentation on hardware requirements to ensure your servers are appropriately scaled for the size of your user base.If you upgrade from a release earlier than v5.28, please read the other Important Upgrade Notes.
FileSettings.PathPrefix caused issues.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
ThreadAutoFollow, to add support for collapsed reply threads.ManagedResourcePaths, to add support for a setting to use with the Desktop Managed Resources feature.1.14.6.@types/react-custom-scrollbars from https://github.com/mattermost/mattermost-webapp.SidebarCategories table.Threads.ChannelId.UnreadMentions column to ThreadMembership table.sysconsole_write_authentication permission.If you upgrade from a release earlier than v5.27, please read the other Important Upgrade Notes.
true, the current code now doesn't highlight.is_or_search and IncludeDeletedChannels parameters for search.* characters are now filtered from the search terms in the database.in:@` / `in:, such as displaying Direct and Group Messages in in:@ search suggestions.config migrate, config subpath, user delete, integrity, user migrate_auth, moveChannel, updateChannelPrivacy, restoreTeam, channel delete, and plugin marketplace commands to mmctl.CreateCommand plugin API that creates a slash command that is not handled by the plugin itself.GetUser fails during MFA Authentication.group list-ldap mmctl command didn't return any results.DataSourceReplicas caused a panic.PostUtils.formatText crashed when formatting text with unicode emoji.""" strangely.GetPluginStatus didn't work in a non-cluster environment.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
LdapSettings in config.json:
PublicCertificateFile, to be able to upload the public certificate to be used for encryption with SAML configuration.PrivateKeyFile, to be able to upload the private key to be used for encryption with SAML configuration.ServiceSettings in config.json:
EnableAPIChannelDeletion, to permanently delete channels for compliance reasons.EnableAPIUserDeletion, to permanently delete users for compliance reasons.NotificationLogSettings and ExperimentalAuditSettings in config.json:
AdvancedLoggingConfig, to enable configuration options for setting audit targets.AnnouncementSettings in config.json:
AdminNoticesEnabled and UserNoticesEnabled, to enable in-product notices to make users and Admins aware of the newest product enhancements from within Mattermost.EnableCustomEmoji, EnableGifPicker, ExperimentalViewArchivedChannels and ExperimentalTimezone are now enabled by default for new installs.react-is and tinycolor2 to https://github.com/mattermost/mattermost-webapp.@types/highlight.js, @typescript-eslint/parser, bootstrap-colorpicker, and intl from https://github.com/mattermost/mattermost-webapp.react-native-v8 from https://github.com/mattermost/mattermost-mobile.Commands.PluginId.Teams.Type to varchar(255).Teams.SchemeId to varchar(26).IncomingWebhooks.Username to varchar(255).IncomingWebhooks.IconURL to text",.POST /upgrade_to_enterprise API endpoint.GET /upgrade_to_enterprise/status API endpoint.POST /restart API endpoint.GET /warn_metrics/status API endpoint.POST /warn_metrics/ack/:warn_metric_id API endpoint.sysconsole_write_authentication permission.Mattermost v5.27.0 contains a low level security fix. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
Warning status.warn_metrics call for non-admin users.PatchConfig caused a panic if SiteURL was not set.InitPlugins() was able to complete.App.GetSidebarCategories() panicked on nil returned value.SendEmailNotifications setting blocked testing the SMTP connection.@types/redux-mock-store and tinycolor2 from https://github.com/mattermost/mattermost-webapp.bootstrap-colorpicker in https://github.com/mattermost/mattermost-webapp.@react-native-community/clipboard in https://github.com/mattermost/mattermost-mobile.POST api/v4/upgrade_to_enterprise API endpoint to be able to execute an inplace upgrade from Team Edition to Enterprise Edition.GET api/v4/upgrade_to_enterprise/status API endpoint to get the current status for the inplace upgrade from Team Edition to Enterprise Edition.POST api/v4/restart API endpoint to restart the system after an upgrade from Team Edition to Enterprise Edition.xmlsec1 utility.PictureAttribute setting with SAML authentication. MM-27852ExtendSessionLengthWithActivity was enabled as opening the mobile app called an API that overrode session extension triggers of typing, channel change, and posts. MM-27184EnableExperimentalGossipEncryption option was added under ClusterSettings. If this is set to true, and UseExperimentalGossip is also true, all communication through the cluster using the gossip protocol will be encrypted. The encryption uses AES-256 by default, and it is not kept configurable by design. However, if one wishes, they can set the value in Systems table manually for the ClusterEncryptionKey row. A key is a byte array converted to base64. It should be either 16, 24, or 32 bytes to select AES-128, AES-192, or AES-256. To update the key, one can execute UPDATE Systems SET Value='<value>' WHERE Name='ClusterEncryptionKey'; in MySQL and UPDATE systems SET value='<value>' WHERE name='ClusterEncryptionKey' for PostgreSQL. For any change in this config setting to take effect, the whole cluster must be shutdown first. Then the config change made, and then restarted. In a cluster, all servers either will completely use encryption or not. There cannot be any partial usage.If you upgrade from a release earlier than 5.25, please read the other Important Upgrade Notes.
ldap idmigrate, user convert, channel move, and user deleteall.PermanenteDeleteByUser and PermanenteDeleteByChannel that update and/or delete entities in the searchlayer.http.Hijacker for plugins' ServeHTTP to make it possible to upgrade the ServeHTTP hook to expose a websocket connection.channel move fails.edit_others_posts permission to function independently from edit_own_posts.MM_LICENSE which can contain the contents of a license file. When set, this license takes priority over all other license sources./posts/unread endpoint caused by an integer overflow when limit_after was set to 0.PermanentDeleteTeam did not return an error but did a soft deletion if EnableAPITeamDeletion was not set.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
ExperimentalDataPrefetch, to enable messages in all unread channels to be pre-loaded from the server whenever the client reconnects to the network to eliminate loading time when users switch to unread channels.ClusterSettings in config.json:
EnableExperimentalGossipEncryption, to enable all communication through the cluster using the gossip protocol to be encrypted.LogSettings in config.json:
EnableSentry, to enable sentry reporting.AdvancedLoggingConfig, to enable optional logging capability to allow sending log records to a number of destinations.FileSettings in config.json:
AmazonS3PathPrefix, to allow using the same S3 bucket for multiple deployments.EmailSettings in config.json:
PushNotificationBuffer, to remove hardcoded goroutine workers from push notifications to improve notifications arriving in order.SupportSettings in config.json:
EnableAskCommunityLink, to enable showing a link in the Mattermost channel header under the Help menu. When clicked, users are redirected to https://mattermost.com/community/, where they can join the Mattermost Community to ask questions and help others troubleshoot issues. This option is not available on the mobile apps.GlobalRelayMessageExportSettings in config.json:
SMTPServerTimeout, to ensure Global Relay SMTP connection timeout is independent of regular email settings timeout.react-native-cookies and react-native-keyboard-aware-scroll-view, and removed @react-native-community/cookies in https://github.com/mattermost/mattermost-mobile.dynamic-virtualized-list and prettier in https://github.com/mattermost/mattermost-webapp.rudder-sdk-js in https://github.com/mattermost/mattermost-redux.Sessions.ExpiredNotify.POST api/v4/bots/:bot_id/convert_to_user API endpoint to add the ability to convert a bot into a user.POST api/v4/users/:user_id/convert_to_bot API endpoint to add the ability to convert a user into a bot.GET api/v4/users/:user_id/teams/:team_id/channels/categories API endpoint to get a list of sidebar categories that will appear in the user's sidebar on the given team, including a list of channel IDs in each category.POST api/v4/users/:user_id/teams/:team_id/channels/categories API endpoint to create a custom sidebar category for the user on the given team.PUT api/v4/users/:user_id/teams/:team_id/channels/categories API endpoint to update any number of sidebar categories for the user on the given team.GET api/v4/users/:user_id/teams/:team_id/channels/categories/order API endpoint to get the order of the sidebar categories for a user on the given team as an array of IDs.PUT api/v4/users/:user_id/teams/:team_id/channels/categories/order API endpoint to update the order of the sidebar categories for a user on the given team.GET api/v4/users/:user_id/teams/:team_id/channels/categories/:category_id API endpoint to get a single sidebar category for the user on the given team.PUT api/v4/users/:user_id/teams/:team_id/channels/categories/:category_id API endpoint to update a single sidebar category for the user on the given team.DELETE api/v4/users/:user_id/teams/:team_id/channels/categories/:category_id API endpoint to delete a single custom sidebar category for the user on the given team.POST api/v4/ldap/migrateid API endpoint to migrate LDAP IdAttribute to a new value.GET api/v4/warn_metrics/status API endpoint to get the status of a set of metrics (enabled or disabled) from the Systems table.POST api/v4/warn_metrics/ack/:warn_metric_id API endpoint to acknowldge a warning for the warn_metric_id metric crossing a threshold (or some similar condition being fulfilled).GET api/v4/groups/:group_id/stats API endpoint to retrieve the stats of a given group.GET api/v4/teams/:team_id/channels/private API endpoint to get a list of private channels on a team based on query string parameters.GET api/v4/users/stats/filtered API endpoint to get a count of users in the system matching the specified filters.POST api/v4/users/:user_id/email/verify/member API endpoint to verify the email used by a user without a token.POST api/v4/users/:user_id/typing API endpoint to notify users in the given channel via websocket that the given user is typing.UploadFile to specify the ID of the channel a file will be uploaded to.sidebar_category_created Websocket Event.sidebar_category_updated Websocket Event.sidebar_category_deleted Websocket Event.sidebar_category_order_updated Websocket Event.warn_metric_status_received Websocket Event.warn_metric_status_removed Websocket Event.CMD+SHIFT+V does not paste copied text on MacOS on Safari 12 (Catalina) and Firefox.xmlsec1 utility.PictureAttribute setting with SAML authentication. MM-27852ExtendSessionLengthWithActivity was enabled as opening the mobile app called an API that overrode session extension triggers of typing, channel change, and posts. MM-27184(Status).ToClusterJson calls. MM-24544channel_mention permission on a channel. MM-26346Mattermost v5.25.0 contains a low level security fix. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
If you upgrade from a release earlier than 5.24, please read the other Important Upgrade Notes.
bin/mattermost permissions reset.store.GetPostsSince() did not sanitise deleted posts.importTeam.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
SamlSettings in config.json:
ServiceProviderIdentifier, as the unique identifier for the Service Provider, usually the same as Service Provider Login Url. In ADFS, this must match the Relying Party Identifier.GetGroupByName method. MM-26231Mattermost v5.24.0 contains low level security fixes. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
ExtendSessionLengthWithActivity automatically extends sessions to keep users logged in if they are active in their Mattermost apps. It is recommended to enable this setting to improve user experience if compliant with your organizations policies. Learn more here.mattermost_http_request_duration_seconds histogram metric (in Enterprise Edition) has been removed. This information was already captured by mattermost_api_time, which also contains the api handler name, HTTP method, and the response code. As an example, if you are using rate(mattermost_http_request_duration_seconds_sum{server=~"$var"}[5m]) / rate(mattermost_http_request_duration_seconds_count{server=~"$var"}[5m]) to measure average call duration, it needs to be replaced with sum(rate(mattermost_api_time_sum{server=~"$var"}[5m])) by (instance) / sum(rate(mattermost_api_time_count{server=~"$var"}[5m])) by (instance).If you upgrade from a release earlier than 5.23, please read the other Important Upgrade Notes.
auth_data created invalid users for LDAP sync during bulk import.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
ExtendSessionLengthWithActivity to enable sessions to be automatically extended when the user is active in their Mattermost client.EnableLocalMode to enable local mode for mmctl.LocalModeSocketLocation to set the path for the socket that the server will create for mmctl to connect and communicate through local mode.EnableLinkPreviews to default true for new installs.SessionLengthWebInDays to default to 30 days for new installs.SqlSettings in config.json:
DisableDatabaseSearch to disable the use of the database to perform searches.LdapSettings in config.json:
PictureAttribute to configure the attribute in the AD/LDAP server used to synchronize (and lock) the profile picture used in Mattermost.BleveSettings in config.json:
IndexDir to set the directory path to use for storing bleve indexes.EnableIndexing to enable the indexing of new posts to occur automatically.EnableSearching to enable search queries to use bleve search.EnableAutocomplete to enable autocomplete queries to use bleve search.BulkIndexingTimeWindowSeconds to determine the maximum time window for a batch of posts being indexed by the Bulk Indexer.EmailSettings in config.json:
PushNotificationContents to default full for new installs.@types/react-custom-scrollbars in https://github.com/mattermost/mattermost-webappp-queue in https://github.com/mattermost/mattermost-webapp@react-native-community/cookies in https://github.com/mattermost/mattermost-mobile@react-native-community/masked-view in https://github.com/mattermost/mattermost-mobileanalytics-react-native in https://github.com/mattermost/mattermost-mobilereact-native-elements in https://github.com/mattermost/mattermost-mobilereact-native-file-viewer in https://github.com/mattermost/mattermost-mobilereact-native-localize in https://github.com/mattermost/mattermost-mobilereact-native-reanimated in https://github.com/mattermost/mattermost-mobilereact-native-safe-area-context in https://github.com/mattermost/mattermost-mobilereact-native-screens in https://github.com/mattermost/mattermost-mobileUserGroups.AllowReference.POST /api/v4/group/bleve/purge_indexes to delete all Bleve indexes and their contents.GET /api/v4/channels/:channel_id/member_counts_by_group to get the channel members counts for each AD/LDAP group that has at least one member in the channel.GET /api/v4/teams/:team_id/commands/autocomplete_suggestions to get a list of autocomplete suggestions.GET api/v4/users/:user_id/groups to get all AD/LDAP groups for a user.GET api/v4/teams/:team_id/groups_by_channels to get a set of AD/LDAP groups associated with the channels in the given team grouped by channel.received_group Websocket Event.received_group_associated_to_team Websocket Event.received_group_not_associated_to_team Websocket Event.received_group_associated_to_channel Websocket Event.received_group_not_associated_to_channel Websocket Event.Content-Type was no longer optional in incoming webhook requests and led to errors. MM-25677Mattermost v5.23.0 contains a low level security fix. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
PostgreSQL ended long-term support for version 9.4 in February 2020. Mattermost will officially be supporting PostgreSQL version 10 with the Mattermost v5.26 release as PostgreSQL 9.4 is no longer supported. New installs will require PostgreSQL version 10. Previous Mattermost versions, including our current ESR, will continue to be compatible with PostgreSQL version 9.4. In our 6.0 release (date to be announced), we plan on fully deprecating PostgreSQL 9.4.
We highly recommend upgrading to PostgreSQL version 10+. Please follow the instructions under the Upgrading Section within the PostgreSQL documentation.
/leave failed to leave the channel.in: search modifier for Guest Accounts.Guest tags were not shown in Group Message channel header./me messages weren't formatted in the right-hand side.react-native-mmkv-storage in https://github.com/mattermost/mattermost-mobile.redux-action-buffer in https://github.com/mattermost/mattermost-mobile.redux-reset in https://github.com/mattermost/mattermost-mobile.serialize-error in https://github.com/mattermost/mattermost-mobile.GET /api/v4/users/known to get the list of user IDs of users with any direct relationship with a user. That means any user sharing any channel, including direct and group channels.GET /api/v4/teams/:team_id/channels no longer requires the list_team_channels permission.update_team_scheme Websocket Event.minio-go library. MM-24388Release day: 2020-04-16
Mattermost v5.22.0 contains a low level security fix. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
Props field in the model.Post structure has been deprecated. The available GetProps() and SetProps() methods should now be used. Also, direct copy of the model.Post structure must be avoided in favor of the provided Clone() method.If you upgrade from a release earlier than 5.21, please read the other Important Upgrade Notes.
Ctrl/⌘ + Alt + Up/Down and switch to a specific team using Ctrl/⌘ + Alt + #.ReleaseNotesURL.Enable Email Notifications and Require Email Verification were disabled in the System Console.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
EnableOpenTracing, to enable a Jaeger client to be instantiated and used to trace each HTTP request as it goes through App and Store layers.IdleTimeout, to set an explicit idle timeout in the HTTP server.ExperimentalChannelSidebarOrganization, to enable accessing the experimental channel sidebar feature set.NotificationLogSettings in config.json:
SMTPServerTimeout, to enable the maximum amount of time (in seconds) allowed for establishing a TCP connection between Mattermost and the SMTP server, to be idle before being terminated.DirectoryId object, to enable the ID of the application's AAD directory.ExperimentalAuditSettings object, to enable the audit settings to output audit records to syslog (local or remote server via TLS) and/or to a local file.core-js in https://github.com/mattermost/mattermost-redux.@types/redux-mock-store in https://github.com/mattermost/mattermost-webapp.react-beautiful-dnd in https://github.com/mattermost/mattermost-webapp.react-native-hw-keyboard-event in https://github.com/mattermost/mattermost-mobile.react-native-v8 in https://github.com/mattermost/mattermost-mobile.jsc-android from https://github.com/mattermost/mattermost-mobile.GET api/v4/channels/:channels/moderations and PUT api/v4/channels/:channels/moderations/patch to support channel moderation settings.PUT api/v4/commands/move endpoint to move a command to another team.GET api/v4/commands endpoint to retrieve a command by id.channel_scheme_updated Websocket Event./leave fails to leave channel on webapp and crashes the Android app.Release day: 2020-03-16
Mattermost v5.21.0 contains low level security fixes. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
Enable Email Notifications and Require Email Verification are disabled in the System Console.PluginSettings.Enable = false, and LogSettings.EnableDiagnostics = true.Mattermost v5.20.0 contains a low level security fix. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
config.json will no longer install automatically, but can continue to be installed via the plugin marketplace.If you upgrade from a release earlier than 5.19, please read the other Important Upgrade Notes.
mmctl, a CLI tool that mimics the Mattermost CLI tool and ships inside Mattermost.webhook move for moving outgoing webhooks.plugins to the list of words that a team URL cannot start with.Not Found error.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
SamlSettings in config.json:
IdpMetadataUrl, to add the URL where Mattermost sends a request to obtain setup metadata from the provider.EnableAdminAttribute and AdminAttribute, to add the attribute in the SAML Assertion for designating System Admins.LdapSettings in config.json:
EnableAdminFilter and AdminFilter, to enter a filter to use for designating the System Admin role to users.PluginSettings in config.json:
EnableRemoteMarketplace, to have the server attempt to connect to the configured Plugin Marketplace to show the latest plugins.AutomaticPrepackagedPlugins, so that any pre-packaged plugins enabled in the configuration will be installed or upgraded automatically.@formatjs/intl-pluralrules in https://github.com/mattermost/mattermost-webapp.@formatjs/intl-relativetimeformat in https://github.com/mattermost/mattermost-webapp.custom-protocol-detection in https://github.com/mattermost/mattermost-webapp.react-inlinesvg in https://github.com/mattermost/mattermost-webapp.Bots.LastIconUpdate column.GroupTeams.SchemeAdmin column.GroupChannels.SchemeAdmin column.PUT /config/patch REST API endpoint that uses patch semantics to only update the fields of the config that are provided, while leaving the other fields unchanged.POST /server_busy, GET /server_busy and DELETE /server_busy REST API endpoints to add the ability to turn off non-critical services when under load.channel_restored Websocket Event.Enable Email Notifications and Require Email Verification are disabled in the System Console.abdusabri, aeomin, agarciamontoro, AGMETEOR, agnivade, ali-farooq0, allenlai18, amyblais, andylibrian, anidok, AninditaBasu, anon6789, asaadmahmood, ashishbhate, atulya-pandey, avasconcelos114, bbodenmiller, bolariin, bpietraga, bradjcoughlin, c-yan, calebroseland, catalintomai, CEOehis, chikei, ChrisDobby, chuttam, cjohannsen81, comharris, cpanato, crspeller, ctmusicnz, davidjwilkins, DE-mbecker, deanwhillier, der-test, devinbinnie, dlclark, dra, DSchalla, emilioicai, enahum, enelson720, enolal826, esdrasbeleza, ethervoid, faase, flexo3001, fm2munsh, gabrieljackson, gigawhitlocks, gopheros, grubbins, gruceqq, gsagula, gupsho, hahmadia, hanzei, hector2, hectorskypl, hmhealey, hunterlester, ikeohachidi, imisshtml, iomodo, isacikgoz, itao, jasonblais, jasonlanderson, jaydeland, jespino, jfrerich, jomaxro, josephbaylon, JtheBAB, jupenur, justinegeffen, JustinReynolds-MM, jwilander, kaakaa, karlmarxlopez, Kaya_Zeren, khos2ow, kosgrz, larkox, lawikip, Lena, levb, lfbrock, lieut-data, lindalumitchell, lindy65, lukewest, lurcio, M-ZubairAhmed, marianunez, meilon, metanerd, mgdelacroix, michaelschiffmm, mickmister, migbot, mitchellroe, mjthomp95, mkraft, mlongo4290, nadalfederer, natalie-hub, niklabh, NiroshaV, nmlc, opllama2, phillipahereza, Pomyk, popstr, RajatVaryani, rajudev, rascasoft, rbradleyhaas, reflog, rodcorsi, rvillablanca, RyanCommits, saturninoabril, sbishel, scottjr632, sij507, somenet, sowmiyamuthuraman, streamer45, stylianosrigas, sudheerDev, svelle, tasdomas, thapakazi, thefactremains, themaverikk, thePanz, TQuock, uhlhosting, vesari, VishalSwarnkar, wget, wiersgallak, wiggin77, Willyfrog, xalkan
Mattermost v5.19.0 contains low to high level security fixes. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
Props field in the model.Post structure has been deprecated. To avoid crash issues, the available GetProps() and SetProps() methods should now be used. Also, direct copy of the model.Post structure must be avoided in favor of the provided Clone() method. MM-21378LockTeammateNameDisplay setting was moved to Enterprise Edition E20 as it was erroneously available in Team Edition and Enterprise Edition E10.If you upgrade from a release earlier than 5.18, please read the other Important Upgrade Notes.
<enter> in code block saved the post automatically instead of adding a newline.IsTrusted configuration can only be changed if the user has the manage_system permission.aaronrothschild, abdusabri, abhisek, aeomin, AGMETEOR, agnivade, ali-farooq0, allenlai18, alxsah, amyblais, anidok, AninditaBasu, asaadmahmood, ashishbhate, avegrv, benbhall, bpietraga, bradjcoughlin, calebroseland, catalintomai, chikei, ChrisDobby, comharris, cpanato, cpoile, crspeller, darkestofdans, der-test, devinbinnie, DSchalla, enahum, ethervoid, faase, fm2munsh, gabrieljackson, gigawhitlocks, gopheros, gruceqq, gsagula, gupsho, hahmadia, hannaparks, hanzei, hectorskypl, hmhealey, icelander, igomonov88, ilgooz, imisshtml, iomodo, isacikgoz, jasonblais, jaydeland, jespino, jfrerich, jimiolaniyan, JtheBAB, justinegeffen, jwilander, kaakaa, Kaya_Zeren, kop, kosgrz, larkox, Lena, lenucksi, levb, lieut-data, lindalumitchell, lurcio, M-ZubairAhmed, MariadeAnton, marianunez, mavegaf, meilon, metanerd, mgdelacroix, michaelschiffmm, mickmister, migbot, mkraft, mlongo4290, Mycobee, nadalfederer, natalie-hub, nevyangelova, nick-brady, phillipahereza, Pomyk, RajatVaryani, ramkumarvenkat, reflog, renilJoseph, rodcorsi, saneletm, saturninoabril, sbishel, sij507, smacgregor, src-r-r, srkgupta, streamer45, stylianosrigas, sudheerDev, sunsingerus, svelle, themaverikk, thePanz, tomasmik, TQuock, uhlhosting, valentijnnieman, wget, wiersgallak, wiggin77, Willyfrog, zujko
Mattermost v5.18.0 contains low to high level security fixes. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
user_updated event did not reach a guest user. MM-21481mattermost-server was changed to comply with the Go module version specification. Developers using Go modules with mattermost-server as a dependency must change the module and import paths to github.com/mattermost/mattermost-server/v5 when upgrade this dependency to v5.18. See https://go.dev/blog/v2-go-modules for further information.Team.InviteId from the related Websocket event and sanitized it on all team API endpoints for users without invite permissions.PUT /channels/{channel_id} API endpoint. The new PUT /channels/{channel_id}/privacy endpoint should be used for that purpose.If you upgrade from a release earlier than 5.17, please read the other Important Upgrade Notes.
/logs API endpoint.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
TeamSettings:
LockTeammateNameDisplay to add support for System Administrators to control Teammate Name Display at the system level.LdapSettings:
GuestFilter to be able to enter an AD/LDAP Filter to use when searching for external users who have Guest Access to Mattermost.SamlSettings:
SignatureAlgorithm to be able to choose a signature algorithm used to sign the request.CanonicalAlgorithm to be able to choose the canonicalization algorithm.GuestAttribute to add support for entering the attribute in the SAML Assertion used to apply a guest role to users.PluginSettings:
RequirePluginSignature to add support for requiring valid plugin signatures before starting managed or unmanaged plugins.SignaturePublicKeyFiles to add support for specifying public keys to be trusted to validate plugin signatures in addition to the Mattermost plugin signing key built-into the server.id_loaded to add an option for full message content being fetched from the server on receipt (Available in Enterprise Edition E20).ServiceSettings:
ExperimentalLdapGroupSync setting.@types/highlight in https://github.com/mattermost/mattermost-webapp.@typescript-eslint/parser in https://github.com/mattermost/mattermost-webapp.@react-native-community/cameraroll in https://github.com/mattermost/mattermost-mobile.@sentry/react-native in https://github.com/mattermost/mattermost-mobile.form-data in https://github.com/mattermost/mattermost-mobile.react-native-fast-image in https://github.com/mattermost/mattermost-mobile.react-navigation-stack in https://github.com/mattermost/mattermost-mobile.redux-offline in https://github.com/mattermost/mattermost-mobile.search_archived API endpoint to be able to search archived channels.post_unread API endpoint to be able to set posts as unread.3mard, a8uhnf, aaronrothschild, abdusabri, aeomin, AGMETEOR, agnivade, akshaychhajed, ali-farooq0, allenlai18, alxsah, amyblais, andresoro, anindha, AninditaBasu, arjitc, asaadmahmood, ashishbhate, avasconcelos114, bradjcoughlin, brewsterbhg, bvineyar, cardoso, catalintomai, chapa, chetanyakan, chikei, chuttam, cinlloc, cjohannsen81, cometkim, comharris, cpanato, cpoile, cpurta, crspeller, deanwhillier, der-test, devinbinnie, DHaussermann, drekar, DSchalla, enahum, enolal826, ethervoid, etoaster, FlaviaBastos, fm2munsh, focusonmx, g3rv4, gabrieljackson, gigawhitlocks, goku321, gruceqq, grundleborg, gupsho, hahmadia, hanzei, harshilsharma63, hectorskypl, HilalNazli, hmhealey, icelander, ilgooz, imisshtml, iomodo, ishanray, ivanvc, jabshire, jasonblais, jaydeland, jespino, jfrerich, jgbaylon, jimiolaniyan, johnthompson365, joshuabezaleel, jozuenoon, justinegeffen, jwilander, kaakaa, kanozec, karlmarxlopez, Kaya_Zeren, kdenz, kosgrz, KuSh, larkox, last-partizan, Lena, levb, lieut-data, lindalumitchell, M-ZubairAhmed, m4ver1k, malaDev, manland, marianunez, MathewtheCoder, meilon, mgdelacroix, michaelschiffmm, mickmister, migbot, mkraft, mlongo4290, natalie-hub, nathanmkaya, niklabh, nrekretep, Pomyk, pqzx, pradeepmurugesan, promulo, PunitGr, r4zorgeek, RajatVaryani, reflog, rfoyard, rodcorsi, rvillablanca, SamWolfs, saneletm, saturninoabril, sbishel, scottleedavis, Sheshagiri, sij507, sphr, srkgupta, sstaszkiewicz-copperleaf, steevsachs, streamer45, stylianosrigas, sudheerDev, sunsingerus, svelle, thePanz, TonPC64, TQuock, uhlhosting, unlikelygeek, valentijnnieman, ventz, vinicio, wget, wiersgallak, wiggin77, Willyfrog, wlsf82, YuikoTakada
Mattermost v5.17.0 contains medium to high level security fixes. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
@all notification was still sent to all users when using TAB to press Cancel on the notification prompt./code was rendering HTML incorrectly.api/v4/websocket with a trailing slash./subpath and resulted in a 404 error.A setting option was added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
EnableLatex to add an option to enable/disable rendering of latex code.a-arias, A-Hilaly, a8uhnf, aaronrothschild, abadojack, abdusabri, abelharisov, aeomin, AGMETEOR, agnivade, agusl88, akantsevoi, akpark, akshaychhajed, aladhims, ali-farooq0, amyblais, ananichev, anchepiece, andresoro, anindha, aqche, arjitc, asaadmahmood, avasconcelos114, bensooraj, boonwj, bradjcoughlin, brewsterbhg, bryanculver, catalintomai, cedrickring, chahat-arora, chikei, ChrisDobby, chuttam, cinlloc, codevbus, comharris, cpanato, cpoile, crspeller, CSBatchelor, dailos2coders, DaKeiser, deanwhillier, dedifferentiator, der-test, devinbinnie, DHaussermann, dnguy078, drekar, DropNib, enahum, esethna, FlaviaBastos, gabrieljackson, gfelixc, gigawhitlocks, goku321, gruceqq, grundleborg, guigui64, gupsho, hahmadia, hanzei, hector2, hectorskypl, HelioStrike, heowc, hmhealey, hypnoglow, iDevoid, imavroukakis, imisshtml, iomodo, isacikgoz, italolelis, iwataka, jairojj, jasminexie, jasonblais, jatinjtg, JeewhanR, jesperhansen17, jespino, jfrerich, jkl5616, joebordes, johnthompson365, jordeguevara, jorgeruvalcaba, josephk96, JosephSamela, joshuabezaleel, jozuenoon, JtheBAB, justinegeffen, jwilander, kaakaa, karanrn, karlmarxlopez, kashifsoofi, Kaya_Zeren, kethinov, kgeorgiou, larkox, laurapareja, Lena, levb, lieut-data, lindalumitchell, LK4D4, lucianomagrao, Lumexralph, lurcio, malaDev, manland, marianunez, mauricio, MayMeow, mbluemer, meilon, Menelion, mgdelacroix, mhartenbower, mickmister, migbot, mistikel, mjthomp95, mkraft, mlongo4290, Mrigank11, Muscaw, Mycobee, nfriend, nicnicknicky, niklabh, njkevlani, octoquad, oksmelnik, pbitty, Pensu, phillipahereza, Phizzard, pikami, Pomyk, pqzx, pradeepmurugesan, ptisserand, pushkyn, raghuiamsingh, RajatVaryani, reflog, rfoyard, rodcorsi, rohanjulka19, rv404674, sahilsharma011, SamWolfs, sascha-andres, saturninoabril, sbishel, scottleedavis, sdesani, SezalAgrawal, shahbour, Sheshagiri, simonfrey, simross, sourabkumarkeshri, sowmiyamuthuraman, srkgupta, steevsachs, stefan-malcek, streamer45, stylianosrigas, sudheerDev, svelle, tgkouras, thekiiingbob, thePanz, ThiefMaster, tpaschalis, uhlhosting, Vaelor, valentijnnieman, vdepatla, VictorAvelar, wget, wiersgallak, willdot, Willyfrog, wyze, xrav3nz
Mattermost v5.16.0 contains a low level security fix. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
UserTeamMemberships in bulk exports.SendEmailNotifications is set to false.integrity CLI command to verify database integrity.radio type in interactive dialogs./leave slash command was not working on direct message channels.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
PluginSettings:
EnableMarketplace (default to true) and MarketplaceUrl (default to https://marketplace.integrations.mattermost.com), to enable Plugin Marketplace feature.GuestAccountsSettings:
Enable, AllowEmailAccounts, EnforceMultifactorAuthentication, and RestrictCreationToDomains, to enable Guest Accounts feature.SqlSettings.DataSource, ElasticsearchSettings.ConnectionUrl, and EmailSettings.SMTPServer to default to using localhost (instead of dockerhost).NativeAppSettings.AppDownloadLink to default to https://mattermost.com/download/#mattermostApps (instead of https://mattermost.com/download/).react-native-android-open-settings in https://github.com/mattermost/mattermost-mobile.react-native-haptic-feedback in https://github.com/mattermost/mattermost-mobile.DefinitelyTyped in https://github.com/mattermost/mattermost-webapp.node-semver in https://github.com/mattermost/mattermost-webapp.regenerator in https://github.com/mattermost/mattermost-webapp.typescript in https://github.com/mattermost/mattermost-webapp.GET /plugins/marketplace API endpoint added to list marketplace plugins.PUT /channels/:channel_id/privacy API endpoint to update the privacy of a channel.POST /site_url/test to test API endpoint to test the configured site URL.POST /teams/:team_id/invite-guests/email API endpoint to invite guest users by email.POST /users/:user_id/promote and POST /users/:user_id/demote API endpoints to promote and demote users to guest accounts.PUT /channels/:channel_id/patch API endpoint to ensure that the requestor user has permission to see each channel member.GET /channels/:channel_id/stats API endpoint to include the pinned post and guest counts.PUT /roles/:role_id/patch API endpoint now ensures that guest account roles are not updatable without the required license and feature SKU.Tokens table Extra column's data type.@all notification is still sent to all users when using TAB to press Cancel on the notification prompt.a-arias, aaronrothschild, abdusabri, adarj, aeomin, AGMETEOR, agusl88, ali-farooq0, amyblais, aneeeshp, ankitrgadiya, anuragbhd, arjitc, arshchimni, asaadmahmood, avasconcelos114, bradjcoughlin, cardoso, carlosasj, chikei, chuttam, comharris, cpanato, cpoile, crspeller, DarrellRichards, deanwhillier, der-test, devinbinnie, dhadiseputro, DHaussermann, enahum, esdrasbeleza, esethna, freerider7777, gabrieljackson, gigawhitlocks, gruceqq, grundleborg, hanzei, hector2, hectorskypl, hmhealey, hvhallmann, imisshtml, iomodo, it33, janvt, jasonblais, jespino, jfrerich, jkl5616, justinegeffen, jwilander, kaakaa, Kaya_Zeren, Lena, levb, lfbrock, lieut-data, lindalumitchell, lindy65, liusy182, Lumexralph, lurcio, manland, marianunez, MatthewDorner, mcrwfrd, meilon, metanerd, mgdelacroix, mickmister, migbot, mjthomp95, mkraft, mlongo4290, nfriend, niklabh, OCram85, paddatrapper, patrickkang, pbitty, phillipahereza, QamarFarooq, RajatVaryani, reflog, renilJoseph, rodcorsi, rohanjulka19, rvillablanca, saturninoabril, sbishel, scottleedavis, Selimix, sij507, sowmiyamuthuraman, srkgupta, stoerchl, streamer45, stylianosrigas, sudheerDev, tejashreecd, tekminewe, tgkouras, thekiiingbob, thePanz, threepwood-mm, tnir, ulhosting, valentijnnieman, wget, wiersgallak, Willyfrog, yuya-oc
Mattermost v5.15.0 contains low level security fixes. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
EnableSVGs set to false.ExperimentalStrictCSRFEnforcement is set to True, attempts to use /jira subscribe fail.on: before: and after: were used in search. MM-18143Mattermost v5.14.0 contains a medium level security fix. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
GoogleSettings.Scope config.json setting is set to profile email and UserAPIEndpoint setting should be set to https://people.googleapis.com/v1/people/me?personFields=names,emailAddresses,nicknames,metadata per updated documentation.If you upgrade from a release earlier than 5.13, please read the other Important Upgrade Notes.
+ and . in System Console > Customization > Posts > Custom URL Schemes.EnableWebhookDebugging now logs the request id for additional context when debugging.MessageWillBePosted hook. Dismissed posts no longer show up as a client-side error.LinkMetadata value so that links can generate OpenGraph previews and be stored in the database.default.json.BindAddress and AdvertiseAddress in the cluster server to allow users to configure properly in situations where the servers are communicating through another server using NAT.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ClusterSettings in config.json:
NetworkInterface to allow configuring devices to detect the IP in High Availability clusters.BindAddress and AdvertiseAddress to add more control over bind and advertising address in a cluster server.ComplianceSettings in config.json:
SignRequest to add support for signing SAML requests.PluginSettings in config.json:
AllowInsecureDownloadUrl to allow servers to download and install a plugin from a remote url via the System Console.core-js in https://github.com/mattermost/mattermost-mobile/.deepmerge in https://github.com/mattermost/mattermost-mobile/.react-native-bottom-sheet from https://github.com/mattermost/mattermost-mobile/.react-hot-loader in https://github.com/mattermost/mattermost-webapp.@babel/polyfill from https://github.com/mattermost/mattermost-webapp.redux-persist-transform-filter from https://github.com/mattermost/mattermost-webapp.url-search-params-polyfill from https://github.com/mattermost/mattermost-webapp.whatwg-fetch from https://github.com/mattermost/mattermost-webapp.api/v4/channels/group/search API endpoint to return the group channels whose members' usernames match the search term./api/v4/channels/:channel_id/members_minus_group_members API endpoint to determine users who will be removed from a group-synchronized channel.api/v4/posts/unread API endpoint to support landing on the last unread post.api/v4/teams/:team_id/members_minux_group_members API endpoint to determine users who will be removed from a group-synchronized team.api/v4/users/group_channels API endpoint to get an object containing a key per group channel id in the query and its value as a list of users members of that group channel.api/v4/sessions/revoke/all API endpoint to add the ability to revoke sessions from all users.GetBotIconImage, SetBotIconImage and DeleteBotIconImage API endpoints to control bot icon images.api/v4/plugins/install_from_url API endpoint to allow server to download and install a plugin from a remote url.Mattermost v5.13.0 contains low level security fixes. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
/rename was restricted to 22-character maximum channel name length._ with elasticsearch autocomplete enabled.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ElasticsearchSettings in config.json:
SkipTLSVerification to ignore certificate verification for Elasticsearch.moment-timezone in https://github.com/mattermost/mattermost-redux/.plugins type entries in the Jobs table will be purged on upgrade. This job was incorrectly configured to run every minute, spamming the table with mostly useless records. All old records will be removed on upgrade, and the job will run daily instead.w.WriteHeader(0).Mattermost v5.12.0 contains low to medium level security fixes. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
DeleteEphemeralMessage plugin API, update it to accept a postId string parameter. See documentation to learn more.ExperimentalEnablePostMetadata setting was removed. Post metadata, including post dimensions, is now stored in the database to correct scroll position and eliminate scroll jumps as content loads in a channel.If you upgrade from a release earlier than 5.11, please read the other Important Upgrade Notes.
@ for full name display in push notifications.command modify CLI command to modify slash commands.mattermost user convert --bot CLI command to convert user accounts to bot accounts.config migrate for migrating configuration to and from the database.group team enable to add the ability to switch a team to be group-constrained.group team disableto add the ability to disable group constraint on the specified team.group team list to list the groups associated with a team.group team status to show the group constraint status of the specified team.group channel enable to add the ability to switch a channel to be group-constrained.group channel disable to disable group constraint on the specified channel.group channel list to list the groups associated with a channel.group channel status to show the group constraint status of the specified channel.settings_schema value.ExperimentalPrimaryTeam config.json setting no longer hid the "Leave Team" option.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
"PluginSettings": in config.json:
"EnableHealthCheck": true, to ensure all plugins are periodically monitored, and restarted or deactivated based on their health status."NotificationLogSettings": in config.json:
"EnableConsole": true, "ConsoleLevel": "DEBUG", "ConsoleJson": true, "EnableFile": true, "FileLevel": "INFO", "FileJson": true, and "FileLocation": "", to implement a structured logger to keep track of push notifications."ServiceSettings": in config.json:
"EnableBotAccountCreation": false to enable bot account creation."DisableBotsWhenOwnerIsDeactivated": true to disable bots automatically when the owner is deactivated."TrustedProxyIPHeader": [], to explicitly define which IP headers are trusted.SchemeGuest column added to the TeamMembers table.SchemeGuest column added to the ChannelMembers table.DefaultTeamGuestRole column added to the Schemes table, and set to an empty string.DefaultChannelGuestRole column added to the Schemes table, and set to an empty string.getGroupsByChannel and GetGroupsByTeam to retrieve groups by team and by channel.group_constrained API to both /users and /users/search endpoints to be able to limit users listed to those allowed by group-constraints.GetGroups API endpoint to retrieve lists of groups with searching, pagination, and member counts.KVCompareAndSet(key string, old []byte, new []byte) to Plugin API to add support for transactional semantics with KV Store in plugin framework.w.WriteHeader(0).Mattermost v5.11.0 contains low level security fixes. Upgrading is recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
Update.Props == nil to clear Props, this will no longer work in 5.11+. Instead, use Update.Props == {} to clear properties. This change was made because Update.Props == nil unintentionally cleared all Props, such as the profile picture, instead of preserving them.If you upgrade from a release earlier than 5.10, please read the other Important Upgrade Notes.
Thank you to everyone who contributed to the Mattermost project in April 2019!
aeomin, akrfjmt, ali-farooq0, amyblais, andresoro, asaadmahmood, BotKube, bradjcoughlin, bytemine GmbH, chikei, cometkim, comharris, CooperAtive, coreyhulen, courtneypattison, cpanato, cpoile, crspeller, csduarte, d28park, danmaas, deanwhillier, der-test, DHaussermann, DSchalla, enahum, esethna, fcorrea, gabrieljackson, gnufede, gruceqq, grundleborg, hanzei, happygaijin, harshilsharma, hectorskypl, Herzum, hmhealey, it33, jasonblais, jespino, jfrerich, johnbellone, johnthompson365, JVasky, jwilander, kaakaa, Kaya_Zeren, kingisaac95, kmandagie, kosgrz, Lena, levb, lfbrock, lieut-data, lindalumitchell, liusy182, ljmccaff, Mario-Hofstaetter, meilon, mgdelacroix, mickmister, migbot, mkraft, mlongo4290, MParvin, mstoli, ninanung, oliverJurgen, PeterDaveHello, prapti, reflog, rodcorsi, RyPoints, s4kh, sapnasivakumar, saturninoabril, scottleedavis, Sheshagiri, stylianosrigas, sudheerDev, svelle, tengis617, thekiiingbob, thePanz, thepill, therealpuneeth20, ThiefMaster, torgeirl, tylarb, ulhosting, wget, wiersgallak, z4cco
Mattermost v5.10.0 contains medium to high level security fixes. Upgrading is highly recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
SupportedTimezonesPath setting in config.json and changes to timezones in the UI based on the timezones.json file was removed. This was made to support storing configurations in the database.If you upgrade from a release earlier than 5.9, please read the other Important Upgrade Notes.
config.json in the database, improving the system console experience on read-only filesystems. Storing the configuration in the database is optional, as the existing config.json remains fully supported.command show to allow seeing detailed information of a slash command.webhook show to allow seeing detailed information of a webhook.team rename to allow renaming teams.channel search to allow searching for channels.SessionLengthWebInDays from 30 to 180 days.List_Public_Teams, Join_Public_Teams, List_Private_Teams and Join_Private_Teams permissions.migrate_auth command did not work with valid license file.timezones.json in favour of the existing hard-coded list built into the server.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
"ExperimentalSettings": in config.json:
"RestrictSystemAdmin": false, to optionally constrain even system admins from changing critical settings."ServiceSettings": in config.json:
"MinimumHashtagLength": 3, to add the ability to change the minimum length of hashtags.GetUsers API method to add the ability to list users.POST /bots to create a bot accounts.PUT /bots/{bot_user_id} to partially update a bot by providing only the fields you want to update.GET /bots/{bot_user_id} to get a bot specified by its bot id.GET /bots to get a page of a list of bots.POST /bots/{bot_user_id}/disable to disable a bot.POST /bots/{bot_user_id}/enable to enable a bot.POST /bots/{bot_user_id}/assign/{user_id} to assign a bot to the specified user.SearchPostsInTeam method to add the ability to search posts in a team.GetTeamMembersForUser and GetChannelMembersForUser to add the ability to get team and channel members for a specific user.GetBundleInfo() string method to add the ability to store assets elsewhere.CreateBot(bot *model.Bot) (*model.Bot, *model.AppError) to create the given bot and corresponding user.PatchBot(botUserId string, botPatch *model.BotPatch) (*model.Bot, *model.AppError) to apply the given patch to the bot and corresponding user.GetBot(botUserId string, includeDeleted bool) (*model.Bot, *model.AppError) to return the given bot.GetBots(options *model.BotGetOptions) ([]*model.Bot, *model.AppError) to return the requested page of bots.UpdateBotActive(botUserId string, active bool) (*model.Bot, *model.AppError) to mark a bot as active or inactive, along with its corresponding user.PermanentDeleteBot(botUserId string) *model.AppError to permanently delete a bot and its corresponding user.Bots table was added.Thank you to everyone who contributed to the Mattermost project in March 2019!
Mattermost v5.9.0 contains low to medium level security fixes. Upgrading is highly recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
config.json is set to true and multi-factor authentication is enabled, ensure your users have upgraded to mobile app version 1.17 or later. Otherwise, users who have MFA enabled may not be able to log in successfully. See Important Upgrade Notes for more details.If you upgrade from another release than 5.8, please read the Important Upgrade Notes.
Recently Used cleared entirely after logging out and back in.en on server startup.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
false by default. See Important Upgrade Notes for more details."ServiceSettings" in config.json:
"DisableLegacyMFA": false, to keep the legacy checkMfa endpoint enabled to support mobile versions 1.16 and earlier. See Important Upgrade Notes for more details.Thank you to everyone who contributed to the Mattermost project in February 2019!
adzimzf, aeomin, amyblais, asaadmahmood, aswathkk, awbraunstein, bbodenmiller, BK1603, bradjcoughlin, chikei, cometkim, comharris, courtneypattison, cpanato, cpoile, crspeller, csduarte, danmaas, dannymohammad, deanwhillier, der-test, DHaussermann, dom3k, dos1701, DSchalla, ejachang, enahum, esethna, fcorrea, gabrieljackson, gruceqq, gupsho, hannaparks, hanzei, hectorskypl, hmhealey, icelander, it33, jasonblais, jdillard, jespino, jfcastroluis, jfrerich, JtheBAB, jwilander, kaakaa, Kaya_Zeren, kosgrz, koukouloforos, kscheel, Lena, levb, lieut-data, lindalumitchell, manland, maruTA-bis5, meilon, mgdelacroix, migbot, MirlanMaksv, mkraft, mlongo4290, onnadi-work, patniharshit, pichouk, R-Wang97, Robbe7730, rodcorsi, sadohert, sandlis, sanojsubran, saturninoabril, staabm, sudheerDev, svelle, tauu, thedingwing, thePanz, ulhosting, wget, wiersgallak, yuya-oc, zetaab
Mattermost v5.8.0 contains low to high level security fixes. Upgrading is highly recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
AllowUntrustedInternalConnections setting. See documentation for more details if you have trouble loading images.If you upgrade from another release than 5.7, please read the Important Upgrade Notes.
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
"ServiceSettings" in config.json:
"ExperimentalLdapGroupSync": false, to add support for experimental LDAP Group Sync feature."LdapSettings" in config.json:
"GroupFilter": "", "GroupDisplayNameAttribute": "" and "GroupIdAttribute": "", to add the ability to configure group display name and unique identifier."ImageProxySettings": in config.json:
"Enable": true,, "ImageProxyType": "local",, "RemoteImageProxyURL": "", and "RemoteImageProxyOptions": "", to allow integrating image proxy into the server and switching it on by default."ExperimentalSettings": in config.json:
"LinkMetadataTimeoutMilliseconds": 5000 and "DisablePostMetadata": false, to enable post metadata by default.SearchTeams to plugin API to add the ability to search teams.GetTeamStats to plugin API to add the ability to get team statistics./api/v4/posts/ids/reactions API endpoint to get the bulk reactions for posts.UpdateUserActive to plugin API to allow updating user's status as active or inactive.GetFile to plugin to add the ability to get files.Thank you to everyone who contributed to the Mattermost project in January 2019!
adzimzf, aeomin, amorriscode, amyblais, ArchRoller, asaadmahmood, avasconcelos114, bradjcoughlin, chikei, cometkim, comharris, coreyhulen, cpanato, crspeller, csduarte, cvitter, danmaas, dannymohammad, deanwhillier, der-test, DHaussermann, dmamills, dom3k, DSchalla, dv29, enahum, esethna, gabrieljackson, grundleborg, hanzei, hmhealey, icelander, it33, ja11sop, jasonblais, jespino, JtheBAB, JustinReynolds-MM, jwilander, kaakaa, Kaya_Zeren, kosgrz, Lena, levb, lfbrock, lieut-data, lindalumitchell, lindy65, maruTA-bis5, meilon, mgdelacroix, mickmister, migbot, mkraft, mlongo4290, mollyyoung, nashik, nlowe, Ovski4, pichouk, pjgrizel, pradeepmurugesan, robert843, rodcorsi, rononline, ryoon, s4kh, sadohert, sapnasivakumar, saturninoabril, Sheshagiri, sonasingh46, sudheerDev, svelle, thePanz, tomocy, ulhosting, unigiriunini, wget, wiersgallak, yuya-oc, zeroimpl, zetaab
Mattermost v5.7.0 contains low to medium level security fixes. Upgrading is highly recommended. Details will be posted on our security updates page 30 days after release as per the Mattermost Responsible Disclosure Policy.
aeomin, akhilanandbv003, amyblais, andrewbanchich, ArchRoller, asaadmahmood, bezumkin, bradjcoughlin, chetanyakan, chikei, cometkim, comharris, cpanato, crspeller, csduarte, cvitter, danmaas, der-test, DHaussermann, DSchalla, enahum, esethna, grundleborg, hanzei, hmhealey, icelander, it33, ja11sop, jasonblais, jespino, johnthompson365, jwilander, kaakaa, kayazeren, kosgrz, Lena, letsila, levb, lfbrock, lieut-data, lindalumitchell, meilon, mickmister, migbot, mkraft, mlongo4290, mukulrawat1986, pichouk, pjgrizel, robert843, rodcorsi, rononline, ryoon, s4kh, saturninoabril, Schrooms, sudheerDev, svelle, thePanz, uhlhosting, vaithak, wget, wiersgallak, yakimant, yuya-oc
If you upgrade from another release than 5.5, please read the Important Upgrade Notes.
command create to create a custom slash command for a specified team.command delete to delete a slash command.command move to move a slash command to a different team.command list to list all commands on specified teams or all teams by default.config get to retrieve the value of a config setting by its name in dot notation.config set to set the value of a config setting by its name in dot notation.config show to print the current Mattermost configuration in an easy to read format.team archive to archive teams based on name.team search to search for teams based on name.webhook create-incoming to create incoming webhook within specific channel.webhook create-outgoing to create outgoing webhook within specific channel.webhook delete to delete a webhook.webhook list to list all webhooks for a team or across the server.webhook modify-incoming to modify existing incoming webhook by changing its title, description, channel or icon url.ExperimentalGroupUnreadChannels config.json setting, such as the ability to sort channels by recent messages.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
"ServiceSettings" in config.json:
"TLSMinVer": "1.2", "TLSStrictTransport": false, "TLSStrictTransportMaxAge": 63072000 and "TLSOverwriteCiphers": [], to configure TLS connection when not using a reverse proxy such as NGINX."ExperimentalSettings" in config.json:
"EnablePostMetadata": false, to disable post metadata from being loaded.GET /channels/{channel_id}/timezones to get a list of timezones for the users who are in the specified channel.page and per_page properties to POST /teams/{team_id}/posts/search call for Elasticsearch paging.DELETE /users/{user_id}/image to remove a user's profile picture.DELETE /brand/image to remove a custom branding image.POST /actions/dialogs/open and POST /actions/dialogs/submit to open and submit requests via interactive dialogs.GetTeamMembers(teamId string, offset, limit int) to GetTeamMembers(teamId string, page, perPage int) to be clearer and consistent with other APIsGetPublicChannelsForTeam(teamId string, offset, limit int) to GetPublicChannelsForTeam(teamId string, page, perPage int) to be clearer and more consistent with other APIsGetChannelsForTeamForUserGetChannelMembersGetChannelMembersByIdsGetChannelStatsGetEmojiGetEmojiByNameGetEmojiImageGetEmojiListGetPluginConfigSavePluginConfigGetPostsAfterGetPostsBeforeGetPostsSinceGetPostsForChannelGetPostThreadGetProfileImageSetProfileImageGetTeamsForUserGetTeamsUnreadForUserGetTeamIconSetTeamIconRemoveTeamIconGetUsersByUsernamesGetUsersInChannelGetUsersInChannelByStatusGetUsersInTeamCreateDirectChannelSearchChannelsSearchUsersGetFileLinkUploadFileSetProfileImageKVSetWithExpiryKVDeleteAllKVListExpireAt column to the PluginKeyValueStore table.UserTermsOfService.idx_users_email_lower, idx_users_username_lower, idx_users_nickname_lower, idx_users_firstname_lower and idx_users_lastname_lower indexes.aeomin, amorriscode, amyblais, ArchRoller, asaadmahmood, bbodenmiller, bd12, chclaus, chetanyakan, chikei, chrux, cobenash, cometkim, comharris, cpanato, crspeller, csduarte, danmaas, der-test, DSchalla, enahum, esethna, grundleborg, gupsho, gy741, hanzei, harshilsharma, hmhealey, icelander, it33, jasonblais, jespino, jlevesy, JustinReynolds-MM, jwilander, kaakaa, kayazeren, knrt10, letsila, lieut-data, lindalumitchell, lindy65, lisakycho, meilon, mickmister, mkraft, mlongo4290, mojicaj, murugesan, patniharshit, pichouk, pjgrizel, robert843, rodcorsi, rononline, ryoon, sandlis, saturninoabril, scottleedavis, sudheerDev, svelle, thePanz, ThiefMaster, torlenor, tuxfamily, uhlhosting, vaithak, waseem18, wget, wiersgallak, yuya-oc, zeroimpl, zetaab
aeomin, Akash4927, alexander-akhmetov, amogozov, amorriscode, amyblais, anchepiece, ArchRoller, asaadmahmood, avasconcelos114, Charliekenney23, charvp, chetanyakan, chikei, cjohannsen81, cobenash, cometkim, cored, coreyhulen, cpanato, crspeller, csduarte, cvitter, czertbytes, danmaas, der-test, DHaussermann, dos1701, enahum, esethna, florianeichin, fraziern, grundleborg, gupsho, gy741, hanzei, harshilsharma, harshilsharma, hmhealey, it33, jasimmons, jasonblais, JayaKrishnaNamburu, jespino, JtheBAB, JustinReynolds-MM, jwilander, kaakaa, kayazeren, KerryAlsace, klingtnet, knrt10, leblanc-simon, lfbrock, lieut-data, lindalumitchell, lindy65, lologarithm, MattMattV, meilon, mkraft, mlongo4290, mojicaj, mukulrawat1986, n7st, pichouk, pjgrizel, powhu, pradeepmurugesan, pushkyn, robert843, rodcorsi, rononline, ryoon, s4kh, SaashaJoshi, saturninoabril, SergeyShpak, sonasingh46, sudheerDev, thePanz, torlenor, tyvsmith, uhlhosting, uusijani, VPashkov, waseem18, wget, wiersgallak, yuya-oc
Release date: 2018-10-16
If you upgrade from another release than 5.3, please read the Important Upgrade Notes.
edit_others_posts as a permission setting for Team Edition.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
config.json:
"EnablePublicChannelsMaterialization": true, to increase channel search performance in the channel switcher (CTRL/CMD+K), channel autocomplete (~) and elsewhere in the UI.Description column was added to the OutgoingWebhooks table.Description column was added to the IncomingWebhooks table.AcceptedServiceTermsId column was added to the Users table.PublicChannels table was added.aeomin, amyblais, asaadmahmood, ArchRoller, avasconcelos114, balcsida, bezumkin, ccpaging, chetanyakan, chikei, cimfalab, cjbirk, cometkim, coreyhulen, cpanato, crspeller, cvitter, danmaas, der-test, DHaussermann, dmitrysamuylovpharo, DSchalla, enahum, esethna, FurmanovD, gramakri, greensteve, grundleborg, gvengel, hanzei, harshilsharma, hmhealey, jasonblais, jazzzz, jespino, jkurian, JustinReynolds-MM, jwilander, kaakaa, kayazeren, kongr45gpen, lfbrock, lieut-data, lindalumitchell, meilon, mikroskeem, mkraft, mlongo4290, n1aba, n7st, pichouk, pjgrizel, pkuhner, robert843, rodcorsi, ryoon, R-Wang97, saturninoabril, sudheerDev, tejasbubane, thawn, thePanz, ThiefMaster, uhlhosting, wget, xcompass, yuya-oc, zetaab
Mattermost v5.3.0 contains a high level security fix. Upgrading is highly recommended. Details will be posted on our security updates page 14 days after release as per the Mattermost Responsible Disclosure Policy.
If you upgrade from another release than 5.2, please read the Important Upgrade Notes.
IdAttribute setting for SAML, which allows SAML users to change their email address without losing their account.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
config.json:
"EnableSyncWithLdapIncludeAuth": false, to override the SAML ID attribute with the AD/LDAP ID attribute if configured, or override the SAML Email attribute with the AD/LDAP Email attribute if SAML ID attribute is not present. See the AD/LDAP documentation to learn more."IdAttribute": "", to set the attribute in the SAML Assertion that will be used to bind users from SAML to users in Mattermost.postId as a property for PostDropDownMenuComponent and as a parameter for the PostDropDownMenuAction function to improve the ability to add options to the post "..." action menu.FileInfo and file []byte to retrieve File Info for a specific fileId and to ensure the file is read for a specific path.GetLDAPUserAttributes, which matches the functionality of the ldapextras built-in plugin that was removed in Mattermst v5.2.aeomin, amyblais, ArchRoller, asaadmahmood, chikei, cometkim, comharris, coreyhulen, cpanato, crspeller, csduarte, dcherniv, der-test, DHaussermann, dmitrysamuylovpharo, DSchalla, enahum, esethna, grundleborg, gvengel, Hanzei, hmhealey, it33, jasonblais, jespino, Jessica-c53, JustinReynolds-MM, jwilander, kaakaa, kayazeren, lfbrock, lieut-data, lindalumitchell, lindy65, lisakycho, meilon, MerlinDMC, michaelkochub, mkraft, mlongo4290, n1aba, pichouk, pjgrizel, pradeepmurugesan, robert843, rodcorsi, rononline, rqtaylor, ryoon, R-Wang97, saturninoabril, sjstyle, sudheerDev, thePanz, ThiefMaster, uhlhosting, wget, wiersgallak, yuya-oc
ExperimentalViewArchivedChannels setting.If you upgrade from another release than 5.1, please read the Important Upgrade Notes.
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
config.json:
"CorsExposedHeaders": "", to add a whitelist of headers that will be accessible to the requester."CorsAllowCredentials": false, to allow requests that pass validation to include the Access-Control-Allow-Credentials header."CorsDebug": false, to print messages to the logs to help when developing an integration that uses CORS.config.json:
"ViewArchivedChannels": true, to allow users to share permalinks and search for content of channels that have been archived."ExperimentalDefaultChannels": "", to allow choosing the default channels every user is added to automatically after joining a new team.deleteReaction API was added to send the correct value for post.HasReactions.OutgoingWebhooks table, "Username" and "IconURL".aeomin, alanpog, Alexgoodman7, amyblais, archroller, asaadmahmood, burguyd, chikei, cometkim, comharris, coreyhulen, cpanato, crspeller, csduarte, der-test, DHaussermann, DSchalla, enahum, esethna, falcon78921, fdebrabander, grundleborg, herooftimeandspace, hmhealey, icelander, it33, jasonblais, jespino, Jessica-c53, JustinReynolds-MM, jwilander, kaakaa, kayazeren, kennethjeremyau, lfbrock, lieut-data, lindalumitchell, lindy65, meilon, mkraft, mlongo4290, pepf, pichouk, pietroglyph, pjgrizel, pradeepmurugesan, rodcorsi, Roy-Orbison, ryoon, santos22, saturninoabril, scherno2, seansackowitz, sudheerDev, tejasbubane, theblueskies, ThiefMaster, uhlhosting, uusijani, wget, wiersgallak, yuya-oc
mattermost export CLI command is renamed to mattermost export schedule. Make sure to update your scripts if you use this command.If you upgrade from another release than 5.0, please read the Important Upgrade Notes.
permissions reset CLI command able to reset all custom-role related data.permanent delete user CLI command is used, all files uploaded by the user are now deleted as well.export CLI command was updated to support scheduling exports via export schedule, and to export files in Actiance XML and CSV formats.config.json.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
config.json:
"ClientSideCertEnable": false,, to enable client-side certification for your Mattermost server."ClientSideCertCheck": "secondary", to control whether email and password are required following client-side certification.config.json:
"ExperimentalLimitClientConfig": false, to limit the number of config settings sent to users prior to login. Supported on mobile apps v1.10 and later."EnableGifPicker": false,, "GfycatApiKey": 2_KtH_W5, and "GfycatApiSecret": 3wLVZPiswc3DnaiaFoLkDvB4X0IV6CpMkj4tf2inJRsBY6-FnkT08zGmppWFgeof, to enable a built-in GIF integration with Gfycat."EnableEmailInvitations": false, to disable email invitations on the system.config.json:
"ConnMaxLifetimeMilliseconds": 3600000,, to configure the maximum lifetime for a connection to the database.matches field was added to POST teams/{team_id}/posts/search to return a list of matched terms within the post. This field will only be populated on servers running version v5.1 or greater with Elasticsearch enabled.Alexgoodman7, amyblais, AndersonWebStudio, asaadmahmood, Brodan, cjohannsen81, cometkim. comharris, coreyhulen, cpanato, crspeller, csduarte, cvitter, dmeza, DSchalla, enahum, esethna, evelikov, fbartels, greensteve, grundleborg, hmhealey, icelander, it33, jasonblais, jespino, jkurian, jwilander, kaakaa, kennethjeremyau, lfbrock, lieut-data, lindalumitchell, lisakycho, michaelgamble, mkraft, pichouk, Roy-Orbison, R-Wang97, saturninoabril, stanchan, sudheerDev,svelle, tejasbubane, ThiefMaster, wiersgallak, wildloop, yuya-oc
platform binary has been renamed to mattermost for a clearer install and upgrade experience. You should point your systemd service file at the new mattermost binary. All command line tools, including the bulk loading tool and developer tools, have also been renamed from platform to mattermost. Ticket #9985.config.json setting to whitelist types of protocols for auto-linking has been added. Ticket #9547.config.json setting to disable the permanent APIv4 delete team parameter has been added. The setting is off by default for all new and existing installs, except those deployed on GitLab Omnibus. A System Administrator can enable the API v4 endpoint from the config.json file. Ticket #9916.ExtraUpdateAt field has been removed from the channel model. Ticket #9739.If you upgrade from another release than 4.10, please read the Important Upgrade Notes.
/collapse command.update_status cluster event being sent thousands of times on restart of app servers.LoginIdAttribute to allow LDAP users to change their login ID without losing their account.EnableUserCreation was set to false when not included in config.json.config.json was set to true in config.json.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
"ServiceSettings": in config.json:
"EnableAPITeamDeletion": false, to disable the permanent APIv4 delete team parameter."ExperimentalEnableHardenedMode": false to enable a hardened mode for Mattermost that makes user experience trade-offs in the interest of security."EmailSettings": in config.json:
"EnablePreviewModeBanner": true, to allow Preview Mode banner to be displayed so users are aware that email notifications are disabled."ClusterSettings": in config.json:
"MaxIdleConns": 100, to add the maximum number of idle connections held open from one server to all others in the cluster."MaxIdleConnsPerHost": 128, to add the maximum number of idle connections held open from one server to another server in the cluster."IdleConnTimeoutMilliseconds": 90000 to add the number of milliseconds to leave an idle connection open between servers in the cluster."TeamSettings": in config.json:
"ExperimentalHideTownSquareinLHS": false, to hide Town Square in the left-hand sidebar if there are no unread messages in the channel."DisplaySettings": in config.json:
"CustomUrlSchemes": [],, to add a list of URL schemes that are used for autolinking in message text."LdapSettings": in config.json:
"LoginIdAttribute": "", to add an attribute in the AD/LDAP server used to log in to Mattermost.context.go was moved out of Api4 and into web.api4/handlers.go was created to create the API handlers using the Context and Handler from web.web/handlers.go was added to define the Handler struct, the base ServeHTTP function and a single web handler.channel_converted WebSocket event was added, which is published team-wide whenever a channel is converted from public to private.config.json file instead.aeomin, amyblais, AndersonWebStudio, asaadmahmood, balasankarc, chclaus, chikei, comharris, compilenix, coreyhulen, cpanato, crspeller, csduarte, cvitter, der-test, dkadioglu, DSchalla, enahum, esethna, fbartels, gnufede, grundleborg, haraldkubota, hmhealey, icelander, it33, jasonblais, jespino, jordanbuchman, jwilander, kaakaa, kayazeren, lfbrock, lieut-data, lindalumitchell, lindy65, lisakycho, meilon, mkraft, mlongo4290, odontomachus, pichouk, pjgrizel, rodcorsi, Roy-Orbison, ryoon, R-Wang97, saturninoabril, sudheerDev, thePanz, uturkdogan, wget, wiersgallak, yuya-oc
/invite slash command to invite users to a channel.config.json setting./platform team list command to list all teams on the server..Channels, Emoji and OAuthAccessData tables.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
"TeamSettings" in config.json:
"ExperimentalEnableAutomaticReplies": false, to allow users to set a custom message that will be automatically sent in response to Direct Messages."LogSettings" in config.json:
FileFormat and added "FileJson": true, and "ConsoleJson": true, to allow logged events to be written as a machine readable JSON format instead of the be printed as plain text.POST /channels/{channel_id}/convert was added to convert a channel from public to private and to restrict this setting to team_admin.DELETE /teams/{team_id}/image was added to remove team icon and restrict it to team_admin.Users Table:
AuthData to lowercase via "UPDATE Users SET AuthData=LOWER(AuthData) WHERE AuthService = 'saml'" query.Channels Table:
Name_2 index.Emoji Table:
Name_2 index.OAuthAccessData Table:
ClientId_2 index.The following deprecations are planned for the Mattermost v5.0 release, which is scheduled for summer/2018. This list is subject to change prior to the release.
platform binary will be renamed to mattermost for a clearer install and upgrade experience. All command line tools, including the bulk loading tool and developer tools, will also be renamed from platform to mattermost. Ticket #9985.config.json setting to whitelist types of protocols for auto-linking will be added. Ticket #9547.config.json setting to disable the permanent APIv4 delete team parameter will be added. The setting will be off by default for all new and existing installs, except those deployed on GitLab Omnibus. A System Administrator can enable the API v4 endpoint from the config.json file. Ticket #9916.ExtraUpdateAt field will be removed from the channel model. Ticket #9739.amyblais, AndersonWebStudio, antoineHC, asaadmahmood, Autre31415, cometkim, coreyhulen, cpanato, crspeller, csduarte, daanlevi, DSchalla, enahum, esethna, grundleborg, guydemi, hmhealey, icelander, iri-dw, it33, james-mm, jasonblais, jespino, jordanbuchman, jwilander, kethinov, koxen, lfbrock, lieut-data, lindalumitchell, lindy65, lisakycho, liusy182, Merlin2001, michaeltaylor-kerauno, mkraft, n1aba, pichouk, saturninoabril, stanchan, sudheerDev, tejasbubane, timconner, tomo667a, yuya-oc
AllowEditPost was set to "Always"./mute command, meaning that when a channel is muted, desktop, push and email notifications are not sent for the channel./general/logging section will now require a server restart before taking effect.ExperimentalTownSquareIsReadOnly is set to true, non-admins can no longer react to messages, pin messages or update channel information.Is Trusted option on OAuth 2.0 integrations./admin_console/users.To improve the production use of Mattermost with Docker, the docker image is now running a as non-root user and listening on port 8000. Please read the upgrade instructions for important changes to existing installations.
Several configuration settings have been migrated to roles in the database and changing their config.json values no longer takes effect. These permissions can still be modified by their respective System Console settings as before. The affected config.json settings are:
For a list of past and upcoming deprecated features, see the removed and deprecated features documentation for details.
The following deprecations are planned for the Mattermost v5.0 release, which is scheduled for summer/2018. This list is subject to change prior to the release.
platform binary will be renamed to mattermost for a clearer install and upgrade experience. All command line tools, including the bulk loading tool and developer tools, will also be renamed from platform to mattermost. Ticket #9985.config.json setting to whitelist types of protocols for auto-linking will be added. Ticket #9547.config.json setting to disable the permanent APIv4 delete team parameter will be added. The setting will be off by default for all new and existing installs, except those deployed on GitLab Omnibus. A System Administrator can enable the API v4 endpoint from the config.json file. Ticket #9916.ExtraUpdateAt field will be removed from the channel model. Ticket #9739.Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
MessageExportSettings in config.json:
"CustomerType": "A9", to allow selecting the type of Global Relay customer account the user's organization has."EmailAddress": "", to allow selecting the email address the user's Global Relay server monitors for incoming compliance exports. "SamlSettings" in config.json:
"ScopingIDPProviderId": "", to allow an authenticated user to skip the initial login page of their federated Azure AD server, and only require a password to log in."ScopingIDPName": "", to add the name associated with a user's Scoping Identity Provider ID.DisplaySettings" in config.json:
"ExperimentalTimezone": false, to allow selecting the timezone used for timestamps in the user interface and email notifications.Users Table:
Timezone column.Teams Table:
LastTeamIconUpdate column.Channels Table:
idx_channels_displayname index.amyblais, AndersonWebStudio, asaadmahmood, ccbrown, chclaus, chumbalum, cjohannsen81, CoolMoeDee, coreyhulen, cpanato, crspeller, csduarte, dmeza, enahum, esethna, gajananpp, GitHubJasper, gnufede, grundleborg, hmhealey, icelander, it33, james-mm, jasonblais, jespino, jwilander, kaakaa, koxen, letsila, lieut-data, lindalumitchell, lindy65, mkraft, moonmeister, MusikPolice, panditsavitags, philippe-granet, pichouk, qichengzx, Rudloff, R-Wang97, saturninoabril, stanchan, stephenkiers, sudheerDev, svelle, tejasbubane, thePanz, timconner, tomo667a, Vorlif, yuya-oc
DisplayName index on the Channels table.getRootPosts call.curl -F.per_paging for logs to 1000.ExtraUpdateAt field will be removed from the channel model in Mattermost v5.0.config.json values will no longer take effect. These permissions can still be modified by their respective System Console settings. The config.json settings to be migrated are:
For a list of past and upcoming deprecated features, see the removed and deprecated features documentation for details.
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
AllowCookiesForSubdomains, to ensure that the domain parameter is set for cookies, which allows the browser to send the cookies to subdomains as well.WebsocketURL, which allows the server to instruct clients where they should try to connect WebSockets to.EnableAPIV3 setting to false for new installs, as all API v3 endpoints have been deprecated and are scheduled for removal in Mattermost v5.0.POST /files to support requests with only the channel_id and filename defined as query parameters with the contents of a single file in the body of the request.Alexgoodman7, amyblais, AndersonWebStudio, andruwa13, asaadmahmood, avasconcelos114, billybrown1, ccbrown, chumbalum, cometkim, CoolTomatos, coreyhulen, cpanato, crspeller, csduarte, enahum, esethna, GitHubJasper, gnufede, grundleborg, hmhealey, icelander, it33, james-mm, jasonblais, jespino, jwilander, kaakaa, kemenaran, koxen, leblanc-simon, letsila, lfbrock, lieut-data, lindalumitchell, lindy65, lip-d, liusy182, lmikaellukerad, mkraft, moonmeister, MusikPolice, pichouk, rqtaylor, saturninoabril, stanchan, stephenkiers, tejasbubane, thePanz, torgeirl, Vaelor, vordimous, XinyueWang94, yuya-oc
DisplayName index on the Channels table.Failed to update ChannelMemberHistory table error messages in the log when a user joins or leaves a channel. Issue updates posted here.pngquant to remove unnecessary metadata from PNGs.ImageProxyType, ImageProxyURL, ImageProxyOptions, ensure that posts served to the client will have their markdown modified such that all images are loaded through a proxy.disabled with either default_off or default_on in config.json.Copy Link option for sidebar channels in the Desktop App.https://servername.com/messages/@username, letting users open a direct message with each other via URL.User.Position field to 128 characters to meet LDAP max length./header should not trigger confirmation modal.+:emoji: to react to the previous message.media.peerconnection.enabled setting in Firefox is set to false.Save in Rename Channel modal without changes did nothing.mentionKeys prop in post type plugins is now removed to fix case sensitive mention highlighting. Plugins can retrieve the mentionKeys prop from the store as needed./teams/{team_id} APIv4 endpoint is not removed as previously announced, given customer and community feedback.config.json values will no longer take effect. These permissions can still be modified by their respective System Console settings. The config.json settings to be migrated are:
For a list of past and upcoming deprecated features, see the removed and deprecated features documentation for details.
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
ServiceSettings in config.json:
"ImageProxyType": "", "ImageProxyOptions": "", and "ImageProxyURL": "" to ensure posts served to the client will have their markdown modified such that all images are loaded through a proxy."ExperimentalGroupUnreadChannels": disabled to show an unread channel section in the webapp sidebar. The setting must first be enabled by the System Admin, by replacing disabled with either default_off or default_on."ExperimentalEnableDefaultChannelLeaveJoinMessages": true that allows disabling of leave/join messages in the default channel, usually Town Square.RateLimitingSettings in config.json:
"VaryByUser": false, a user-based rate limiting, to rate limit on token and on userID.GetChannelByName and GetTeamByName to auto lowercase team and channel names in API requests. This ensures that the channel name is automatically lowercased for endpoints taking team or channel names as URL parameters.POST /emoji/search, GET /emojis/name/{emoji_name}, and GET /emoji/autocomplete to add consistency with user search/autocomplete endpoints. These API endpoints ensure that the benefits of GET for important performance related actions such as autocompleting are included./users/tokens/search to allow System Admin to be able to find, manage and revoke personal access tokens as needed. This endpoint gets all tokens for all users if one has the manage_system permission.delete_team web socket event to notify client whenever a team is deleted (e.g. via API call).Users Table:
Position field from 35 to 128 characters.OAuthAuthData Table:
State field from 128 to 1024 characters.ChannelMemberHistory Table:
Email column.Username column.[WARN] plugin sandboxing is not supported. plugins will run with the same access level as the server log message is created when sandboxing isn't enabled for plugins. If you don't use plugins, you can ignore this message.amyblais, AndersonWebStudio, andruwa13, asaadmahmood, bbodenmiller, Brunzer, ccbrown, chclaus, cherniavskii, CometKim, coreyhulen, cpanato, crspeller, csduarte, cvitter, darkman, der-test, dlahn, enahum, esethna, fermulator, gig177, grundleborg, Hanzei, hmhealey, it33, james-mm, jarredwitt, jasonblais, jespino, jwilander, kaakaa, kemenaran, knechtionscoding, laginha87, lasley, letsila, lfbrock, lieut-data, lindalumitchell, lindy65, liusy182, Matterchen, mkraft, MusikPolice, phuihock, pichouk, Rohlik, R-Wang97, santos22, saturninoabril, stephenkiers, sudheerDev, tayre, tejasbubane, tkbky, Tristramg, ulm0, watadarkstar, xuxip, yeoji, yuya-oc
config.json setting set to true, to complete the Let's Encrypt certification.post_time.jsx component.pngquant to remove unnecessary metadata from PNGs./teams/{team_id} APIv4 endpoint for permanently deleting a team is scheduled for removal in Mattermost v4.7.For a list of past and upcoming deprecated features, see the removed and deprecated features documentation for details.
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
Changes to Team Edition and Enterprise Edition:
ServiceSettings in config.json:
"EnableTutorial": true to control whether tutorial is shown to end users after account creation. This setting is experimental and may be replaced or removed in a future release.TeamSettings in config.json:
"ExperimentalPrimaryTeam": "" to set the primary team of the server. This setting is experimental and may be replaced or removed in a future release.EmailSettings in config.json:
"LoginButtonColor": "", "LoginButtonBorderColor": "" and "LoginButtonTextColor": "" to set the style of the email login button for white labelling purposes.Additional Changes to Enterprise Edition:
LdapSettings in config.json:
"LoginButtonColor": "", "LoginButtonBorderColor": "" and "LoginButtonTextColor": "" to set the style of the LDAP login button for white labelling purposes.SamlSettings in config.json:
"LoginButtonColor": "", "LoginButtonBorderColor": "" and "LoginButtonTextColor": "" to set the style of the SAML login button for white labelling purposes./teams/{team_id} APIv4 endpoint for permanently deleting a team is scheduled for removal in Mattermost v4.7./users/{user_id}/auth to update a user's authentication method. This can be used to change them to/from LDAP authentication, for example.RegisterCommand to register a custom slash command. When the command is triggered, your plugin can fulfil it via the ExecuteCommand hook.UnregisterCommand to unregister a command previously registered via RegisterCommand.GetChannelMember to get a channel membership for a user.ExecuteCommand hook to execute a command that was previously registered via the RegisterCommand plugin API.IncomingWebhooks Table:
PostUsername column to Username.PostIconURL column to IconURL.CTRL/CMD + / now toggles the keyboard shortcuts dialog./groupmsg command to start a new group message channel.AmazonS3Region defaults to us-east-1 regardless of the value input.invalid or expired session server logs.For a list of past and upcoming deprecated features, see the removed and deprecated features documentation for details.
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
Changes to Team Edition and Enterprise Edition:
ServiceSettings in config.json:
"EnablePreviewFeatures": true to hide the Advanced > Preview re-release features section from Account Settings."CloseUnusedDirectMessages": false to hide inactive direct message channels from the sidebar."ExperimentalEnableAuthenticationTransfer": true to set whether users can change authentication methods.EmailSettings in config.json:
"UseChannelInEmailNotifications": false to set whether email notifications contain the channel name in the subject line.PluginSettings in config.json:
"ClientDirectory": "./client/plugins" to set the location of client plugins.Additional Changes to Enterprise Edition:
MessageExportSettings in config.json:
"EnableExport": false to enable message export."DailyRunTime": "01:00" to set the time for the daily export job."ExportFromTimestamp": 0 to set the timestamp for which posts to include in the message export."FileLocation": "export" to set the message export location."BatchSize": 10000 to set how many new posts are batched together to a compliance export file./mattermost-webapp
/mattermost-plugin-zoom
/mattermost-server
/mattermost-mobile
/docs
/mattermost-docker
/mattermost-load-test
/mattermost-redux
/mattermost-developer-documentation
/mattermost-plugin-jira
/mattermost-webrtc
/desktop
/mattermost-kubernetes
/mattermost-selenium
/mattermost-api-reference
/mattermost-ios-classic
/mattermost-developer-kit
/mattermost-build
/marked
ClientDirectory, to set the directory to write web app plugins to. Added to better support plugins in GitLab Omnibus.true and EnableOnlyAdminIntegrations set to false. If you're affected, upgrading is highly recommended. Details will be posted on our security updates page 14 days after release as per the Mattermost Responsible Disclosure Policy.--config flag is ignored.CloseUnusedDirectMessages in config.json to true.Posts table./remove and /kick slash commands to remove a user from the channel.in: autocomplete for text search didn't display results after a hyphen in some servers./msg command arbitrarily switching teams.+:emoji: command.Composite database indexes were added to the Posts table. This may lead to longer upgrade times for servers with more than 1 million messages.
Moreover, LDAP sync now depends on email. If you have AD/LDAP login enabled, make sure all users on your AD/LDAP server have an email address or that their account is deactivated in Mattermost.
For a list of past and upcoming deprecated features, see the removed and deprecated features documentation for details.
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
Changes to Team Edition and Enterprise Edition:
ServiceSettings in config.json:
"CloseUnusedDirectMessages": false to set whether users have the option to automatically close direct and group message channels older than 7 days.TeamSettings in config.json:
"EnableConfirmNotificationsToChannel": true to set whether a confirmation is shown for channel wide (@-channel, @-all) mentions in channels with more than five members.PluginSettings in config.json:
"Enable": true to set whether plugins are enabled on the server."EnableUploads": false to set whether manual plugin uploads are enabled on the server. Disabling will keep existing plugins, including pre-packaged Mattermost plugins, installed on the server."Directory": "./plugins" to specify the directory of where plugins are stored."Plugins": {} to list installed plugins on the Mattermost server."PluginStates": {} to set whether an installed plugin is active or inactive on the Mattermost server.Additional Changes to Enterprise Edition:
SamlSettings in config.json:
EnableSync: false to set whether AD/LDAP synchronization is enabled.LdapSettings in config.json:
EnableSyncWithLdap: false to set whether SAML user attributes, including deactivation, are periodically synchronized from AD/LDAP.ElasticsearchSettings in config.json:
"LiveIndexingBatchSize": 1 to set how many new posts are batched together before they are added to the Elasticsearch index."RequestTimeoutSeconds": 30 to set the timeout in seconds for Elasticseaerch calls."BulkIndexingTimeWindowSeconds": 3600 to set the maximum time window for a batch of posts being indexed by the Bulk Indexer.Posts Table:
ChannelId, DeleteAt, CreateAtChannelId, UpdateAtUserAccessTokens Table:
IsActive columnAdded routes (API v4)
POST at /users/token/enable
POST at /users/token/disable
/users/tokens/enable.POST at /users/{user_id}/sessions/revoke/all
POST at /plugins
GET at /plugins
DELETE at /plugins/{plugin_id}
POST at /plugins/{plugin_id}/activate
POST at /plugins/{plugin_id}/deactivate
GET at /plugins/webapp
Modified routes (API v4)
POST at /logs
ServiceSettings.EnableDeveloper is set to true.Added:
user_role_updated that occurs when a user role is updated./mattermost-webapp
/docs
/mattermost-server
/mattermost-redux
/mattermost-mobile
/desktop
/mattermost-docker
/mattermost-api-reference
/mattermost-load-test
true and EnableOnlyAdminIntegrations set to false. If you're affected, upgrading is highly recommended. Details will be posted on our security updates page 14 days after release as per the Mattermost Responsible Disclosure Policy.config.json by changing the setting title from SessionIdleTimeout to SessionIdleTimeoutInMinutes.pretext no longer overlap with username in Compact view.For a list of past and upcoming deprecated features, see the removed and deprecated features documentation for details.
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
Changes to Enterprise Edition:
ServiceSettings in config.json:
"SessionIdleTimeoutInMinutes": 0 to specify how long to wait before logging out inactive users.ElasticsearchSettings in config.json:
"IndexPrefix": "" to allow Elasticsearch to be used on a shared Elasticseearch cluster.DataRetentionSettings in config.json:
"EnableMessageDeletion": false to enable message deletion."EnableFileDeletion": false to enable file deletion."MessageRetentionDays": 365 to set how long Mattermost keeps messages in channels and direct messages."FileRetentionDays": 365 to set how long Mattermost keeps file uploads in channels and direct messages."DeletionJobStartTime": "02:00" to specify when to start the data retention job.Added routes (API v4)
PUT at /oauth/apps/{app_id}
GET at /data_retention/policy
Modified routes (API v4)
POST at /channels/members/{user_id}/view
last_viewed_at_times for Mattermost server 4.3 and newer./mattermost-server
/mattermost-webapp
/desktop
/mattermost-mobile
/mattermost-api-reference
/docs
/mattermost-developer-kit
/marked
/mattermost-docker
/mattermost-redux
/mattermost-selenium
/mattermost-mattermod
/mattermost-build
response_url parameter.platform channel move to move a channel to another team.platform team delete now lets you delete teams with no channels.platform channel modify to convert a public channel to private, and vice versa./rename.1 - Mattermost now handles multiple content types for integrations, including plaintext content type. If your integration suddenly prints the JSON payload data instead of rendering the generated message, make sure your integration is returning the application/json content-type to retain previous behavior.
2 - By default, user-supplied URLs such as those used for Open Graph metadata, webhooks, or slash commands will no longer be allowed to connect to reserved IP addresses including loopback or link-local addresses used for internal networks.
This change may cause private integrations to break in testing environments, which may point to a URL such as http://127.0.0.1:1021/my-command.
If you point private integrations to such URLs, you may whitelist such domains, IP addresses, or CIDR notations via the AllowedUntrustedInternalConnections config setting in your local environment. Although not recommended, you may also whitelist the addresses in your production environments. See documentation to learn more.
Push notification, OAuth 2.0 and WebRTC server URLs are trusted and not affected by this setting.
3 - Uploaded file attachments are now grouped by day and stored in /data/<date-of-upload-as-YYYYMMDD>/teams/... of your file storage system.
4 - Mattermost /platform repo has been separated to /mattermost-webapp and /mattermost-server. This may affect you if you have a private fork of the /platform repo. More details here.
For a list of past and upcoming deprecated features, see the removed and deprecated features documentation for details.
The following settings were unintentionally added to config.json and are removed in Mattermost 4.2.
SupportSettings in config.json:
"AdministratorsGuideLink": "https://about.mattermost.com/administrators-guide/""TroubleshootingForumLink": "https://about.mattermost.com/troubleshooting-forum/""CommercialSupportLink": "https://about.mattermost.com/commercial-support/"Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
Changes to Team Edition and Enterprise Edition:
ServiceSettings in config.json:
AllowedUntrustedInternalConnections": "" to specify domains, IP address or CIDR notations for internal connections. Used in testing environments when developing integrations locally on a development machine. Not recommended for use in production.TeamSettings in config.json:
EnableXToLeaveChannelsFromLHS: false to set if a user can leave a channel by clicking "X" next to a channel in the channel sidebar. This setting is Beta and may be replaced or removed in a future release.FileSettings in config.json:
AmazonS3Trace: false to enable additional debugging for Amazon S3.Additional Changes to Enterprise Edition:
ElasticsearchSettings in config.json:
AggregatePostsAfterDays": "" to specify the age at which indexes will be aggregated as part of the daily scheduled jobPostsAggregatorJobStartTime": "" to specify the start time of the daily scheduled aggregator job.TeamSettings in config.json:
ExperimentalTownSquareIsReadOnly: false to set if Town Square is a read-only channel. Applies to all teams in the Mattermost server. This setting is Beta and may be replaced or removed in a future release.ThemeSettings in config.json. These settings are Beta and may be replaced or removed in a future release.
"EnableThemeSelection": true to set whether end users can change their Mattermost theme."DefaultTheme": "default" to set default theme for new users."AllowCustomThemes": true to set whether end users can set a custom theme."AllowedThemes": [] to list which built-in Mattermost themes are available to users.Added routes (API v4)
POST at /posts/{post_id}/actions/{action_id}
/platform
/docs
/mattermost-redux
/mattermost-mobile
/desktop
/mattermost-kubernetes
/mattermost-docker
/mattermost-push-proxy
/mattermost-mdk
/mattermost-api-reference
/mattermost-load-test
/code built-in slash command to create a code block./purpose built-in slash command to set the channel purpose./rename built-in slash command to rename the channel./leave built-in slash command to leave a channel./away and /offline ephemeral messages can no longer contain extra text posted with the slash command.For a list of past and upcoming deprecated features, see the removed and deprecated features documentation for details.
The following settings were unintentionally added to config.json and will be removed in Mattermost 4.2, released on September 16th.
SupportSettings in config.json:
"AdministratorsGuideLink": "https://about.mattermost.com/administrators-guide/""TroubleshootingForumLink": "https://about.mattermost.com/troubleshooting-forum/""CommercialSupportLink": "https://about.mattermost.com/commercial-support/"Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
Changes to Team Edition and Enterprise Edition:
ServiceSettings in config.json:
"EnableUserAccessTokens": false to enable personal access tokens for integrations to authenticate against the REST APIEmailSettings in config.json:
"EnableSMTPAuth": false to support SMTP servers requiring no authentication"EmailNotificationContentType": "full" to specify the amount of detail sent in email notification contentsAdditional Changes to Enterprise Edition:
FileSettings in config.json:
"AmazonS3SSE": false to enable server-side encryption for files in Amazon S3."EnableMobileUpload": true to enable file uploads on mobile devices"EnableMobileDownload": true to enable file downloads on mobile devicesJobSettings in config.json:
"RunJobs": true to enable running jobs on the jobs server"RunScheduler": true to enable scheduling jobs on the job serverElasticsearchSettings in config.json:
"ConnectionUrl": "http://dockerhost:9200" to set the URL of the Elasticsearch server"Username": "" to specify the username to access the Elasticsearch server"Password": "" to specify the password to access the Elasticsearch server"EnableIndexing": false to enable Elasticsearch indexing"EnableSearching": false to enable searching using Elasticsearch"Sniff": true to enable sniffing on the Elasticsearch server"PostIndexReplicas": 1 to specify how many replicas to use for each post index"PostIndexShards": 1 to specify how many shards to use for each post indexUserAccessToken Table:
JobStatuses Table:
Jobs Table:
Users Table:
Roles column maximum size from 64 to 256 charactersAdded routes (API v4) See api.mattermost.com for more details:
GET at api/v4/jobsPOST at api/v4/jobsGET at api/v4/jobs/{job_id:[A-Za-z0-9]+}POST at api/v4/jobs/{job_id:[A-Za-z0-9]+}/cancelGET at api/v4/jobs/type/{job_type:[A-Za-z0-9_-]+}POST at api/v4/elasticsearch/purge_indexesPOST at api/v4/users/{user_id:[A-Za-z0-9]+}/tokensGET at api/v4/users/{user_id:[A-Za-z0-9]+}/tokensGET at api/v4/users/{user_id:[A-Za-z0-9]+}/tokens/{token_id:[A-Za-z0-9]+}POST at api/v4/users/{user_id:[A-Za-z0-9]+}/tokens/revokeMany thanks to all our contributors. In alphabetical order:
/mattermost-server
/docs
/mattermost-mobile
/mattermost-push-proxy
/mattermost-redux
/mattermost-api-reference
/mattermost-kubernetes
/mattermost-docker
/mattermost-load-test
/mattermost-bot-sample-golang
AmazonS3Region config setting being ignored in Minio file storage setup.AllowTimeLimit config setting is set to Never./header command to set the channel header./help command to open the Mattermost help page in a new browser tab./open command to switch or join a channel./search command to search text in messages./settings command to open the Account Settings dialog./invite_people slash command is now disabled when account creation is set to false..../teamname/messages/@username.../teamname/messages/email.../teamname/messages/user_id (redirects to ...teamname/messages/@username).../teamname/messages/id1_id2 (redirects to ...teamname/messages/@username).../teamname/messages/generated_id/expand and /collapse slash commands now properly collapse images in website link previews.location /api/v3/users/websocket { line with location ~ /api/v[0-9]+/(users/)?websocket$ { in the /etc/nginx/sites-available/mattermost NGINX configuration file.config.json. For more information about this, see the Upgrading to Version 4.0 and Later section of :doc:../deployment/cluster.For a list of past and upcoming deprecated features, see the removed and deprecated features documentation for details.
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
Changes to Team Edition and Enterprise Edition:
ServiceSettings in config.json:
"EnableEmojiPicker": true to control whether emoji picker is enabled on the server. Enabling the emoji picker with a large number of custom emoji may slow down performance."EnableChannelViewedMessages": true to control whether channel_viewed WebSocket event is sent, which syncs unreads across clients and devices. Setting to false can lead to higher performance in large deployments."EnableAPIv3": true to control whether version 3 endpoints of the REST API are allowed on the server. If the setting is disabled, integrations that rely on API v3 will fail and can then be identified for migration to API v4.TeamSettings in config.json:
"TeammateNameDisplay": "username" to set how to display users' names in posts and the Direct Messages list. Deployments with LDAP or SAML enabled will have this set to full_name by default for better experience.FileSettings in config.json:
"ThumbnailWidth": 120"ThumbnailHeight": 100"PreviewWidth": 1024"PreviewHeight": 0"ProfileWidth": 128"ProfileHeight": 128SqlSettings in config.json:
"QueryTimeout": 30 to also support query timeouts on PostgreSQL, in addition to MySQL.Additional Changes to Enterprise Edition:
ClusterSettings in config.json:
"ClusterName": "" to set the cluster to join by name. Only nodes with the same cluster name will join together. This is to support Blue-Green deployments or staging pointing to the same database."OverrideHostname": "" to override the hostname of this server with this property. It is not recommended to override the Hostname unless needed."UseIpAddress": true to control whether the cluster attempts to communicate using the IP Address."UseExperimentalGossip": false to control whether the server attempts to communicate via the gossip protocol over the gossip port."ReadOnlyConfig": true to control whether changes made to settings in the System Console are ignored. When running in production it is recommended to set this value to true."GossipPort": 8074 to set the port used for the gossip protocol. Both UDP and TCP should be allowed on this port."StreamingPort": 8075 to set the port used for streaming data between servers."InterNodeListenAddress": ":8075" as this setting is no longer used."InterNodeUrls": [] as this setting is no longer used.Added routes (API v4)
GET at /teams/invite/{invite_id}
Modified routes (API v4)
DELETE at /teams/{team_id}
permanent, to permanently delete a team for compliance reasons.GET at /users
sort query parameter to add basic sorting when selecting users on a team.GET at /emoji
/emoji call for increased performance.POST at /teams/{team_id}/import
results JSON field to allow more data to be returned in the future without breaking changes.Added:
channel_updated that occurs each time channel information is updated (such as name or header), so that the changes are propagated across clients.channel_viewed that occurs each time you view a channel, propagating the event to all clients and devices and syncing unreads.platform user deleteall CLI command expects a user as an argument.Many thanks to all our contributors. In alphabetical order:
/mattermost-server
/mattermost-mobile
/mattermost-redux
/mattermost-api-reference
/docs
/desktop
/mattermost-kubernetes
/mattermost-push-proxy
/mattermost-docker
/mattermost-load-test
For a list of past and upcoming deprecated features, see the removed and deprecated features documentation for details.
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
Changes to Team Edition and Enterprise Edition:
ServiceSettings in config.json:
"GoroutineHealthThreshold": -1, to set a threshold for number of goroutines.SqlSettings in config.json:
"QueryTimeout": 30 to set the number of seconds to wait for a response from the database after opening a connection and sending the query.FileSettings in config.json:
"AmazonS3SignV2": false to enable Legacy Signature (AWS Signature V2) with S3 compatible servers.Additional Changes to Enterprise Edition:
AnnoucementSettings in config.json:
"EnableBanner": false, to enable an announcement banner visible for all users."BannerText": "", to specify the text shown in the banner."BannerColor": "#f2a93b", to set the banner background color."BannerTextColor": "#333333", to set the banner text color."AllowBannerDismissal": true to set whether the banner can be dismissed by users.Modified routes (APIv4)
/system/ping updated to return 500 Internal Server Error with {"status": "unhealthy"} in the response body when GoroutineHealthThreshold is set in config.json and the number of goroutines on the server exceeds that threshold. If the number of goroutines is below the threshold or GoroutineHealthThreshold is not set in config.json, 200 OK is returned with no response body.Many thanks to all our contributors. In alphabetical order:
/mattermost-server
/docs
/mattermost-api-reference
/mattermost-redux
/mattermost-mobile
/desktop
/mattermost-docker
/android
/mattermost-selenium
/gorp
/ios
/mattermost-kubernetes
config.json for higher performance.platform config validate for validating the config.json file.platform user search for searching users based on username, email, or user ID.AllowCorsFrom config setting (in System Console > Connections > Enable cross-origin requests from) now supports multiple domain names.GetTeamByName() function.@[username] in the search.location /api/v3/users/websocket { line with location ~ /api/v[0-9]+/(users/)?websocket$ { in the /etc/nginx/sites-available/mattermost NGINX configuration file.For a list of past and upcoming deprecated features, see the removed and deprecated features documentation for details.
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json, or the System Console when available.
Changes to Team Edition and Enterprise Edition:
Under ServiceSettings in config.json:
"EnablePostSearch": true to control whether users can search messages. Disabling can lead to higher performance in large deployments."EnableUserStatuses": true to control whether user statuses are shown in the web user interface. Disabling can lead to higher performance in large deployments.Under FileSettings in config.json:
"EnableFileAttachments": true to control whether users can upload files and images on messages.Under EmailSettings in config.json:
"PasswordResetSalt": "" given tokens are now used for signing of password reset emails.Under SqlSettings in config.json:
"DataSourceSearchReplicas": [] to specify the connection strings for search replica databases for handling search queries.Additional Changes to Enterprise Edition:
ServiceSettings in config.json:
"LicenseFileLocation": "" to specify the path and filename of the Enterprise license file on disk. On startup, if Mattermost cannot find a valid license in the database from a previous upload, it will look for the file specified here.OAuthAccessData Table:
Scope columnPasswordRecovery Table:
PasswordRecovery table and moved entries to a common token storepreferences_changed and preferences_deleted to sync preferences between browser tabs, between different browsers, and across devices when a preference is changed or deleted.Many thanks to all our contributors. In alphabetical order:
/mattermost-server
/docs
/mattermost-api-reference
/mattermost-redux
/desktop
/mattermost-mobile
/mattermost-docker
/mattermost-push-proxy
/mattermost-selenium
/mattermost-kubernetes
/gcm
window.location.origin instead of siteURL, fixing WebSocket connection issues with Mattermost 3.8 upgrade.config.json settings using environment variables.gitlab.rb file if you are using GitLab Mattermost.mattermost.log file located in the directory specified in System Console > Logging > File Log Directory. Set the directory name in the System Console, or in the gitlab.rb file if you are using GitLab Mattermost.GET at /channels/more (replaced by /channels/more/{offset}/{limit})POST at /channels/update_last_viewed_at (replaced by /channels/view)POST at /channels/set_last_viewed_at (replaced by /channels/view)POST at /users/status/set_active_channel (replaced by /channels/view)For a list of past and upcoming deprecated features, see the removed and deprecated features documentation for details.
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json or the System Console.
Changes to Team Edition and Enterprise Edition:
EmailSettings in config.json:
"SkipServerCertificateVerification": false to skip verification of smtp server certificates.Additional Changes to Enterprise Edition:
TeamSettings in config.json:
"RestrictPrivateChannelManageMembers": all to set who can add and remove members from private groups.Posts Table:
IsPinned columnNew routes (APIv3):
GET at /channels/{channel_id}/pinned
POST at /channels/{channel_id}/posts/{post_id}/pin
POST at /channels/{channel_id}/posts/{post_id}/unpin
Removed routes (APIv3):
GET at /channels/more (replaced by /channels/more/{offset}/{limit})POST at /channels/update_last_viewed_at (replaced by /channels/view)POST at /channels/set_last_viewed_at (replaced by /channels/view)POST at /users/status/set_active_channel (replaced by /channels/view)Added:
added_to_team that occurs when the current user is added to a team by another user.Modified
seq field to websocket events that increments with each event sent to the client.Many thanks to all our contributors. In alphabetical order:
/mattermost-server:
/docs:
/mattermost-redux:
/mattermost-api-reference:
/mattermost-mobile:
/mattermost-selenium:
/desktop:
/mattermost-docker:
/mattermost-kubernetes:
/mattermost-load-test:
gitlab.rb file if you are using GitLab Mattermost.MakeDirectChannelVisible call and adding client handlingviewChannel requests when receiving a new post and only marking the channel as read when switching into it, out of it or when closing the appview_channel websocket event from the servergetChannel and getTeamUnreads requests when receiving a new postgetMyChannelMembers request to web app when window becomes active after ten seconds(Edited) indicator if a message has been edited(message deleted) placeholder is no longer shown to the user that deleted the message_AAA_BBB_ now italicize correctly\\[some_text]: some_text now longer post as blank space|) in a Markdown table now work/project issue show <number>platform channel create command if team does not existCreate a New Team menu option is now in the Main Menu for System Admins when team creation is disabled/users/claim/email_to_oauth routeServiceSettings: "SegmentDeveloperKey" setting in config.jsonGET at /channels/more (replaced by /channels/more/{offset}/{limit})POST at /channels/update_last_viewed_at (replaced by /channels/view)POST at /channels/set_last_viewed_at (replaced by /channels/view)POST at /users/status/set_active_channel (replaced by /channels/view)For a list of past and upcoming deprecated features, see the removed and deprecated features documentation for details.
Changes from v3.6 to v3.7:
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json or the System Console.
Changes to Team Edition and Enterprise Edition:
ServiceSettings in config.json:
"TimeBetweenUserTypingUpdatesMilliseconds": 5000 to control how frequently the "user is typing..." messages are updated"EnableUserTypingMessages": true to control whether "user is typing..." messages are displayed below the message box"EnableLinkPreviews": false to control whether a preview of website content is displayed below the messageAdditional Changes to Enterprise Edition:
ServiceSettings in config.json:
"RestrictPostDelete": all to set who can delete messages"AllowEditPost": always to set whether messages can be edited"PostEditTimeLimit": 300 to set how long messages can be edited, if "AllowEditPost": time_limit is specified"ClusterLogTimeoutMilliseconds": 2000 to control frequency of cluster request time logging for performance monitoringPosts Table:
EditAt columnNew routes (APIv3):
POST at /channels/create_group
POST at /hooks/incoming/update
POST at /hooks/outgoing/update
GET at /teams/{team_id}/...
POST at /channels/{channel_id}/update_member_roles
Added:
channel_create that occurs each time a channel is createdgroup_added that occures when a new group message channel is createdRemoved:
view_channel that occurred when a new message was receivedMany thanks to all our contributors. In alphabetical order:
/mattermost-server
/api-reference
/docs
/mobile
/docker
/desktop
/selenium
/push-proxy
/load-test
gitlab.rb file if you are using GitLab Mattermost.@all or @channel is used in a channel with many users)Changes from v3.5 to v3.6:
Special Upgrade Note:
(Enterprise Edition) If you previously had values set for RestrictPublicChannelManagement and RestrictPrivateChannelManagement, the new settings for RestrictPublicChannelCreation, RestrictPrivateChannelCreation, RestrictPublicChannelDeletion, and RestrictPrivateChannelDeletion will take those settings as their default values.
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json or the System Console.
Changes to Team Edition and Enterprise Edition:
Deprecated Settings:
ServiceSettings in config.json:
"SegmentDeveloperKey" to be removed in v3.7Additional Changes to Enterprise Edition:
The following config settings will only work on servers with an Enterprise License that has the feature enabled.
ServiceSettings in config.json:
”EnforceMultifactorAuthentication": false to control whether MFA in enforcedTeamSettings in config.json:
"RestrictPublicChannelManagement": "all" to only control who can edit the channel header, purpose, and name of public channels (previously it also controlled creation and deletion)"RestrictPrivateChannelManagement": "all" to only control who can edit the channel header, purpose, and name of private groups (previously it also controlled creation and deletion)"RestrictPublicChannelCreation": "all" to control who can create public channels"RestrictPrivateChannelCreation": "all" to control who can create private groups"RestrictPublicChannelDeletion”: "all" to control who can delete public channels"RestrictPrivateChannelDeletion": "all" to control who can delete private channels"MaxNotificationsPerChannel": 1000 to set the maximum number of channel members for which @all and @channel notifications will be sentLdapSettings in config.json:
"PositionAttribute": "" to select an LDAP attribute to synchronize for the user position (job title) fieldSamlSettings in config.json:
"PositionAttribute": "" to select an LDAP attribute to synchronize for the user position (job title) fieldMetricsSettings in config.json for performance monitoring settings:
"Enable": false to control whether performance monitoring is enabled"BlockProfileRate": 0 to control the fraction of goroutine blocking events that are reported in the blocking profile"ListenAddress": :8067 to control the address the server will listen on to expose performance metricsAnalyticsSettings in config.json for analytics settings:
"MaxUsersForStatistics": 2500 to set the maximum number of users on the server before statistics for total posts, total hashtag posts, total file posts, posts per day, and active users with posts per day are no longer counted (use this setting to improve performance on large instances)Posts Table:
HasReactions columnTeams Table:
Description columnUsers Table:
Position columnStatus Table:
ActiveChannel columnNew routes:
POST at /commands/update
GET at /users/name/{username}
GET at /users/email/{email}
GET at /users/autocomplete
GET at /teams/name/{team_name}
GET at /teams/{team_id}/channels/name/{channel_name}
POST at /teams/{team_id}/channels/{channel_id}/members/ids
GET at /teams/members
GET at /teams/unread
POST at /teams/{team_id}/channels/view
POST at /teams/{team_id}/channels/{channel_id}/posts/{post_id}/reactions/save
POST at /teams/{team_id}/channels/{channel_id}/posts/{post_id}/reactions/delete
GET at /teams/{team_id}/channels/{channel_id}/posts/{post_id}/reactions'
GET at /admin/invalidate_all_caches
GET at /channels/more/{offset}/{limit}
POST at /channels/more/searchGET at /channels/autocomplete
Deprecated routes:
GET at /channels/more (replaced by /channels/more/{offset}/{limit}) to be removed in v3.7POST at /channels/update_last_viewed_at (replaced by /channels/view) to be removed in v3.8POST at /channels/set_last_viewed_at (replaced by /channels/view) to be removed in v3.8POST at /users/status/set_active_channel (replaced by /channels/view) to be removed in v3.8Removed routes:
POST at /teams/create_from_signupPOST at /teams/signupChanged routes:
teams/{team_id}/commands/execute endpoint request body field from channelId to channel_idAdded:
update_team that occurs each time the team info is updatedreaction_added that occurs when an emoji reaction is added to a postreaction_removed that occurs when an emoji reaction is removed from a postMany thanks to all our contributors. In alphabetical order:
/mattermost-server
/docs
/mattermost-docker-preview
/desktop
/mattermost-mobile
/mattermost-load-test
/mattermost-driver-javascript
/android
/mattermost-webrtc
/mattermost-api-reference
/mattermost-docker
/ios
/mattermost-push-proxy
Thanks also to those who reported bugs that benefited the release, in alphabetical order:
/join no longer throws an error for non-admin accountsChanges from v3.4 to v3.5:
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json or the System Console.
Changes to Team Edition and Enterprise Edition:
ServiceSettings in config.json:
"RestrictTeamNames": true that controlled whether newly created team names were restricted."ConnectionSecurity": "" to select the type of encryption between Mattermost and your server."TLSCertFile": "" to specify the certificate file to use."TLSKeyFile": "" to specify the private key to use."UseLetsEncrypt": false to enable automatic retreval of certificates from the Let's Encrypt."LetsEncryptCertificateCacheFile": "./config/letsencrypt.cache" to specify the file to store certificates retrieved and other data about the Let's Encrypt service."Forward80To443": false to enable forwarding of all insecure traffic from port 80 to secure port 443."ReadTimeout": 300 to specify the maximum time allowed from when the connection is accepted to when the request body is fully read."WriteTimeout": 300 to specify the maximum time allowed from the end of reading the request headers until the response is written.FileSettings in config.json:
AmazonS3SSL": true to allow insecure connections to Amazon S3.RateLimitSettings in config.json:
"Enable": false to disable rate limiting by default"MaxBurst": 100 to set the maximum number of requests allowed beyond the per second query limitTeamSettings in config.json:
"MaxChannelsPerTeam": 2000 to set the maximum number of channels per teamWebrtcSettings in config.json
"Enable": false to enable one-on-one video calls."GatewayWebsocketUrl": "" to specify the websocket used to signal and establish communication between the peers."GatewayAdminUrl": "" to specify the URl to obtain valid tokens for each peer to establish the connection."GatewayAdminSecret": "" to specify your admin secret password to access the Gateway Admin URL."StunURI": "" to specify your STUN URI."TurnURI": "" to specify your TURN URI."TurnUsername": "" to specify your TURN username"TurnSharedKey": "" to specify your TURN server shared key to created dynamic passwords to establish the connection.FileInfo Table
FileInfo tablePosts Table
FileIds columnDeleteAtChannels Table, Commands Table, Emoji Table, Teams Table, IncomingWebhooks Table, OutgoingWebhooks Table
CreateAtUpdateAtDeleteAtTeamMembers Table
DeleteAtSessions Table
ExpiresAtCreateAtLast ActivityAtUsers Table
CreateAtUpdateAtDeleteAtidx_users_all_txt: Username, FirstName, LastName, Nickname, Emailidx_users_names_txt:Username, FirstName, LastName, NicknameNew routes:
POST at /users/search
GET at /users/{offset}/{limit}
POST at /teams/{team_id}/update_member_roles
GET at /teams/{team_id}/channels/{channel_id}/members/{user_id}
GET at /teams/{team_id}/stats
GET at /teams/{team_id}/members/{offset}/{limit}
POST at /teams/{team_id}/members/ids
GET at /teams/{team_id}/members/{user_id}
GET at /teams/{team_id}/posts/{post_id}/get_file_infos
GET at /channels/{channel_id}/users/{offset}/{limit}
GET at /channels/{channel_id}/users/not_in_channel/{offset}/{limit}
POST at /webrtc/token
Moved routes:
GET at /channels/{channel_id}/extra_info to /channels/{channel_id}/stats
POST at /users/profiles/{team_id} to /teams/{team_id}/users/{offset}/{limit}
GET at /members/{team_id} to /teams/{team_id}/members/{offset}/{limit}
Removed routes:
GET at /users/direct_profilesGET at /users/profiles_for_dm_list/{team_id}/{offset}/{limit}Modified Routes
POST at /users/{user_id}/update_roles
/teams/{team_id}/update_member_rolesChanges to File Routes:
Routes used to get files and their metadata from the server have been changed substantially in 3.5 so that each file will be given a unique identifier to make them easier to use through the API. In addition, the Filenames field of each post has been deprecated in favor of the new FileIds field.
GET at /teams/{team_id}/files/upload has been changed to return more information about the uploaded file. See the documentation for this route on api.mattermost.com for more informationGET at /teams/{team_id}/files/get/{channel_id}/{user_id}/{filename} into:
GET at /files/{file_id}/get
GET at /files/{file_id}/get_thumbnail
GET at /files/{file_id}/get_preview
GET at /teams/{team_id}/files/get_info/{channel_id}/{user_id}/{filename} to /files/{file_id}/get_infoGET at /teams/{team_id}/files/get_public_link to /files/{file_id}/get_public_linkGET at /public/files/{file_id}/get
GET at /public/files/get/{team_id}/{channel_id}/{user_id}/filename has been deprecated, but will remain available for files that were uploaded prior to 3.5~ only works if you are a member of the channelMany thanks to all our contributors. In alphabetical order:
/mattermost-server
/ios
/desktop
/docs
/mattermost-docker
/android
/mattermost-bot-sample-golang
/mattermost-load-test
/mattermost-driver-javascript
/mattermost-api-reference
/mattermost-mobile
Release date: 2016-09-16
PLAIN for SMTP@allChanges from v3.3 to v3.4:
Special Note
(Only affects servers with public links enabled) After upgrading to v3.4, existing public links will no longer be valid. This is because in past versions, when the Public Link Salt was regenerated existing public links were not invalidated. Now, when the salt is regenerated, existing links are made invalid.
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json or the System Console.
Changes to Team Edition and Enterprise Edition:
Under EmailSettings in config.json:
"EnableEmailBatching": false to enable batching of email notifications configurable in Account Settings. To enable email batching, the SiteURL field must be filled out and Enable under ClusterSettings must be set to false to disable high availability mode."EmailBatchingBufferSize": 256 to specify the maximum number of notifications batched into a single email."EmailBatchingInterval": 30 to specify the maximum frequency, in seconds, which the batching job checks for new notifications.Under LogSettings in config.json:
"EnableDiagnostics": true to increase reliability and performance of Mattermost for your deployment configuration by sending encrypted error reporting and diagnostic information to Mattermost, Inc.Additional Changes to Enterprise Edition:
The following config settings will only work on servers with an Enterprise License that has the feature enabled.
LdapSettings in config.json:
"FirstNameAttribute": "" is no longer a required field"LastNameAttribute": "" is no longer a required fieldSamlSettings in config.json:
"FirstNameAttribute": "" is no longer a required field"LastNameAttribute": "" is no longer a required fieldStatus Table
Manual column.ActiveChannel column.New routes:
GET at /oauth/authorized
POST at /oauth/"+clientId+"/deauthorize
clientId corresponds to the application. Returns status OK on success or an AppError on fail.POST at /oauth/"+clientId+"/regen_secret
clientId corresponds to the application. Returns an OAuth2 App on success. Must be authenticated as a user and the same user who registered the app or a System Admin.POST at /admin/ldap_test
POST at /users/status/set_active_channel
GET at /admin/recently_active_users/{teamId}
UPDATE Systems SET Value = '3.1.0' WHERE Name = 'Version';Many thanks to all our contributors. In alphabetical order:
/mattermost-server
/ios
/desktop
/docs
/mattermost-docker
/android
/push-proxy
/mattermost-heroku
Expected release date: 2016-08-16
@here to mention users who are online.Bindusername and Bindpassword fields in the System Console are now optional to support anonymous binding.config.json.Changes from v3.2 to v3.3:
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json or the System Console.
Changes to Team Edition and Enterprise Edition:
NativeAppSettings:
"AppDownloadLink": "https://mattermost.com/download/#mattermostApps" to point towards a download page for native apps."AndroidAppDownloadLink": "https://about.mattermost.com/mattermost-android-app/" to point towards the Android app."IosAppDownloadLink": "https://about.mattermost.com/mattermost-ios-app/" to point towards the iOS app.ServiceSettings:
"SiteURL": "" to allow the server to overwrite the site_url.TeamSettings:
"UserStatusAwayTimeout": 300 to specify the number of seconds before users are considered "away".Additional Changes to Enterprise Edition:
The following config settings will only work on servers with an Enterprise License that has the feature enabled.
TeamSettings:
"CustomDescriptionText": "" to set the site description shown in login screens and user interface.GoogleSettings in config.json:
"Scope": "profile email" to set the standard setting for OAuth to determine the scope of information shared with OAuth client."AuthEndpoint": "https://accounts.google.com/o/oauth2/v2/auth" to set the authorization endpoint for Google SSO."TokenEndpoint": "https://www.googleapis.com/oauth2/v4/token" to set the token endpoint for Google SSO."UserApiEndpoint": "https://www.googleapis.com/plus/v1/people/me" to set the user API endpoint for Google SSO.Office365Settings:
"Enable": false to allow login using Office 365 SSO when set to true."Secret": "" to set the Client Secret received when registering the application with Google."Id": "" to set the Client ID received when registering the application with Google."Scope": "User.Read" to set the standard setting for OAuth to determine the scope of information shared with OAuth client."AuthEndpoint": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize" to set the authorization endpoint for Office 365 SSO."TokenEndpoint": "https://login.microsoftonline.com/common/oauth2/v2.0/token" to set the token endpoint for Office 365 SSO."UserApiEndpoint": "https://graph.microsoft.com/v1.0/me" to set the user API endpoint for Office 365 SSO.LdapSettings in config.json:
"BindUsername": "" and "BindPassword": "" are no longer required fields, so anonymous binding is possible.ClusterSettings:
"Enable": false to enable High Availability mode."InterNodeListenAddress": ":8075" to specify the address the server will listen on for communicating with other servers."InterNodeUrls": [] to specify the internal/private URLs of all the Mattermost servers separated by commas.OAuthAccessData Table
ClientId column.UserId column.AuthCode column.ClientId and UserId columns.idx_oauthaccessdata_auth_code column.idx_oauthaccessdata_client_id, idx_oauthaccessdata_user_id and idx_oauthaccessdata_refresh_token columns.OAuthApps Table
IconURL column.OutgoingWebhooks Table
TriggerWhen column.Status Table
Status table.Users Table
LastActivityAt column.LastPingAt column.ThemeProps column.Updated admin routes:
users/status from POST to GETNew admin routes:
GET at /posts/flagged/{offset:[0-9]+}/{limit:[0-9]+}
offset is the offset to start the page at; limit is the max number of posts to return.GET at /admin/cluster_status
GET at /oauth/list
GET at /oauth/app/{clientId:""}
clientId corresponds to the applicationPOST at /oauth/delete
GET at /oauth/access_token
POST at /preferences/delete
POST at /admin/remove_certificate
Many thanks to all our contributors. In alphabetical order:
/mattermost-server
/desktop
/android
/ios
/docs
/mattermost-docker
/mattermost-driver-javascript
/mattermost-bot-sample-golang
If we missed your name, please let us know at [email protected]. Recognition is a manual process and mistakes can happen. We want to include anyone who's made a pull request that got merged during the release.
Release date: 2016-07-16
On-Boarding and Off-Boarding
System Console
Notifications
Web UI
¿ are now returned with proper highlighting in search results.@all no longer sends mentions if unselected in Account Settings.siteURL when inviting a user by email via CLI (command line interface)Changes from v3.1 to v3.2:
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json or the System Console.
Changes to Team Edition and Enterprise Edition:
Under EmailSettings in config.json:
"FeedbackOrganization": "" to specify organization name and address, which will be displayed on email notifications from Mattermost.Under ServiceSettings in config.json:
"EnableCustomEmoji": false. When set to true, enables Custom Emoji option in the Main Menu where users can create customized emoji.Under LocalizationSettings in config.json:
"AvailableLocales": "" to allow new languages be added by default.Under LogSettings in config.json:
"EnableWebhookDebugging": true. When set to true, contents of incoming webhooks are printed to log files for debugging.Additional Changes to Enterprise Edition:
The following config settings will only work on servers with an Enterprise License that has the feature enabled.
Under TeamSettings in config.json:
"RestrictTeamInvite": "all" to set the permissions required to send team invites."RestrictPublicChannelManagement": "all" to set the permissions required to manage public channels."RestrictPrivateChannelManagement": "all" to set the permissions required to manage private channels.Under ServiceSettings in config.json:
"RestrictCustomEmojiCreation": "all" to set the permissions required to create custom emoji.Under SamlSettings in config.json:
"Enable": false to allow login using SAML. See documentation to learn more about configuring SAML for Mattermost."Verify": false to control whether Mattermost verifies the signature sent from the SAML Response matches the Service Provider Login URL."Encrypt": falseto control whether Mattermost will decrypt SAML Assertions encrypted with your Service Provider Public Certificate."IdpUrl": "" to set the SAML SSO URL where Mattermost sends a SAML request to start login sequence."IdpDescriptorUrl": "" to set the Identity Provider Issuer URL for the Identity Provider you use for SAML requests."AssertionConsumerServiceURL": "" to set the Service Provider Login URL."IdpCertificateFile": "" to set the public authentication certificate issued by your Identity Provider."PublicCertificateFile": "" to set certificate used to generate the signature on a SAML request to the Identity Provider for a service provider initiated SAML login, when Mattermost is the Service Provider."PrivateKeyFile": "" to set the private key used to decrypt SAML Assertions from the Identity Provider."FirstNameAttribute": "" to set the attribute in the SAML Assertion that will be used to populate the first name of users in Mattermost."LastNameAttribute": "" to set the attribute in the SAML Assertion that will be used to populate the last name of users in Mattermost."EmailAttribute": "" to set the attribute in the SAML Assertion that will be used to populate the email of users in Mattermost."UsernameAttribute": "" to set the attribute in the SAML Assertion that will be used to populate the username of users in Mattermost."NicknameAttribute": "" to set the attribute in the SAML Assertion that will be used to populate the nickname of users in Mattermost."LocaleAttribute": "" to set the attribute in the SAML Assertion that will be used to populate the language of users in Mattermost."LoginButtonText": "" set the text that appears in the login button on the login page.Under LdapSettings in config.json:
"FirstNameAttribute": "", "LastNameAttribute": "", "BindUsername": "", and "BindPassword": "" are now required fields."MaxPageSize": 0 to set the maximum number of users that will be requested from the AD/LDAP server at one time.TeamMembers Table
DeleteAt column.Emoji Table
Emoji table./join sometimes throws an error.Many thanks to all our contributors. In alphabetical order:
/mattermost-server
/ios
/desktop
/docs
/mattermost-driver-javascript
/mattermost-docker
/mattermost/push-proxy
If we missed your name, please let us know at [email protected]. Recognition is a manual process and mistakes can happen. We want to include anyone who's made a pull request that got merged during the release.
Release date: 2016-06-16
/shortcuts slash command for details.iOS App
Android App
User Interface
Performance
Notifications
@all mention added back with equivalent functionality to @channel.Channels
Messaging
Localization
Integrations
@channel notifications by using <!channel>.Onboarding
/invite_people [email address] sends an email invite to your Mattermost team.Enterprise
Changes from v3.0 to v3.1:
config.json
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json or the System Console.
Changes to Team Edition and Enterprise Edition:
LocalizationSettings in config.json:
"DefaultServerLocale": “en” to set default language for the system messages and logs"DefaultClientLocale": “en” to set default language for newly created users and for pages where the user hasn't logged in"AvailableLocales": “en,es,fr,ja,pt-BR” to set which languages are available for users in Account Settings. The language specified in DefaultClientLocale should be included in this list.Additional Changes to Enterprise Edition:
The following config settings will only work on servers with an Enterprise License that has the feature enabled.
LdapSettings in config.json:
"SyncIntervalMinutes": "60" to allow system admins adjust how frequently Mattermost performs AD/LDAP synchronization to update users/join sometimes throws an error@all notifications received even after being unselected from notification optionsMany thanks to all our contributors. In alphabetical order:
/mattermost-server
/ios
/android
/desktop
/docs
/mattermost-driver-javascript
/mattermost-docker
/mattermost/push-proxy
/mattermost/mattermost-docker-preview
If we missed your name, please let us know at [email protected]. Recognition is a manual process and mistakes can happen. We want to include anyone who's made a pull request that got merged during the release.
Release date: 2016-05-27
Notes on patch releases:
Mattermost 3.0 is a new major version of Mattermost with fundamental changes affecting Mattermost 2.x deployments. An understanding of the upgrade process from 2.x to 3.0, including manual steps, is required to upgrade successfully.
iOS app
Android app
User Interface
Integrations
Authentication
Files and Attachments
Notifications
Search
Enterprise:
Changes from v2.2 to v3.0:
iOS and Android
Mattermost iOS and Android app v3.0 requires Mattermost server v3.0 and higher.
APIs
Web Service API is upgraded to Version 3 and previous Version 1 API is no longer supported. Golang driver, Javascript driver, incoming and outgoing webhooks and Slash commands continue to function as in previous release
config.json
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json or the System Console.
Changes to Team Edition and Enterprise Edition:
Under TeamSettings in config.json:
"EnableOpenServer": false to set whether users can sign up to the server without an invite."EnableTeamListing": false since the team directory was replaced with new functionality.Under EmailSettings in config.json:
"PushNotificationContents": "generic" to set whether push notifications send a generic message (generic) or send a snippet of the conversation (full)Under SupportSettings in config.json, default support links were changed and need to be manually updated for existing installs:
TermsOfServiceLink: https://about.mattermost.com/default-terms/PrivacyPolicyLink: "https://about.mattermost.com/default-privacy-policy/AboutLink: "https://about.mattermost.com/default-about/HelpLink: "https://about.mattermost.com/default-help/ReportAProblemLink: "https://about.mattermost.com/default-report-a-problem/SupportEmail: "[email protected]Additional Changes to Enterprise Edition:
The following config settings will only work on servers with an Enterprise License that has the feature enabled.
Under ServiceSettings in config.json:
"EnableMultifactorAuthentication": false to enable Multifactor AuthenticationUnder TeamSettings in config.json:
"EnableCustomBrand": false to set whether custom branding of the login page is turned on."CustomBrandText": "" to set what text will show up on the login page, if "EnableCustomBrand": is set to true.Under LdapSettings in config.json:
"ConnectionSecurity":"" to set the type of connection security Mattermost uses to connect to AD/LDAP. Options are "" (no security), TLS or STARTTLS."UserFilter": "" (optional) to set an AD/LDAP Filter to use when searching for user objects."NicknameAttribute": "" to set the attribute in the AD/LDAP server that will be used to populate the nickname field in Mattermost."SkipCertificateVerification": false to set whether the certificate verification step for TLS or STARTTLS connections is skipped. (For testing purposes only. Should be set to false in production.)"LoginFieldName": "" to set the help text in the login box (for example, AD/LDAP username or Company username).Added ComplianceSettings to config.json:
"Enable": false to set whether compliance reports are enabled."Directory": "./data/" to set where the reports are stored."EnableDaily": false to set whether Daily Reports are turned on.Version 3.0 uses a different database than version 2.0. A one-way change to the database will be required when upgrading from v2.2 to v3.0.
Many thanks to all our contributors. In alphabetical order:
/mattermost-server
/mattermost-docker
/ios
/android
/desktop
/docs
Release date: 2016-04-16
User Interface
'Many thanks to all our external contributors. In no particular order:
Release date: 2016-03-16
Mattermost v2.1.0 contains a security update for a cross-site scripting vulnerability in Mattermost v1.2, v1.3, v1.4 and v2.0. Upgrading to Mattermost v2.1.0 is highly recommended. Thanks to Luke Arntson for the RPD report.
Android Application
Desktop Application
Languages
System Console
Messaging
Mobile
Files and Images
User Interface
/me now posts as the user instead of a webhook message.Changes from v2.0 to v2.1:
Android
config.json
ServiceSettings in config.json or the System Console.
"AllowCorsFrom": "" to allow the system to serve HTTP requests to other domains specified.'. This can be fixed by switching to a different language and then back again.Many thanks to all our external contributors. In no particular order:
Expected Release date: 2016-02-16
Localization
Slash Commands
iOS
Android
System Console
Upgrading
Files and Images
Onboarding
Authentication
System Console
Search
Messaging
User Interface
Changes from v1.4 to v2.0:
iOS
Mattermost iOS app v2.0 requires Mattermost server v2.0 and higher.
config.json
Multiple setting options were added to config.json. Below is a list of the additions and their default values on install. The settings can be modified in config.json or the System Console.
Under ServiceSettings in config.json:
"EnableCommands": false to set whether users can create slash commands from Account Settings > Integrations > Commands"EnableOnlyAdminIntegrations": true to restrict integrations to being created by admins only."EnableInsecureOutgoingConnections": false sets whether outgoing HTTPS requests can accept unverified, self-signed certificates."WebsocketSecurePort" : 443 sets the port on which the secured WebSocket will listen using the wss protocol. If this setting is not present in config.json, it defaults to 443."WebsocketPort": 80 sets the port on which the unsecured WebSocket will listen using the ws protocol. If this setting is not present in config.json, it defaults to 80.Under EmailSettings in config.json:
"EnableSignInWithEmail": true allows users to sign in using their email."EnableSignInWithUsername": false sets whether users can sign in with their username. Typically only used when email verification is disabled.Localization
There are two new directories for i18n localization JSON files:
The following is for informational purposes only, no action needed. Mattermost automatically upgrades database tables from the previous version's schema using only additions.
Locale columnLicenses TableCommands TableSpecial thanks to enahum for creating the Spanish localization!
Many thanks to all our external contributors. In no particular order:
Expected Release date: 2016-01-16
Mobile Experience
Authentication
System Console
Performance and Testing
Integrations
Content-Type of incoming webhook requestsFiles and Images
Notifications and Email
User Interface
Multiple settings were added to config.json. Below is a list of the changes and their new default values in a fresh install.
The following options can be modified in the System Console:
ServiceSettings in config.json:
"EnableDeveloper": false to set whether developer mode is enabled, which alerts users to any console errors that occur"SessionLengthWebInDays" : 30 to set the number of days before web sessions expire and users will need to log in again"SessionLengthMobileInDays" : 30 to set the number of days before native mobile sessions expire"SessionLengthSSOInDays" : 30 to set the number of days before SSO sessions expire"SessionCacheInMinutes" : 10 to set the number of minutes to cache a session in memorySupportSettings section to config.json:
"TermsOfServiceLink": "/static/help/terms.html" to allow System Administrators to set the terms of service link"PrivacyPolicyLink": "/static/help/privacy.html" to allow System Administrators to set the privacy policy link"AboutLink": "/static/help/about.html" to allow System Administrators to set the about page link"HelpLink": "/static/help/help.html" to allow System Administrators to set the help page link"ReportAProblemLink": "/static/help/report_problem.html" to allow System Administrators to set the home page for the support website"SupportEmail":"[email protected]" to allow System Administrators to set an email address for feedback and support requestsThe following options are not present in the System Console, and can be modified manually in the config.json file:
FileSettings in config.json:
"AmazonS3Endpoint": "" to set an endpoint URL for an Amazon S3 instance"AmazonS3BucketEndpoint": "" to set an endpoint URL for Amazon S3 buckets"AmazonS3LocationConstraint": false to set whether the S3 region is location constrained"AmazonS3LowercaseBucket": false to set whether bucket names are fully lowercase or notMany thanks to our external contributors. In no particular order:
Release date: 2015-12-16
Authentication
Archives
Account Settings
Messaging & Comments
Extras
/loadtest url tool for manually testing text processingPerformance
Messaging & Comments
Onboarding
User Interface
Multiple settings were added to config.json. These options can be modified in the System Console, or manually updated in the existing config.json file. This is a list of changes and their new default values in a fresh install:
EmailSettings in config.json:
"ApplePushServer": "" which is replaced with SendPushNotifications and PushNotificationServer"ApplePushCertPublic": "" which is replaced with SendPushNotifications and PushNotificationServer"ApplePushCertPrivate": "" which is replaced with SendPushNotifications and PushNotificationServer"SendPushNotifications": false to control whether mobile push notifications are sent to the server specified in PushNotificationServer"PushNotificationServer": "" to specify the address of the proxy server that re-sends push notifications to their respective services like APNS (Apple Push Notification Services)Many thanks to our external contributors. In no particular order:
Mattermost v1.2.1 is a Quality Release addressing a security issue in v1.2.0 affecting a newly introduced outgoing webhooks feature. Specifically, in v1.2.0 there was a check missing from outgoing webhooks, so a team member creating outgoing webhooks could in theory find a way to listen to messages in private channels containing popular words like "a", "the", "at", etc. For added security, Mattermost v1.2.1 now installs with incoming and outgoing webhooks disabled by default.
To limit the impact of this security issue, Mattermost v1.2.0 has been removed from the source repo. It is recommended that anyone who's installed v1.2.0 upgrade to v1.2.1 via the procedure described in the Mattermost Upgrade Guide.
in:[channel_url_name] now limits searches within a specific channelfrom:[username] now limits searches to messages from a specific userDiff, Apache, Makefile, HTTP, JSON, Markdown, JavaScript, CSS, nginx, ObjectiveC, Python, XML, Perl, Bash, PHP, CoffeeScript, C, SQL, Go, Ruby, Java, and iniOnboarding
Messaging and Notifications
Search
in:[channel_url_name] now limits searches within a specific channelfrom:[username] now limits searches to messages from a specific userIntegrations
User Interface
Diff, Apache, Makefile, HTTP, JSON, Markdown, Java, CSS, nginx, ObjectiveC, Python, XML, Perl, Bash, PHP, CoffeeScript, C, SQL, Go, Ruby, Java, and ini.Team Settings
Extras
/shrug KEYWORD command to output: ¯\_(ツ)_/¯ KEYWORD/me KEYWORD command to output: KEYWORDSystem Console
Multiple settings were added to config.json. These options can be modified in the System Console, or manually updated in the existing config.json file. This is a list of changes and their new default values in a fresh install:
TeamSettings in config.json:
"RestrictTeamNames": true to control whether team names can contain reserved words like www, admin, support, test, etc."EnableTeamListing": false to control whether teams can be listed on the root page of the siteServiceSettings in config.json
"EnableOutgoingWebhooks": false to control whether outgoing webhooks are enabled"EnableIncomingWebhooks": true to "EnableIncomingWebhooks": false to turn incoming webhooks off by default, to increase security of default install. Documentation updated to enable webhooks before use.The following is for informational purposes only, no action needed. Mattermost automatically upgrades database tables from the previous version's schema using only additions. Sessions table is dropped and rebuilt, no team data is affected by this.
Description to HeaderPurpose column with type varchar(1024)Preferences TableInviteId column with type varchar(32)AllowOpenInvite column with type tinyint(1)AllowTeamListing column with type tinyint(1)idx_teams_invite_id indexMany thanks to our external contributors. In no particular order:
Released 2015-10-20
This is a Quality Release (v1.1.1) and recommended only for users needing a fix to the specific issue listed below. All other users should use the most recent major stable build release (v1.1.0).
View more information on Mattermost release numbering.
Upgrading Mattermost v0.7 to Mattermost v1.1 originally required installing Mattermost v1.0 to upgrade from the Mattermost v0.7 database, followed by an install of Mattermost v1.1.
This was problematic for installing Mattermost with GitLab omnibus since GitLab 8.0 contained Mattermost v0.7 and GitLab 8.1 was to include Mattermost v1.1
Therefore Mattermost v1.1.1 was created that can upgrade the database in Mattermost v0.7 to Mattermost v1.1 directly.
Users who configured Mattermost v0.7 within GitLab via the config.json file should consult documentation on upgrading configurations from Mattermost v0.7 to Mattermost v1.1.
Mattermost v1.1 introduced a 32-char limit on salts that broke the salt generating in GitLab and this restriction was removed for 1.1.1.
Released: 2015-10-16
Mattermost now supports incoming webhooks for channels and private groups. This developer feature is available from the Account Settings -> Integrations menu. Documentation on how developers can use the webhook functionality to build custom integrations, along with samples, is available at https://docs.mattermost.com/guides/integration.html.
Integrations
Documentation
Theme Colors
System Console
Messaging and Notifications
Multiple settings were added to config.json and System Console UI. Prior to upgrading the Mattermost binaries from the previous versions, these options would need to be manually updated in existing config.json file. This is a list of changes and their new default values in a fresh install:
ServiceSettings in config.json:
"EnablePostIconOverride": false to control whether webhooks can override profile pictures"EnablePostUsernameOverride": false to control whether webhooks can override profile pictures"EnableSecurityFixAlert": true to control whether the system is alerted to security updatesThe following is for informational purposes only, no action needed. Mattermost automatically upgrades database tables from the previous version's schema using only additions. Sessions table is dropped and rebuilt, no team data is affected by this.
NotifyLevel columnNotifyProps column with type varchar(2000) and default value {}Many thanks to our external contributors. In no particular order:
Released 2015-10-02
Markdown support is now available across messages, comments and channel descriptions for:
code, links, and block quotes)See documentation for full details.
Themes as been significantly upgraded in this release with:
Added new web-based System Console for managing instance level configuration. This lets IT admins conveniently:
In addition new command line tools are available for managing Mattermost system roles, creating users, resetting passwords, getting version info and other basic tasks.
Run ./platform -h for documentation using the new command line tool.
Messaging, Comments and Notifications
Files and Images
System Console
User Interface
Integrations
Documentation
Performance
Code Quality
User Interface
Licensing
EmailVerified=true (it was false previously)A large number of settings were changed in config.json and a System Console UI was added. This is a very large change due to Mattermost releasing as v1.0 and it's unlikely a change of this size would happen again.
Prior to upgrading the Mattermost binaries from the previous versions, the below options would need to be manually updated in your existing config.json file to migrate successfully. This is a list of changes and their new default values in a fresh install:
ServiceSettings in config.json:
"SiteName": "Mattermost" which was added to TeamSettings"Mode" : "dev" which deprecates a high level dev mode, now replaced by granular controls"AllowTesting" : false to "EnableTesting": false which allows the use of /loadtest slash commands during development"UseSSL": false boolean replaced by "ConnectionSecurity": "" under Security with new options: None (""), TLS ("TLS") and StartTLS ('"StartTLS"`)"Port": "8065" to "ListenAddress": ":8065" to define address on which to listen. Must be prepended with a colon."Version": "developer" removed and version information now stored in model/version.go"Shards": {} which was not used"InviteSalt": "gxHVDcKUyP2y1eiyW8S8na1UYQAfq6J6" to EmailSettings"PublicLinkSalt": "TO3pTyXIZzwHiwyZgGql7lM7DG3zeId4" to FileSettings"ResetSalt": "IPxFzSfnDFsNsRafZxz8NaYqFKhf9y2t" to "PasswordResetSalt": "vZ4DcKyVVRlKHHJpexcuXzojkE5PZ5eL" and moved to EmailSettings"AnalyticsUrl": "" which was not used"UseLocalStorage": true which is replaced by "DriverName": "local" in FileSettings"StorageDirectory": "./data/" to Directory and moved to FileSettings"AllowedLoginAttempts": 10 to "MaximumLoginAttempts": 10"DisableEmailSignUp": false renamed "EnableSignUpWithEmail": true, reversed meaning of true, and moved to EmailSettings"EnableOAuthServiceProvider": false to enable OAuth2 service provider functionality"EnableIncomingWebhooks": false to enable incoming webhooks featureTeamSettings in config.json:
"AllowPublicLink": true renamed to "EnablePublicLink": true and moved to FileSettingsAllowValetDefault which was a guest account feature that is deprecated"TermsLink": "/static/help/configure_links.html" removed since option didn't need configuration"PrivacyLink": "/static/help/configure_links.html" removed since option didn't need configuration"AboutLink": "/static/help/configure_links.html" removed since option didn't need configuration"HelpLink": "/static/help/configure_links.html" removed since option didn't need configuration"ReportProblemLink": "/static/help/configure_links.html" removed since option didn't need configuration"TourLink": "/static/help/configure_links.html" removed since option didn't need configuration"DefaultThemeColor": "#2389D7" removed since theme colors changed from 1 to 18, default theme color option may be added back later after theme color design stablizes"DisableTeamCreation": false to "EnableUserCreation": true and reversed "EnableUserCreation": true added to disable ability to create new user accounts in the systemSSOSettings in config.json:
SSOSettings to GitLabSettings"Allow": false to "Enable": false to enable GitLab SSOAWSSettings in config.json:
FileSettings"S3AccessKeyId": "" renamed "AmazonS3AccessKeyId": "", and moved to FileSettings"S3SecretAccessKey": "" renamed "AmazonS3SecretAccessKey": "", and moved to FileSettings"S3Bucket": "" renamed "AmazonS3Bucket": "", and moved to FileSettings"S3Region": "" renamed "AmazonS3Region": "", and moved to FileSettingsImageSettings in config.json:
"ImageSettings" section to "FileSettings""DriverName" : "local" to specify the file storage method, amazons3 can also be used to setup S3EmailSettings in config.json:
"ByPassEmail": "true" which is replaced with SendEmailNotifications and RequireEmailVerification"SendEmailNotifications" : "false" to control whether email notifications are sent"RequireEmailVerification" : "false" to control if users need to verify their emails"UseTLS": "false" with "ConnectionSecurity": "" with options: None (""), TLS ("TLS") and StartTLS ("StartTLS")"UseStartTLS": "false" with "ConnectionSecurity": "" with options: None (""), TLS ("TLS") and StartTLS ("StartTLS")PrivacySettings in config.json:
"ShowPhoneNumber": "true" which was not used"ShowSkypeId" : "true" which was not usedThe following is for informational purposes only, no action needed. Mattermost automatically upgrades database tables from the previous version's schema using only additions. Sessions table is dropped and rebuilt, no team data is affected by this.
ThemeProps column with type varchar(2000) and default value {}AllowValet columnId column TokenAltId column IdIsOAuth column with type tinyint(1) and default value 0OAuthAccessDataAuthCode column with type varchar(128)Token column with type varchar(26) as the primary keyRefreshToken column with type varchar(26)RedirectUri column with type varchar(256)AuthCode columnOAuthAppsId column with type varchar(26) as primary keyCreatorId column with type varchar(26)CreateAt column with type bigint(20)UpdateAt column with type bigint(20)ClientSecret column with type varchar(128)Name column with type varchar(64)Description column with type varchar(512)CallbackUrls column with type varchar(1024)Homepage column with type varchar(256)CreatorId columnOAuthAuthDataClientId column with type varchar(26)UserId column with type varchar(26)Code column with type varchar(128) as primary keyExpiresIn column with type int(11)CreateAt column with type bigint(20)State column with type varchar(128)Scope column with type varchar(128)IncomingWebhooksId column with type varchar(26) as primary keyCreateAt column with type bigint(20)UpdateAt column with type bigint(20)DeleteAt column with type bigint(20)UserId column with type varchar(26)ChannelId column with type varchar(26)TeamId column with type varchar(26)UserId columnTeamId columnSystemsName column with type varchar(64) as primary keyValue column with type varchar(1024)`Many thanks to our external contributors. In no particular order:
Released 2015-09-05
Following the release of Mattermost v0.6.0 Alpha, GitLab 7.14 offered an automated install of Mattermost with GitLab Single Sign-On (co-branded as "GitLab Mattermost") in its omnibus installer.
New features, improvements, and bug fixes recommended by the GitLab community were incorporated into Mattermost v0.7.0 Beta1--in particular, extending support of GitLab SSO to team creation, and restricting team creation to users with verified emails from a configurable list of domains.
Preview of Slack import functionality supports the processing of an "Export" file from Slack containing account information and public channel archives from a Slack team.
Limitations:
GitLab Mattermost
File and Image Sharing
Messaging, Comments and Notifications
Documentation
Messaging, Comments and Notifications
Documentation
Many thanks to our external contributors. In no particular order:
Special thanks to the GitLab Mattermost early adopter community who influenced this release, and who play a pivotal role in bringing Mattermost to over 100,000 organizations using GitLab today. In no particular order:
Extra special thanks to GitLab community leaders for successful release of GitLab Mattermost Alpha:
Released 2015-08-07
Note: While use of Mattermost Preview (v0.5.0) and Mattermost Alpha (v0.6.0) in production is not recommended, we document compatibility considerations for a small number of organizations running Mattermost in production, supported directly by Mattermost product team.
GitLab Mattermost
File and Image Sharing
Messaging, Comments and Notifications
Security and Administration
On-boarding
Installation
On-boarding
Documentation
Many thanks to our external contributors. In no particular order:
Released 2015-06-24
Messaging and File Sharing
Archiving and Search
Anywhere Access